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

книги из ГПНТБ / Снапелев, Ю. М. Моделирование и управление в сложных системах

.pdf
Скачиваний:
11
Добавлен:
21.10.2023
Размер:
10.23 Mб
Скачать

Т р е т ь я т о ч к а

( т р е т ь е

п р и б л и ж е н и е ) .

 

 

 

 

 

 

 

 

1

 

5

 

 

 

 

I I I ““ 0| 5С3 — О,

2 ’ X i ~~ 0 *

 

 

 

 

 

 

 

 

16

 

 

 

 

 

Т е п е р ь

е д и н с т в е н н а я

в о з м о ж н о с т ь

у л у ч ш и т ь

з н а ч е н и е

Q(X)

с о с т о и т

в у м е н ь ш е н и и « ь П о с л е д н е е о с у щ е с т в л я е т с я д о т е х п о р ,

п о к а не

о б р а т и т с я в н у л ь х о т я б ы о д н а и з с л е д у ю щ и х п е р е м е н н ы х :

 

 

 

1

dQ _ 1

 

2

 

1

*3.

 

 

 

 

2 '

dui

3 +

3 Kl +

3

 

 

 

 

___1___ 1_

 

_2_

 

 

 

 

 

 

 

^2 =

3

3

И! "Ь 3

 

 

 

 

 

ИЛИ

 

 

 

 

 

 

 

 

 

 

 

Р а н ь ш е

д р у ги х п е р е м е н н ы х

о б р а т и т с я

в н у л ь

« 2

при

и , =

— - н " - .

П о э т о м у в м е с т о ut в в о д и м н е з а в и с и м у ю п е р е м е н н у ю к 2.

 

Ч е т в е р т а я т о ч к а

( ч е т в е р т о е

п р и б л и ж е н и е ) .

И м е е м :

 

 

 

 

 

 

 

 

 

 

 

Т а к

к ак пр ои зв од н а я о т Q ( X ) п о с в о б о д н о й п е р е м е н н о й

иг о б р а щ а е т ­

с я в

н ул ь , а п о о г р а н и ч е н н о й п е р е м е н н о й х3— п о л о ж и т е л ь н а ,

т о м и -

 

11

3

, х2=

1

н и м у м Q (X) = — -g-

р е а л и з у е т ся в т о ч к е х, = - у -

— - у >

* 3 = 0 . Э т о и е с т ь о п т и м а л ь н о е р е ш е н и е з а д а ч и . Р а в е н с т в о

д л я щ

180

з д е с ь н е о б х о д и м о д л я т о г о , ч т о б ы и с к л ю ч и т ь щ из д р у г и х с о о т н о ­

ш ений . Е с л и б ы п о т р е б о в а л с я е щ е о д и н и т е р а ц и о н н ы й ш а г , т о п е р е м е н н у ю щ и с о о т в е т с т в у ю щ е е р а в е н с т в о не с л е д о в а л о б ы у ч и ­ т ы в а т ь .

Е с л и о т д е л ь н ы е ш а г и в ы ч и с л е н и й п р е д с т а в и т ь с х е м а т и ч е с к и , т о

ц е л е с о о б р а з н о з н а ч е н и я в е л и ч и н

dgjt и Chi, в ы ч и с л я е м ы е

д л я к

а ж д о г о

п р и б л и ж е н и я , с в е с т и в т а б л и ц у .

В е р х н я я ч а с т ь т а б л и ц ы б у д е т

с о д е р ­

ж а т ь к о э ф ф и ц и е н т ы dgh и с о о т в е т с т в о в а т ь о б ы ч н о й

с и м п л е к с н о й

т а б л и ц е . Н а э т о м з а к а н ч и в а е т с я р а с с м о т р е н и е м е т о д а Б и л а . Б о л е е п о д р о б н о е и з л о ж е н и е м е т о д а м о ж н о н а й т и в с п е ц и а л ь н о й л и т е р а т у ­ р е ( с м . , н а п р и м е р , [5 6 ]).

