метопт-пми / 3 / Выпуклое программирование
.pdf
Выпуклое программирование
Рассмотрим задачу математического программирования следующего вида:
min (x) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x X , где допустимое множество X : |
|||||||
(*) |
|
n |
: |
f |
i |
x 0, |
i 1,..., m |
|
x R |
|
|
|
|
||
X : |
|
|
|
|
|
|
|
|
|
|
|
gk x 0, k 1,...,l |
|||
|
|
|
|
|
|
|
|
Определение. Если в задаче (*) целевая функция (x) – выпуклая и допустимое множество X – выпукло, то задача (*) называется задачей выпуклого программирования.
Рассмотрим теперь задачу математического программирования следующего вида:
min (x) |
|
|
|
|
|
|
|
x X , где допустимое множество X : |
|
|
|
|
|
||
|
|
: f1(x) 0,..., fm (x) 0 , где функции |
|
|
|
||
(**) |
n |
fi (x) – выпуклые на R |
n |
|
|||
X : x R |
|
|
, i 1,..., m, |
||||
|
|
|
n |
. |
|
|
|
и целевая функция (x) – выпуклая на R |
|
|
|
|
|||
Покажем, что допустимое множество X задачи (**) – выпукло.
Действительно, пусть x1, x2 X, (0,1) |
|
|
|
покажем, что |
x x1 (1 )x2 X , |
т.е. i |
fi (x) 0. |
Имеем, для i fi |
(x) fi ( x1 (1 )x2 ) fi (x1) (1 ) fi (x2 ) 0 |
||
т.о. i fi (x) 0 |
точка x X, т.е. X – выпукло. |
||
"Надграфик" выпуклой функции, т.е. множество |
|
||
|
Г a : a f x , x D f – выпуклое множество |
||
|
def |
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
Определение. Задача (**) называется основной задачей выпуклого программирования (ОЗВП).
Свойства выпуклых функций
1.Неравенство Йенсена
Пусть f (x) – выпуклая функция на выпуклом множестве X. Тогда
m |
|
m |
при всех m 1, 2, ; xi X ; i 0; i 1, , m; |
f i xi |
i f (xi ) |
||
i 1 |
|
i 1 |
|
Доказательство. Индукция по m. Пусть m = 1 очевидно. Пусть для m = k утверждение верно.
Докажем для m = k + 1.
m
i 1;
i 1
|
k 1 |
|
|
|
|
|
|
|
|
k 1 |
|
||
Пусть x i xi , xi X ; |
i 0; i 1,..., k 1, |
|
i 1. |
||||||||||
|
i 1 |
|
|
|
|
|
|
|
|
i 1 |
|
|
|
Если |
1 , то ... 0 f ( |
|
xk 1 ) |
|
f (xk 1) . |
||||||||
k 1 |
1 |
k |
k 1 |
|
|
|
|
k 1 |
|
|
|
||
Если k 1 |
1 представим x в следующем виде: |
|
|
|
|||||||||
|
|
|
k |
|
i |
|
|
|
|
|
|
|
|
x (1 k 1)x k 1xk 1 , |
где x |
|
|
|
xi . |
|
|
|
|||||
1 |
|
|
|
||||||||||
|
|
|
i 1 |
|
|
|
|
|
|
|
|||
|
|
|
|
k 1 |
|
|
|
|
|
|
|
||
Тогда: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
k |
|
|
|
i |
|
|
k 1 |
|
f (x) (1 k 1) f (x ) k 1 f (xk 1) 1 k 1 |
|
|
|
|
|
f (xi ) k 1 f (xk 1) i f (xi ) , ч.т.д. |
|||||||
1 |
|
|
|||||||||||
|
|
|
|
|
i 1 |
1 |
i 1 |
||||||
|
|
|
|
|
|
|
|
|
k |
||||
2.Пусть f (x) – выпуклая на выпуклом множестве X Rn функция. Тогда любой её локальный минимум на множестве X является одновременно и глобальным (доказательство было ранее в лекциях).
3.Пусть f (x) – выпуклая функция на выпуклом множестве X Rn , дифференцируемая в
точке x* X. Тогда |
f (x) f (x* ) ( f (x*), x x*) x X . |
График f лежит не ниже касательной гиперплоскости к графику функции f в точке (x*, f (x*)).
(Напоминание: график линейной функции f (x) f (x* ) ( f (x*), x x* ) называется касательной гиперплоскостью к графику функции f в точке (x*, f (x*))).
Доказательство. По определению выпуклой функции для x, x* X, [0,1] имеем: f x (1 )x* f (x) (1 ) f (x* ) .
Преобразуя эту формулу, имеем:
f (x) f (x* ) |
f (x* (x x* )) f (x* ) |
|
( f x* ), (x x* )) o( ) |
( f x* ), x x* ) |
o( ) |
; |
|
|
|
|
|||||
|
|
|
|
Переходя к пределу при 0, имеем искомое соотношение.
4.Пусть f – дважды непрерывно дифференцируемая функция на выпуклом множестве
X Rn . Тогда f выпукла на X матрица Гессе f ″ неотрицательно определена, т.е.
x* X, h Rn ( f x* )h, h) 0 . |
|
|
Был ранее без доказательства критерий сильной |
||
|
||
Доказательство. |
выпуклой функции f с параметром 0: |
|
( f (x* )h,h) 2 || h ||2 |
||
Необходимость. Пусть f – выпукла на X. |
||
|
а) Сначала предположим, что |
x int X (x* |
– внутренняя точка множества |
X, т.е. |
|
существует -окрестность точки x*, |
все точки которой принадлежат X). Тогда для h Rn |
|||
имеем x* h X при всех достаточно |
малых > 0.Поскольку f – |
дважды |
||
дифференцируема в x*, то можно записать: |
|
|
||
f (x* h) f (x* ) ( f x* ), h) |
1 |
( f x* ) h, h) o( 2 ) |
|
|
2 |
|
|||
|
|
|
|
|
2 |
( f x )h, h) o( |
2 |
) f (x h) f (x |
) ( f x |
), h) 0 |
|
||||
2 |
|
|||||||||
|
|
* |
|
* |
* |
* |
|
|
||
1 |
( f x* )h, h) |
o( 2 ) |
0 |
|
|
|
|
|||
2 |
2 |
|
|
|
|
|
|
|||
|
|
|
|
. |
|
|
|
|
||
Переходя к пределу при 0, имеем требуемое соотношение.
б) Пусть теперь x* X – произвольная точка существует последовательность точек xk int X k 1, 2,... , сходящаяся к x*. По доказанному выше, для h Rn имеем:
( f (xk )h, h) 0 k 1, 2,... |
, |
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
||
причем последовательность матриц |
|
f (xk ) |
k 1, 2,... сходится |
к f (x* ) |
в силу |
|||||
непрерывности f (x) |
в x* (непрерывность всех вторых частных производных) |
имеем |
||||||||
требуемое соотношение. |
|
|
|
|
|
|
|
|
||
Достаточность: |
Пусть |
справедливо |
( f (x* ), h, h) 0 . |
Тогда, |
рассмотрим |
|||||
произвольные точки |
x, x* X |
и положим h x x* . Используя |
формулу |
Тейлора с |
||||||
остаточным членом в форме Лагранжа, имеем для некоторого (0,1) |
|
|
||||||||
f (x* h) f (x* ) ( f x* ), h) |
1 |
( f x* |
h)h, h) 0 (по предположению) |
|||||||
2 |
||||||||||
|
|
|
|
|
|
|
|
|
||
Итак, имеем: |
|
|
|
|
|
|
|
|
|
|
f (x* h) f (x* ) ( f x*), h) 0 |
для x* X , h Rn . |
|
|
|
||||||
Надо показать, что для x , x X , (0,1) |
f x (1 )x f (x ) (1 ) f (x ) , |
|||||||||
т.е. тем самым показать, что функция f – выпуклая.
Для этого зафиксируем произвольные x , x X , (0,1) и рассмотрим точку х*: x* x 1 )x X (в силу выпуклости X).
Тогда:
f (x ) f (x* ) f x* ), x x* домножим на
f(x ) f (x* ) f x* ), x x* домножим на (1 )
исложим их: f (x ) (1 ) f (x ) f (x* ) ( f x* ), x 1 )x x* ) 0
def
x*
f x (1 )x f (x ) (1 ) f (x ) ,
т.е. f – выпуклая, ч.т.д.
Пример. Пусть f (x) (Ax, x) (b, x) – квадратичная функция, A – симметричная матрица.
Тогда f – выпуклая A – неотрицательно определена.
Вообще, можно привести критерии строгой и сильной выпуклости функций аналогично тем, которые сейчас были доказаны для выпуклой функции (доказательство – аналогичное).
Итак, для дифференцируемой функции f (x):
строгая выпуклость эквивалентна неравенству
f(x) f (x* ) f x* ), x x* ,
сильная выпуклость эквивалентна неравенству
f (x) f (x* ) f x* ), x x* || x x* ||2 .
Графически:
выпуклость – возможно касание касательной плоскости; строгая выпуклость – единственная точка касания с касательной плоскостью;
сильная выпуклость – график расположен внутри некоторого параболоида вращения
(Z f (x* ) || x x* ||) .
Для дважды дифференцируемых функций f (x):
достаточным условием строгой выпуклости f (x) является положительная определенность при x X её матрицы Гессе f (x);
достаточным условием сильной выпуклости f (x) является положительная определенность матрицы f (x) lE , где E – единичная матрица, а l > 0.
Эти критерии в сочетании с критерием Сильвестра дают удобный аппарат для проверки выпуклости функций небольшого числа переменных.
Функция Лагранжа
Рассмотрим основную задачу выпуклого программирования:
min (x)
x X
X x Rn : f1 (x) 0,..., fm (x) 0
(x), fi (x) – выпуклые функции.
В основной задаче выпуклого программирования имеем m условий, определяющих допустимое множество X.
|
|
|
|
|
f (x) |
|
|||
|
1 |
|
|
|
|
1 |
|
|
|
|
. |
|
|
|
|
|
. |
|
|
|
. |
|
Rm , |
|
|
|
. |
|
Rm . |
Рассмотрим вектор |
. |
|
f (x) |
|
|
. |
|
||
|
|
|
|
|
|
|
|
||
|
. |
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f |
m |
(x) |
|
||
|
m |
|
|
|
|
|
|
||
Определение. Функция
m
L(x, ) (x) ( , f (x)) (x) i fi (x) ,
i1
называется функцией Лагранжа для основной задачи выпуклого программирования, где x Rn , 0 .
Определение. Пара (x*, *) называется седловой точкой функции Лагранжа на множестве Rn 0 , если x Rn и 0
L(x* , ) L(x*, * ) L(x, * ) ,
т.е.
L(x* , * ) min |
max L(x, ) max |
min L(x, ) |
|
x Rn |
0 |
0 |
x Rn |
Наличие седловой точки означает, что операции минимизации и максимизации можно переставлять местами.
В задачах классического анализа об условном экстремуме (задачи, в которых допустимое множество задается системой уравнений) важную роль играет метод множителей Лагранжа: решение исходной задачи ищется среди стационарных точек функции L(x, ) – точек, удовлетворяющих системе уравнений
L |
0, |
L |
0 . |
x |
|
|
|
В задачах выпуклого (и, в частности, линейного) программирования функции Лагранжа также отводится важное место: при весьма общих предположениях задача выпуклого программирования сводится к отысканию седловых точек функции Лагранжа.
Теорема о седловой точке функции Лагранжа (достаточные условия оптимальности). Если пара (x*, *) является седловой точкой функции Лагранжа L(x, ) (x) ( , f (x))
на множестве x Rn, 0, то x* – оптимальная точка основной ЗВП.
Доказательство. По определению седловой точки имеем:
m |
|
m |
m |
|
(x* ) i |
fi (x* ) (x* ) i* fi (x* ) (x) i* fi (x) |
(*) |
||
i 1 |
|
i 1 |
i 1 |
|
а) Из левого неравенства (*) убираем φ(x*), и получаем: |
|
|||
m |
m |
|
|
|
i fi (x* ) i* fi (x* ) |
fi (x* ) 0 , для |
i, т.е. x* – допустимая точка. |
||
i1 |
i1 |
|
|
|
Действительно, если бы существовал индекс i : fi (x*) > 0, то слева имели бы неограниченную сумму (т.к. i 0), а справа имеем ограничение для i fi (x*) 0.
б) В частности, левое неравенство (*) верно и для = 0, тогда имеем ( *, f (x* )) 0 , но
* 0, f (x* ) 0 |
( * , f (x* )) 0 |
(**) |
в) Подставим (**) в правое неравенство (*):
(x* ) (x) ( *, f (x)) (x)
Последнее неравенство верно, поскольку для x X f (x) 0 ( *, f (x)) 0
Итак, получили, что для x X (x* ) (x) , т.е. x* – оптимальная точка, ч.т.д.
Отметим, что при доказательстве теоремы нигде не использовались ни свойства выпуклости функций (x), fi (x), ни свойства выпуклости множества Rn, ни какие-либо свойства гладкости.
Т.о., наличие седловой точки (x*, *) функции Лагранжа определяет оптимальность точки x* для общей задачи математического программирования. Обратное утверждение, что из оптимальности точки x* следует существование седловой точки (x*, *) функции Лагранжа, справедливо лишь для задачи выпуклого программирования при выполнении определенных ограничений относительно допустимого множества X.
Сформулируем эти ограничения и саму теорему, известную как теорема Куна-
Таккера.
Определение 1. Рассмотрим допустимое множество
X x Rn : fi (x) 0, i 1,..., m .
Если для всех i 1,…,m существует такая точка xi X, что fi (xi) < 0, то говорят, что допустимое множество X удовлетворяет условию регулярности.
Определение 2. Пусть существует такая точка x X, что для всех i 1,…,m выполняется fi (x) < 0. Тогда говорят, что допустимое множество удовлетворяет условию регулярности Слейтера.
Определения (1) и (2) – эквивалентны. Действительно, из (2) (1) – очевидно (xi x). Пусть теперь выполнено (1).
m |
m |
|
|
Выберем x i xi , |
i 1, |
i 0, |
i 1,..., m , |
i 1 |
i 1 |
|
|
Неравенство Йенсена для выпуклых функций
|
m |
|
i fi (xi ) 0 , ч.т.д. |
тогда для i 1,…,m имеем: |
fi (x) fi i xi |
||
|
i 1 |
|
|
Условие (2) означает, что существует точка внутри допустимого множества.
Теорема (Куна-Таккера (необходимые и достаточные условия оптимальности)). Пусть в основной задаче выпуклого программирования допустимое множество X обладает свойством регулярности. Тогда необходимым и достаточным условием оптимальности точки x* является существование такого * 0, который называется вектором множителей Лагранжа, чтобы пара (x*, *) была седловой точкой для функции Лагранжа на множестве x Rn, 0.
Доказательство.
Достаточность доказана в теореме о седловой точке функции Лагранжа.
Необходимость.
Пусть x* – оптимальная точка. Рассмотрим два множества в пространстве Rm+1:
z0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
z1 |
|
|
|
|
|
|
. |
|
z |
0 |
(x* ) |
|
|
def |
|
|
|
|
|
|
: zi 0 |
|
|||||
– множество P . |
|
|
; |
|||
|
|
|
|
|
|
|
|
|
i 1,..., m |
|
|||
. |
|
|
||||
|
|
|
|
|
|
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
zm |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
0 (x) |
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
||
def |
S |
|
, где x |
S |
|
def |
1 |
|
: f |
(x) |
|
. |
|
– и множество S |
x |
x |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
i i |
|
|
|||
|
x R |
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i 1,..., m |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
m |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
Множество P – выпукло.
Действительно, пусть z ,z P рассмотрим z = z + (1 – )z [0,1] и покажем что z P.
def z |
|
def z |
def z |
|
|
Положим z 0 |
|
, z 0 |
, z |
0 |
|
zi |
|
zi |
zi |
|
|
|
|
|
|
|
|
|
|
* |
) (1 ) |
* |
* |
|
z0 z0 (1 )z0 (x |
(x |
) (x ) |
||||||||
|
|
|
z z (1 )z 0 |
|
|
z P |
|||||
|
|
|
|
|
|
||||||
|
|
|
i |
|
i |
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Множество S – выпукло. |
|
|
|
|
|||||||
|
|
|
|
|
|
0 |
0 |
|
|
||
Действительно, пусть |
, |
S |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||
Рассмотрим |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
0 |
|
(1 ) |
0 |
, [0,1] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
По определению множества S:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
x |
|
Sx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
рассмотрим x = x + (1– )x и покажем, что |
|
0 |
Sx . |
|||||||||||
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Sx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Т.к. – выпуклая функция, то |
|
|
|
|
|
|
|
|
||||||||||||
(x) (x ) (1 |
) (x ) 0 (1 |
) 0 0 |
||||||||||||||||||
Т.к. fi (x) – выпуклая функция, то |
fi (x) fi (x ) (1 ) fi (x ) i (1 ) i i i |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
Sx |
S |
S – выпукло. |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def z |
0 |
|
|
z |
|
|
* |
|
|
|
|
|
|
|
Рассмотрим |
|
|
|
|
: |
|
|
(x ) |
– множество внутренних точек P и покажем, что |
|||||||||||
P |
|
|
|
|
0 |
|
|
|||||||||||||
|
|
|
|
|
0 |
|
z |
|
z |
0 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
i |
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
пересечение P0 S = .
Для x X 0 (x) (x* ) (оптимальность), но z0 (x* ) .
|
|
( ) из множества S |
( ) из мн-ва P0 |
|
Для x X |
i : i fi (x) 0 , но |
zi 0 . |
|
|
( ) из мн-ва S |
( ) из мн-ва P0 |
общих точек в множествах P0 и S – нет.
Применим к множествам P и S теорему о разделяющей гиперплоскости. Существует разделяющая гиперплоскость, т.е. существует
u |
|
|
|
u |
|
|
0 : u0 0 |
u, u0 z0 |
u, z |
|
|
z |
|
|
|
|
|
|
||||
0 |
Rm 1, |
|
0 |
|
для |
0 |
P |
и |
0 |
S . |
||||||||||||
u |
|
|
|
u |
|
|
|
|
|
|
|
|
|
|
z |
|
|
|
|
|||
При этом вектор |
u |
0 |
|
0 , т.к. компоненты векторов из P неограничены снизу. |
||||||||||||||||||
|
|
|||||||||||||||||||||
|
|
|
|
u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
z |
|
|
|
|
|
|
|
|
* |
(x) . |
|||||||||||
Выберем |
|
0 |
на границе множества P : |
z0 |
|
(x |
) и |
0 |
S : |
0 |
|
|||||||||||
|
|
z |
|
|
|
|
|
|
|
|
z 0 |
|
|
|
|
f (x) |
||||||
Тогда получим: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
x Rn |
u (x) u, f (x) |
u (x* ) |
|
|
(*) |
|
|
|
|
|
|
|
||||||||||
|
|
|
0 |
|
|
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
Покажем что u0 0 (тем самым покажем, что u0 > 0, т.к. по условию u0 0). |
||||||||||||||||||||||
Допустим, что u0 = 0, тогда (u, f (x)) 0 x Rn. |
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
При этом, поскольку |
0 |
0 , то существует индекс i : ui 0, т.е. ui > 0. |
|
|
|
|||||||||||||||||
|
|
|
|
|
|
u |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
С другой стороны, x X |
f (x) 0 для ui > 0 для x X |
|
fi (x) = 0, что противоречит |
|||||||||||||||||||
свойству регулярности. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
def |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
Итак, u0 > 0, и определим * |
u 0 . |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
u0 |
|
|
|
|
|
|
|
|
|
|
|
|
Для этого вектора соотношение (*) примет вид:
x Rn (x* ) (x) ( *, f (x)) |
(**) |
|
при x = x* |
( *, f(x*)) ≥ 0. |
|
Но т.к. * 0, а f (x* ) 0 (поскольку x* X ) |
( *, f ( x*)) 0 . |
|
Далее, для 0 |
( , f (x* )) 0 . |
|
Собирая все вместе, получим: |
|
|
(x* ) ( , f (x* )) (x* ) ( *, f (x* )) |
(x) ( *, f (x)) , |
|
0 |
0 |
|
или L(x*, ) L(x*, * ) L(x, *) 0, x Rn,
т.е. (x*, *) – седловая точка функции Лагранжа, ч.т.д.
Замечаниe.
Теорема Куна-Таккера лежит в основе теории двойственности математического программирования. Она также находит применение в численных методах решения задач математического программирования. Она позволяет исходную задачу заменить задачей отыскания седловой точки функции Лагранжа, т.е. задачей вида:
min max L(x, )
x Rn 0
"Простые" ограничения этой задачи позволяют применять для её решения методы, во многом схожие с численными методами безусловной оптимизации, достаточно хорошо изученные и апробированные.
Двойственность.
В формулировке теоремы Куна-Таккера прямые и двойственные переменные (x и ) входят симметричным образом, поэтому можно ожидать, что аналогичная симметрия существует и для задач оптимизации (относительно прямых и двойственных переменных). Действительно, рассмотрим функцию
def |
|
|
g(x) sup L(x, ), где L(x, ) (x) , f (x) , |
||
|
0 |
|
Очевидно, что |
|
|
g(x) |
(x), если fi (x) 0, i 1,..., m |
|
|
, в противном случае |
|
|
|
|
исходная задача |
min (x) |
|
(1) |
|
x X |
|
|
может быть представлена в виде min g(x) |
|
(1-a) |
|
|
x X |
|
|
|
def |
|
|
Совершенно аналогично, введем функцию ( ) inf |
L(x, ) |
и рассмотрим задачу |
|
|
x Rn |
|
|
max ( ) |
|
(2) |
|
0 |
|
|
|
Задача (2) называется двойственной, а задача (1) или (1-а) – прямой.
Теорема (двойственность). Справедливы следующие соотношения: 1) Для всех допустимых x и (т.е. x X, 0)
|
(x) ( ) |
(3) |
2) |
Если прямая задача регулярна, x* – её решение, * |
– множители Лагранжа, то * – |
решение задачи (2) и справедливо |
|
|
|
(x* ) ( * ) |
(4) |
3) |
Если для допустимых x* и * имеет место (4), то x* |
– решение прямой задачи, а * – |
решение двойственной задачи. |
|
|
Доказательство.
1) Если x X, 0, то имеем:
(x) (x) , f (x) L(x, ) inf L(x , ) ( ) , ч.т.д.
x Rn
2) Пусть x* – решение задачи (1), * – множители Лагранжа, тогда
( * ) inf L(x, * ) L(x*, * ) L(x*, ) inf L(x, ) ( )
x Rn |
x Rn |
для 0, т.е. * – решение (2), при этом, поскольку L(x* , * ) (x* ) , то
( * ) (x* ) , ч.т.д.
3)Пусть x* X, * 0 и выполняется соотношение (x*) = ( *), тогда рассмотрим произвольные допустимые x, в силу (3) имеем
(x) ( * ) (x* ) ( )
т.е. x* – решение прямой задачи, * – решение двойственной задачи, ч.т.д.
Замечания.
1.Можно свести задачу к другой с размерностью m, которая может оказаться при m « n значительно проще.
2.Неравенство (3) позволяет получить оценку снизу для min в задаче (1) можно оценить точность приближенного решения.
Все зависит от того, насколько просто можно вычислить ( * )
Двойственные задачи линейного программирования
Рассмотрим задачу линейного программирования в основной форме:
(x) (c, x) min
Допустимое множество X x Rn : ( Ai , x) bi ; i 1,..., m; x 0 .
По теореме Куна-Таккера для задачи выпуклого программирования (а ЗЛП есть ЗВП) наличие оптимальной точки x* эквивалентно наличию седловой точки (x*, *) функции Лагранжа:
