Решение общей задачи линейного программирования

При решении общей задачи линейного программирования методом Штифеля мы должны проделать следующие шаги:

1) переместить нули из правого заглавного столбца, в верхнюю заглавную строку (при этом столбец, в верхнюю часть которого попадает ноль, вычеркивается);

2) переместить все неограниченные на знак переменные из верхней заглавной строки, в правый заглавный столбец (при этом строка, в которую попадает такая переменная, запоминается, а затем вычеркивается);

3) добиться того, чтобы свободные члены, расположенные в последнем столбце таблицы, были неотрицательны (выйти в область планов) или доказать, что задача не имеет решения из-за отсутствия планов;

4) добиться того, чтобы оценки свободных переменных, расположенные в нижней строке таблицы, стали неотрицательными (найти оптимальный опорный план) или доказать, что задача не имеет решения из-за неограниченности функции цели.

Причем первый и второй этапы желательно проделать одновременно.

Пример 4.2. Найти максимум функции цели

z(X) = - 8x1 + x2 + 6x3 + x4 + 7x5 ® max, (4.4)

при условии, что

– 2x1 + x2 + 2x3 - x4 + x5 £ – 4,

x1 + 4x2 + x3 – 2x4 – 2x5 = – 8, (4.5)

– 3x1 – x2 + 2x3 + x4 + 3x5 £ – 2,

x1, x3, x4, x5 ³ 0.

Решение. Перепишем систему ограничений (4.5) в виде:

2x1 – x2 – 2x3 + x4 – x5 – 4 = y1,

– x1 – 4x2 – x3 + 2x4 + 2x5 – 8 = 0, (4.6)

3x1 + x2 – 2x3 – x4 – 3x5 – 2 = y2,

x1, x3, x4, x5, y1, y2 ³ 0.

Решим данную задачу методом Штифеля:

  –x1 –x2 –x3 –x4 –x5     –x1 –x2 –x3 –x4
y1 –2 –1 –4   y1 –3/2 5/2 –2 –8
–2 –2 –8   x5 –1/2 –2 –1/2
y2 –3 –1 –2   y2 –3/2 7/2 –2 –14
z –1 –6 –1 –7   z 9/2 –15 –19/2

Табл. 4.7. Табл. 4.8.

На первом шаге (при переходе от табл. 4.7 к табл. 4.8) свободная переменная x5 меняется на базисную переменную 0. При попадании нуля на верх соответствующий столбец можно исключить из таблицы.

На втором шаге (при переходе от табл. 4.8 к табл. 4.9) свободная переменная x2 меняется на базисную переменную y2. После этого строку, соответствующую переменной x2, можно, предварительно запомнив, исключить из таблицы 4.9. Таким образом, мы приходим к таблице 4.10:

  –x1 –y2 –x3 –x4              
y1 –0,6 –0,6 0,4 –0,8 0,4     –x1 –y2 –x3 –x4
x5 –1,1 0,4 0,9 0,2 –1,6   y1 –0,6 –0,6 0,4 –0,8 0,4
x2 –0,3 0,2 0,7 –0,4 –2,8   x5 –1,1 0,4 0,9 0,2 –1,6
z –14   z –14

Табл. 4.9. Табл. 4.10.

На данном этапе завершается упрощение задачи. Заметим, что упрощение задачи можно было сделать иначе. На первом же шаге можно было базисную переменную 0 заменить на свободную переменную x2. Тем самым, мы могли сэкономить один шаг.

До сих пор мы не следили за значениями функции цели и за оценками свободных и базисных переменных. На втором этапе обратим внимание на оценки базисных переменных y1 и x5, то есть на числа 0,4 и – 1,6 из последнего столбца таблицы 4. Среди этих чисел есть отрицательное
(–1,6). Просматривая другие элементы строки, соответствующей базисной переменной x5, находим среди них еще одно отрицательное –1.1 (если бы такого отрицательного числа не нашлось, то задача не имела бы решения из-за отсутствия планов). Вычислим минимальное симплексное отношение для первого столбца, в котором находится отрицательное число –1,1. В данном случае оно, очевидно, равно (–1,6):(–1,1) = 16/11, и разрешающим элементом является число –1,1. После очередного пересчета приходим к таблице:

  –x5 –y2 –x3 –x4
y1 –6/11 –9/11 –1/11 –1/11 14/11
x1 –10/11 –4/11 –9/11 –2/11 16/11
z –14

Табл. 4.11.

Теперь обе оценки базисных переменных положительны и, следовательно, мы вышли в область планов. Так как все оценки свободных переменных неотрицательны, то данный план является оптимальным. Причем он является единственным оптимальным планом данной задачи, несмотря на наличие нулевых оценок. Действительно, при попытке заменить любую из свободных переменных x5 или x4, имеющую нулевую оценку на любую из базисных переменных, нам пришлось бы в качестве разрешающего элемента выбрать отрицательное число, и тем самым выйти из области планов задачи. Таким образом, оптимальным планом задачи (4.6) является план с компонентами:

Решение общей задачи линейного программирования - student2.ru

То есть, Решение общей задачи линейного программирования - student2.ru . При этом Решение общей задачи линейного программирования - student2.ru .



Наши рекомендации