Следующие три метода можно рассматривать как один с тремя частностями. Перечислим только их. В ме­ тоде Вульфа [28] для исследуемой задачи выписывается система условий Куна — Таккера [99]. Эта система со­ стоит из линейных условий и одного дополнительного нелинейного ограничения. Процесс осуществляется на основе симплексного метода, примененного к системе линейных ограничений, причем на каждом шаге допол­ нительное нелинейное ограничение соблюдается.

Метод Баранкина — Дорфмана [56] имеет много об­ щего с методом Вульфа, но применим не всегда.

Метод Франка и Вульфа [28, 56] проще, чем метод Баранкина — Дорфмана, использует только технику сим­ плексного метода и короче, чем метод Вульфа. Пожалуй, наиболее удобна комбинация методов Баранкина — Дорфмана и Франка — Вульфа.

Так как эти методы весьма известны и изложены во всех популярных учебных пособиях, то останавли­ ваться на них, по-видимому, не имеет смысла.

Прежде чем рассмотреть методы возможных направ­ лений, разберем сначала задачу безусловной миними­

зации. Мы

о ней вскользь упоминали,

когда говорили

о функции

Лагранжа. Ограничиваясь

одноэкстремаль­

ными задачами, следуя [174], рассмотрим общую схему численного поиска экстремума (минимума) f(x). В этих задачах всякий локальный экстремум, который решает задачу, является глобальным; как мы видели, к таким относится всякая задача выпуклого программирования. Процесс заключается в построении последовательности

таких точек {xk}o°°, что f(xh)>jmin■Последовательность k-*oo

эта строится рекуррентно: в каждой точке xk выбирает­ ся направление движения («спуска») sk, шаг спуска %h и вычисляется следующая точка xk+1:

Xk+l — Xh + 'khSh.

181

Если при этом процесс монотонный (спуск в полном смысле слова), т. е.

f (xk+i) < f (хк) ,

то он называется релаксационным, а Хи (если вектор sk

нормирован, т. е. |s,l|= l ) — множителем релаксации.

Очевидно, различные способы выбора направления спуска и шага спуска X определяют разные варианты метода.

-Перечислим несколько наиболее употребительных способов выбора направления, основывающихся на эври­ стических, интуитивных соображениях.

1. Покоординатное уточнение (метод Гаусса — Зей-

деля)— на каждом шаге меняется только одна коор­ дината вектора х в циклическом порядке их естественной нумерации, т. е.

s°==ei, s1= e2, ... , sn~1= en, sn — ei, ... ,

где el (i—1, n) — координатные орты.

2. Случайное покоординатное уточнение — координат­ ные орты перебираются не в постоянном циклическом порядке, а по «жребию», т. е. в зависимости от значения псевдослучайного gh, вырабатываемого на каждом шаге

иравномерно распределенного на интервале (0; 1). Если -1п 1 < < то s^— e1, т. е. за направление

спуска выбирается t-ый координатный орт н каждый из координатных ортов имеет равную вероятность стать направлением спуска на k-оч шагу.

Простота этих двух способов очевидна, но сущест­ вует возможность «заедания» в «овражной» ситуации. Кроме того, эти методы медленно сходятся и оценить теоретически скорость их сходимости весьма проблема­ тично.

3. Случайный выбор направления спуска: вектор sk (до нормировки) определяется координатами

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

[— 1, +1].

Этот метод теоретически не попадает в ловушки опи­ санного выше типа, но весьма трудоемок и также трудно оцениваем.

4. Градиентные методы спуска:

sft = grad/(xft) .

182

Поскольку градиент определяет направление быстрей­ шего изменения функции, то методы, базирующиеся на таком выборе направления спуска, должны сходиться быстрее методов типа 1.,2.,3 и скорость сходимости их может быть оценена, но имеются две существенные трудности в их применении.

Во-первых, предполагается гладкость f(x), т. е. су­ ществование у нее частных производных во всех точках, что практически не всегда реально. Во-вторых, даже, если градиент существует, его вычисление может ока­ заться слишком трудоемким, а это придется делать на каждом шагу.

