Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр5)Решение управленческих задач средствами ПЛП...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.48 Mб
Скачать

3.2.2 Алгоритм двойственного симплекс-метода

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

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

Преобразование таблицы начинают с выбора разрешающей строки, в качестве которой берется любая строка, где нарушен критерий допустимости: свободный член отрицателен. Для выбора разрешающего столбца среди коэффициентов этой строки находят отрицательный элемент, на котором реализуется наименьшее по модулю отношение элемента критериальной строки к этому элементу: . Затем таблицу преобразуют методом Гаусса так же, как и в прямом симплекс-методе.

Если в разрешающей строке нет отрицательных коэффициентов, то задача неразрешима (ее ОДП пуста).

При применении двойственного симплекс-метода следует помнить о том, что в отличие от прямого здесь может нарушаться только критерий допустимости, критерий же оптимальности всегда сохраняется. Целью преобразований является получение допустимой заключительной таблицы. Если не было допущено ошибки, она автоматически останется оптимальной, т.е. будет найдено решение. Если же критерий оптимальности нарушился, то ошибка, скорее всего, была допущена при выборе разрешающего столбца, т.е. неправильно определено наименьшее по модулю отношение.

Пример использования двойственного симплекс-метода будет рассмотрен в разделе 3.2.3.

3.2.3 Решение задачи симплекс-методом

Вначале берут фиксированное значение параметра L=L0 и решают задачу прямым симплекс-методом. Пусть для этого значения получена оптимальная симплексная таблица. Поскольку свободные члены ограничений зависят от параметра, элементы столбца В (значения переменных и оптимум) также будут представлять собой выражения, содержащие параметр (таблица 13).

Таблица 13 – Симплексная таблица

c1

. . .

cj

. . .

cn

xб

cб

В

х1

. . .

хj

. . .

хn

1

. . .

. . .

b1`+Lb1``

a 11

. . .

a 1j

. . .

a1n

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

i

. . .

. . .

bi`+Lbi``

a i1

. . .

aij

ain

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

. . .

m

. . .

. . .

bm`+Lbm``

a m1

. . .

a mj

. . .

amn

m+1

d`+Ld``

1

. . .

j

. . .

n

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

(9)

Если положительных или отрицательных bi`` не существует, то соответствующим концом промежутка будет - или +.

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

Если для начального значения L целевая функция задачи оказалась неограниченной, то задача будет неразрешима при любых значениях L, что легко доказать, исходя из теории двойственности.

В самом деле, по основной теореме двойственности у задачи, двойственной данной, не будет допустимых планов (если целевая функция одной из сопряженных задач не ограничена, то ОДП другой пуста). Но по правилам построения двойственных задач параметр не будет входить в ограничения двойственной задачи, а только в ее целевую функцию (ведь свободные члены данной задачи будут коэффициентами целевой функции двойственной задачи). Следовательно ОДП двойственной задачи будет пуста при любых значениях параметра (поскольку допустимые планы определяются только ограничениями, а система ограничений не меняется при изменении параметра). Значит, двойственная задача всегда будет неразрешима. По основной теореме двойственности сопряженные задачи разрешимы или неразрешимы одновременно. Следовательно, и исходная задача всегда будет неразрешима (но вот причины ее неразрешимости при разных значениях параметра могут быть разные: либо по-прежнему не ограничена целевая функция, либо ОДП станет пуста).

Если при поиске других промежутков оптимальности в выбранной строке нет разрешающего элемента, то на соответствующем луче L ОДП задачи пуста. Следует рассматривать оставшуюся часть числовой оси.

Например, решим следующую задачу:

mах 2х1 - х2 + 3х3 - 2х4 + х5

- х1 + х2 + х3 =1 + 2L

х1 - х2 + х4 =1 -L

х1 + х2 + х5 = 2 – 3L

х1-5 0

