книги из ГПНТБ / Падалко Л.П. Математические методы оптимального планирования развития и эксплуатации энергосистем учеб. пособие
.pdfГ л а в а 2
Н Е Л И Н Е Й Н О Е П Р О Г Р А М М И Р О В А Н И Е
Областью приложения методов нелинейного математи ческого программирования являются задачи на оптими зацию, формулируемые в такой ж е форме, что и задачи линейного программирования . Однако в отличие от по следних здесь целевая функция, или ограничения, или и то, и другое вместе нелинейны.
В нелинейном программировании выделяют два клас
са задач: |
выпуклые |
и невыпуклые. |
Предметом |
нашего |
|||
изучения |
будут з а д а ч и |
выпуклого |
программирования . |
||||
Д л я |
задач |
такого |
типа |
разработаны |
эффективные |
мето |
|
ды |
решения, |
некоторые из которых |
будут рассмотрены |
||||
ниже. Д л я |
з |
а д а ч |
невыпуклого программирования |
не су |
ществует общего математического а п п а р а т а решения, за исключением некоторых типов задач, для которых с уче
том |
их |
специфических |
особенностей |
р а з р а б а т ы в а ю т с я |
|||||||||
специальные |
методы. |
|
|
|
|
|
|
|
|
|
|||
П р е ж д е чем |
переходить |
к |
изложению |
методов |
нели |
||||||||
нейного |
выпуклого программирования, отметим |
|
особен |
||||||||||
ности |
задач |
указанных |
выше |
двух |
типов. С |
этой це |
|||||||
лью |
сделаем |
пояснения |
о |
свойствах |
выпуклости |
|
функ |
||||||
ций и области допустимых решений. |
|
|
|
|
|
||||||||
§ 2 . 1 . Свойства |
выпуклости |
|
|
|
|
|
|
|
|||||
Функция f(x) |
является |
выпуклой |
в з а д а н н о м |
интер |
|||||||||
вале |
а^.х<Ь, |
если д л я любых |
двух точек Х \ и х2 |
из |
дан |
||||||||
ного интервала |
справедливо |
соотношение |
|
|
|
|
|||||||
f{KXl |
+ (1 - |
Х)х2) < |
ЩХі) |
+ |
(1 - Щ х 2 ) |
|
|
|
(2.1) |
||||
при |
0 < К 1 . |
|
|
|
|
|
|
|
|
|
|
Х\—х2 |
|
Следовательно, выпуклая функция на отрезке |
|
||||||||||||
не может принимать |
больших |
значений, |
чем |
линейная |
|||||||||
интерполяция |
значений |
f(xi) |
и f(x2). |
Н а |
рис. В.1 |
пока |
|||||||
зан |
пример выпуклой |
функции |
одного переменного. |
При - |
90
веденное определение |
выпуклости справедливо т а к ж е и |
|||||
для функции |
с несколькими переменными |
|
f(xu |
х2, |
||
x„)=f(X). |
В |
этом случае к а ж д а я точка X |
представляет |
|||
собой «-мерный вектор с координатами Х\, |
х2, |
•••,хп. |
|
|||
Если функция не удовлетворяет условию |
(2.1), то |
она |
||||
является невыпуклой. В . частности, функция |
f(x) будет |
|||||
называться |
вогнутой, |
если функция —f(x) |
является |
вы |
||
пуклой. |
|
|
|
|
|
|
а |
|
|
6 |
|
|
|
Р и с . 2.1.
Помимо требований в отношении выпуклости целевой функции, выпуклое программирование предъявляет так ж е требования в отношении выпуклости области допус тимых решений задачи, которая может описываться си
стемой линейных или нелинейных неравенств. |
Область |
||||
допустимых решений называется выпуклой, |
если с к а ж |
||||
дыми двумя точками X и У из этой области все точки |
|||||
вида |
|
|
|
|
|
XX + (1 — X)Y |
|
|
|
|
|
п р и н а д л е ж а т области допустимых решений. На |
рис. 2.1, |
||||
а и б показаны примеры выпуклых |
областей. Где бы мы |
||||
в выпуклой области ни взяли две точки X и Y, отрезок, |
|||||
соединяющий их, т а к ж е будет находиться в |
данной вы |
||||
пуклой области. Н а |
рис. 2.2 |
показан |
пример |
невыпуклой |
|
области. |
|
|
|
|
|
Если выпуклая |
целевая |
функция |
з а д а н а |
в |
выпуклой |
области допустимых решений, то мы имеем дело с зада
чей выпуклого программирования . Если |
ж е хотя бы це |
|
л е в а я функция и л и область допустимых |
решений |
невы |
пуклы, то мы имеем дело с задачей невыпуклого |
про |
|
граммирования . |
|
|
З а д а ч и выпуклого программирования |
называют |
так- |
9.1
ж е одноэкстремальными, |
потому |
что у |
них |
существует |
|||||
одна экстремальная точка, |
д о с т а в л я ю щ а я |
абсолютный |
|||||||
(глобальный) |
минимум |
или |
максимум |
задаче . |
З а д а ч и |
||||
невыпуклого |
программирования |
называют |
многоэкстре |
||||||
мальными, |
потому что у них может |
быть |
не одна |
экстре |
|||||
мальная |
точка. Методы |
выпуклого |
программирования, |
Р н с. 2.2.
будучи примененными к многоэкстремальным з а д а ч а м , обеспечивают достижение только локального, но не аб
солютного оптимума . Точное решение задачи |
при этом |
|||
не гарантируется. |
|
|
||
§ 2.2. Теорема Куна—Таккера |
|
|||
В а ж н о е |
место |
в теории выпуклого программирования |
||
занимает теорема |
К у н а — Т а к к е р а . Эта теорема |
представ |
||
ляет |
собой |
обобщение метода множителей |
Л а г р а н ж а |
|
для |
экстремальных задач, с о д е р ж а щ и х в качестве огра |
ничивающих условий неравенства. И хотя эта теорема не связана непосредственно с вычислительной процедурой, тем не менее она имеет большое значение для вычисли
тельного м е т о д а решения з а д а ч . |
|
|||||
Пусть рассматривается |
с л е д у ю щ а я з а д а ч а : |
|
||||
min |
/ { * ! , |
х2,..., |
хп); |
|
(2.2) |
|
qt(xlt |
х2,..., |
хп) |
< 0 (/ = |
1, 2, ... , т ) ; |
(2.3) |
|
* , > ( ) . |
|
|
|
|
(2.4) |
|
Теорема |
К у н а — Т а к к е р а |
опирается на понятие седло - |
||||
вой точки, |
которой |
д а д и м определение. С этой целью з а |
||||
пишем |
функцию Л а г р а н ж а |
для рассматриваемой |
з а д а ч и : |
|||
|
|
|
|
m |
|
|
F(X, |
l) = |
f(X) + |
2iXiqj(X). |
|
92
Пара векторов |
X |
= |
хъ |
х2,..., |
хп и |
X — Хг, |
Х2,..., |
Хт |
|||||
называется седловой |
точкой |
функции |
F(X, |
X) |
в |
области |
|||||||
х1 >- 0, |
Xj >• 0 |
для |
всех |
і и |
/, если |
выполняется |
следующее |
||||||
соотношение: |
|
|
|
|
|
|
|
|
|
|
|
|
|
F(X, |
X) < |
F(X, |
X) < |
F{X, |
Kj. |
|
|
|
|
|
(2.5) |
||
Это |
соотношение |
может |
быть |
записано |
т а к ж е |
иначе: |
|||||||
F(X, |
X) = |
min |
max |
F(X,X). |
|
|
|
|
|
|
(2.6) |
||
|
|
A' |
0 |
АГ О |
|
|
|
|
|
|
|
|
P її с. 2.3. P її с. -2.4.
Условие |
(2.6) |
требует |
минимизации |
функции |
Л а |
|||||||
г р а н ж а |
ПО ОДНОЙ Группе ПеремеИНЫХ |
(Х = Х\, Xz, |
хп) |
и |
||||||||
максимизации по другой группе переменных |
(Х=Х\, |
Х%, |
||||||||||
Хт). Искомое |
решение и |
определяет |
седловую |
точку. |
|
|||||||
М о ж н о д а т ь геометрическую интерпретацию |
седловой |
|||||||||||
точке. С этой целью обратимся к рис. 2.3. Вдоль |
оси |
х\ |
||||||||||
целевая |
функция |
выпуклая, |
а |
вдоль |
оси |
х% — |
вогнутая. |
|||||
В точке |
Х = 0(хі = 0, Х 2 = 0 ) |
целевая |
функция |
достигает |
||||||||
минимума по Х\ и максимума |
по х% Н а рис. |
2.4 |
д а н а |
|||||||||
другая |
геометрическая |
интерпретация |
седловой |
точки. |
||||||||
Здесь показаны линии постоянного уровня целевой |
функ |
|||||||||||
ции в окрестности седловой точки. Из этой |
геометриче |
|||||||||||
ской интерпретации понятен смысл условия (2.6), |
в |
со |
||||||||||
ответствии с которым осуществляется минимизация |
функ |
|||||||||||
ции по X и максимизация |
по X. |
|
|
|
|
|
|
|
93
И т а к, з а д а ч а |
нахождения |
седловой |
точки_ |
функции |
||||||||
f(xu |
х2, |
хп) |
сводится |
к нахождению точки X, |
X, |
удов |
||||||
летворяющей |
соотношению (2.6). |
|
|
|
|
|
||||||
Теорема Куна.—Таккера формулируется |
следующим |
|||||||||||
образом: вектор |
Х= |
(хи |
х2, |
х„) |
тогда |
и |
только |
тогда |
||||
представляет_решение |
задачи |
(2.2) |
—(2.4), |
когда |
сущест |
|||||||
вует |
вектор |
% такой, |
что F(X, |
X)<F(X, |
%)^F(X, |
|
Я) для |
|||||
всех |
х'і > 0, |
kj |
> |
0. |
|
|
|
|
|
|
|
|
Д а н н у ю теорему мы |
приводим |
без доказательства, от |
||
сылая читателя к специальной литературе [14]. |
|
|||
Таким образом, из |
теоремы |
К у н а — Т а к к е р а |
вытека |
|
ет, что решение задачи |
(2.2) — (2.4) |
сводится к |
нахож |
|
дению седловой точки для функции |
Л а г р а н ж а . |
|
||
Учитывая, что условия К у н а — Т а к к е р а (2.5), |
(2.6) от |
вечают требованию минимизации по одной переменной и максимизации по другой, они могут быть записаны и в
таком |
виде: |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
|
|
l |
f |
_ |
i |
L |
+ |
V |
l |
A |
> |
0 ; |
|
|
|
|
(2.7) |
dF |
х, = 0, л - , . >0; |
|
|
|
|
|
|
|
(2.8) |
||||||
дх, |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
dF |
|
= |
<7/<0; |
. |
|
|
|
|
|
|
|
|
(2.9) |
||
дК,- |
|
|
|
|
|
|
|
|
|||||||
q,h |
= 0 , |
\ |
> 0 . |
|
|
|
|
|
|
|
|
(2.10) |
|||
Эти условия м о ж н о интерпретировать следующим об |
|||||||||||||||
разом. Ввиду того что седловая точка |
является |
миними |
|||||||||||||
зирующей |
по |
отношению |
к |
к а ж д о й переменной |
xh |
она |
|||||||||
не может |
совпадать |
с точкой, у |
|
., |
dF |
^ п |
так |
как |
|||||||
которой |
-— |
< 0 , |
|||||||||||||
иначе |
функция |
|
могла |
бы уменьшаться |
|
dxt |
|
|
х,. |
||||||
|
с увеличением |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
dF |
|
|
|
|
|
Таким |
образом, |
в седловой |
точке |
^ 0 . В |
то |
ж е вре- |
|||||||||
|
|
|
|
|
|
|
|
|
|
dxt |
|
|
|
|
xt |
мя, если в седловой |
|
точке |
|
> 0 , |
то |
переменная |
dxt
достигает своего наименьшего значения, т. е.л-,- = 0 . Имен но об этом говорит условие (2.8).
94
Точно так же, в силу того что седловая точка |
д о л ж н а |
|||||||
быть максимизирующей т о к а ж д о й |
переменной |
А,у, нера |
||||||
венство |
> 0 |
невозможно, так |
ка к иначе |
|
функция |
|||
|
|
|
|
|
|
dF |
|
|
увеличивалась бы и д а л ь ш е . Таким |
образом, |
|
<С0, и |
|||||
строгое |
неравенство |
< О имеет |
место только |
тогда, |
||||
когда переменная |
Xf |
уменьшена |
до |
нуля. Об |
этом |
гово |
||
рит условие .(2.10). |
|
|
|
|
|
|
||
В заключение отметим, что условия теоремы |
К у н а — |
|||||||
Таккера |
не д а ю т |
алгоритма дл я |
вычисления |
искомого |
решения, а обеспечивают способом проверки предпола гаемого решения на оптимальность.
§ 2.3. Задачи квадратичного |
программирования |
|
|
З а д а ч и |
квадратичного программирования |
являются |
|
частным случаем з а д а ч нелинейного выпуклого |
програм |
||
мирования. |
Поэтому методы |
решения, р а з р а б о т а н н ы е |
для общей задачи выпуклого программирования, приме нимы и для квадратичных задач . Однако дл я их реше ния р а з р а б о т а н ы более эффективные специальные мето ды, учитывающие специфические особенности этих з а д а ч .
З а д а ч а квадратичного программирования |
формулиру |
||||
ется следующим образом: |
|
|
|||
mm Щ А Х , . + 2 i w f ) ; |
|
( 2 Л 1 > |
|||
|
;=і |
І=І |
/=і |
|
|
2«//*/< |
( ' = |
1. 2 , . . . , |
т ) ; |
(2.12) |
|
х ; > 0 . |
|
|
|
(2.13) |
|
К а к |
видно |
из приведенной формулировки, отличи |
|||
тельной |
особенностью этих |
з а д а ч являются |
линейность |
рграничений и квадратичная зависимость целевой функ ции от переменных.
Н и ж е будет показано, что для решения рассматри ваемой задачи может быть использован симплексный ме
тод. Однако, прежде чем переходить к этому вопросу,
95
д а д и м геометрическую интерпретацию задач е квадратич ного программирования . Причем эту интерпретацию рас смотрим для случая двух переменных. Очевидно, так к а к ограничения в квадратичной задач е линейны, то область
допустимых |
решений, т а к |
ж е как и в линейном програм |
мировании, |
представляет |
выпуклый многогранник. |
Р и с. 2.5.
Н а рис. 2.5 п о к а з а н этот многогранник |
для линейных |
|||||
условий задачи, рассмотренной в § 1.1. Пусть |
целевая |
|||||
функция имеет общий вид (xi—а)2+(Х2—Ь)2=с. |
|
З а д а ч а |
||||
состоит |
в том, |
чтобы найти |
ту |
точку многогранника, в |
||
которой |
целевая функция |
приобретает |
минимальное |
|||
(максимальное) |
значение. К а к |
видно из рис. 2.5, |
имеют |
|||
ся три |
возможности решения |
(для случая |
минимизации |
|||
целевой функции) . Искомые оптимальные |
точки |
обозна |
||||
чены через х*. Таким образом, |
если в линейном програм |
мировании оптимальное решение достигается в вершине многогранника, то в случае квадратичной функции цели оптимальное решение может находиться как на границе,
так и внутри области допустимых |
решений. |
||||
З а п и ш е м условие |
К у н а — Т а к к е р а |
для |
квадратичной |
||
задачи . С этой целью составим функцию |
Л а г р а н ж а : |
||||
п |
п |
п |
т |
п |
|
F(x, х) = 2 Р Л + |
2 2 |
W ) |
+ 2 |
М 2 |
anxi ~ bi)- |
,•=1 |
t = l |
j=l |
i=] |
1=1 |
|
С д е л а е м следующие |
обозначения: |
|
|
|
dF dF
Тогда |
будем |
иметь |
д л я |
vL и у} |
следующие |
значения: |
||||||
|
|
|
п |
|
|
т |
|
|
|
|
|
|
vt |
= P i |
+ |
221cifxj |
+ |
'VXiaii; |
|
|
|
|
|
||
|
п |
|
|
|
|
|
|
|
|
|
|
|
у і = |
2 |
а ч х і — b f |
|
|
|
|
|
|
|
|
||
Условия |
К у н а — Т а к к е р а |
будут |
иметь |
вид: |
|
|
||||||
|
|
|
п |
|
ні |
|
|
|
|
|
|
|
а) |
pi + 2yicijXj |
|
+ |
yiKiaijvi; |
|
|
|
|
|
|||
|
п |
|
|
|
|
|
|
|
|
|
|
|
б) Ъ а ч х 1 — ь і = Ур |
|
|
|
|
|
|
|
|||||
в) * , > 0 , |
|
> 0 , и г > 0 , А , ; . > 0 ; |
|
|
|
|
|
|||||
г) |
ад |
+ |
4 ^ / |
= |
0. |
|
|
|
|
|
|
|
Условия «а»—«в» образуют линейную систему у р а в |
||||||||||||
нений и неравенств. Условие «г» требует, чтобы из |
к а ж |
|||||||||||
дых двух ограниченных |
по знаку переменных xt |
и |
v-t (i/j |
|||||||||
и Х;) |
ПО крайней |
мере |
одна равнялась нулю. Всего пе |
|||||||||
ременных |
в |
линейной |
системе 2 (т + п). |
Следовательно, |
||||||||
все те решения |
системы |
«а»—«в», |
которые |
образуют |
||||||||
множество |
в о з м о ж н ы х |
решений уравнения «г», характе |
||||||||||
ризуются |
тем, что |
они |
имеют число переменных, отлич |
|||||||||
ных от нуля, равное т + п. Остальные |
переменные |
д о л ж |
ны быть равны нулю. Так как число ограничений в фор
ме равенств равно т + п, то, следовательно, |
допустимые |
решения н у ж н о выбирать среди базисных, |
удовлетво |
ряющих условию «г». Сказанное выше позволяет исполь зовать для решения линейной системы симплексный ме тод.
Итак, рассмотрим метод решения, опирающийся на использование идей 'симплексного метода линейного про граммирования . Этот метод предполагает запись ограни чений в форме равенств . Бели лее ограничения в рассмат риваемой задаче записаны в виде неравенства, как в (2.12), то преобразование последних в равенства можно выполнить путем введения новых переменных. Итак, мы будем р а с с м а т р и в а т ь задачу:
min f{xlt x2J..., хп}\
7 Л. П. Падалко |
97 |
|
Vа,.,.л7 = &,. (i = |
l, |
2 , . . . , |
ш); |
|
|
|
|
|
|
|
|
||||||||
|
X; |
> |
0. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отметим, что здесь |
п>т. |
|
|
|
|
|
|
|
|
|
|||||||||
|
Пусть нам удалось |
решить систему уравнений относи |
||||||||||||||||||
тельно т |
переменных, -скажем, Х\, х2, |
|
|
хт: |
|
|
|
|||||||||||||
|
|
|
|
|
п—т |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х ч |
= |
d |
i + |
2 |
|
(Я |
= 1 |
2 , |
. . . , |
т ) , |
|
|
|
|
(2.14) |
||||
|
|
|
|
|
ft=i |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
где |
zh |
= |
Л ' т |
+ Л . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Будем назьгвать, как и в линейном |
|
п р о г р а м м и р о в а |
|||||||||||||||||
нии, переменные, стоящие в левой части, |
базисными |
|
или |
|||||||||||||||||
зависимыми, |
|
а |
переменные |
в правой |
части |
— |
независи |
|||||||||||||
мыми, свободными. |
И з теории линейного |
|
программирова |
|||||||||||||||||
ния известно, |
что если |
п—т |
переменных |
|
в |
правой |
части |
|||||||||||||
приравнять нулю, то полученное решение |
называется |
ба |
||||||||||||||||||
зисным, |
для которого xq=dq |
и 2 f t = 0 . Базисное |
решение, |
|||||||||||||||||
полученное |
из равенства |
(2.14), |
является исходным |
д л я |
||||||||||||||||
решения |
з а д а ч и |
и з л а г а е м ы м |
ниже методом- |
|
|
|
||||||||||||||
|
В ы р а ж е н и е |
(2.14) позволяет |
представить / |
как |
функ |
|||||||||||||||
цию свободных переменных. К в а д р а т и ч н а я |
форма |
примет |
||||||||||||||||||
следующий |
вид: |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
Кх\< |
x-i-i ••• > хп) |
= |
fi(zlt |
|
z2 , |
... , z „ _ m ) |
= |
c0 0 -f- |
|
|
|||||||||
|
n—m |
|
|
n—m n—m |
|
|
|
|
n—m |
|
|
n—m |
|
|
|
|||||
+ 2 2 c0 A + 2 2 c"iziz" |
= (coo + S c o A ) + 2 (с л° + |
|
|
|||||||||||||||||
|
1=1 |
|
|
/,=1 |
i = l |
|
|
|
|
J = l |
|
|
/,=1 |
|
|
|
||||
+ |
УІ |
cmzi)zh |
= |
(coo + |
c o A |
+ |
••• + |
c0, „_,„?„_„,) |
1 + |
|
|
|
||||||||
+ |
(Сю |
+ |
|
С Ц Я І |
+ |
. . . + |
C|, |
п-тїп-тУг |
|
+ |
(C2 0 |
+ |
C2 1 2, |
+ |
. . . |
-f- |
||||
+ |
c2, |
n—m |
Zn—m) |
Zo - j - |
••• -f~ (Cn—m, |
0 |
~T" |
Cn—m, 1z |
l |
+ |
••• |
+ |
|
|
||||||
-f" Cn—m, |
n—m Zn—m) |
Zn—m, |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
где |
с й |
= |
сЛ . для Л, |
i = 0, |
1, 2, |
|
/г—/?г. |
|
|
|
|
|
|
98
Н е т р у д но убедиться, |
что в ы р а ж е н и е |
в скобках при zh |
|||||
есть не что иное, к а к ^ — |
• — — . В частности, дл я |
исходной |
|||||
|
|
2 |
дг„ |
1 |
|
|
|
|
|
|
|
|
|
|
|
точки |
(z f t =0, |
А = 1 , 2, |
я — т ) — |
• |
= с;о . |
Значе - |
|
ниє /і в исходной точке р а в н о |
с'т. |
|
|
|
|||
Условия |
К у н а — Т а к к е р а |
имеют |
следующий |
вид: |
|||
d f l |
- > 0 ; |
|
|
|
|
|
(2.15) |
дгк |
|
|
|
|
|
|
|
|
0. |
|
|
|
|
|
(2.16) |
Если выполняются эти условия, то решение является оптимальным. В самом деле, увеличение любой из сво бодных переменных приводит л и ш ь к увеличению f. А уменьшаться zu не могут в силу требования неотрица тельности переменных. Если ж е дл я некоторых перемен-
ных zh окажется —— < 0 , т. е. с м > 0, то можно умень-
шить fi, увеличив переменную 2 Л . Н о с изменением сво бодной переменной меняются и базисные переменные . В линейном программировании такое изменение независи мых переменных осуществляется до тех пор, пока к а к а я - либо базисная переменная не обратится в нуль.
Д л я квадратичной функции производная — — может
дгк
обратиться в нуль раньше, чем одна из базисных пере менных. В таком случае дальнейшее увеличение zh не целесообразно, та к как при этом функция / снова на чнет возрастать .
Рассмотрим с н а ч а л а случай, когда базисная перемен ная, например, Х\, обращается в нуль раньше, чем произ-
водная — — . В таком случае следует в соответствии с
дгг
•процедурой симплексного метода переменные Xi и z\ по
менять местами, т. е. Z\ перевести в |
р а з р я д базисных |
на |
|||
место Х\, |
а А'і — в р а з р я д переменных на место |
Z\. Таким |
|||
образом, |
базисными переменными |
теперь |
будут |
Z\, |
|
х2, х3, -., |
хт. Переменные хи 2 Ь г2 , |
г„-т |
будут рав |
||
ны нулю. Пр и этом переменная z{ |
выразится |
через |
но |
||
вые независимые переменные из равенства |
(2.14): |
|
Т- |
99 |