(Можно сказать, что при выполнении правильных отсечений отсекаются нецелочисленные оптимальные планы, но не отсекается ни один целочисленный план).
После этого решается задача L1. Затем в случае необходимости добавляется еще одно ограничение и решается задача L2 и т.д.
Геометрически добавление каждого линейного ограничения отвечает построению гиперплоскости, которая отсекает от многогранника решений предыдущей задачи оптимальную точку с дробными координатами, но не затрагивает ни одной из целочисленных точек этого многогранника.
Таким образом, вместо задачи I решается последовательность задач линейного программирования L0 = L , L1 , L2 , … , пока решение одной из них не окажется целочисленным. Оно будет одновременно и оптимальным решением задачи I .
Рассмотрим алгоритм построения отсечения для полностью целочисленных задач (первый алгоритм Гомори). Предположим, что в оптимальном решении задачи L базисными являются первые m переменных. Тогда имеет место базисная система вида
. (3.16)
Если положить xj = 0 для j > m , то получим базисные компоненты оптимального решения .
Рассмотрим некоторую k-ю строку системы уравнений (3.16) (при этом ее номер совпадает с номером некоторой базисной переменной).
Предположим, что - нецелое и, кроме того, дробным является, по крайней мере, один из элементов k-ой строки. Представим и все в виде двух составляющих – целой и дробной части:
; . (3.17)
Здесь скобки [ ] означают целую часть числа; - наибольшее целое, не превышающее . Для любого числа дробная часть fk по определению удовлетворяет неравенству .
Так, например, для имеем , для имеем .
С учетом введенных обозначений k-е уравнение системы (3.16) примет вид
. (3.18)
Далее, исходя из требования целочисленности xk , в [4] выводится соотношение, которому должны удовлетворять дробные компоненты уравнения (3.18). На его основе формируется правильное отсечение, представляющее собой ограничение в форме неравенства, имеющее вид
(3.19)
Такое неравенство для удобства часто записывается в виде
, (3.20)
Пример 3.1.
Построим правильное отсечение для строки базисной системы ограничений, имеющей вид
x1 = 7/2 - 6/16×x3 + 2/8×x4 .
Выделим в коэффициенте ограничений и двух коэффициентах матрицы ограничений целые и дробные части. Получим
b1 = 3 + ½ , a11 = 6/16 = 0 + 6/16 , a12 = - 2/8 = -1 + 6/8.
Построим правильное отсечение по формуле (3.20)
6/16×x3 + 6/8×x4 ³ 1/2
Процесс включения в условия задачи новых ограничений-отсе-чений строится следующим образом. Вычитая из левой части неравенства (3.20) дополнительную неотрицательную переменную xn+1 и ум-ножая обе его части на -1, получаем отсечение в виде уравнения
(3.24) с базисной переменной . Добавляем это уравнение к последней симплекс-таблице предыдущей задачи.
Решим новую задачу с помощью двойственного симплекс-метода. Если решение окажется нецелочисленным, опять используем последнюю симплекс-таблицу для построения нового ограничения, поступая аналогично до тех пор, пока на очередном шаге не будет получено целочисленное решение.
З а м е ч а н и е 3.10. При реализации метода отсечений с помощью двойственного симплекс-метода необходимо обеспечивать высокую точность вычислений. В связи с этим рекомендуется исходные данные и промежуточные результаты представлять в виде рациональных дробей.
3.4.4. Другие методы решения задач ЦЛП
Для решения рассматриваемой задачи применяется также метод ветвей и границ [4,5,9,20]. Он является комбинаторным методом и используется для решения как полностью целочисленных, так и частично целочисленных задач.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.