L  ]-; +[

При построении симплексной таблицы (таблица 14) для этой задачи удобно столбец В представить в виде двух столбцов, в первом из которых записывается слагаемое, не содержащее L, а в другом - коэффициент при L. Положим вначале L=0 и решим задачу для этого значения (при этом проверку выполнения критерия допустимости и выбор разрешающей строки можно осуществлять только по первому слагаемому столбца В).

Таблица 14 – Решение задачи симплекс-методом для L=0

2

-1

3

-2

1

N

xб

cб

B

B (L*)

x1

x2

x3

x4

x5

1

x3

3

1

2

-1

1

1

0

0

2

x4

-2

1

-1

1

-1

0

1

0

3

x5

1

2

-3

1

1

0

0

1

m+1

3

5

-6

7

0

0

0

N

xб

cб

B

B (L*)

x1

x2

x3

x4

x5

1

x3

3

2

1

0

0

1

1

0

2

x1

2

1

-1

1

-1

0

1

0

3

x5

1

1

-2

0

2

0

-1

1

m+1

9

-1

0

1

0

6

0

Из заключительной таблицы можно извлечь следующее решение: Х*=(1-L; 0; 2+L; 0; 1-2L), z*=9 - L. Найденное решение будет иметь смысл лишь в том случае, если значения всех переменных будут неотрицательны (по условиям примера х1-5 0). В полученном оптимальном плане x2 = x4 = 0 – всегда неотрицательные. Знак переменных x1, x3, и x5 зависит от L. Определим, на каком промежутке изменения L этот план будет допустимым:

2 +L 0

L -2

1 -L 0

L 1

-2 L 0,5

1 – 2L 0

L 0,5

При L > 0,5 значение переменной x5 станет отрицательным (x5 = 1 – 2L), в третьей строке таблицы нарушится критерий допустимости. Преобразуем таблицу двойственным симплекс-методом (таблица 15), выбрав эту строку в качестве разрешающей. Чтобы выбрать разрешающий столбец, надо найти в этой строке отрицательное число. Оно единственное - -1 в столбце х4, - поэтому разрешающим будет столбец х4*.

Таблица 15 – Решение задачи симплекс-методом для L > 0,5

2

-1

3

-2

1

N

xб

cб

B

B (L*)

x1

x2

x3

x4

x5

1

x3

3

3

-1

0

2

1

0

1

2

x1

2

2

-3

1

1

0

0

1

3

x4

-2

-1

2

0

-2

0

1

-1

m+1

15

-13

0

13

0

0

6

Д анная таблица (Х*=(2-3L; 0; 3-L; 2L-1; 0), z*=15 - 13L) будет допустимой при

3 -L 0

L 3

2 – 3L 0

L 0,667

0,5 L 0,667

2L - 1 0

L 0,5

Итак, рассмотрен промежуток [-2; 0,667]. Необходимо рассмотреть оставшуюся часть числовой оси. Рассмотрим вначале дальнейшее увеличение параметра. При L > 0,667 нарушится допустимость во второй строке. Однако, преобразовать таблицу по этой строке невозможно, так как в ней нет отрицательных элементов. Следовательно, при L  ]0,667; +[ ОДП=.

Рассмотрим теперь L < -2. Граница промежутка -2 была получена из таблицы 14. При L < -2 нарушается критерий допустимости в первой строке предыдущей симплексной таблицы. Однако преобразовать эту таблицу также не удастся из-за отсутствия разрешающего элемента. Следовательно, и на этом промежутке изменения параметра ОДП=.

Итак, решение задачи можно представить в виде следующей таблицы (таблица 16):

Таблица 16 – Результат решения задачи

Промежуток изменения L

Оптимальный план (Х*)

Оптимум (z*)

] -; -2[

ОДП=

[-2; 0,5]

(1-L; 0; 2+L; 0; 1-2L)

9 - L

[0,5; 0,667]

(2-3L; 0; 3-L; 2L-1; 0)

15 - 13L

]0,667; +[

ОДП=

Например, если L=-100, то у задачи не будет допустимых планов, так как -100  ] -; -2[ . Если L =0,6, то ответ задачи находится в третьей строке (0,6  [0,5; 0,667]): Х* = (2-3*0,6; 0; 3-0,6; 2*0,6-1; 0) = (0,2; 0; 2,4; 0,2; 0); z* = 15 – 13*0,6 = 7,2. Если L=0,5, то ответ задачи одновременно находится во второй и третьей строке (причем это один и тот же ответ): Х* = (1-0,5; 0; 2+0,5; 0; 1-2*0,5) = (2-3*0,5; 0; 3-0,5; 2*0,5-1; 0) = (0,5; 0; 2,5; 0; 0); z* = 9 – 0,5 = 15 – 13*0,5 = 8,5. И т.д.