Алгоритм метода Гомори
1. Решаем задачу ЛП (1)-(3) с помощью симплекс-метода.
а) Если эта задача не имеет решения, то задача ЦЛП (1)-(4) также не имеет решения.
б) Если решение этой задачи целочисленное, то оно и будет решением исходной задачи ЦЛП (1)-(4). И на этом процесс поиска решения завершается.
в) Если решение задачи ЦЛП (1)-(4) не найдено, то переходим к следующему шагу.
2. Выбираем одну из нецелых компонент оптимального плана задачи ЛП (1)-(3) (рекомендуется выбирать компоненту с наибольшей дробной частью). Пусть это будет компонента . Для этой компоненты строим правильное отсечение вида (7):
.
3. Путем введения неотрицательной вспомогательной переменной преобразуем это неравенство в равенство:
(8)
Добавляем условие (8) в систему ограничений задачи (1)-(4) вместе с условием . Заметим, что на вспомогательную переменную
условие целочисленности не накладывается.
4. Решаем задачу ЛП вида (1)-(3) с дополнительным условием (8) с
n + 1 переменными с помощью симплекс-метода.
а) Если оптимальный план этой задачи ЛП является целочисленным в части основных переменных , то принимаем его за решение исходной задачи ЦЛП, и на этом поиск решения завершается.
б) Если оптимальный план указанной задачи ЛП не является целочисленным в части основных переменных , то возвращаемся к шагу 2, и итерационный процесс продолжается. При этом только нужно учитывать, что выбирается одна из нецелых компонент оптимального плана в части основных переменных.
Замечание. Отметим, что алгоритм Гомори сходится к оптимальному решению задачи ЦЛП (1)-(4) за конечное число шагов. Доказательство этого утверждения опустим.