![](/user_photo/_userpic.png)
книги из ГПНТБ / Снапелев, Ю. М. Моделирование и управление в сложных системах
.pdfТ р е т ь я т о ч к а |
( т р е т ь е |
п р и б л и ж е н и е ) . |
|
|
|||||||
|
|
|
|
|
|
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