
- •Ижевск, 2013 Оглавление
- •1. Основные понятия и определения
- •2. Принятие решений в условиях стохастического риска
- •3. Принятие решений в условиях определенности. Линейное программирование
- •3.1 Постановка задач линейного программирования и исследование их структуры
- •3.2. Преобразование задач из одной формы в другую
- •3.3. Графическая интерпретация задач линейного программирования
- •3.4. Симплексный метод решения задачи линейного программирования
- •3.5. Искусственный базис
- •3.6. Двойственная задача линейного программирования
- •3.7. Двойственный симплекс-метод
- •3.8. Транспортная задача линейного программирования (лп)
- •3.9. Методы оценки и сравнения многокритериальных альтернатив
- •4. Выработка решений в условиях неопределенности
- •Постановка задачи выбора в условиях неопределенности
- •Список литературы
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нет отрицательных чисел, то исходная задача не имеет решения.