ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Г.Д. Чернышова, И.Н. Булгакова
ЭЛЕМЕНТЫ ТЕОРИИ ДВОЙСТВЕННОСТИ Учебно-методическое пособие для вузов
Издательско-полиграфический центр Воронежского государственного университета 2008
Утверждено научно-методическим советом факультета ПММ ВГУ от 09 сентября 2008 г., протокол № 11
Рецензент: канд. физ.-мат. наук, доцент каф. нелинейных колебаний ВГУ Т.И. Смагина Учебное пособие подготовлено на кафедре математических методов исследовании операций факультета ПММ Воронежского государственного университета.
Рекомендуется для студентов и магистров факультета ПММ ВГУ, изучающих курс «Методы оптимизации», «Линейное программирование», «Исследование операций», «Двойственность в оптимизации».
Для специальностей: 010501 – Прикладная математика и информатика Для направления: 010500 – Прикладная математика и информатика 080700 – Бизнес-информация
1. ДВОЙСТВЕННОСТЬ В ЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 1.1 Правила построения двойственных задач 1. Рассмотрим задачу линейного программирования следующего вида: c T x ® max Ax £ b x³0
(1) (2) (3)
где c T = (c1 ,...., cn ), x T = ( x1 ,...., xn ), b T = (b1 ,...., bn ), A = (aij ), i = 1, n, j = 1, m. Функция Лагранжа для задачи (1) - (3) записывается в виде: L( x, y ) = c T x + y T (b - Ax ) = c T x + å yi (bi - ( Ax )i ),
x ³ 0, y ³ 0 .
Задачу (1) – (3) можно эквивалентно переписать следующим образом: max min L( x, y ), x³0
y ³0
так как для любого фиксированного x€ ³ 0 имеет место равенство é ù æ ) ö÷ ú ) ê T) ç min ê c x +å yi ç bi - Ax ÷ ú = cT x , при bi ³ ( Ax€)i . i ê è ø úû ë
( )
Двойственная задача по определению записывается в виде: min max L( x, y ), y ³0
x ³0
где L(x, y ) = b T y + x T (c - AT y ), x ³ 0, y ³ 0 . Зафиксируем произвольное y ³ 0 . Тогда имеют место равенства
(
)
é ù max L x, y = maxêê bT y + xT c - AT y úú x³ 0 x³ 0 ê úû ë
( )
( ) ( )
ì ï +¥, если $j : c - AT y > 0 j ï j ï . =í ï T T T ï b y, если"j : c j - A y £ 0 или A y ³ c ï j î
Таким образом, двойственную задачу можно записать следующим образом: 3
b T y ® min
(4)
AT y ³ c
(5)
y³0
(6)
2. Аналогичные рассуждения проведём для задачи, записанной в канонической форме: с T x ® max Ax = b x ³0.
Перепишем задачу в виде (1) – (3) с T x ® max Ax £ b - Ax £ -b x ³0.
Функция Лагранжа в этом случае будет выглядеть следующим образом: L( x, u , v ) = c T x + u T (b - Ax ) + v T (- b + Ax ) = c T x + (u - v ) (b - Ax ) T
x ³ 0, u ³ 0, v ³ 0.
Обозначим переменную u - v через переменную y . Тогда функцию Лагранжа можно записать: L(x, y ) = c T x + y T (b - Ax ) , x ³ 0 , y любого знака. По определению двойственная задача к канонической записывается в виде: min max[b T y + x T (c - AT y )] = min b T y . y -"
x ³0
AT y ³ 0
Таким образом, двойственную задачу к канонической можно записать следующим образом: b T y ® min AT y ³ x y - " знака
4
3.
Рассмотрим далее задачу линейного программирования (1) – (2) c T x ® max Ax £ b .
(1) (2)
Введём замену переменных x = x¢ - x¢¢, x¢ ³ 0, x¢¢ ³ 0 . Задача эквивалентно перепишется следующим образом: c T ( x ¢ - x¢¢) ® max A( x ¢ - x ¢¢) £ b x ¢ ³ 0, x ¢¢ ³ 0 .
Функция Лагранжа для задачи имеет вид: L( x ¢, x¢¢, y ) = c T ( x¢ - x ¢¢) + y T (b - A( x ¢ - x¢¢)), x¢ ³ 0, x¢¢ ³ 0, y ³ 0 .
Исходную задачу перепишем в виде: max min L( x¢, x ¢¢, y ) . x ¢ , x¢¢³ 0
y ³0
По определению двойственная задача запишется в виде: min max L( x¢, x ¢¢, y ) y ³ 0 x¢ , x ¢¢³ 0
L( x ¢, x¢¢, y ) = b T y + ( x ¢ - x¢¢) (c - AT y ) . T
Зафиксируем произвольное y ³ 0 . Тогда справедливы равенства: ìï+ ¥, если $j : c j - ( AT y ) j ¹ 0 max L( x, y ) = max[b y + x (c - A y )] = í T T T x -" x -" ïîb y, если"j : c j - (A y ) j = 0 или A y = c T
T
T
min max[b T y + x T (c - AT y )] = min b T y, если AT y = c. y ³0
x -"
y ³0
Двойственную задачу можно записать следующим образом: b T y ® min AT y = c y ³ 0.
5
Таким образом под двойственной задачей (ДЗ) к исходной понимается задача линейного программирования, которая строится по следующим правилам, приведенным в таблице. Исходная задача
Двойственная задача
n
m
å c j x j ® max
åb y i =1
j =1
n
åa
ij
x j £ bi
ij
x j ³ bi
ij
x j = bi
j =1 n
åa j =1 n
åa j =1
i
i
® min
yi ³ 0 yi £ 0 y i – любого знака
xj ³ 0
m
åa i =1
xj £ 0
ij
yi ³ c j
ij
yi £ c j
ij
yi = c j
m
åa i =1
x j – любого знака
m
åa i =1
Замечание. Когда целевая функция в исходной задаче минимизируется, таблица прочитывается справа налево. Данная таблица позволяет формулировать несколько общих правил построения двойственных задач: ● каждому i-му ограничению исходной задачи соответствует переменная yi в ДЗ, и, наоборот, каждому k-му ограничению ДЗ соответствует переменная xk исходной задачи; ● матрицы ограничений в исходной и двойственной задачах взаимно транспонированы; ● правые части ограничений исходной задачи становятся коэффициентами целевой функции в ДЗ, а коэффициенты целевой функции исходной задачи – правыми частями ограничений в ДЗ; ● если целевая функция в исходной задаче максимизировалась (минимизировалась), то в ДЗ целевая функция минимизируется (максимизируется). 6
1.2 Свойства пары двойственных задач Обозначим через W и Q соответственно допустимые множества исходной задачи (1) – (3) и двойственной задачи (4) – (6). W = {x : Ax £ b, x ³ 0}
Q = {y : AT y ³ c, y ³ 0}.
1. Задача двойственная к двойственной является исходной. Запишем задачу (4)-(6) в виде - b T y ® max - AT y £ -c y ³ 0,
двойственная к которой по определению имеет вид c T x ® max
- с T x ® min
или
- A T x ³ -b x³0
AT x £ b x ³0.
2. Для любых x Î W и y Î Q имеет место неравенство c T x £ b T y . Действительно, всегда справедливы соотношения: c T x = x T c £ x T AT y = y T Ax £ y T b = b T y "yÎQ
xÎW
3. Если в одной из задач (исходной или двойственной) отсутствует решение из-за неограниченности целевой функции на допустимом множестве, то в двойственной к ней допустимое множество пусто. Например, если sup c T x = +¥ , то Q = Æ . W
Доказательство. ) Предположим противное. Пусть Q ¹ Æ , тогда $y Î Q .
)
Используя свойство 2, запишем неравенство cT x £ bT y , "x Î W , что противоречит неограниченности целевой функции c T x на множестве W . )
)
)
)
)
4. Если $x Î W и $y Î Q такие, что cT x = bT y , то x – решение исходной )
задачи, y – решение двойственной задачи. 7
)
)
Из свойства 2 следует, что "x Î W можно записать cT x £ bT y = cT x . сле)
довательно, x – решение исходной задачи. 5. Возможна ситуация: W = Æ и Q = Æ . Рассмотрим пример. Исходная задача задана в виде 3 x1 + 2 x 2 ® max ì x1 + x 2 = 4 í î x1 + x 2 = 2
.
Допустимое множество W = Æ . Двойственная к исходной запишется следующим образом 4 y1 + 2 y 2 ® min ì y1 + y 2 = 3 í î y1 + y 2 = 2
.
Допустимое множество Q = Æ . 6. Пусть W ¹ Æ и Q = Æ , тогда исходная задача не имеет решения изза неограниченности целевой функции на допустимом множестве. 7. Если W ¹ Æ и Q ¹ Æ , то обе задачи имеют решение. 8. Первая теорема двойственности. Если одна из задач (исходная или двойственная) имеет решение, то и вторая имеет решение, причём оптимальные значения целевых функций совпадают. Доказательство. Пусть задана задача в каноническом виде с T x ® max Ax = b x ³0.
И пусть она имеет решение x 0 , полученное, например, симплексметодом. Двойственная задача записывается в виде b T y ® min AT y ³ c.
8
éx ù
Точка x 0 является базисной, x 0 = ê b ú , где xb = B -1b . Пусть B – оптиë0 û мальный базис, тогда оптимальность означает выполнение условий D j = cbT B -1 A j - c j ³ 0 , "j = 1, n .
Значит AT y 0 ³ c , то есть точка y 0 – допустимая в двойственной задаче. Покажем теперь, что y 0 – оптимальная точка в двойственной задаче. Действительно, имеет место равенство c T x 0 = cbT xb = cbT B -1b = ( y 0 ) b = b T y 0 . T
По свойству 4 точка y 0 является оптимальной. Теорема доказана. Замечание. Докажем теорему для задачи (1) – (3). Приведём задачу к каноническому виду c T x ® max Ax + u = b
(1) (2`) (3`)
u, x ³ 0
Двойственная к полученной задаче (1) – (2`) – (3`) записывается в виде: b T y ® min
(4)
AT y ³ c
(5)
y³0
(6)
Задача (4) – (6) является двойственной для задачи (1) – (3). Поэтому, если задача (1) – (3) имеет решение, то имеет решение (1) – (2`) – (3`), а значит, и задача (4) – (6) и наоборот. Следствие. Совместность системы (*) является необходимым и достаточным условием для решения исходной и двойственной задачи (если исходная записана в каноническом виде): ì Ax = b ïx ³ 0 ï . í T ïA y ³ c ïc T x = b T y î
9
(*)
Для задачи (1) – (3) аналогичная система имеет вид: ì Ax £ b ïx ³ 0 ï ï T íA y ³ c . ïy ³ 0 ï ïîc T x = b T y
Вторая теорема двойственности. Пусть решается задача (1) – (3). Для того, чтобы x 0 Î W, y 0 Î Q были решениями исходной и двойственной задач, необходимо и достаточно выполнение условий дополняющей нежёсткости: x 0 T (c - AT y 0 ) = 0
xi0 (ci - ( AT y 0 )i ) = 0 , "i = 1, n
y 0 T (b - AT x 0 ) = 0
y 0j (b j - ( AT x 0 ) j ) = 0 , "j = 1, m
Доказательство 1. Необходимость Пусть x 0 Î W – решение исходной задачи, y 0 Î Q – решение двойственной задачи. Тогда по первой теореме двойственности c T x 0 = b T y 0 = y 0 T b ³ y 0 T Ax 0 , x 0 T (c - AT y 0 ) ³ 0.
С другой стороны, x 0 ³ 0, c - AT y 0 £ 0 . Значит, x 0 T (c - AT y 0 ) £ 0 . Полу-
чаем, что x 0 T (c - AT y 0 ) = 0 .
Аналогичные рассуждения проводятся для второго равенства. 2. Достаточность Пусть в некоторых точках x 0 Î W, y 0 Î Q выполняются условия дополняющей нежёсткости, покажем, что они являются оптимальными точками. Заметим, что x 0 T (c - AT y 0 ) = y 0 T (b - Ax 0 ) . Тогда c T x 0 - (AT y 0 ) x 0 = b T y 0 - (AT y 0 ) x 0 . Откуда следует равенство T
T
cT x 0 = bT y 0 .
Из свойства 3 следует, что x 0 – решение исходной задачи, а y 0 – решение двойственной задачи. Теорема доказана. 10
2. ЭКОНОМИЧЕСКИЙ СМЫСЛ ДВОЙСТВЕННЫХ ПЕРЕМЕННЫХ Пусть исходная задача планирования производства фирмы имеет вид: C T x ® max Ax £ b x ³ 0. В приведенной модели b = (b1 ,..., bm ) , где bi (i = 1,..., m) обозначает запас
ресурса вида i, элементы матрицы A = { aij
} обозначают число единиц ре-
сурса вида i, потребляемого при производстве единицы продукции вида j, C = (c1 ,..., c n ) , где c j ( j = 1,..., n) является прибылью от реализации единицы продукции вида j. Предположим, что некоторая организация решила закупить ресурсы S1 ,..., S m предприятия и необходимо установить оптимальные цены на эти ресурсы y1 ,..., y m . Очевидно, что покупающая организация заинтересована в том, чтобы затраты на ресурсы были минимальны, то есть b1 y1 + b2 y 2 + ... + bm y m ® min
С другой стороны, предприятие, продающее ресурсы, заинтересовано в том, чтобы полученная выручка была не менее той суммы, которую предприятие может получить при переработке ресурсов в готовую продукцию. Значит, для удовлетворения требований продавца затраты на ресурсы, потребляемые при изготовлении единицы продукции, должны быть не меньше ее цены, то есть ìa11 y1 + a 21 y 2 + ... + a m1 y m ³ c1 ïa y + a y + ... + a y ³ c ï 12 1 22 2 2 m2 m í ï.................................................... ïîa1n y1 + a 2 n y 2 + ... + a mn y m ³ c n
Таким образом, при установлении оценок на сырье появляется двойственная задача: bT y ® min AT y ³ C y ³ 0.
Ее содержательной интерпретацией является следующая постановка: найти такой набор цен (оценок) ресурсов Y = ( y1 ,..., y m ) , при котором общие затраты на ресурсы будут минимальными при условии, что затраты на ре11
сурсы при производстве каждого вида продукции будут не менее прибыли от реализации этой продукции. Экономический смысл двойственной переменной состоит в том, что цены ресурсов y1 ,..., y m являются внутренними, так как они определяются непосредственно в результате решения задачи, поэтому их часто называют оценками ресурсов. Вторая теорема двойственности позволяет обнаружить свойства двойственных оценок, связанные с дефицитом сырья. В соответствии со второй теоремой двойственности план X * = ( x1* ,..., x n* ) исходной задачи и план Y * = ( y1* ,..., y m* ) двойственной задачи являются оптимальными планами этих задач тогда и только тогда, когда выполняются равенства: é( Ax * - b )T y * = 0 ê T êë( AT y * - C ) x * = 0.
Если (Ax * )i < bi , то по второй теореме двойственности yi* = 0 , то есть сырье лишнее и оценка сырья равна 0. Таким образом, положительную двойственную оценку имеют лишь те виды сырья, которые полностью используются при оптимальном плане производства изделий. Поэтому двойственные оценки определяют дефицитность сырья. Более того, величина данной двойственной оценки показывает, на сколько возрастает максимальное значение целевой функции исходной задачи при увеличении количества сырья соответствующего вида на одну единицу. Данный вывод можно сделать из следующей теоремы. Теорема. Компоненты оптимального решения двойственной задачи равны значениям частных производных линейной функции f (b1 ,..., bm ) по соответствующим аргументам, т. е. ¶f = y *j . ¶S j
Доказательство:
¶f f (b + eS ) - f (b ) = lim = S T Ñf (b ) . e ® 0 ¶S e
Из первой теоремы двойственности следует равенство f (b ) = C T x * = b T y * .
12
Тогда f (b + eS ) = (b + eS ) y * = b T y * + eS T y * . При малых e можно заT
¶f = s T y * , т. е. y * = Ñf (b ) . ¶S ¶f Следовательно, = y *j . – измеритель эффективности, показываю¶S j
писать
щий, на сколько денежных единиц изменится максимальная прибыль при изменении запаса соответствующего ресурса на одну единицу. Предположим далее, что в результате решения задачи был получен оптимальный план, но появилась возможность выпуска еще одного вида продукции xn +1 . При этом известны следующие факты: сырье нужно то же самое, все затраты сырья известны ai n +1 "i = 1, m , цена единицы продукции известна Cn+1 . Нужно установить, даст ли прибыль включение в план выпуска дополнительной продукции? Вопрос состоит в том, как среагировать на поставленное предложение, не решая задачу заново, без затрат временных и трудовых ресурсов? В действительности это можно сделать, сопоставив дополнительные затраты на ресурсы в расчете на единицу продукции xn+1 с ценой ее реализации. m
С этой целью расход на выпуск изделия
åa i =1
in +1
y i* нужно сравнить с дохо-
дом Cn+1 . То есть, если затраты больше дохода, то не выгодно. Иначе, на предложение стоит отреагировать положительно. Данные выводы справедливы только в рамках устойчивости двойственных оценок. Вопросы устойчивости. æ B -1b ö ÷÷ Пусть x = çç – оптимальный план исходной задачи, è 0 øÎ R n *
y * = C BT B -1 – вектор двойственных оценок.
Всякое изменение задачи может изменить оптимальный базис. 1) Предположим, что цены на продукцию изменились на DC . Известно, что D j = C BT B -1 A j - C j ³ 0, "j = 1, n . Тогда базис остается оптимальным, если выполняется неравенство Dнj ³ 0, "j = 1, n .
13
(
)
é ù é ù B -1 Aj - C j - DC j = ê CBT B -1 Aj - C j ú +ê DCBT B -1 Aj - DC j ú = ê ú ê úû B ë û ë = D j + d j ³ 0, "j = 1, n. D нj = C + DC
T
В этом случае базис остается прежним, (оптимальным) и оптимальный план остается прежним. Новые двойственные оценки имеют вид: * y * = (C + DC )B B -1 = C BT B -1 + (DC )B B -1 = yнов . T
T
2) Предположим, что запасы ресурсов изменились на Db , тогда для того, чтобы оценки ресурсов остались неизменными (при изменении запасов ресурсов), то есть сохранилось оптимальное решение двойственной задачи, достаточно, чтобы выполнялось неравенство:
x Bнов = B -1 (b + Db ) = B -1b + B -1Db ³ 0 .
При этом оптимальное значение целевой функции изменится на yDb T . Анализ задачи на примере: Компания по производству бижутерии изготавливает три типа изделий: А, Б, С. При изготовлении разные типы украшений должны обрабатываться четырьмя машинами. Эти машины могут обрабатывать только одно изделие в каждый момент времени. Изготовление одной единицы А требует: 1 час работы первой машины, 2 часа – 2-й, 1 час – 3-й. Для изготовления одной единицы Б нужно: 2 часа – 1-й, 1 час – 2-й, 1 час – 3-й, 1 час – 4-й. Для одной единицы С необходимо: 1 час – 1-й, 1 час – 2-й, 1 час – 4-й. Первая машина может работать 18 часов в неделю, 2-я – 16, 3-я – 8, 4-я – 6. Изделие А приносит 3 рубля прибыли на единицу, Б – 4 руб., С – 2 руб. Предполагается, что спрос на изделия превышает их предложение. Определить сколько каждого вида бижутерии нужно выпускать компании каждую неделю, чтобы прибыль ее была максимальной. Решение для решения этой задачи, обозначим через x1 объем выпуска изделия А, x2 – объем выпуска изделия Б, x3 – объем выпуска изделия С. Построим следующую математическую модель: 3x1 + 4 x2 + 2 x3 ® max ì x + 2 x + x £ 18 ï 1 2 3 ï ïï 2 x1 + x2 + x3 £ 16 í ï x1 + x2 £ 8 ï ï ïî x2 + x3 £ 6 x ³ 0.
14
Модель, двойственная к ней: 18 y1 + 16 y 2 + 8 y3 + 6 y 4 ® min ì y1 + 2 y 2 + y 3 ³ 3 ï í2 y1 + y 2 + y 3 + y 4 ³ 4 ïy + y + y ³ 2 2 4 î 1 y³0
(*)
Для нахождения решения двойственной задачи, сначала найдем решение исходной задачи методом искусственного базиса. Оно приведено в таблице. Таблица 1 B
CB
b
A1 3
A2 4
A3 2
A4 0
A5 0
A6 0
A7 0
A4 A5 A6 A7
0
18
1
2
1
1
0
0
0
0
16
2
1
1
0
1
0
0
0
8
1
1
0
0
0
1
0
0
6
0
1
1
0
0
0
1
0
6
–3 1
–4 0
–2 –1
0 1
0 0
0 0
0 –2
0
10
2
0
0
0
1
0
–1
0
2
1
0
–1
0
0
1
–1
4
6
0
1
1
0
0
0
1
0
4
–3 0
0 0
2 0
0 1
0 0
0 –1
4 –1
0
6
0
0
2
0
1
–2
1
3
2
1
0
–1
0
0
1
–1
4
6
0
1
1
0
0
0
1
0
4
0 0
0 0
–1 0
0 1
0 0
3 –1
1 –1
2
3
0
0
1
0
½
–1
½
3
5
1
0
0
0
½
0
–1/2
4
3
0
1
0
0
–1/2
1
½
0
0
0
0
1/2
2
3/2
A4 A5 A6 A2 A4 A5 A1 A2 A4 A3 A1 A2
Из таблицы видно, что базис состоит из векторов A4 , A3 , A1 , A2 . B -1
0 - 1/ 2ö æ 0 1/ 2 ç ÷ 1/ 2 ÷ * ç 0 - 1/ 2 1 =ç , x = (5 3 3) . 0 1/ 2 - 1 1/ 2 ÷ çç ÷÷ 1 0 1 1 ø è
15
Из доказательства первой теоремы двойственности видно, что оптимальное значение двойственных пар находится в оценочной строке симплексной таблицы на заключительной итерации. В нашем случае æ0 ö ç ÷ ç1 / 2 ÷ * y =ç . 2 ÷ ç ÷ ç3 / 2÷ è ø
Оптимальное значение целевой функции исходной задачи F1 max = 33, соответственно оптимальное значение целевой функции двойственной задачи F2min = 33. Пусть в процессе деятельности предприятия поступили предложения: 1) изменить цены на DC = (0, - 1,1) . Проверим, сохранится ли оптимальный базис или нет: D j +d j ³ 0, d j = DC BT B -1 A j - DC j . Dj +d j
0
0
0
0
3/2
0
3/2
Неравенство D j + d j ³ 0 выполняется, значит базис остается прежним. Двойственные оценки будут иметь следующий вид: y нов = (С + DС )B B -1
0 - 1/ 2 ö æ 0 ö æ 0 1/ 2 ç ÷ ç ÷ 1/ 2 ÷ ç 3 / 2÷ ç 0 - 1/ 2 1 = = (3 3 3 0 )ç . 0 1/ 2 - 1 1/ 2 ÷ ç 0 ÷ çç ÷÷ ç ç 3 / 2 ÷÷ 1 0 1 1 è ø è ø
Оптимальное значение целевой функции не меняется. 2) Пусть запасы ресурсов изменились на Db = (6, - 3, 2, 2) . Проверим устойчивость оценок, из вышеизложенного известно, что оценки устойчивы, если выполняется неравенство: x * + B -1 Db ³ 0 . Произведем вычисления: 0 - 1 / 2 öæ 6 ö æ - 5 / 2 ö æ 0 1/ 2 ÷ ç ÷ç ÷ ç 1 / 2 ÷ç - 3 ÷ ç 9 / 2 ÷ ç 0 - 1/ 2 1 ç 0 1 / 2 - 1 1 / 2 ÷ç 2 ÷ = ç - 5 / 2 ÷ ÷÷ ÷÷çç ÷÷ çç çç 1 0 1 1 2 2 ø è øè ø è
16
æ5 ö æ - 5 / 2ö ç ÷ ç ÷ ç3÷ ç9 / 2 ÷ ç 3 ÷ + ç - 5 / 2 ÷ ³ 0 , значит, оценки устойчивы. ç ÷ ç ÷ ç 4÷ ç 2 ÷ è ø è ø
Поскольку предложенные изменения находятся в пределах устойчивости оценок, раздельное их влияние на прибыль определяется по формуле Li = ( y опт )i bi ,
тогда
L1 max = ( y опт )1 b1 = 0 × 6 = 0 , L2 max = ( y опт )2 b2 = 1 × (- 1) = - 3 , 2 2 L3 max = ( y опт )3 b3 = 2 × 2 = 4 , L4 max = ( y опт )4 b4 = 3 × 2 = 3 . 2
Суммарное влияние на прибыль равно: Lmax = L1 max + L2 max + L3 max + L4 max = 0 - 3 + 4 + 3 = 11 условных единиц. 2 2
Если изменение сырья не находится в пределах устойчивости оценок, то необходимо найти новые условные оценки, т. е. решить задачу симплексным методом с изменением количества сырья соответствующих видов. 3) Оценим рациональность ввода дополнительного изделия в производство. Пусть имеется четвертое изделие и доход на единицу продукции от него составляет C 4 = 5 , а затраты ресурсов равны соответственно: æ3ö ç ÷ ç 2÷ ai 4 = ç ÷ , 2 çç ÷ ÷ è1 ø
тогда
затраты
на
сырье
будут
равны
aiT4 y * ,
æ0 ö ÷ ç ç1 / 2 ÷ (3 2 2 1)ç ÷ = 13 / 2 . Так как 13 2 > 5 , затраты на ресурсы 13 2 превы2 ÷÷ çç 3 / 2 è ø
( )
шают доход от реализации (5), выпуск этого изделия нам невыгоден, то есть мы отвергаем поступившее предложение.
17
3. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД Опираясь на взаимосвязь между исходной и двойственной моделями, можно построить еще один метод решения задачи линейного программирования. Рассмотрим такой алгоритм решения исходной задачи, для которого на каждой итерации, за исключением последней, решение оказывается недопустимым вследствие невыполнения условий неотрицательности переменных; соответствующее же решение двойственной задачи при каждой такой итерации является допустимым. Эта идея лежит в основе так называемого двойственного симплекс-метода. В общем случае ЗЛП имеет вид: c T x ® max Ax £ b x³0 c T = (c1 ,..., cn ) , x T = ( x1 ,..., x n ) , b T = (b1 ,..., bm ) , A = (aij ) , где i = 1, m , j = 1, n .
Для решения задачи двойственным симплексным методом необходимо задачу привести к каноническому виду. В стандартной симплекс процедуре осуществляется перебор базисов B (невырожденных подматриц исходной матрицы A ) следующим образом: æ xö
1. на каждой итерации метода вектор x B = çç ÷÷ , где x = B -1b является 0 è ø
допустимым в исходной задаче, то есть Ax B = b , x B ³ 0 . 2. на заключительной итерации, когда получена оптимальная точка, кроме того оценки всех векторов A j неотрицательны D j = C BT B -1 A j - c j ³ 0 , j = 1, n или C BT B -1 A = y T A = AT y ³ c , то есть вектор y = C BT B -1 является до-
пустимым в двойственной задаче. При этом, он является решением двойственной задачи. Заметим, что часть ограничений двойственной задачи выполняется в виде равенств ( AT y ) = c j , j Î I , где I – множество базисных индексов (так как оценки базисных векторов равны нулю D j = 0 , j Î I ). Такие точки y называются базисными в двойственной задаче. Перебор
базиса осуществляется по правилу Жордана–Гаусса ( B 1 ® ... ® B * ). Все изменения в методе связаны с правилом выбора направляющего элемента. 18
Пусть есть ситуация, в которой D j = C BT B -1 A j - c j ³ 0
и при этом существует, по крайней мере, одна координата ( B -1b) l < 0 . Тогда ради сохранения вышеприведенного условия предлагается выводить из базиса вектор Al . Пусть на некоторой итерации происходит замена вектора Al на Ak , то есть направляющим элементом является alk . Формулы пере-
счета при этом имеют вид: aijн = aij a kjн = bkн =
alj alk
aik
alj alk bl , в данном случае alk <0. alk
Таким образом, вектор Ak стал на место Al . Пусть множество базисных индексов I = {1,..., m}. Рассмотрим, как связаны новые оценки с предыдущими. é ù ê ú a alj ê ú lj н н н D j = åci aij + ck akj - c j = åci (aij - ) + ck - c j = ê åci aij - c j ú - åci aik + ck = ê iÎI ú alk i¹ l alk alk a iÎI iÎI lk ê i¹ l ú i¹ l i¹ l ë û é ù alj = êê åci aij - c j úú - (åci aik - ck ). ëê iÎI ûú alk iÎI alj
alj
Таким образом получаем Dнj = D j -
alj alk
Dk ³ 0 .
Отсюда следует правило для нахождения alk : Dj Dk = min . j:a <0 alk alj lj
Если для некоторого l такого, что bl < 0 , а все alj ³ 0 , то задача не разрешима и на этом процесс вычислений заканчивается. Если для каждого l такого, что bl < 0 , по крайней мере одна из компонент alj < 0 , то переходим к следующему этапу алгоритма. Вычислительная схема алгоритма двойственного симплекс-метода похожа на вычислительную схему симплекс-метода. Аналогичны и формы таблицы. 19
Формальное различие между вычислительными схемами этих методов проявляется только в правилах перехода от одного базиса к другому, а также в признаках оптимальности и неразрешимости задачи. В симплекс-методе сначала определяется вектор, вводимый в базис, а затем – вектор, исключаемый из базиса, а в двойственном симплекс-методе этот порядок – обратный. Обратим также внимание на одну особенность двойственного симплекс-метода, которую можно рассматривать как недостаток последнего. Если итерационный процесс приостановить, не достигнув оптимальной точки, то соответствующее данному этапу вычислений базисная точка исходной задачи оказывается недопустимой. Можно привести, по крайней мере, два практических соображения относительно целесообразности ознакомления с двойственным симплексным методом. Одно из них заключается в том, что такой метод позволяет в ряде случаев облегчить выбор исходного базиса без использования искусственных переменных. Кроме того, двойственный симплекс-метод удобно использовать при появлении дополнительных ограничений в процессе решения. Рассмотрим, например, стандартную задачу минимизации n
åc
j
x j ® min
(1)
ij
x j ³ bi , i = 1, m ,
(2)
j =1
при условиях n
åa j =1
x j ³ 0,
(3)
где c j ³ 0 , j = 1, n .
(4)
Для решения задачи такого вида найти сразу начальную базисную допустимую точку невозможно, и поэтому необходимо применить метод искусственного базиса и выполнить значительный объем вычислений. Покажем, что в этом случае удобно использовать двойственный симплекс-метод. Действительно перейдем от (1) – (3) к эквивалентной задаче в расширенной форме, введя дополнительные переменные xn +1 , xn+ 2 ,..., xn + m . n
- å c j x j ® max
(5)
j =1
при условиях n
åa j =1
ij
x j - x n +i = bi , i = 1, m , x j ³ 0 , j = 1, n .
20
(6)
Запишем ограничения двойственной задачи m
åa i =1
ij
y j ³ -c j , j = 1, n ,
- y i ³ 0 , i = 1, m .
(7) (8)
Из неравенств (7) – (8) видим, что поскольку решение yi = 0 при i = 1, m удовлетворяет всем ограничениям (7), то базис двойственной зада-
чи образуют векторы An +1 , An + 2 ,..., An + m . При этом начальное решение системы имеет вид x n +i = -bi , i = 1, m .
Итак, для задачи (1) – (3) при условии (4) применение двойственного симплекс-метода оказывается предпочтительнее в сравнении с прямым. Двойственный симплекс-метод позволяет в процессе поиска добавлять новые дополнительные ограничения к уже найденному некоторому промежуточному решению. Это важное его свойство широко используется при решении задач условной оптимизации (методы секущих плоскостей). Пример: Пусть ЗЛП имеет вид: 2 x1 + x3 ® min x1 + x2 - x3 ³ 5 x1 - 2 x 2 + 4 x3 ³ 8 xi ³ 0 , i = 1,3 .
Двойственная к ней задача имеет вид: 5 y1 + 8 y 2 ® max y1 + y 2 £ 2 y1 - 2 y 2 £ 0 - y1 + 4 y 2 £ 1 y j ³ 0 , j = 1,2 .
Перепишем исходную задачу, как задачу на максимум и приведем к каноническому виду. А затем решим задачу двойственным симплексметодом. - 2 x1 - x3 ® max - x1 - x 2 + x3 + u 4 = -5
21
- x1 + 2 x 2 - 4 x3 + u 5 = -8 xi ³ 0 , i = 1,3 . –2
0
-1
0
0
CB
B
b
A1
A2
A3
A4
A5
Q
0 0
A4 A5
–8
–1 –1
–1 2
1 –4
1 0
0 1
– 2
2
0
1
0
0
–5/4 1/4
–2/4 –2/4
0 1
1 0
1/4 –1/4
7/4
2/4
0
0
1/4
5/2 3/2
1 0
0 1
–2 –1
–1/2 –1/2
1/2
0
0
1
1/2
D A4 A3
0 –1
–7 2
D 0 –1
D
A2 A3
14 9
14 –
Таким образом, после выполнения последней итерации значения всех базисных переменных оказываются неотрицательными и, следовательно, значения переменных, а именно, x = (0, 14, 9) являются оптимальными для исходной задачи. Оптимальные значения переменных двойственной задачи равняются соответственно следующему: y = (1, 1 / 2)
22
4. ТЕОРИЯ ДВОЙСТВЕННОСТИ В НЕЛИНЕЙНОМ ПРОГРАММИРОВАНИИ 4.1 Общие определения. Основные свойства Рассмотрим задачу нелинейного программирования вида: j ( x) ® min f i ( x) £ 0, i = 1...m
(1)
xÎS,
где j , f i , i = 1...m – заданные функции, S – некоторое множество. Построим для нее функцию Лагранжа: m
F ( x, y ) = j ( x) + å y i f i ( x), x Î S , y ³ 0. i =1
Исходная задача перепишется в виде: min max F ( x, y ) . xÎs
y ³0
Двойственная к ней задача по определению имеет вид: max min F ( x, y ) . y³0
xÎs
F ( x, y ). Функцию w ( y ) называют Введем обозначение: w ( y ) = min xÎs
двойственной функцией. Тогда двойственную задачу можно переписать в виде max w ( y ). y³0
Утверждение. Докажем, что max w ( y ) является задачей выпуклого y³0
программирования. Доказательство. Вначале докажем, что m
w ( y ) £ j ( x) + å y i f i ( x), "y ³ 0, "x Î S .
(*)
i =1
Этот факт непосредственным образом вытекает из неравенства: min F ( x, y ) £ F ( x, y ), "y ³ 0, "x Î S . xÎs
Покажем теперь, что наша задача является задачей выпуклого программирования ( w является выпуклой вверх функцией), т. е. w (ay 1 + (1 - a ) y 2 ) ³ aw ( y 1 ) + (1 - a )w ( y 2 ), a Î [0,1]. (**) Из (*) имеем: 23
m
w ( y 1 ) £ j ( x) + å y i1 f i ( x), "x Î S , i =1 m
w ( y 2 ) £ j ( x) + å y i21 f i ( x), "x Î S . i =1
Умножив первое неравенство на a , а второе – на (1 - a ) и сложив их, мы получим: m
aw ( y 1 ) + (1 - a )w ( y 2 ) £ j ( x) + å (awy 1 + (1 - a ) y 2 ) f i ( x), "x Î S . i =1
Полученное выражение верно для любого x Î S , следовательно, оно будет верно, если мы возьмем от обеих частей минимум по x Î S . Значит, верно неравенство (**). Что и требовалось доказать. Скачок двойственности Рассмотрим следующую задачу оптимизации: j ( x) ® max f i ( x) £ bi , i = 1, m x ³ 0 (x Î S) ,
где j , f i , i = 1, m - заданные функции, S - некоторое множество. Функция Лагранжа для данной задачи имеет вид: F ( x, y ) = j ( x) + y T (b - f ( x)), x ³ 0, y ³ 0. æ ç è
x Î S ö÷ø
При этом исходная задача записывается с помощью F ( x, y ) следующим образом: max min F ( x, y ), x³0 ( xÎs )
y ³0
двойственная задача по определению имеет вид: min max F ( x, y ). y ³0
x³0 ( xÎs )
Свойства двойственности, справедливые для линейного программирования, вообще говоря, неверны в нелинейном случае. Проиллюстрируем это на примере: Пример. 10 - 3x1 - 2 x 2 - x3 ® min 2 x1 + 3 x 2 + 4 x3 £ 4,
24
ì1 x Î S , где S = {x = ( x j ), x j = í "j}. 0 , î F ( x, y ) = 10 - 3 x1 - 2 x 2 - x3 + y (-4 + 2 x1 + 3 x 2 + 4 x3 ), x Î S , y ³ 0.
Исходная задача имеет вид: min max F ( x, y ). xÎs
y ³0
Исходная задача легко решается перебором (множество S состоит всего из 8 точек, а допустимых из них 4). В результате получаем ответ: Lmin = 7, x *T = (1,0,0).
Двойственная задача имеет вид: max min F ( x, y ) y ³0
xÎs
или: max w ( y ). y³0
Решим ее графически:
25
Из графика видно, что решением является пересечение прямых w ( y ) = 7 - 2 y и w ( y ) = y + 5 . Отсюда y* =
2 2 , а w ( y*) = 5 . 3 3
Обе задачи, и исходная, и двойственная, имеют решение, но значения целевых функций не совпадают. Это явление называется скачком двойственности. Замечание. Как мы убедились, верная для линейных задач первая теорема двойственности в нелинейной оптимизации не выполняется. Слабая теорема двойственности Пусть x * – решение исходной задачи, а y * – решение двойственной. Тогда справедливо следующее неравенство: w ( y ) £ w ( y*) £ j ( x*) £ j ( x) "x Î S , y ³ 0. Доказательство. Покажем, что w ( y ) £ w ( y*) £ j ( x*) £ j ( x). Неравенства w ( y ) £ w ( y*) и j ( x*) £ j ( x) справедливы, т. к. x * – решение исходной задачи, а y * – решение двойственной. По определению двойственной функции верно следующее неравенство: w ( y*) £ j ( x) + y *T f ( x) "x Î S . При x = x * получим: w ( y*) £ j ( x*) + y *T f ( x) .
Здесь y *T ³ 0, f ( x*) £ 0. Следовательно, w ( y*) £ j ( x*). Что и требовалось доказать. Теорема двойственности I. Если ( x*, y*) – седловая точка исходной задачи, то j ( x*) = w ( y*) . II. Если x * – решение исходной задачи, y* ³ 0 и справедливо равенство j ( x*) = w ( y*) , то исходная задача имеет седловую точку ( x*, y*) . Доказательство. I. Требуется доказать равенство j ( x*) = w ( y*) . По определению седловой точки имеют место следующие неравенства: F ( x*, y ) £ F ( x*, y*) £ F ( x, y*) "x Î S , y ³ 0.
1) Перепишем неравенство F ( x*, y ) £ F ( x*, y*) " y ³ 0 в виде: j ( x*) + y T f ( x*) £ j ( x*) + y *T f ( x*) " y ³ 0.
26
При
y=0
f ( x*) £ 0 Þ
имеем
y *T f ( x*) ³ 0 .
Но
при
этом
y *T ³ 0 ,
y *T f ( x*) £ 0. Следовательно, y *T f ( x*) = 0.
2) Перепишем неравенство F ( x*, y*) £ F ( x, y*) "x Î S в виде: j ( x*) + y *T f ( x*) £ j ( x) + y *T f ( x), "x Î S .
Поскольку y *T f ( x*) = 0 , то последнее неравенство перепишется следующим образом: j ( x*) £ j ( x) + y *T f ( x), "x Î S . j ( x*) £ min[j ( x) + y *T f ( x)] . xÎS
Поскольку из доказательства слабой теоремы двойственности известно, что w ( y*) £ j ( x*) , то j ( x*) = w ( y*) . II. Требуется доказать, что j ( x*) + y T f ( x*) £ j ( x*) + y *T f ( x*) £ j ( x) + y *T f ( x) "x Î S , y ³ 0. По определению двойственной функции верно следующее неравенство: w ( y*) £ j ( x) + y *T f ( x) "x Î S . При x = x * имеем: w ( y*) £ j ( x*) + y *T f ( x*). Поскольку j ( x*) = w ( y*) , то y *T f ( x*) ³ 0 , но с другой стороны y *T ³ 0 , f ( x*) £ 0 Þ
y *T f ( x*) £ 0. Следовательно, y *T f ( x*) = 0.
Получим, что неравенство j ( x*) + y T f ( x*) £ j ( x*) – верно, поскольку y T f ( x*) £ 0.
Неравенство j ( x*) £ j ( x) + y *T f ( x) – верно, поскольку j ( x*) = w ( y*) . Замечание. Из доказательства второй части утверждения теоремы видно, что верно эквивалентное определение седловой точки: Точка ( x*, y*) является седловой, если верно 1) min F ( x, y*) = F ( x*, y*) ; xÎS 2) ( y*)T f ( x*) = 0 ; 3) f ( x*) £ 0 .
27
4.2 Двойственный алгоритм Удзавы Рассмотрим следующую задачу j ( x) ® min
(1)
f i ( x) £ 0, i = 1, m;
(2)
xÎS.
(3) Функция Лагранжа для задачи (1)–(3) записывается следующим образом: m
F ( x , y ) = j ( x ) + å y i f i ( x ), x Î S , y ³ 0 .
(4)
i =1
По определению задача двойственная к (1)–(3) имеет вид max min F ( x, y ) . xÎS
y³0
(5)
Введем следующее обозначение w( y ) = min F ( x, y ), y ³ 0 . xÎS
(6)
В введенных обозначениях задача (5) может быть переписана в виде max w ( y ) . (7) y³0
Как было показано, двойственная задача (7) является задачей выпуклого программирования. Определение 1. Если для функции w : W Ì R m ® R существует вектор €w( y 0 ) Î R m такой, что выполняется неравенство Ñ € T w( y 0 )( y - y 0 ), "y Î W, y 0 Î W , w( y ) £ w( y 0 ) + Ñ
(8),
то вектор Ñ€w( y 0 ) называется субградиентом функции w в точке y 0 . Утверждение 1. Для любой выпуклой функции w : W Ì R m ® R в любой внутренней точке y* Î W существует субградиент. Доказательство. Для определенности будем считать, что функция w выпукла вверх. Рассмотрим подграфик функции w X = {( z , y ) Î R n +1 : z ³ w( y )} . В силу выпуклости функции w множество X является выпуклым. Тогда в точке (w ( y * ), y * ) существует опорная гиперплоскость, то есть существует вектор (c0 , c) Î R n +1 , (c0 , c) ¹ 0 , что c 0T w( y*) + c T y* ³ c0T z + c T y, "( z , y ) Î X .
Покажем, что
c0 > 0 .
(9)
Положив в (9) y=y*, получим, что
c0T ( w( y*) - z ) ³ 0 . Так как w( y*) - z ³ 0 , то c0 ³ 0 . Покажем, что c0 ¹ 0 .
28
Предположим противное. Тогда из (9) следует, что c T ( y * - y ) ³ 0, "y Î B( y*, e ) Ì W ,
(10)
где B ( y*, e ) – шар с центром в y* и радиуса e . В силу того, что y* – внутренняя точка, такой шар существует. Из (10) следует, что c = 0 . Но (c0 , c) ¹ 0 . Мы пришли к противоречию. Значит, c0 > 0 . Положив в (10) z = w( y), y Î W и разделив неравенство на c0 , получим, что cT w( y ) £ w( y*) + ( y * - y ) . c0
Из последнего неравенства следует, что вектор –
c является субграc0
диентом функции w точке y*. Утверждение доказано. Утверждение 2. Точка y* является точкой максимума для выпуклой вверх функции w : W Ì R m ® R тогда и только тогда, когда в этой точке существует субградиент Ñ€w равный нулю. Доказательство. Пусть y* является точкой максимума функции w. Тогда из определения максимума следует следующее неравенство w( y ) £ w( y*), "y Î W , а значит, непосредственно из определения субградиента следует, что нуль является субградиентом функции w в точке y*. ) Обратно, пусть субградиент Ñ w в точке y* равен нулю. Непосредственно из определения субградиента следует, что y* является точкой максимума. Утверждение доказано. Для функции w определенной с помощью (6) в любой точке y ³ 0 можно предложить следующую схему вычисления субградиента. Введем следующее обозначение X = {x : F ( x, y ) = w( y )} . Отметим, что выполняются следующие соотношения m
w( y ) £ j ( x) + å y i f i ( x), "x Î S , i =1 m
w( y ) = j ( x) + å y i f i ( x), "x Î X . i =1
Вычитая из неравенства равенство, получим выполнение следующего неравенства m
w( y ) - w( y ) £ å ( y i - y i ) f i ( x), "x Î X . i =1
29
Из последнего соотношения следует, что
f ( x) = ( f 1 ( x),.., f m ( x)) ,
где x Î X , является субградиентом функции w в точке y . Таким образом, для вычисления субградиента в точке y ³ 0 необходимо решить задачу min F( x , y ) . Пусть x является решение этой задачи. xÎS
Тогда f i ( x ), i = 1,.., m являются координатами субградиента функции w в точке y . Покажем, что найденная точка x является решением следующей задачи j ( x ) ® min f i ( x) £ f i ( x ), i = 1, m;
(11)
xÎS.
Очевидно, что точка x является допустимой в этой задаче. Кроме того, для любой допустимой в (11) точки x справедлива следующая цепочка неравенств m
m
m
i =1
i =1
i =1
j ( x ) £ j ( x ) + å y i ( f i ( x ) - f i ( x)) = F ( x , y ) - å y i f i ( x) £F ( x, y ) - å y i f i ( x) = j ( x) .
Так как для любой допустимой в задаче (11) точки x выполняется неравенство j ( x ) £ j ( x) , то отсюда следует, что точка x является решением задачи (11). Схема двойственного алгоритма Удзавы Шаг 0. Задать начальные значения y 0 ³ 0, x 0 , N = 0. Шаг 1. Положить x N +1 = arg min F ( x, y N ) . Проверка на останов. ОстаxÎS новка алгоритма может осуществляться по следующим критериям а) | f i ( x N +1 ) |£ e , "i = 1,.., m ; || x N +1 - x N || б) £e ; || x N ||
в) По числу итераций N max . )
Шаг 2. Положить Ñ w( y N ) = f ( x N +1 ) . Шаг 3. Вычислить y N +1 по формуле
) y N +1 = [ y N + aÑ w( y N )]+ .
Знак «+» означает, что берется проекция на положительную ось. Увеличить N на единицу. Переход к шагу 1. 30
ЛИТЕРАТУРА 1. Азарнова Т.В. Методы оптимизации: элементы теории, алгоритмы и примеры / Т.В. Азарнова, И.Л. Каширина, Г.Д. Чернышова. – Воронеж, Изд-во ВГУ. – 2004. – 150 с. 2. Акулич И.Л. Математическое программирование в примерах и задачах / И.Л. Акулич. – М., Высш. шк., 1986. – 319 с. 3. Красс М.С. Математика для экономистов / М.С. Красс, Б.П. Чупрынов. – СПб. : Питер, 2004. – 464 с. 4. Мину М. Математическое программирование. Теория и практика / М. Мину. – М. : Наука, 1990. – 488 с.
31
СОДЕРЖАНИЕ 1. Двойственность в линейном программировании ...................................... 3 1.1 Правила построения двойственных задач....................................... 3 1.2 Свойства пары двойственных задач ................................................ 7 2. Экономический смысл двойственных переменных .................................. 10 3. Двойственный симплекс метод ................................................................... 18 4. Теория двойственности в нелинейном программировании..................... 23 4.1 Общие определения. Основные свойства ....................................... 23 4.2 Двойственный алгоритм Удзавы ..................................................... 28 Литература ........................................................................................................ 31
32
Учебное издание Чернышова Галина Дмитриевна Булгакова Ирина Николаевна ЭЛЕМЕНТЫ ТЕОРИИ ДВОЙСТВЕННОСТИ Методическое пособие Редактор И.Г. Валынкина
Подписано в печать Формат 60×84/16. Усл. печ. л. 1,9. Тираж 50 экз. Заказ 1995. Издательско-полиграфический центр Воронежского государственного университета. 394000, г. Воронеж, пл. им. Ленина, 10. Тел. 208-298, 598-026 (факс) http://www.ppc.vsu.ru; e-mail:
[email protected] Отпечатано в типографии Издательско-полиграфического центра Воронежского государственного университета. 394000, г. Воронеж, ул. Пушкинская, 3. Тел. 204-133