Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
152
Добавлен:
23.05.2015
Размер:
97.79 Кб
Скачать

Целочисленное

программирование

Математическая формулировка целочисленной

задачи линейного программирования

(1)

при ограничениях

(2)

(3)

(4)

Методы целочисленной оптимизации можно разделить на три основные группы:

методы отсечения;

комбинаторные методы;

приближенные методы.

Методы отсечения

Метод отсекающих плоскостей впервые разработан Р. Гомори в 1957- 1958 гг. для задач линейного целочисленного программирование (ЛЦП).

Алгоритм решения по методу Гомори:

1.Отбросив на определенное время условие целочисленности (4), найдем оптимальное решение симплекс-методом. Если окажется, что он удовлетворяет также и условию целочисленности, то это решение является искомым.

2.В противном случае нужно выбрать компоненту оптимального решения с наибольшей целой частью (иногда наибольшей дробной частью, иногда другой критерий эффективности отсечения) и по соответствующему уравнению на основе последней симплекс- таблицы сформировать 'правильное отсечение' на основе неравенства

{Вi опт.} – {Ai m+1} X m+1 - … - {Ain} Xn <= 0,

(5)

где Х m+1, …, Xn - неосновные переменные,

{} означают дробную часть числа, например: {4/3} = 4/3 – 3/3 = 1/3,

{-4/3}= – 4/3 – (– 2) = 2/3

3.В неравенство (5) вводим дополнительную неотрицательную целочисленную переменную Хn+1; преобразовываем (5) в уравнение и включаем в систему ограничений (2).

4.Полученную новую задачу решают симплекс-методом. Если найденный новый оптимальный план – целочисленный, то задача ЛЦП решена. Иначе переходят к п.2 алгоритма.

Пример решения методом Гомори

(1)

При условии

(2)

 

(3)

– целые

(4)

Для определения оптимального плана задачи (1) – (4) сначала находим оптимальный план задачи (1) – (3).

На основе симплекс-таблицы получим:

продолжение

Оптимальный план задачи (1) – (3) не является оптимальным планом задачи (1) – (4), поскольку две компоненты Х1 и Х2 имеют нецелочисленные значения. При этом целая часть больше для компоненты Х1.

1. Составим ограничение для переменной Х1 из последней симплекс– таблицы:

или

{Вi опт.} – {Ai m+1} X m+1 - … - {Ain} Xn <= 0,

2.Добавим к системе ограничений задачи (1) – (4).

3.Вводим новую дополнительную переменную и решаем симплекс- методом (точнее, модифицированным симплекс-методом, т.к. первое БР – будет недопустимое).

После решения получим

Целевая функция = 35.

Метод ветвей и границ

Впервые метод ветвей и границ был предложен в работе Лэнда и Дойга в 1960 г. применительно к задаче линейного целочисленного программирования. Второе рождение метода связано с работой Литтла, Мурти, Суини и Кэрел, 1963 г., посвященной задаче о коммивояжере.

Алгоритм решения методом ветвей и границ:

1.Отбросив на определенное время условие целочисленности (4), находят оптимальное решение симплекс-методом. Если окажется, что он удовлетворяет также и условию целочисленности, то это решение является искомым.

2.В противном случае производят ветвление задачи на две, для каждой из задач вводят дополнительные ограничения по одной из нецелочисленных переменных Хi<=Аi, Хi>=Вi, где Аi – наибольшее целое, не превосходящее Хi, а Вi – наименьшее целое, большее Хi,

например, при нецелочисленной компоненте исходной задачи Х2=2,3 доп. ограничение в одной ветви будет Х2>=3, а по другой – Х2<=2.

3.Снова решаются задачи в обеих ветвях с накладыванием последующих ограничений по другим переменным. На каждом шаге проверяется выполнения условия целочисленности.