Алгоритм метода Гомори
1. Решаем задачу симплекс методом. Если найденное решение целочисленно, то задача решена. Если задача не разрешима, то она не имеет решений и в целых числах.
2. Если среди компонент оптимального решения есть не целые, то надо выбрать компоненту с оптимальной целой частью и сформулировать правильное отсечение из условия
3. Вводим дополнительную неотрицательную целую переменную и получаем новое уравнение
4. Полученную расширенную задачу решаем симплекс-методом. Если новый найденный план целочисленный, то задача решена, если нет то повторяем процедуру.
Замечание. - дробная часть числа
.
Если задача разрешима в целых числах, то после конечного числа шагов (итераций) оптимальный целочисленный план будет найден. Если в процессе решения появится уравнение, выражающее основную переменную через неосновные, в котором свободный член не целый, а все остальные коэффициенты целые, то задача в целых числах решений не имеет. В симплекс таблице это условие соответствует тому, что в строке с нецелым свободным членом все остальные коэффициенты целые.
Пример. Решить задачу в целых числах.
Приведем задачу к каноническому виду:
Построим симплекс-таблицу
Базис | Свободный | Переменные | Оценочные | ||||
член | отношения | ||||||
![]() | ![]() | ![]() | ![]() | ![]() | |||
![]() | |||||||
![]() | 17/2 | ||||||
![]() | |||||||
![]() | О | -2 | -3 |
Данный план не оптимален, так как в оценочной строке есть отрицательные элементы. Наибольший по модулю находится в столбце . Следовательно
переменная вводимая в базис. Построим оценочные отношения. Наименьшее соответствует строке
. Значит
вводимая в базис переменная. Переходим к новой симплекс-таблице.
Базис | Свободный | Переменные | Оценочные | ||||
член | отношения | ||||||
![]() | ![]() | ![]() | ![]() | ![]() | |||
![]() | -5 | 20/3 | |||||
![]() | -4 | 2/3 | |||||
![]() | ![]() | ||||||
![]() | -2 |
Полученное решение не является оптимальным. вводимая,
выводимая переменная. Переходим к новой симплекс-таблице
Базис | Свободный | Переменные | Оценочные | ||||
член | отношения | ||||||
![]() | ![]() | ![]() | ![]() | ![]() | |||
![]() | -1 | -1 | |||||
![]() | 2/3 | 1/3 | -4/3 | ||||
![]() | |||||||
![]() | 76/3 | 2/3 | 1/3 |
Полученное решение оптимально, но не является цело
численным .
Построим правильное отсечение из условия:
Найдем дробные части от чисел стоящих в фигурных скобках:
Получим неравенство
Введем дополнительную целую переменную
Полученное уравнение необходимо добавить в систему ограничений и решить
симплекс-методом новую задачу.
Для сокращения числа шагов можно вводить новое уравнение в симплекс-таблицу, полученную на последнем шаге.
Базис | Свободный | Переменные | Оценочные | |||||
член | отношения | |||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||
![]() | -1 | -1 | ![]() | |||||
![]() | 2/3 | 1/3 | -4/3 | ![]() | ||||
![]() | ||||||||
![]() | 2/3 | 1/3 | 2/3 | -1 | ||||
![]() | 76/3 | 2/3 | 1/3 |
Полученное базисное решение не допустимо
Замечание. Включение в систему ограничений дополнительного ограничения, соответствующего правильному отсечению всегда дает недопустимое базисное решение.
Для получения допустимого базисного решения необходимо перевести в основные переменные переменную, входящую со знаком «+» в уравнение, в котором свободный член отрицательный. В рассматриваемом случае это переменная или
. Введем
.
Базис | Свободный | Переменные | Оценочные | |||||
член | отношения | |||||||
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | |||
![]() | -1/2 | -2/3 | ||||||
![]() | -2 | |||||||
![]() | -1/2 | 3/2 | ||||||
![]() | 1/2 | 3/2 | ||||||
![]() | 1/2 | 1/2 |
Полученное решение является оптимальным. Найденный план целочисленный
Дата добавления: 2015-11-28; просмотров: 2012;