Выпуклость в линейном программировании
Вы здесь: > Каталог статей > Математика > Оптимизация > Выпуклость в линейном программировании
Продолжение разговора о задаче линейного программирования
Добавлена: 2008-02-22 Просмотров:327 | Рейтинг:0.00

В одной из предыдущих заметок уже вводилось понятие выпуклости множеств. С точки зрения линейного программирования важно отметить, что полупространство

H=lbrace x:~a_i x <= beta rbrace

представляет собой выпуклое множество.

Поскольку допустимое множество задачи линейного программирования образуется как пересечение полупространств

H_i =lbrace x:~a_i x <= beta_i rbrace,~i=1,2,...,m

то оно также является выпуклым.

Из выпуклости допустимого множества и линейности целевой функции для задачи линейного программирования сразу следует отсутствие в этой задаче локальных экстремумов, точнее любой локальный минимум в задаче линейного программирования является глобальным. Действительно, пусть

-infty <= f prime = {min}under{Ax = b, x >=0} cx

и x prime  - некоторая точка, такая, что

f prime - cx prime , Ax prime = b, x prime >= 0

Тогда для произвольной допустимой точки x in X  с cx>f prime справедливы следующие неравенства:

c(lambda x prime + (1-lambda)x) = cx + lambda c (x prime - x)

lambda c x prime + (1-lambda)f(x) < cx +(1-lambda)cx)=cx

для lambda>0.

Точка x= lambda x + (1-lambda)cx  является допустимой для любых  0< lambda <=1 и поскольку  lambda можно взять сколь угодно малым, точка  x prime не может быть точкой изолированного локального минимума.

Выпуклые множества часто порождаются операцией, называемой взятием выпуклой оболочки.

Определение.   Выпуклой оболочкой конечного множества точек X_k = lbrace x^1 , x^2 , ... , x^k rbrace  называется множество

co X_k = lbrace x=sum{i=1}{k}{lambda_i = 1,~lambda_i >= 0} rbrace

В выпуклом множестве можно выделить точки, имеющие важное значение для получения этого множества с помощью операции взятия выпуклой оболочки.

Определение.   Точка x называется крайней точкой множества X, если из того, что

x=lambda x^1 + (1-lambda)x^2 , ~x^1,~x^2~in~ X,~ lambda~ in~ (0,1)

следует

x=x^1 = x^2

Существенным здесь является нетривиальность выпуклой комбинации, т.е. то, что 0< lambda <=1.

Справедливо следующее утверждение, зачастую называемое теоремой Крейна-Мильмана: ограниченное замкнутое выпуклое множество совпадает с выпуклой оболочкой своих крайних точек. Отсюда следует ряд важных следствий для линейного программирования.

Лемма. Если допустимое множество задачи линейного программирования ограничено, то среди ее решений есть крайние точки.

Доказательство. Для доказательства достаточно заметить, что задача 

{min}under{Ax = b, x >=0} cx     (*)

может быть сведена к задаче

min c (sum{i=1}{k}{lambda_i z^i})={min}under{sum{i=1}{k}{lambda_i =1,~lambda_i >= 0}} c (sum{i=1}{k}{lambda_i cz^i}) ≡ min  (sum{i=1}{k}{lambda_i v^i})                   (**)

где z^i in X - крайние точки допустимого множества задачи (*). Последняя задача имеет тривиальное решение:

lambda_i = delim{lbrace}{matrix{2}{1}{ {1 ~ ,~ i=i prime} {0 ~ ,~i<>i prime} }}{}

где i prime - индекс, на котором достигается min.  Если i prime  не единственен и достигается на некотором множестве I, то решением (**) являются произвольные lambda_i >= 0 , ~ sum{i=1}{n}{lambda_i} =1  и

lambda_i = delim{lbrace}{matrix{2}{1}{ {>= 0 ~ ,~ i in I} {0 ~ ,~i notin I} }}{}

Рейтинг@Mail.ru Rambler's Top100