Эти трудности вызывают конструирование методов следующих типов, существенно использующих накапли­ ваемую информацию о поведении функции, но не при­ меняющих вычисление ее производных.

5. Метод пробных шагов: вычисляются значения

f(x) во всех

точках x = xh±'kei, где i= 1,

п, после чего

выбирается

направление, отвечающее

минимальному

значению f(x), и в этом направлении

производится

спуск.

 

I

6. Метод Пауэлла: спуск производится не по фикси­ рованному, а по изменяемому набору направлений, определяемому накопленной информацией. В начале

процесса

sk — eh+\ где

k= 0, 1,

2, 3,

... , п—1; затем

строится

направление

sn = xnх°

(т.

е. направление от

начальной точки х° к точке хп, отвечающей минимуму, достигаемому за п шагов— один циклический этап про­ цесса) н выбирается новая начальная точка х° спуском по направлению sn. После этого процесс циклически повторяется для нового набора фиксированных направ­

лений: s°= s1, ..., sn~l= sn, снова строится

новое на­

правление sn+, = xnх° и т. д.

упрощения

Возможны различные

модификации и

этой идеи, например (во

избежание линейной зависи­

мости нового набора направлений, потери одного из старых направлений п вырождения — попадания в не­ которое подпространство Еп), спуск по избыточной си­

стеме векторов — я-координатных ортов

плюс конструи­

руемый после их просмотра вектор хпх° и т. п.

Заложенная в

этом

методе

идея

«самообучения»

[8, 55, 87, 90, 96]

может

быть

существенно обобщена.

После

выбора

направления

спуска

изучения функ­

ции f(x)

в силу замены x = xh + Xsk сводится к изучению

183

функции одного скалярного переменного фя(Х) = f{xk+ ksh).

Лучше всего было бы найти значение Kk=^h*, отвечаю­ щее ближайшему к Я = 0 минимуму фй(Л), и положить

=(эта величина называется множителем полной

релаксации; соответственно, если

Хйй*, то говорят

о неполной релаксации, а при

— о сверхрелакса­

ции).

 

Однако, поскольку общие методы точного решения задач отыскания минимума даже функции одного пере­ менного отсутствуют, для конкретизации алгоритмов необходимо указать способы выбора.

I. Решение уравнения ф&/ (Х )=0 методом Ньютона:

,р+1_о/>_ ^

*~ h Ф"*(Ь£) ‘

После получения значений, не отличающихся в пределах заданной точности (|я£+1— я£|<£й), процесс заканчивает­

ся и множитель релаксации определяется Лк = л£+1. Ве­

личина sjj может быть постоянной, но целесообразно уменьшать ее с ростом k.

II. Если фь"(А,) не всегда существует или трудно вы­ числяема, она может быть заменена простейшим раз­ ностным соотношением:

Г *

 

(* + “) - * '* ( * ) )

или, в силу малости

вблизи разыскиваемой точ­

ки, положив

 

ао= |фй'(Х) I.

 

 

получим процесс

 

дР+i =

хр_

Ф,Л^)-|Ф\(^)|

h '

h

Ф '^ + Н М ^ Ю -Ф '* ^ )

Как и в обычном методе Ньютона, легко показать квад­ ратичную сходимость этого процесса (т. е. |il£+1— Я£|<

, где 0 < р < 1 , 0) в некоторой окрестности

[30].

184

III. Если и вычисление ф;/(А) вызывает затруднения, то вместо производной фй'(А) можно рассмотреть функ­ цию

Фй (А) = фл ( А + T/j) — ■\ph ( А ) .

Если Ки— ближайший к нулю корень уравнения, т. е. если

