Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Падалко Л.П. Математические методы оптимального планирования развития и эксплуатации энергосистем учеб. пособие

.pdf
Скачиваний:
3
Добавлен:
23.10.2023
Размер:
6.49 Mб
Скачать

Г л а в а 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" Cnm,

n—m Zn—m)

Znm,

 

 

 

 

 

 

 

 

 

 

 

 

где

с й

=

сЛ . для Л,

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

Соседние файлы в папке книги из ГПНТБ