Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЭУМКД-МиМАПР / Electr_uchebnik_po_ТПР.doc
Скачиваний:
61
Добавлен:
12.03.2015
Размер:
2.64 Mб
Скачать

3.7. Двойственный симплекс-метод

Двойственный симплекс-метод, как и симплекс-метод, используется при нахождении решения задачи линейного программирования, записанной в форме основной задачи, для которой среди векторов Pj, составленных из коэффициентов при неизвестных в системе уравнений, имеетсяmединичных. Вместе с тем двойственный симплекс–метод можно применять при решении задачи линейного программирования, свободные члены системы уравнений которой могут быть любыми числами (при решении задачи симплексным методом эти числа предполагались неотрицательными). Такую задачу и рассмотрим теперь, предварительно предположив, что единичными являются векторP1,P2,…,Pm ,т. е. рассмотрим задачу, состоящую в определении максимального значения функции

F=c1x1+c2x2+…+cnxn , (1)

при условиях

x1P1+x2P2+…+xmPm+xm+1Pm+1+…+xnPn=P0 , (2)

xj ≥ 0,j=1..n (3)

где

и среди чисел bi , i=1..mимеются отрицательные.

В данном случае X=(b1;b2;…;bm;0;…;0)есть решение системы линейных уравнений (2). Однако это решение не является планом задачи (1) – (3), так как среди его компонент имеются отрицательные числа.

Поскольку векторы P1,P2,…,Pm единичные, каждый из векторовPj, j=1..nможно представить в виде линейной комбинации данных векторов, причем коэффициентами разложения векторовPjпо векторамP1,P2,…,Pmслужат числаxij=aij, i=1..m,j=1..nТаким образом, можно найти

Определение 1.

Решение X=(b1;b2;…;bm;0;…;0) системы линейных уравнений (2), определяемое базисомP1,P2,…,Pm, называется псевдопланом задачи (1) – (3), еслиΔj ≥ 0 для любогоj=1..n

Теорема 1.

Если в псевдоплане X=(b1;b2;…;bm;0;…;0), определяемом базисомP1,P2,…,Pm, есть хотя бы одно отрицательное числоbi < 0такое, что всеaij ≥ 0, j=1..n, то задача (1) – (3) вообще не имеет планов.

Теорема 2.

Если в псевдоплане X=(b1;b2;…;bm;0;…;0), определяемом базисомP1,P2,…,Pm, имеются отрицательные числаbi < 0такие, что для любого из них существуют числаaij < 0, то можно перейти к новому псевдоплану, при котором значение целевой функции задачи (1) – (3) не уменьшится.

Сформулированные теоремы дают основание для построения алгоритма двойственного симплекс-метода.

Итак, продолжим рассмотрение задачи (1) – (3). Пусть X=(b1;b2;…;bm;0;…;0) – псевдоплан этой задачи. На основе исходных данных составляют симплекс-таблицу (табл. 1), в которой некоторые элементы столбца вектораP0являются отрицательными числами. Если таких чисел нет, то в симплекс-таблице записан оптимальный план задачи (1) – (3), поскольку, по предположению, всеΔj ≥ 0. Поэтому для определения оптимального плана задачи при условии, что он существует, следует произвести упорядоченный переход от одной симплекс–таблицы к другой до тех пор, пока из столбца вектораP0 не будут исключены отрицательные элементы. При этом все время должны оставаться неотрицательными все элементы(т +1)–йстроки, т.е.zj – сj ≥ 0 для любогоj,j=1..n.

Таким образом, после составления симплекс-таблицы проверяют, имеются ли в столбце вектора P0 отрицательные числа. Если их нет, то найден оптимальный план исходной задачи. Если же они имеются (что мы и предполагаем), то выбирают наибольшее по абсолютной величине отрицательное число. В том случае, когда таких чисел несколько, берут какое–нибудь одно из них: пусть это числоbl.Выбор этого числа определяет вектор, исключаемый из базиса, т. е. в данном случае из базиса выводится векторPl.Чтобы определить, какой вектор следует ввести в базис, находимmin (-Δj / alj), гдеalj < 0.

Пусть это минимальное значение принимается приj=r, тогда в базис вводят векторPr.Числоalrявляется разрешающим элементов. Переход к новой симплекс–таблице производят по обычным правилам симплексного метода. Итерационный процесс продолжают до тех пор, пока в столбце вектораP0не будет больше отрицательных чисел. При этом находят оптимальный план исходной задачи, а следовательно, и двойственной. Если на некотором шаге окажется, что вi–йстроке симплекс–таблицы (табл. 1) в столбце вектораP0стоит отрицательное числоbi, а среди остальных элементов этой строки нет отрицательных, то исходная задача не имеет решения.

Таким образом, отыскание решения задачи (1) – (3) двойственным симплекс-методом включает следующие этапы:

1. Находят псевдоплан задачи.

2. Проверяют этот псевдоплан на оптимальность. Если псевдоплан оптимален, то найдено решение задачи. В противном случае либо устанавливают неразрешимость задачи, либо переходят к новому псевдоплану.

3. Выбирают разрешающую строку с помощью определения наибольшего по абсолютной величине отрицательного числа столбца вектора P0и разрешающий столбец с помощью нахождения наименьшего по абсолютной величине отношения элементов(m+1)–йстроки к соответствующим отрицательным элементам разрешающей строки.

