§2. Поиск целочисленного решения основной задачи.
Пример.
Доведем
до целочисленного решения пример: найти
максимум функционала
(9) при
условиях:
(10)
(11)
Составляем исходную таблицу и, сделав два шага модифицированных жордановых исключений, приходим к оптимальному плану, записанному в табл. 4 .
Таблица 4
|
-y3 -y1 -x3 |
1 |
x2= y2= x1= |
-1/7 2/7 -1 -15/7 -5/7 -6 3/7 1/7 1 |
4/7 4/7 16/7 |
z= |
5/7 4/7 4 |
36/7 |
Полученное оптимальное решение x1=16/7, x2=4/7, x3=0 нецелочисленно,
поэтому приступаем к отысканию целочисленного плана. Проведем его двумя путями: обычным симплекс-методом и двойственным.
Выбираем среди свободных членов дробный. Так как в нашем
примере все они дробные, берем любой из них, например 4/7 из
первой строки. По формулам (4) находим дробные доли коэффициентов b выбранной первой строки:
Дополнительное ограничение будет иметь вид
Вводим это ограничение в задачу и получаем табл.5.
План, записанный в таблице, стал недопустимым. Принимаем за разрешающий элемент число (-2/7), делаем шаг модифицированных жордановых исключений и приходим к таблице 6.
Найденное решение допустимо и целочисленно, но, к сожалению, оно не оптимально. Поэтому выбираем разрешающий элемент (число 3) и делаем следующий шаг (табл.7).
Таблица 5
|
-y3 -y1 -x3 |
1 |
x2= y2= x1= s1= |
-1/7 2/7 -1 -15/7 -5/7 -6 3/7 1/7 1 -6/7 -2/7 0 |
4/7 4/7 16/7 -4/7 |
z= |
5/7 4/7 4 |
36/7 |
Таблица 6
|
-y3 -s1 -x3 |
1 |
x2= y2= x1= y1= |
-1 1 -1 0 -5/2 -6 0 1/2 1 3 -7/2 0 |
0 2 2 2 |
z= |
-1 2 4 |
4 |
Теперь решение оптимально, но нарушилась его целочисленность. Берем дробный свободный член 2/3 снова в первой строке и по коэффициентам этой строки формулируем аналогично предыдущему второе дополнительное условие. Практически оно составляется прямо в таблице, поскольку дробные доли коэффициентов легко вычисляются в уме. Записывать их надо со знаком минус (табл.8)
Таблица 7
|
-y1 -s1 -x3 |
1 |
x2= y2= x1= y3= |
1/3 -1/6 -1 0 -5/2 -6 0 1/2 1 1/3 -7/6 0 |
2/3 2 2 2/3 |
z= |
1/3 5/6 4 |
14/3 |
Таблица 8
|
-y1 -s1 -x3 |
1 |
x2= y2= x1= y3= s2= |
1/3 -1/6 -1 0 -5/2 -6 0 1/2 1 1/3 -7/6 0 -1/3 -5/6 0 |
2/3 2 2 2/3 -2/3 |
z= |
1/3 5/6 4 |
14/3 |
Чтобы избежать переписывания таблиц, лучше в каждой из них оставлять место под дополнительную строку. Если дополнительное ограничение не потребуется, эта строка останется незаполненной. Зато при необходимости такого условия мы просто впишем его в эту строку таблицы и продолжим решение.
План, записанный в табл. 8, снова является недопустимым.
Выбираем разрешающий элемент (-1/3) и делаем еще один
шаг (табл. 9). План, полученный в табл. 9, является допустимым, оптимальным и целочисленным. Таким образом, нужное решение найдено: x1=2, x2=0, x3=0, zmax=4.
Характерно, что такой план у нас уже был в табл. 6, но там он оказался не оптимальным. Это значит, что с одним дополнительным ограничением в многограннике была еще вершина
Таблица 9
|
-s2 -s1 -x3 |
1 |
x2= y2= x1= y3= y1= |
1 -1 -1 0 -5/2 -6 0 1/2 1 1 -2 0 -3 5/2 0 |
0 2 2 0 2 |
z= |
1 0 4 |
4 |
(2,2/3,0), доставлявшая функционалу большее значение, но
имевшая одну дробную координату. Вторым ограничением эта точка была отсечена, и целочисленная вершина (2, 0, 0) стала оптимальной. Похожий случай представлен на рисунке выше, где движение оптимальной вершины показано стрелками.
Применим теперь для нахождения целочисленного плана двойственный симплекс-метод. Отличия начинаются с табл. 5. Принимаем в ней за разрешающую ту же четвертую строку, но разрешающий элемент в ней определяем двойственными модифицированными отношениями. Они равны
5/7:(-6/7)=-5/6, 4/7:(-2/7)=-2;
меньше по модулю – первое , поэтому за разрешающий принимаем элемент (-6/7). Делая с ним шаг модифицированных исключений, переходим от табл.5 к табл.10.
Таблица 10 тождественна табл. 7, которую мы получили из табл. 5 двумя шагами. Поскольку целочисленный план не найден, составляем по первой строке дополнительное условие и вписываем его в строку s2 табл. 10. Вычисляем для этой строки двойственные модифицированные отношения
5/6:(-5/6)=-1, 1/3:(-1/3)=-1.
Таблица 10
|
-s1 -y1 -x3 |
1 |
x2= y2= x1= y3= s2= |
-1/6 1/3 -1 -5/2 0 -6 1/2 0 1 -7/6 1/3 0 -5/6 -1/3 0 |
2/3 2 2 2/3 -2/3 |
z= |
5/6 1/3 4 |
14/3 |
Они равны, но небольшая «прикидка» позволяет установить, что второй столбец за разрешающий принять выгоднее. Делая следующий шаг, получаем табл. 11 (тождественную табл. 9). в которой записан оптимальный целочисленный план. Двойственным симплекс-методом он получен не тремя шагами, а двумя.
Таблица 11
|
-s1 -s2 -x3 |
1 |
x2= y2= x1= y3= y1= |
-1 -1 -1 -5/2 0 -6 1/2 0 1 -2 1 0 5/2 -3 0 |
0 2 2 0 2 |
z= |
0 1 4 |
4 |