0= фл (A) =Tpft(A+t/{) —ф(А) =ty'h(l)xk,

то

Aft+tft.

Поскольку

V (S )= 0 , £ = Afe*,

и, следовательно, мы получим, что первые корни урав­ нений

фй(А)=0 (А= Ай)

и

V ( A ) = 0 (А=Ай*)

отличаются не более, чем Тй: ] А&—Ай*|<Тй, причем тй мы можем выбрать заранее, по своему усмотрению. По своему же усмотрению можно выбирать в качестве А/{

либо множитель неполной релаксации Ай, либо множи­

тель сверхрелаксации Ай+ т*. Здесь же отметим, что вычислительная практика показывает, что весьма часто сверхрелаксация сходится быстрее. Итерационный Про­ цесс для приближения к Ай* принимает вид:

y(Af)-lT(Ag)l

** У(А£) + |?(А£)|-9(А£) ’

Все три рассмотренных метода не обязательно дают точ­ ку ближайшего к А = 0 минимума фй(А), а ближайший корень фй' = 0, т. е. стационарную точку, которая долж­ на еще проверяться на минимальность.

IV. Более примитивными, но зато и значительно менее трудоемкими на каждом шагу являются методы

отыскания

множителя А на основе «линейной»

тактики

(разгона

и

замедления). Здесь движение начинается

с некоторым

шагом A — h. Если

шаг успешен, т.

е.

 

 

фй(А+ Я)—фй(А)

6й<0,

 

то он увеличивается в а раз и движение продолжается. В противном случае (т. е. если это не первый шаг и,

185

следовательно, спуск уже имел место) имеем отрезок, где находится минимум (вдоль выбранного направле­ ния), уменьшаем шаг в (3 раз и продолжаем процесс

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

Таким образом, процесс распадается на два этапа — поиск отрезка [о, Ь\, на котором находится минимум Т(Я) (индекс k для простоты рассуждения опущен), и локализация минимума на этом отрезке.

Перенесем идеи метода спуска на задачу выпуклого программирования. Будем считать, что все функции f(X)

и £г(Х) (i= 1, tn) — выпуклые, т. е. область допустимых векторов — выпуклая, кроме того, всякий локальный минимум является глобальным. Для рекуррентности по­ строения релаксационной последовательности

= xk + XkSk,

k= 0, 1, 2, ..., xk,

e=R,

(2.49)

f ( * ft+1) < / ( * * )

 

(2.50)

необходимо, в отличие от поиска безусловного миниму­

ма, выполнение для направления sh не одного, а двух условий:

1) это направление должно вести из хк во внутрь области R;

2) это направление должно вести в сторону убыва­ ния функции f.

В рассмотренных выше методах спуска нужно было выполнить лишь условие 2).

Направления, удовлетворяющие условию 1), называ­ ются возможными, а возможные направления, удовле­ творяющие условию 2), называются подходящими.

Обозначим множество возможных направлений в точ­ ке хк через s(xh), а множество направлений, удовлетво­ ряющих условию 2), через р(хк). Тогда множество подходящих направлений является их пересечением, т. е.

П (xh) = s ( x k) П p(xh).

Выразим аналитически условия 1) и 2):

 

1)

g{xh + Xsh) ^ 0 при условии

 

 

£ (**)'< 0, 0<^Х<^,У(хк),

(2.51)

2)

/ (xh+ Xsk) < / (xh) при

 

0 < A , " ( x fc).