4. Находят новый псевдоплан и повторяют все действия, начиная с этапа 2.

Таблица 1

Пример 1.

Найти максимальное значение функции F=x1+x2+2x3при условиях

Решение.

Запишем исходную задачу линейного программирования в форме основной задачи: найти максимум функцииF=x1+x2+2x3при условиях

Умножим второе и третье уравнения системы ограничений последней задачи на –1 и перейдем к следующей задаче: найти максимум функции

F=x1+x2+2x3 (4)

при условиях

(5)

x1, x2,…, x5 ≥ 0 (6)

Составим для последней задачи двойственную задачу. Такой является задача, в результате решения которой требуется найти минимальное значение функции

F*=8y1 - 4y2 - 6y3, (7)

при условиях

(8)

y2, y3 ≥ 0 (9)

Выбрав в качестве базиса векторы P3, P4иx1, составим симплексную таблицу (табл. 2) для исходной задачи (4) – (6).

Таблица 2

I

Базис

Сб

Р0

1

1

2

0

0

P1

P2

P3

P4

P5

1

P3

2

8

1

1

1

0

0

2

P4

0

–4

–1

1

0

1

0

3

P5

0

–6

–1

–2

0

0

1

16

1

1

0

0

0

Из этой таблицы видим, что планом двойственной задачи (4) – (6) является Y=(2;0;0).. При этом планеF*=16. Так как в столбце вектораP0таблица 2 имеются два отрицательных числа (–4 и –6), а в 4–й строке отрицательных чисел нет, то в соответствии с алгоритмом двойственного симплекс–метода переходим к новой симплекс–таблице. В данном случае это можно сделать, так как в строках векторовP4 и P5имеются отрицательные числа. Если бы они отсутствовали, то задача была бы неразрешима. Вектор, исключаемый из базиса, определяется наибольшим по абсолютной величине отрицательным числом, стоящим в столбце вектораP0.В данном случае это число –6. Следовательно, из базиса исключаем векторP5.Чтобы определить, какой вектор необходимо ввести в базис, находимmin (-Δj / a3j), где a3j < 0.Имеем

Значит, в базис вводим векторP2.Переходим к новой симплекс–таблице (табл. 3).

Таблица 3

I

Базис

Сб

Р0

1

1

2

0

0

P1

P2

P3

P4

P5

1

P3

2

5

1/2

0

1

0

1/2

2

P4

0

–7

–3/2

0

0

1

1/2

3

P2

1

3

1/2

1

0

0

-1/2

13

1/2

0

0

0

1/2

Из этой таблицы видно, что получен новый план двойственной задачи Y=(2;0;1/2). При этом плане значение ее линейной формы равноF*=13.Таким образом, с помощью алгоритма двойственного симплекс–метода произведен упорядоченный переход от одного плана двойственной задачи к другому.

Так как в столбце вектора P0таблицы 3 стоит отрицательное число –7, то рассмотрим элементы 2–й строки. Среди этих чисел есть одно отрицательное –3/2. Если бы такое число отсутствовало, то исходная задача была бы неразрешима. В данном случае переходим к новой симплекс-таблице (табл. 4).

Таблица 4

I

Базис

Сб

Р0

1

1

2

0

0

P1

P2

P3

P4

P5

1

P3

2

8/3

0

0

1

1/3

2/3

2

P1

1

1/3

1

0

0

-2/3

-1/3

3

P2

1

2/3

0

1

0

1/3

-1/3

32/3

0

0

0

1/3

2/3

Как видно из таблицы 4, найдены оптимальные планы исходной и двойственной задач. Ими являются X*=(14/3; 2/3; 8/3; 0) и Y*=(2; 1/3; 2/3). При этих планах значения линейных форм исходной и двойственной задач равны между собой:Fmax=F*min=32/3

Пример 2.

Найти максимальное значение функции F=2x1+3x2+5x4при условиях

Решение.

Умножая первое и третье уравнения системы ограничений задачи на –1, в результате приходим к задаче нахождения максимального значения функции F=2x1+3x2+5x4при условиях

Взяв в качестве базиса векторы P3, P4иP5, составляем симплекс-таблицу (табл. 5).

Таблица 5

I

Базис

Сб

Р0

2

3

0

5

0

P1

P2

P3

P4

P5

1

P3

0

-12

2

-1

1

0

0

2

P4

5

10

1

2

0

1

0

3

P5

0

-18

-1

2

0

0

1

50

3

7

0

0

0

В 4-й строке таблице 5 нет отрицательных чисел. Следовательно, если бы в столбце вектора P0не было отрицательных чисел, то в таблице 19 был бы записан оптимальный план. Поскольку в указанном столбце отрицательные числа имеются и такие же числа содержатся в соответствующих строках, переходим к новой симплекс–таблице (таблица 6). Для этого исключим из базиса векторP5и введем в базис векторP1.В результате получим псевдопланX=(6;0;-24;4)

Таблица 6

I

Базис

Сб

Р0

2

3

0

5

0

P1

P2

P3

P4

P5

1

P3

0

-24

0

1/3

1

0

2/3

2

P4

5

4

0

8/3

0

1

1/3

3

P1

2

6

1

-2/3

0

0

-1/3

32

0

9

0

0

1

Так как в строке вектора P3нет отрицательных чисел, то исходная задача не имеет решения.