
Элементы теории двойственности (110
..pdf
Из неравенств (7) – (8) видим, что поскольку решение yi = 0 при i =1, m соответствует всем ограничениям (7), то базис двойственной задачи образуют векторы An+1, An+2 , ..., An+m . При этом начальное решение системы имеет вид
xn+i = −bi , i =1, m.
Итак, для задачи (1) – (3) при условии (4) применение двойственного симплекс-метода оказывается предпочтительнее в сравнении с прямым.
Двойственный симплекс-метод позволяет в процессе поиска добавлять новые дополнительные ограничения к уже найденному некоторому промежуточному решению. Это важное его свойство широко используется при решении задач условной оптимизации (методы секущих плоскостей).
Пример.
Пусть ЗЛП имеет вид:
2x1 + x3 → min, x1 + x2 − x3 ≥ 5, x1 − 2x2 + 4x3 ≥8, xi ≥ 0, i = 1, 3.
Двойственная к ней задача имеет вид
5y1 +8y2 → max, y1 + y2 ≤ 2,
y1 − 2 y2 ≤ 0,
−y1 + 4 y2 ≤1, y j ≥ 0, j =1, 2.
Перепишем исходную задачу как задачу на максимум и приведем к каноническому виду. А затем решим задачу двойственным симплексметодом.
−2x1 − x3 → max,
−x1 − x2 + x3 +u4 = −5,
−x1 + 2x2 −4x3 +u5 = −8,
xi ≥ 0 , i =1, 3.
21

–2 |
0 |
–1 |
0 |
0 |
CB |
B |
b |
A1 |
A2 |
A3 |
A4 |
A5 |
Θ |
|
|
|
|
|
|
|
|
|
0 |
A4 |
–5 |
–1 |
–1 |
1 |
1 |
0 |
– |
0 |
A5 |
–8 |
–1 |
2 |
–4 |
0 |
1 |
2 |
|
|
|
2 |
0 |
1 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
0 |
A4 |
–7 |
–5/4 |
–2/4 |
0 |
1 |
1/4 |
14 |
–1 |
A3 |
2 |
1/4 |
–2/4 |
1 |
0 |
–1/4 |
– |
|
|
|
|
|
|
|
|
|
|
|
|
7/4 |
2/4 |
0 |
0 |
1/4 |
|
|
|
|
|
|
|
|
|
|
0 |
A2 |
14 |
5/2 |
1 |
0 |
–2 |
–1/2 |
|
–1 |
A3 |
9 |
3/2 |
0 |
1 |
–1 |
–1/2 |
|
|
|
|
1/2 |
0 |
0 |
1 |
1/2 |
|
|
|
|
|
|
|
|
|
|
Таким образом, после выполнения последней итерации значения всех базисных переменных оказываются неотрицательными и, следовательно, значения переменных, а именно x = (0, 14, 9), являются оптимальными для
исходной задачи. Оптимальные значения переменных двойственной задачи равняются соответственно y = (1, 1 / 2)
22

4.ИСПОЛЬЗОВАНИЕ ТЕОРИИ ДВОЙСТВЕННОСТИ
ВПРИКЛАДНЫХ ЗАДАЧАХ
Вразличных областях управления возникают задачи поиска кратчайших и длиннейших путей на графах.
Общая постановка данной задачи следующая: пусть задана сеть из n +1 вершин, то есть ориентированный граф, в котором выделены две вершины – вход (нулевая вершина) и выход (вершина с номером n ). Для каждой дуги заданы числа, называемые длинами дуг. Длиной пути (контура) называется сумма длин входящих в него дуг (если длины дуг не заданы, то длина пути, или контура, определяется как число входящих в него дуг). Задача заключается в поиске кратчайшего пути (пути минимальной длины) от входа до выхода сети.
Запишем задачу о кратчайшем пути как задачу линейного программирования.
Пусть
|
1, еслидуга (i, j) входитвпуть, |
|
|
|
|||||
xij |
i, j = 0, n , |
||||||||
= |
|
|
|
|
|||||
|
0, еслидуга (i, j) невходитвпуть, |
|
|
|
|||||
|
lij – длина дуги (i, j). |
|
|
|
|||||
Тогда |
|
n |
n |
|
|
|
|||
|
|
|
|
|
|||||
|
L( x) = ∑∑lij xij → min, |
(1) |
|||||||
|
|
i=0 |
j=0 |
|
|
|
|||
|
n |
|
|
|
|
|
|
|
|
|
∑ x0 j |
=1, |
|
|
|
(2) |
|||
|
j=1 |
|
|
|
|
|
|
|
|
|
n−1 |
|
|
|
|
|
|
|
|
|
∑ xin |
=1, |
|
|
|
(3) |
|||
|
i=0 |
|
|
|
|
|
|
|
|
|
∑ xik = ∑ xkj , k = |
|
|
(4) |
|||||
|
1,n −1. |
||||||||
|
k ≠1,n |
k ≠1,n |
|
|
|
Ограничения (2) и (3) отражают требования того, что в искомом пути из входа выходит одна дуга и в выход заходит одна дуга. Ограничение (4) обеспечивает равенство числа заходящих и выходящих в любую промежуточную вершину дуг.
Сформулируем задачу линейного программирования, двойственную задаче (1) – (4), поставив в соответствии с ограничениями (2) – (3) двойственные переменные λ0 и λn , а с ограничениями (4) – двойственные пере-
менные {λi }, i =1, n −1:
λn −λ0 → max, |
(5) |
||
λj −λi ≤ lij , i, j = |
|
. |
(6) |
0, n |
|||
23 |
|
|
|

По теореме двойственности для оптимальных решений задач (1) – (4) и
(5) – (6) значения целевых функций совпадают. Двойственные переменные имеют следующий смысл: λi – кратчайшее расстояние от 1-го до i -го пункта;
λj – кратчайшее расстояние от 1-го до j -го пункта.
Алгоритм решения задачи о кратчайшем пути
1. По заранее заданной сети выписывается матрица расстояний между всеми узлами сети. Если дуга, соединяющая узлы, отсутствует (отсутствует путь, ведущий из i -го пункта в j -й), то в матрице расстояний ставится знак запрета данного пути.
2. Пусть λj – сумма длин дуг, образующих цепь, ведущую из узла 1 в узел j . Положим λ1 = 0 и λi = λj , если i = j . При условии, что i и j соеди-
нены дугой, величина λj |
определяется как λj |
= min(λi +li j ). Процесс начи- |
|
|
i |
нается с i =1 и uj = ui = 0.
3. Определяется кратчайший путь. Проверяется выполнение неравенства λj −λi ≤ li j , при этом выделяют те элементы матрицы, для которых
данное неравенство выполняется как равенство. Если для i, j λj −λi ≤ li j ,
то между узлами не существует более короткого пути. Переход к п. 5.
4. Если i, j , для которых λj −λi > li j , вычисляют новые значения u′j , используя формулу λ′j = λi + li j . Меняются λj и λi для i = j на λ′j . Повторяется п. 2 с новыми значениями λj и λi .
5.Полученные λj определяют кратчайшее расстояние между узлами 1
иj = 2, n . По выделенным элементам матрицы выписывается кратчайший
путь.
Пример.
Рассмотрим данную сеть.
|
5 |
|
|
|
|
5, ∞ |
7,1 |
9,4 |
|
9,2 |
|
7 |
||
|
|
|
||
|
|
|
|
|
|
2 |
1,8 |
|
10,2 |
|
|
6 |
||
1 |
2,4 |
|
|
|
|
3,4 |
|
|
|
|
8,1 |
2,3 |
|
|
|
|
|
||
|
|
|
|
|
|
|
3 |
2,5 |
23,10 |
|
|
|
11,5
∞, 9
4
24

Сеть содержит циклы, возникающие из-за возможности двустороннего движения. Если дуга ориентирована, (то есть движение одностороннее), расстояние в другом направлении полагается равным ∞.
Занесем данные в матрицу расстояний, где строка i (столбец j ) пред-
ставляет узел i |
(узел |
j ). |
|
|
|
|
|
|
|
j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
λi |
|
i |
|||||||||
1 |
|
|
2 |
8 |
11 |
9 |
|
|
0 |
2 |
|
4 |
|
3 |
|
5 |
1 |
|
2 |
3 |
|
1 |
4 |
|
∞ |
|
2 |
|
5 |
4 |
|
5 |
|
9 |
|
|
2 |
23 |
11 |
5 |
|
2 |
∞ |
|
|
|
7 |
9 |
7 |
6 |
|
|
8 |
3 |
5 |
1 |
|
10 |
3 |
7 |
|
|
|
|
10 |
4 |
2 |
|
13 |
λj j |
|
0 |
2 |
5 |
11 |
7 |
3 |
13 |
|
Исходные величины λi и λj определяются следующим образом. Пусть λ1 = 0 . При использовании формулы
λj = mini (λi + li j )
осуществляется последовательное обращение к величинам λi и λj по мере того, как они становятся доступными.
λ2 |
= 0 + 2 = 2, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
γ3 |
= min (λ1 + c13 , λ2 + c23 ) = min (0 +8, 2 +3) = 5, |
|
|
|
|||||||||||||||||||
|
|
1=1, 2 |
(λ1 + c14 , λ3 + c34 ) |
1=1, 2 |
( |
0 +11, 5 + ∞) =11, |
|
|
|
||||||||||||||
λ4 |
= min |
= min |
|
|
|
||||||||||||||||||
|
|
1=1, 3 |
(λ1 + c15 , λ2 + c25 ) |
1=1, 3 |
( |
0 +9, 2 +5) = 7, |
|
|
|
||||||||||||||
λ5 |
= min |
= min |
|
|
|
||||||||||||||||||
|
|
1=1, 2 |
|
|
|
|
|
|
|
|
|
|
1=1, 2 |
|
|
|
|
|
|
|
|||
λ6 |
= min |
|
(λ2 + c2 6 , λ3 + c36 , λ4 + c4 6 , λ5 + c56 ) = |
|
|
|
|||||||||||||||||
|
|
1=2, 3, 4, 5 |
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|||
= |
|
min |
|
2 +1, 5 + 2,11 + 2, 7 + 7 |
= 3, |
|
|
|
|
|
|||||||||||||
|
1=2, 3, 4, 5 ( |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|||
λ |
7 |
= min |
|
λ |
4 |
+ c |
4 7 |
, λ |
5 |
+ c |
, λ |
6 |
+ c |
|
= min |
11+ 23, 7 |
+9, 3 +10 |
=13. |
|||||
|
1=4, 5, 6 ( |
|
|
|
|
57 |
|
|
|
6 7 ) |
1=4,5,6 |
( |
|
|
|||||||||
При переходе к шагу 2 проводится проверка условия оптимальности |
|||||||||||||||||||||||
путем сравнения (λj |
− λi |
) с li j |
. При этом выделяются те элементы, для ко- |
||||||||||||||||||||
торых (λj − λi |
|
) = li j . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
|
|
|
|

j |
1 |
2 |
3 |
4 |
|
5 |
|
6 |
7 |
λi |
i |
|
|
||||||||
1 |
|
2 |
8 |
11 |
|
9 |
|
|
|
0 |
2 |
4 |
|
3 |
|
|
5 |
|
1 |
|
2 |
3 |
1 |
4 |
|
∞ |
|
|
2 |
|
5 |
|
4 |
5 |
|
9 |
|
|
|
|
2 |
23 |
11 |
5 |
2 |
∞ |
|
|
|
|
|
7 |
9 |
7 |
6 |
|
8 |
3 |
5 |
|
1 |
|
|
10 |
3 |
7 |
|
|
|
10 |
|
4 |
|
2 |
|
13 |
λj |
0 |
2 |
5 |
11 |
|
7 |
|
3 |
13 |
|
В процессе реализации алгоритма обнаруживается, что условие оптимальности первый раз нарушается при i = 6 для j = 4 и 5. Величины λ4 и
λ5 меняются следующим образом:
λ′4 = λ6 +l6 4 = 3 +5 =8, λ′5 = λ6 +l65 = 3 +1 = 4.
После этого повторяется шаг 2 с измененными значениями λi и λj .
i |
j |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
λi |
|
|
|
|||||||||
1 |
|
|
2 |
8 |
11 |
9 |
|
|
0 |
|
2 |
|
4 |
|
3 |
|
5 |
1 |
|
2 |
|
3 |
|
1 |
4 |
|
∞ |
|
2 |
|
5 |
|
4 |
|
5 |
|
9 |
|
|
2 |
23 |
11 |
(8) |
5 |
|
2 |
∞ |
|
|
|
7 |
9 |
7 |
(4) |
6 |
|
|
8 |
3 |
5 |
1 |
|
10 |
3 |
|
7 |
|
|
|
|
10 |
4 |
2 |
|
13 |
|
λj |
|
0 |
2 |
5 |
11 |
7 |
3 |
13 |
|
|
(8)(4)
Из последней таблицы видно, что в новых изменениях нет необходимости, и поэтому последние измененные величины ui дают длину крат-
чайшего пути от 1 до j . Кратчайшее расстояние между узлами 1 и 7 равно
λ7 (= 13).
Найдем участки кратчайшего пути между узлами 1 и 7. Определение участков пути должно начинаться с узла 7. Из столбца 7 видно, что равенство выполняется (подчеркнутый элемент) при i = 5 и i = 6 , то есть либо узел 5, либо узел 6 соединены с узлом 7 (альтернативные решения). Анало-
26

гичные исследования для 5-го и 6-го узлов дадут i = 6 и i = 2 . Будем продолжать эту процедуру до тех пор, пока не вернемся в первый узел.
Таким образом, кратчайший путь имеет вид
1 2
6
5
7
1 2
6
5. ТЕОРИЯ ДВОЙСТВЕННОСТИ В НЕЛИНЕЙНОМ ПРОГРАММИРОВАНИИ
5.1. Общие определения. Основные свойства |
|
Рассмотрим задачу нелинейного программирования вида |
|
φ(x) → min, |
|
fi (x) ≤ 0, i =1... m, |
(1) |
x S ,
где φ, fi , i =1... m – заданные функции, S – некоторое множество. Построим для нее функцию Лагранжа
m
Φ(x, y) = φ(x) + ∑ yi fi (x), x S, y ≥ 0.
i=1
Исходная задача перепишется в виде
min max Φ(x, y).
x s y≥0
Двойственная к ней задача по определению имеет вид
max min Φ(x, y).
y≥0 x s
Введем обозначение ω(y) = min Φ(x, y). Функцию ω(y) называют
x s
двойственной функцией.
Тогда двойственную задачу можно переписать в виде max ω(y).
y ≥0
Утверждение.
Докажем, что maxω( y) является задачей выпуклого программирования.
y≥0
Доказательство.
Вначале докажем, что
m |
|
ω( y) ≤ φ(x) + ∑ yi fi (x), y ≥ 0, x S. |
(*) |
i=1 |
|
27 |
|

Этот факт непосредственным образом вытекает из неравенства
min Φ(x, y) ≤ Φ(x, y), y ≥ 0, x S.
x s
Покажем теперь, что наша задача является задачей выпуклого программирования (ω является выпуклой вверх функцией), то есть
ω(αy1 + (1−α) y2 ) ≥ αω( y1) + (1−α)ω( y2 ), α [0,1]. |
(**) |
Из (*) имеем |
|
m |
|
ω( y1) ≤ φ(x) + ∑ yi1 fi (x), x S, |
|
i=1 |
|
m |
|
ω( y2 ) ≤ φ(x) + ∑ yi21 fi (x), x S. |
|
i=1 |
|
Умножив первое неравенство на α , а второе – на (1 −α ) и сложив их, мы получим
m
αω( y1) + (1 −α)ω( y2 ) ≤ φ(x) + ∑(αωy1 + (1−α) y2 ) fi (x), x S.
i=1
Полученное выражение верно для любого x S , следовательно, оно будет верно, если мы возьмем от обеих частей минимум по x S . Значит, верно неравенство (**).
Что и требовалось доказать.
Скачок двойственности
Рассмотрим следующую задачу оптимизации: φ(x) → max,
fi (x) ≤bi , |
i = |
1,m |
, |
x ≥ 0 |
(x S) , |
где φ, fi , i =1,m – заданные функции, S – некоторое множество. Функция Лагранжа для данной задачи имеет вид
Φ(x, y) = φ(x) + yT (b − f (x)), x ≥ 0 (x S), y ≥ 0.
При этом исходная задача записывается с помощью Φ(x, y) следую-
щим образом:
max min Φ(x, y),
x≥0 y≥0 ( x s)
двойственная задача по определению имеет вид
min max Φ(x, y).
y≥0 x≥0 ( x s)
Свойства двойственности, справедливые для линейного программирования, вообще говоря, неверны в нелинейном случае. Проиллюстрируем это на примере.
28

Пример.
10 −3x1 −2x2 − x3 → min,
|
|
|
2x1 +3x2 + 4x3 ≤ 4, x S, где S ={x = (xj ), xj |
1, |
j}. |
= |
||
|
0, |
|
Φ(x, y) =10 −3x1 −2x2 − x3 + y(−4 + 2x1 +3x2 + 4x3 ), x S, y ≥ 0.
Исходная задача имеет вид
min max Φ(x, y).
x s y≥0
Исходная задача легко решается перебором (множество S состоит всего из 8 точек, а допустимых из них 4). В результате получаем ответ:
Lmin = 7, x *T = (1, 0, 0).
Двойственная задача имеет вид max min Φ(x, y), или max ω( y). |
|
y≥0 x s |
y≥0 |
Решим ее графически:
ω(y) = 10 – 4y
ω(y) = 9
ω(y) = 9 – y
ω(y) = 7 + 3y
ω(y) = 7·2y
ω(y) = 6 + 2y
ω(y) = 5 + y
ω(y) = 4 + 5y
29
Из графика видно, что решением |
является пересечение прямых |
|||
ω( y) = 7 −2 y и ω( y) = y +5 . Отсюда |
y* = |
2 |
, а ω( y*) = 5 |
2 . |
|
|
3 |
|
3 |
Обе задачи – и исходная, и двойственная – имеют решение, но значения целевых функций не совпадают. Это явление называется скачком двой-
ственности.
Замечание. Как мы убедились, верная для линейных задач первая теорема двойственности в нелинейной оптимизации не выполняется.
Слабая теорема двойственности
Пусть x * – решение исходной задачи, а y * – решение двойственной.
Тогда справедливо следующее неравенство:
ω( y) ≤ ω( y*) ≤ φ(x*) ≤ φ(x), x S, y ≥ 0.
Доказательство.
Покажем, что ω( y) ≤ ω( y*) ≤ φ(x*) ≤ φ(x).
Неравенства ω(y) ≤ ω(y*) и φ(x*) ≤ φ(x) справедливы, так как x * – решение исходной задачи, а y *– решение двойственной.
По определению двойственной функции верно следующее неравенст-
во:
ω( y*) ≤ φ(x) + y *T f (x), x S.
При x = x * получим
ω( y*) ≤ φ(x*) + y *T f (x). Здесь y *T ≥ 0, f (x*) ≤ 0.
Следовательно, ω( y*) ≤ φ(x*). Что и требовалось доказать.
Теорема двойственности
I.Если (x*, y*) – седловая точка исходной задачи, то φ(x*) = ω( y*).
II. Если x * – решение исходной задачи, y* ≥ 0 и справедливо равенство ϕ(x*) =ω( y*) , то исходная задача имеет седловую точку (x*, y*).
Доказательство.
I. Требуется доказать равенство φ(x*) = ω( y*).
По определению седловой точки имеют место следующие неравенства:
Φ(x*, y) ≤ Φ(x*, y*) ≤ Φ(x, y*), x S, y ≥ 0.
1.Перепишем неравенство Φ(x*, y) ≤ Φ(x*, y*), y ≥ 0 в виде
|
φ(x*) + yT f (x*) ≤ φ(x*) + y *T |
f (x*), y ≥ 0. |
|||
При |
y = 0 |
имеем |
y *T f (x*) ≥ 0. |
Но |
при этом y *T ≥ 0, |
f (x*) ≤ 0 |
y *T |
f (x*) ≤ |
0. Следовательно, |
y *T |
f (x*) = 0. |
|
|
|
30 |
|
|