( 2 . 5 1 1

Условия Х^Х', Х^Х" означают, что соответствующие неравенства выполняются хотя бы для достаточно ма­ лых значений X. Необходимо обратить внимание, что множества s(xh) и р(хк), а следовательно, и II (xh) являются выпуклыми конусами (конусом называется множество, которое вместе со всякой точкой s содержит и любую точку Xs (Л]>0)).

Таким образом, методы возможных направлений представляют собой реализацию метода наискорейшего спуска [65, 66]. Кроме того, отметим, что методы воз­ можных (допустимых) направлений — это итерационные методы вычисления оптимума выпуклой (вниз) функции на выпуклом множестве. Одним из основателей метода является голландский математик Г. Зойтендейк, поэтому метод возможных (допустимых) направлений еще на­ зывают методом Зойтендейка [40].

В квадратичном программировании имеет место так­ же параметрический метод Хаутеккера [56], который основан на варьировании некоторого вспомогательного условия.

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

Существует много различных градиентных методов решения задач квадратичного программирования. Кро­ ме тех, которые были рассмотрены выше, заслуживают внимания методы Розена и Фриша [56]. Суть этих мето­ дов состоит в том, что при определении оптимума функ­ ции цели в качестве начальной точки может быть ис­ пользована любая точка, принадлежащая допустимой области. Дальнейшее движение происходит в направле­ нии градиента функции цели (с учетом ограничений), что обеспечивает значительно более быструю сходимость к решению.

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

Рассмотрим более подробно один из методов реше­ ния задачи квадратичного программирования, принад­ лежащий Розену [28]. Это градиентный метод с так называемой симплексной коррекцией. Его процедура состоит в построении последовательности точек Z0,

187

Z1, Z2, ... многогранника ограничений, сходящейся к решению задачи. При этом строится вспомогательная последовательность вершин многогранника Х°, Х\ Хг.......

которые используются в процессе; они получаются при использовании определенным образом симплексного ме­ тода. Вначале пусть Х° будет вершиной многогранника, примем также, что Z°=Z°. Предположим, что t шагов метода сделано. Тогда известны точка Z(, принадлежа­ щая многограннику, и его вершина X1. Затем:

(I)

Вычисляем

 

V / ( Z ‘).

(II)

Используя временно V /(Z <) как постоянный

вектор и X1 как начальную угловую точку, сделаем один шаг симплексного метода как при максимизации линей­ ной функции Vf(Zt)Xt и получим новую угловую точку; назовем ее Xt+i.

(III) Найдем максимум функции f(X) на отрезке [Z*, Z*+!] и примем эту точку за Z ^ 1. Эта последователь­ ность шагов определяет рекуррентный процесс построе­ ния основной последовательности Z°, Z1, ...

Решить одномерную задачу максимизации, которая необходима в пункте (III), нетрудно. Специальное при­ ложение симплекс-метода к шагам (I) и (II) также нетрудно; при подходящем обращении работа шага (II) не намного больше, чем исключение, которое проводит­ ся в одном шаге симплекс-метода для задач, имеющих постоянно фиксированные цены. Следует упомянуть, что в случае, когда многогранник условий не ограничен, возможно появление неограниченного симплексного ша­ га на этапе (II). Необходимо только слегка изменить этап (III), чтобы метод остался применим и в этом случае.

Имеется следующая оценка скорости сходимости. Пусть М — максимальная величина f(X) при ограниче­ ниях задачи, тогда существует константа L такая, что

M - f ( Z ‘) < 4 -

К сожалению, маловероятно окончить процесс на точном решении задачи, хотя в случае квадратичной целевой функции оно получается; в этом случае суще­ ствуют и другие точные методы. С другой стороны, этот

188

факт не имеет значения, если последовательность по­ падает с удовлетворительной скоростью в малую окрест­ ность точки, дающей точное решение задачи [28].

В задачах выпуклого программирования [100], как

ив задачах линейного программирования, исследование

исравнение допустимых вариантов решения может быть упорядочено. В задачах невыпуклого программирования этого в общем случае сделать нельзя. Если в линейной или в выпуклой задаче решение начинается с анализа некоторого варианта, который по счастливой случайно­ сти оказался оптимальным, то это может быть сразу установлено, и процесс решения задачи на этом закан­ чивается. Если исходный вариант не оказался оптималь­ ным (это устанавливается при помощи специального критерия оптимальности), то может быть указан путь перехода к очередному варианту, на котором значение показателя качества решения ближе к оптимальному, чем на предыдущем варианте. Таким образом, в выпук­ лом программировании может быть установлен упорядо­ ченный перебор вариантов, радикально сокращающий трудоемкость поиска экстремума. Задачи с огромным чи­ слом «подозреваемых» на экстремум вариантов (поря­ док 101(Ч -10100) решаются на современных ЭВМ в тече­ ние минут или часов.

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

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

189

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