Жолобов Ввведение в Математическое 2008
.pdf1.3.1. Модели двойственных задач в линейном программировании
Без потери общности возьмем в качестве исходной задачи задачу линейного программирования в канонической форме (эту задачу далее будем называть также прямой):
c1x1 + c2x2 +...+ cjxj +...+ cnxn max a11x1+ a12x2 +...+ a1jxj +...+a1nxn=a1 a21x1+ a22x2 +...+ a2jxj +...+a2nxn=a2
....................................................
ai1x1+ ai2x2 +...+ aijxj +...+ ainxn=ai
....................................................
am1x1 + am2x2 +...+amjxj +...+amnxn=am x j 0, ( j 1, n)
или в матрично-векторной форме:
c, x max |
|
|
AX A0 |
|
|
|
x 0. |
|
Задачей, двойственной к (1.60), назовем задачу:
a1y1 + a2y2 +...+ aiyi +...+ amym min a11y1+ a21y2 +...+ ai1yi +...+am1ym c1
a12y1+ a22y2 +...+ ai2yi +...+am2ym c2
....................................................
a1jy1+ a2jy2 +...+ aijyi +...+ amjym cj
....................................................
a1ny1+ a2ny2+...+ ainyi +...+amnym cn
yi – не ограничены в знаке (i=1, 2, … , m) или в матрично-векторной форме:
|
T |
, y min |
A0 |
||
|
AT Y C, |
(1.60)
(1.61)
(1.62)
(1.63)
где
y=(y1, y2, …, ym) – вектор-строка переменных двойственной задачи; Y=(y1, y2, …, ym)T – вектор-столбец переменных двойственной задачи;
81
AT – транспонированная матрица коэффициентов левой части системы ограничений прямой задачи (1.60);
C=(c1, c2, …, cm)T – вектор-столбец, составленный из коэффициентов целевой функции прямой задачи (1.60).
Пример 1.18
Дана задача ЛП в канонической форме:
3x1 |
|
x2 |
|
2x3 |
|
x4 |
|
max |
|
2x1 |
x2 |
4x3 |
x4 |
|
10 |
||||
3x1 |
2x2 |
x3 |
|
2x4 |
|
8 |
|||
4x1 |
|
x2 |
|
2x3 |
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|
|
x j 0, |
j 1, 4. |
|
|
|
|
|
|
Двойственная к этой задаче задача имеет вид:
10 y1 |
8y2 |
4 y3 |
min |
2 y1 |
3y2 4 y3 3 |
||
y1 2 y2 y3 |
1 |
||
4 y1 |
y2 |
2 y3 |
2 |
y1 |
2 y2 |
|
1 |
y1,y2 – не ограничены в знаке.
Задачи (1.60) и (1.62) – взаимно-двойственные в том смысле, что, приняв в качестве прямой задачу (1.62), можно перейти к двойственной задаче, которая с точностью до обозначения переменных будет иметь вид задачи (1.60). Проиллюстрируем этот переход, используя эквивалентные преобразования, описанные в разделе 1.2.
Шаг 1. Изменение направления оптимизации и неравенств в задаче (1.63). Эквивалентная задача:
A0T , y max |
|
|
AT Y C. |
|
Шаг 2. Введение требования неотрицательности переменных путем их замены:
|
T |
|
|
max |
|
|
A0 ,(y |
|
y ) |
||
T |
|
|
C |
||
|
|||||
A (Y |
|
Y ) |
|||
|
y 0, y 0, |
|
|||
|
|
||||
|
|
|
82 |
|
где y y1 ,y2 ,...,ym , y = y1 ,y2 ,...,ym .
Шаг 3. Приведение задачи к канонической форме путем введения дополнительных переменных:
|
|
T |
|
|
|
|
|
|
A0 |
,(y |
y ) max |
||||
T |
(Y |
|
|
|
|
||
|
A |
|
Y ) EZ C |
||||
|
|
|
|
|
|
|
|
y 0, y 0, z 0, |
|||||||
где Z z1 ,z2 ,...,zn Т , |
zj 0, j 1,2,...,n . |
||||||
Шаг 4. Построение двойственной задачи: |
|||||||
|
c, x min |
||||||
|
|
|
AX A0 |
||||
|
|
|
|||||
|
|
|
|
|
AX A0 |
||
|
|
|
|
|
|||
|
|
|
|
|
E |
T |
X 0. |
|
|
|
|
|
|
Шаг 5. Изменение направления экстремизации и замена нестрогих неравенств равенствами:
c, x max |
|
|
AX A0 |
|
|
|
x 0. |
|
Таким образом, получена задача, имеющая вид задачи (1.61). Задачи (1.60) и (1.62) называются несимметричной парой
двойственных задач.
Пусть теперь прямая задача имеет симметричную форму:
c, x max |
|
|
|
AX A0 |
(1.64) |
|
||
|
x 0. |
|
|
|
Построим двойственную задачу:
Шаг 1. Приведение задачи к канонической форме:
c, x max |
|
|
|
AX EZ A0 |
|
|
x 0, z 0. |
|
83
Шаг 2. Построение двойственной задачи:
|
T |
, y >→min |
< A0 |
||
|
AT Y ≥C |
|
|
|
EY ≥0. |
|
|
Ввиду того, что последняя группа нестрогих неравенств эквивалентна требованию неотрицательности переменных, результатом приведенных преобразований является следующая задача:
|
T |
, y >→min |
|
< A0 |
(1.65) |
||
|
AT Y ≥C |
||
|
|
y ≥0. |
|
|
|
|
Следует обратить внимание на то, что в двойственной задаче сохранилось требование неотрицательности переменных.
Задачи (1.64) и (1.65) называются симметричной парой двойственных задач.
Можно показать, что задачи (1.64) и (1.65) являются взаимнодвойственными, т.е., если принять в качестве прямой задачу (1.65) , придать ей каноническую форму и построить двойственную к ней задачу, будет получена задача, которая с точностью до обозначения переменных будет совпадать с задачей (1.64).
Рассмотрим основные, наиболее часто используемые в теории линейного программирования, модели взаимно-двойственных задач.
Прямая задача |
|
Двойственная задача |
< c, x >→ max |
|
< AT , y >→ min |
AX = A0 |
|
|
|
0 |
|
|
|
|
x ≥ 0 |
|
AT Y ≥C |
|
|
|
|
|
|
<c, x >→min |
|
< AT , y >→max |
AX = A0 |
|
|
|
0 |
|
|
|
|
x ≥0 |
|
AT Y ≤C |
|
|
|
|
|
|
< c, x >→ max |
|
< A0T , y >→ min |
AX ≤ A0 |
|
AT Y ≥ C |
x ≥ 0 |
|
y ≥ 0 |
|
|
|
|
84 |
В самом общем случае, когда прямая задача имеет смешанную систему ограничений, содержащую уравнения, нестрогие неравенства различной направленности и к переменным предъявлены различные требования (неограниченность в знаке, неотрицательность, неположительность), двойственная задача может быть построена непосредственно по прямой задаче. При этом можно не проводить трудоемких преобразований, связанных с приданием исходной задаче канонической формы, а использовать следующие правила, сведенные в таблицы.
Прямая задача на максимум целевой функции
Прямая задача |
Двойственная задача |
|
Целевая функция: |
Правая часть системы |
|
<c,x>→max |
ограничений: С |
|
Правая часть системы |
Целевая функция: |
|
ограничений: A |
< AТ , y >→ min |
|
0 |
0 |
|
i -e ограничение: "=" |
i-я переменная: yi не ограничена |
|
в знаке |
||
|
||
i-e ограничение: " ≤ " |
i -я переменная: yi ≥ 0 |
|
i -e ограничение: " ≥ " |
i -я переменная: yi ≤ 0 |
|
j-я переменная: xj не ограничена |
j -e ограничение: " = " |
|
в знаке |
||
|
||
j -я переменная: xj ≥ 0 |
j -e ограничение: " ≥ " |
|
j -я переменная: xj ≤ 0 |
j -e ограничение: " ≤ " |
85
Прямая задача на минимум целевой функции
Прямая задача |
Двойственная задача |
||
Целевая функция: |
Правая часть системы |
||
<c,x>→min |
ограничений: C |
||
Правая часть системы |
Целевая функция: |
||
ограничений: A0 |
< A0Т , y >→ max |
||
i -e ограничение: " = " |
i -я переменная: yi |
||
не ограничена в знаке |
|||
|
|||
i -e ограничение: " ≤ " |
i-я переменная: yi ≤ 0 |
||
i -e ограничение: " ≥ " |
i -я переменная: yi ≥ 0 |
||
j -я переменная: xj |
j -e ограничение: " = " |
||
не ограничена в знаке |
|||
|
|
||
j -я переменная: xj ≥ 0 |
j -e ограничение: |
" ≤ " |
|
j -я переменная: xj ≤ 0 |
j -e ограничение: |
" ≥ " |
1.3.2. Связь двойственных задач
Ниже приводятся некоторые теоретические выкладки, устанавливающие связь решений прямой и двойственной задачи линейного программирования.
В основном рассматривается несимметричная пара взаимнодвойственных задач (1.60) и (1.62).
ЛЕММА 1.3. (о допустимых решениях прямой и двойственной задачи).
Пусть дана прямая задача:
< c, x >→ max |
|
|
AX = A0 |
|
|
|
x ≥ 0 |
|
|
и двойственная к ней: |
|
|
T |
< A0 , y >→min |
|
|
AT Y ≥C. |
Пусть далее x =(x1 ,x2 ,...,xn ) и y =(y1 , y2 ,..., ym ) – любые допустимые решения прямой и двойственной задачи соответст-
венно.
Тогда имеет место следующее соотношение:
86
c, x A0T , y |
(1.66) |
(т.е. значение целевой функции прямой задачи на любом ее допустимом решении не может превысить значение целевой функции двойственной задачи на любом допустимом решении последней).
Доказательство. Умножим левую и правую части первого огра- ничения-уравнения прямой задачи на y1 , второго ограничения – на
y2 , и т.д., после чего сложим все полученные уравнения. Результат
этого сложения в форме скалярного произведения векторов будет иметь вид:
|
|
|
)T , y AT |
, y , |
|||
( AX |
|||||||
0 |
|
|
|
||||
или |
|
|
|
||||
|
|
)T , x AT , y . |
|||||
( AT Y |
|||||||
0 |
|
|
C, от- |
||||
Ввиду допустимости решения y , справедливо AТY |
|||||||
куда: |
0 |
|
|
||||
|
|
|
|||||
c,x AТ , y , |
|||||||
0 |
|
|
|
||||
что и требовалось доказать. |
|
|
|
ЛЕММА 1.4 (об оптимальных решениях прямой и двойственной задачи).
Если на некоторых допустимых решениях x x1 ,x2 ,...,xn прямой и y y1 , y2 ,..., ym двойственной задачи нестрогое неравенство (5) обращается в строгое равенство, то x x1 ,x2 ,...,xn
иy y1 , y2 ,..., ym – оптимальные решения прямой и двойствен-
ной задачи соответственно. |
|
x – не оптималь- |
||
Доказательство. Пусть c, x = AТ , y , но |
||||
|
|
|
0 |
|
ное |
решение. |
Следовательно, |
существует |
такое решение |
x0 x10 , x20 ,..., xn0 , |
что c,x0 > c, x или |
c,x0 > A0Т , y , |
||
а это |
противоречит утверждению |
леммы 1.3. |
Следовательно, |
x x1 ,x2 ,...,xn – оптимальное решение прямой задачи.
Пусть теперь c, x = A0Т , y , но y y1 ,y2 ,...,ym – не оптимальное решение. Следовательно, существует такое решение
87
y0 y10 , y20 ,...,ym0 |
|
что: |
A0Т , y0 A0Т , y |
или |
c, x > AТ , y0 |
, а это противоречит утверждению леммы 1.3. |
|||
0 |
|
y y1 ,y2 ,...,ym – |
|
|
Следовательно, |
|
оптимальное решение двойст- |
венной задачи. Утверждение доказано.
ТЕОРЕМА 1.6 (первая теорема двойственности для несимметричной пары двойственных задач).
1.Если одна из задач (1.60) или (1.62) имеет оптимальное решение, то и другая задача имеет оптимальное решение, причем, оптимальные значения целевых функций этих задач совпадают.
2.Если целевая функция одной из задач не ограничена сверху (соответственно, снизу), то другая задача не имеет допустимых решений.
Доказательство. Пусть задача (1.60) решена симплекс-методом и
x1* ,x2* ,...,xn* , и
B Ai1 ,Ai2 ,...,Aim – базис этого решения. Тогда оценки всех векторов, вычисленные на последней итерации, неотрицательные, т.е.:
|
m |
|
j cik xkj cj cбаз X j cj cбазB 1 Aj cj 0. |
||
|
k 1 |
|
Здесь используются следующие обозначения: |
||
cбаз (сi |
, ci |
, ... , ci ) – вектор коэффициентов целевой функ- |
1 |
2 |
m |
ции; |
|
|
X j x1j ,x2j |
,...,xmj Т – вектор-столбец коэффициентов разло- |
|
жения вектора Aj |
по базису . |
Рассмотрим выражение:
cбаз B 1 Aj c j , ( j |
1, n |
). |
(1.67) |
Примем обозначение: |
|
||
( y1 , y2 ,..., ym ) cбаз B 1. |
(1.68) |
||
Отсюда , учитывая (1.67), имеем систему неравенств: |
|
88
|
|
|
|
|
a |
|
|
|
|
|
||
|
|
|
|
|
|
|
1 j |
|
|
|
|
|
|
|
|
|
|
a2 j |
|
|
|
|
|||
( y , y |
|
,..., y |
|
) |
cj |
, ( j 1,n) . |
||||||
2 |
m |
|
|
|
|
|||||||
1 |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
a |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mj |
|
|
|
|
В матричной форме эта система имеет вид: AТY C, т.е., вектор y , построенный в соответствии с выражением (1.68), удов-
летворяет всем ограничениям двойственной задачи (1.62). Найдем значение целевой функции двойственной задачи на
допустимом решении y y1 ,y2 ,...,ym :
y, A0T cбаз B 1 , A0T cбаз ,(B 1 A0 )T .
Учитывая, что (B 1 A0 )T x10 ,x20 ,...,xm0 X0T – вектор оптимальных значений базисных переменных задачи (1), имеет местоcбаз , X0Т c,x* . Следовательно:
y, A0T = cбаз ,X0Т c,x* ,
т.е., значение целевой функции прямой задачи на решении x0 совпадает со значением целевой функции двойственной задачи на ее допустимом решении y . Следовательно, решение y , в соответст-
вии с утверждением леммы 1.4, является оптимальным. Первая часть теоремы доказана.
Пусть теперь целевая функция прямой задачи (1.60) не ограничена сверху на допустимом множестве. Предположим, от противного, что двойственная задача имеет допустимые решения и y –
одно из таких решений. Пусть целевая функция двойственной задачи на решении y принимает некоторое значение Q A0Т , y .
Ввиду того, что целевая функция прямой задачи (1.60) не ограничена сверху на допустимом множестве, всегда найдется такое допустимое решение x (x1 ,x2 ,...,xn ) , на котором имеет место
c,x > Q , что противоречит утверждению леммы 1.3 о допусти-
мых решениях прямой и двойственной задачи. Вторая часть теоремы доказана.
89
Ввиду того, что задачи (1.60) и (1.62) взаимно-двойственны, в качестве прямой задачи можно взять задачу (1.62) и повторить приведенное выше доказательство. Теорема доказана3.
ТЕОРЕМА 1.7 (вторая теорема двойственности для несимметричной пары двойственных задач).
Пусть дана задача линейного программирования:
c1x1 |
c2 x2 |
... cn xn max |
||||
ai1x1 |
ai2 x2 |
... ain xn ai , (i |
|
) |
||
1, m |
||||||
|
xj |
0,(j |
|
) |
||
|
1,n |
и известно ее допустимое решение x (x1 , x2 ,..., xn ) .
Пусть далее известно допустимое решение y ( y1 , y2 ,..., ym )
двойственной задачи: |
|
|
|
|
a1 y1 |
a2 y2 |
... am ym min |
||
a1 j y1 a2 j y2 |
... amj ym cj , (j |
|
). |
|
1,n |
||||
Тогда решения |
x (x1 , x2 ,..., xn ) и y ( y1 , y2 ,..., ym ) будут оп- |
тимльными решениями соответственно прямой и двойственной задачи в том и только том случае, если имеет место
x j (a1 j y1 a2 j y2 ... amj ym c j ) 0, (j 1, n ). (1.69)
Достаточность. Очевидно, что при выполнении (1.69) будут выполняться и все равенства, полученные из этих условий:
x j (a1 j y1 a2 j y2 ... amj ym ) c j x j , (j 1, n ).
Просуммируем эти равенства по всем j=1,2,...,n и перегруппируем слагаемые в левой части полученного выражения:
m
i 1
n
(ai1 x1 ai 2 x2 ... ain xn )yi c j x j . j 1
Но x – допустимое решение, значит:
ai1 x1 ai 2 x2 ... ain xn ai (i 1,m ) .
3 Эта теорема справедлива и для симметричной пары двойственных задач (1.61) и (1.62) .
90