Условия конечности второго алгоритма Гомори:
1) Целевая функция F(x) удовлетворяет условию целочисленности. Это учитывается при выборе строки k для построения правильного отсечения.
2) Выполнено по крайней мере одно из двух условий:
2') целевая функция ограничена снизу на многогранном множестве £= £0;
2») задача (£0ц, C) имеет по крайней мере один план.
С помощью второго алгоритма Гомори можно (в случае n1=n) решать и полностью целочисленную задачу линейного программирования. Однако в этом случае нет оснований для сравнения эффективности второго и первого алгоритмов Гомори.
5. Алгоритм Дальтона и Ллевелина
Второй алгоритм Гомори имеет дело с частично целочисленными задачами линейного программирования. Дальтон и Ллевелин рассматривают 0 олее широкий класс задач – частично дискретные задачи линейного программирования и применительно к ним модифицируют второй алгоритм Гомори.
Напомним, что решением задачи дискретного программирования будем называть вектор, координаты которого принадлежат £ц области вида:
и максимизирует значение функции
Будем предполагать, что
Теорема. Пусть x(£k, C) – оптимальное решение задачи (27–28, 30),
Если x(£k, C) является недопустимым решением задачи (27–30) и
где
Доказательство. Проверим вначале условие отсечения. Пусть в оптимальном решении x(£k, C) координата
Проверим условие правильности. Для этого покажем, что любое допустимое решение задачи (27–30) удовлетворяет условиям (31, 32).
Запишем разложение для координаты допустимого решения задачи (27–30) по небазисным переменным
и рассмотрим два случая: a)
и представим (34) в виде
где
Очевидно,
Рассмотрим случай а):
Отсюда
Домножим обе части (35) на неотрицательную величину
Рассмотрим случай б):
Таким образом, в а) и в б) случаях пришли к одному и тому же неравенству (36) и (37). Пользуясь ранее введенными обозначениями, их можно записать
Формула (38) определяет правильные отсечения. Сравнивая ее с выражением (31–32), приходим к выводу, что коэффициенты
Теорема доказана.
Алгоритм Дальтона – Ллевелина может быть описан следующим образом.
1. Решается (£k, C) – задача (27–30) (вначале k = 0). Пусть x(£k, C), k = 0, 1, 2,… оптимальное решение (£k, C) – задачи,
2. Проверяется условие допустимости по всем координатам оптимального вектора решения х(£k, C) (£k, C) – задачи. Если условие допустимости выполняется, то полученное решение является оптимальным решением исходной задачи (27–30). Если условие допустимости не выполняется хотя бы по одной координате, осуществляется переход к 3.
3. Пусть
i0 = min {i| 1<i<n1, хj0k – не удовлетворяет (29)}.
4. Для выбранного номера i=i0 строится правильное отсечение, т.е. вводится дополнительная переменная
где
5. Добавляем линейное ограничение, определяющее правильное отсечение, к условиям (£k, C) – задачи и получаем новую (£k+1, C) – задачу. Полагая k = k + 1, переходим к п. 1.
Приведем без доказательства теорему о конечности алгоритма.
Теорема. Если: коэффициенты целевой функции дискретны; F(x) ограничена снизу на многогранном множестве £; задача (£, C) имеет по крайней мере одно решение; выбор строки для построения правильного отсечения производится по правилу минимального номера и (£k, C) – задачи решаются методом последовательного уточнения оценок, то алгоритм Дальтона и Ллевелина сходится.
6. Алгоритм Данцига
Способ построения правильных отсекающих плоскостей, предложенный Данцигом значительно проще, чем все изложенные выше способы. Но, как показали Гомори и Гофман, конечность алгоритма Данцига гарантируется лишь для очень узкого класса задач. На примере алгоритма Данцига видно, насколько тонким является вопрос о построении правильных отсечений и сколь осторожно следует подходить к различным упрощенным алгоритмам.
Рассматривается полностью целочисленная задача линейного программирования:
Максимизировать
при условиях