- •§1. Общий подход к решению задач нелинейного программирования.
- •§2. Задачи выпуклого программирования
- •§3. Решение задач выпуклого программирования при различных типах ограничений.
- •3.1. Без ограничений и неотрицательность переменных
- •3.2. Ограничения вида неравенств
- •3.3.Задачи вп при ограничениях вида неравенств
- •§4. Теорема Куна-Таккера.
3.3.Задачи вп при ограничениях вида неравенств
Перейдем к изучению задач выпуклого программирования в виде неравенств. В простейшем случае это такие задачи:
(3.18)
Z
= f
(x1
,x2
,…, xn
) max,
1(x1
,x2
,…, xn
) ≤
1,
2(x1
,x2
,…, xn
) ≤
2,
(3.19)
- - - - - - - - - - - - - - -
m(x1
,x2
,…, xn
) ≤
m,
Путем добавления в левые части неравенств (3.31) неотрицательных переменных xn+1 ,xn+2 ,…, xn+m перейдем от ограничений-неравенств к ограничениям-равенствам
1(x1
,x2
,…, xn
) + xn+1=
1,
(3.20)
2(x1
,x2
,…, xn
) + xn+2=
2,
- - - - - - - - - - - - - - - - - - - -
m(x1
,x2
,…, xn
) + xn+m=
m.
Задача(3.18)-(3.20) является задачей ВП с ограничениями в виде равенств. Для ее решения, как и ранее, применим метод множителей Лагранжа
(x1
,x2,…,xn+1,…,
xn+m
,λ1,
λ2,…,
λm)
= f
(x1
,x2
,…, xn
) +
i
(bi–
i(x1
,x2,…,xn)-
xn+i).
Вместо задачи (3.18)-(3.20) будем решать задачу на безусловный экстремум функции Лагранжа. Необходимое условие экстремума функции Лагранжа записывается так:
=
0, j=1,2,…,n,
(3.21)
=0,
i=1,2,…,m,
(3.22)
=0,
i=1,2,…,m.
(3.23)
Учитывая
вид функции
, условия (3.21), (3.23) можно выразить следующим
образом:
=
-
i
= 0,
(3.24)
=
-
i
= 0,
- - - - - - - - - - - - - - - - - - - - - - - - -
=
-
i
= 0,
=
b1
-
1(x1
,x2
,…, xn
) - xn+1
= 0,
- - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - -
(3.25)
=
bm
-
m(x1
,x2
,…, xn
) - xn+m
=0.
Условия (3.22) с учетом неотрицательности переменных следует уточнить и записать в виде
∙ xn+i
=
0, i=1,2,…,m.
(3.26)
Если
экстремум функции
достигается
внутри области допустимых решений (xn+i
>
0), то в точке экстремума
= 0, на границе области (xn+i
=
0):
≤ 0 в случае выпуклости
,
< 0 - при вогнутости
.
Так как
= -
i
, то условие (3.26) примет вид -λi
xn+i
=
0. Отсюда
λi
xn+i
=
0, однако
xn+i
= bi–
i(x1
,x2,…,xn).
Следовательно,
получим
λi
(bi–
i(x1
,x2,…,xn))
= 0.
В
связи с тем, что
= -
i
≤0,
получим
i
≥0.
Окончательно условие (3.26) можно записать
так:
λi
(bi–
i(x1
,x2,…,xn))
= 0,
(3.27)
bi–
i(x1
,x2,…,xn)
≥ 0,
i
≥0.
Причем,
если
i
>0,
то bi–
i(x1
,x2,…,xn)
= 0, если
i
=0,
то bi–
i(x1
,x2,…,xn)
≥ или
i(x1
,x2
,…, xn
) ≤
i.
Для нахождения решения задачи (3.18)-(3.19) достаточно условий (3.24), (3.27). В них не входят переменные xn+i . Следовательно, можно и не вводить эти переменные в рассмотрение. Сразу можно было бы дял задачи (3.18)-(3.19) составлять функцию Лагранжа
=
f
(x1
,x2
,…, xn
) +
i
(b
i
-
i
(x1
,x2
,…, xn
)).
Тогда необходимое условие экстремума этой функции включаю бы, как и прежде, условие (3.24). Условие же (3.27) для этой функции стало бы таким:
≥0,
i
=0,
i
≥0,
i=1,2,…,m,
где
= b1
-
1(x1
,x2
,…, xn
).
Несколько усложняется решение задачи выпуклого программирования в случае ограничений в виде неравенств и ограничений неотрицательности.
Задача ВП в данном случае имеет вид
Z
= f
(x1
,x2
,…, xn
) max,
(3.28)
1(x1
,x2
,…, xn
) =
1,
(3.29)
2(x1
,x2
,…, xn
) =
2,
- - - - - - - - - - - - - - -
m(x1
,x2
,…, xn
) =
m,
(3.30)
xj ≥ 0, j=1,2,…,n.
Для отыскания точки условного экстремума задачи (3.28)-(3.29) следует исходить из следующих условий
(3.31)
=
0, j=1,2,…,n,
(3.32)
i
≥0,
i
=0 ,
≥0,
где
- функция Лагранжа вида
=
f
(x1
,x2
,…, xn
) +
i
(b
i
-
i
(x1
,x2
,…, xn
)).
Если принять во внимание условие неотрицательности xj ≥ 0, j=1,2,…,n , то вместо равенств (3.31) следует пользоваться равенствами
xj
= 0, где xj
≥ 0,
≤ 0.
С
учетом вида функции Лагранжа
условия нахождения точка условного
максимума задачи (3.28)-(3.30) можно будет
записать так:
I группа условий:
-
i
≤ 0,
(
-
i
≤ 0)xj
= 0,
xj ≥ 0, j=1,2,…,n;
II группа условий:
bi
-
i
(x1
,x2
,…, xn
)≥0,
i
(
i
(x1
,x2
,…, xn
) - b1)
= 0,
xj ≥ 0, i=1,2,…,m.
Условия I и II называются условиями Куна -Таккера . Из совокупности этих условий выделим для более глубокого рассмотрения следующие отношения.
Условия дополняющей нежесткости Куна-Таккера.
I'.
Если
-
i
< 0, то xj
0,
если
xj
0 , то
-
i
= 0.
II'.
Если
i(x1
,x2
,…, xn
) < bi
, то
i
=
0,
если
i
>
0 , то
i(x1
,x2
,…, xn
) = bi.
Условия
I'
и II'
называются условиями дополняющей
нежесткости. Рассмотрим
их экономическую интерпретацию, исходя
из прежней экономической постановки
задачи ВП: x1
,x2
,…, xn
- план производства продукции,
f
(x1
,x2
,…, xn
) - прибыль от реализации продукции,
i(x1
,x2
,…, xn
) - потребность в ресурсе i
по данному варианту производственной
программы, x1
,x2
,…, xn
, bi
- лимит ресурса i.
Ранее
нами было установлено, что
i
есть оценка ресурса i
по его влиянию на оптимальное значение
целевой функции. Эта оценка равна
производной
= λoi.
Это справедливо для всех i.
Рассмотрим
содержание соотношений II'.
Положительность оценки λoi
(λoi>0)
указывает на то, что ресурс bi
в оптимальном плане используется
полностью, то есть
i(xo1,xo2,…,
xon)
= = bi
. Если ресурс используется не полностью,
то есть
i(xo1,xo2,…,
xon)
< bi
, то этот ресурс не является дефицитным,
его оценка равна нулю: λoi
=0.
Аналогичным будет подход при рассмотрении содержания условий I'.
Продукт
j
целесообразно включить в план производства
(xj
>
0) только в том случае, когда результатная
оценка продукции
совпадает с ее затратной оценкой
i
,
то есть когда достигается баланс
результата и затрат, связанных с малым
выпуском продукции. Если же получаемый
результат
(оценка продукции) меньше затрат ресурсов
i
,
то включение в план производства продукта
целесообразно (xj
= 0).
Рассмотрим формулировку условий дополняющей нежесткости применительно к задаче линейного программирования. Для такой задачи
Z
= f
(x1
,x2
,…, xn
) =
jxj
max,
i(x1
,x2
,…, xn
) =
ijxj
≤
bi
,
i=1,2,…,m,
xj ≥ 0, j=1,2,…,n,
=
λoi
=
yoi
;
= cj
;
= aij
;
i
=
oi
aij
.
Условия дополняющей нежесткости для задачи линейного программирования запишутся следующим образом.
Если
ijyoi
>
cj,
то xoj
= 0;
если
xoj
> 0 , то
ijyoi
=
cj
;
если
ijxoj
<
bi,
то yoi
=
0;
если
yoi
>
0, то
ijxoj
=
bi.
Полученные соотношения были изучены нами еще в теории линейного программирования.
