Лабораторная работа №8. Метод Гомори для решения задач целочисленного линейного программирования
< c, x> ® m, A x = b, (4. 2) x ³ 0 xi Î целые, iÎ {1, 2, 3,..., n}=[1..n]. Метод Гомори предполагает следующую последовательность действий для решения задачи (4.2). Шаг 1. Отбросим условие целочисленности < c, x> ® m, A x = b, (4. 3) xi ³ 0, iÎ {1, 2, 3,..., n}=[1..n], получим задачу линейного программирования (4.3). Шаг 2. Решим задачу (4.3) одним из алгоритмов симплекс-метода. Если полученное оптимальное оптимальное решение X целочисленное (т.е. xi целые для всех iÎ [1..n]), то алгоритм прекращает работу, иначе переходим к шагу 3. Шаг 3. Если задача решалась симплекс-методом, значение базисных переменных xi записано в столбце b симплекс-таблицы, внебазисные переменные равны нулю. Среди элементов столбца b ищем нецелочисленные. Если таких несколько, то обычно берется такое i0, что i0= argmax{b(i)| iÎ [1..m]}, составляется дополнительное ограничение (отсечение Гомори): å {- frac (a(i0 , j)) ´ x(i)| jÎ [,..n] £ - frac (b(i0)), (4.4) где frac(a) - дробные части числа a. Приводим это ограничение к каноническому виду, приписываем к последней cтроке симплекс - таблицы и решаем двойственным симплекс-методом. Получив оптимальное решение, переходим к выполнению шага 2.
Пример.
x1 + x2 ® max, 2 x1 + x2 £ 2, x1 +2 x2 £ 2, xi ³ 0, xi - целые, i=1, 2.
Занесем данные в симплекс-таблицу:
Решив эту задачу без условия целочисленности, получим симплекс-таблицу.
Из этой таблицы получаем X1=0.67, X2=0.67, т.е. решение не целочисленное, строим дополнительное ограничение по первой строке (можно и по второй): -0.67Y1 - 0.67Y2 £ -0.67. Приводим его к каноническому виду -0.67Y1 - 0.67Y2 + Y3 = -0.67 и приписываем к симплекс-таблице:
Решаем двойственным симплекс-методом:
Получим целочисленное решение X1= 0, X2=1, Y1=1, Y2=0, Y3=0, Y1, Y2, Y3 - дополнительные переменные. Ответ: X1= 0, X2=1. Задание 8
Решить задачу из лабораторной работы N13 " Лабораторного практикума по методам оптимизации", добавить к условиям задачи условия целочисленности. Исходной таблицей для метода Гомори взять последнюю симплекс-таблицу лабораторных работ 14-15. Если в ней получено целочисленное решение, то задание скорректировать у преподавателя.
Метод ветвей и границ (алгоритм Ленд и Дойга) для решения задач целочисленного линейного программирования. Рассмотрим задачу целочисленного линейного программирования в виде < c, x> ® max, A x = b, (4. 5.) x ³ 0, xi - целые, i Î [1..n]. Для ее решения применим метод ветвей и границ.
|