Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОДЫ ОПТИМИЗАЦИИ.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
632.32 Кб
Скачать

2.2.2 Метод Хука-Дживса

Один из наи­бо­лее из­ве­ст­ных ме­то­дов пря­мо­го по­ис­ка пред­ло­жен Ху­ком и Джив­сом (R. Hooke, T. A. Jeeves) в 1961 г. Идея ме­то­да за­ключает­ся в ис­сле­до­ва­нии ло­каль­ной то­по­гра­фии по­верх­но­сти и по­пыт­ке дви­гаться даль­ше, со­хра­няя то же на­пра­в­ле­ние, ко­то­рое при­ве­ло к са­мой ни­з­кой из най­ден­ных точек. Ес­ли это на­пра­в­ле­ние при­во­дит к ус­пе­ху, оно со­хра­ня­ет­ся, в про­тив­ном случае на ос­но­ва­нии ло­каль­но­го по­ис­ка вы­би­ра­ет­ся но­вое на­пра­в­ле­ние и т. д. Ал­го­ритм вы­гля­дит сле­ду­ю­щим об­ра­зом:

а) Вы­брать началь­ную точку x0 и шаг по ка­ж­дой пе­ре­мен­ной hi. Вычис­лить F0=F(x0).

б) Ис­сле­до­вать ло­каль­ное по­ве­де­ние F(x) в ок­ре­ст­но­сти x0, а имен­но:

– в качес­т­ве те­ку­щей точки x1 при­нять началь­ную точку x0.

– для всех i от 1 до N по­в­то­рить сле­ду­ю­щие дей­ст­вия:

вычис­лить , где ei – ве­к­тор еди­ничной дли­ны, сов­па­да­ю­щий по на­пра­в­ле­нию с ко­ор­ди­нат­ной осью xi. Ины­ми сло­ва­ми, от те­ку­щей точки ну­ж­но сде­лать шаг дли­ны hi по пе­ре­мен­ной xi при фи­к­си­ро­ван­ных значени­ях ос­таль­ных пе­ре­мен­ных.

ес­ли , пе­ре­не­сти те­ку­щую точку в но­вое по­ло­же­ние, т. е. , в про­тив­ном случае сде­лать шаг по xi в об­рат­ном на­пра­в­ле­нии: , и ес­ли этот шаг ока­жет­ся ус­пеш­ным, пе­ре­дви­нуть те­ку­щую точку.

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

в) Срав­нить точку x1, до­с­тиг­ну­тую по­с­ле ис­сле­ду­ю­ще­го по­ис­ка, с ис­ход­ной точкой x0. Ес­ли x1=x0, т. е. ни в од­ном на­пра­в­ле­нии не уда­лось до­бить­ся по­ни­же­ния функ­ции, сле­ду­ет умень­шить ве­личину ша­га ( ) и вер­нуть­ся к п. б) для по­в­то­ре­ния по­ис­ка.

г) Ес­ли по­с­ле ис­сле­ду­ю­ще­го по­ис­ка те­ку­щая точка сме­сти­лась (x1x0), по­про­бо­вать про­дви­нуть­ся даль­ше в том же на­пра­в­ле­нии, т. е. пе­рей­ти в точку x2=x1+(x1x0). Это на­зы­ва­ет­ся «шаг по об­раз­цу». Значение функ­ции в точке x2 не про­ве­ря­ет­ся (оно мо­жет быть ни­же или вы­ше значения в x1).

д) Вы­пол­нить ис­сле­ду­ю­щий по­иск от точки x2 (так, как опи­са­но в п. б). В ре­зуль­та­те бу­дет най­де­на точка x3. Срав­нить значения функ­ции в точках x1 и x3.

е) Ес­ли F(x3)<F(x1), при­нять x3 за но­вую те­ку­щую точку (x0=x2, x1=x3) и сде­лать шаг по об­раз­цу, т. е. пе­рей­ти к п. г). Ес­ли же F(x3)F(x1), то точки x2 и x3 от­вер­га­ют­ся, и про­дол­жа­ет­ся ис­сле­ду­ю­щий по­иск от точки x1 (x0=x1, пе­рей­ти к п. б).

Про­цесс за­канчива­ет­ся, ко­г­да ша­ги hi по всем пе­ре­мен­ным (по­сте­пен­но умень­ша­ю­щи­е­ся бла­го­да­ря пе­ри­о­дичес­ко­му вы­пол­не­нию п. в) ста­нут мень­ше за­дан­но­го пре­де­ла точно­с­ти.

2.2.3 Метод деформируемого многогранника Нелдера-Мида

Ме­тод Нел­де­ра-Ми­да (J. A. Nelder, R. Mead; 1965 г.) яв­ля­ет­ся раз­ви­ти­ем ши­ро­ко из­ве­ст­но­го сим­п­лекс-ме­то­да, пред­ло­жен­но­го Спенд­ли, Хек­стом и Хим­су­ор­том (W. Spendley, G. R. Hext, F. R. Himsworth) в 1962 г. Рас­смо­т­рим вначале клас­сичес­кий ва­ри­ант ме­то­да.

Сим­п­ле­к­сом в N-мер­ном про­стран­с­т­ве на­зы­ва­ет­ся пра­виль­ный мно­го­гран­ник с N+1 вер­ши­на­ми. На­при­мер, сим­п­лекс на пря­мой — от­ре­зок, на пло­с­ко­сти — пра­виль­ный тре­у­го­ль­ник, в 3-мер­ном про­стран­с­т­ве — те­т­ра­эдр и т. д.

От­прав­ной точкой ал­го­рит­ма яв­ля­ет­ся за­да­ние не­ко­то­ро­го началь­но­го сим­п­ле­к­са в про­стран­с­т­ве N пе­ре­мен­ных. Обоз­начим вер­ши­ны сим­п­ле­к­са x0, x1, , xN. Вычис­лим значения ми­ни­ми­зи­ру­е­мой функ­ции в вер­ши­нах сим­п­ле­к­са и обоз­начим их F0, F1, , FN, со­от­вет­ст­вен­но. Вы­бе­рем наи­боль­шее (худ­шее) из значений F0, F1, , FN; пусть это бу­дет Fh, а со­от­вет­ст­ву­ю­щая вер­ши­на — xh. Возь­мем грань сим­п­ле­к­са, про­ти­во­ле­жа­щую вер­ши­не xh, и оп­ре­де­лим ее центр как , т. е. как сред­нюю точку для N вер­шин, при­на­д­ле­жа­щих этой гра­ни. Бу­дем ис­кать точку, лучшую, чем xh, в на­пра­в­ле­нии от xh к цен­т­ру про­ти­во­ле­жа­щей гра­ни. Для это­го вы­пол­ним опе­ра­цию от­ра­же­ния, т. е. най­дем точку xr, зер­каль­но сим­мет­ричную xh от­но­си­тель­но про­ти­во­ле­жа­щей гра­ни сим­п­ле­к­са. Очевид­но, xr=xc+(xcxh). Ес­ли значение функ­ции в но­вой точке F(xr)<Fh, за­ме­ним вер­ши­ну xh на xr и по­лучим но­вый сим­п­лекс, в вер­ши­нах ко­то­ро­го сре­д­нее значение функ­ции улучшилось. Ес­ли же от­ра­же­ние не по­з­во­ля­ет добиться улуч­ше­ния худ­шей вер­ши­ны, то, очевид­но, раз­ме­ры сим­п­ле­к­са слиш­ком ве­ли­ки по срав­не­нию с рас­сто­я­ни­ем до ми­ни­му­ма. В этом случае про­из­во­дит­ся сокращение сим­п­ле­к­са: вер­ши­на xh со­хра­ня­ет­ся, а ос­таль­ные вер­ши­ны заменяются се­ре­ди­нами ре­бер, со­еди­ня­ю­щих их с xh, так что рас­сто­я­ния ме­ж­ду все­ми вер­ши­на­ми со­кра­ща­ют­ся в 2 раза. По­с­ле это­го вновь де­ла­ет­ся опе­ра­ция от­ра­же­ния и т. д. По­иск за­канчива­ет­ся, ко­г­да раз­ме­ры сим­п­ле­к­са ста­нут до­с­та­точно ма­лы­ми; в качес­т­ве окончатель­но­го ре­зуль­та­та мо­ж­но при­нять по­с­лед­нюю точ­ку xc ли­бо центр сим­п­ле­к­са.

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

Опе­ра­ция от­ра­же­ния у Нел­дера и Мида ста­ла бо­лее об­щей: xr=xc+·(xcxh), где – про­из­воль­ный ко­эф­фи­ци­ент от­ра­же­ния (>0). Кро­ме то­го, до­ба­в­ле­ны опе­ра­ции рас­тя­же­ния и сжа­тия мно­го­гран­ни­ка. Рас­тя­же­ние ис­поль­зу­ет­ся ана­ло­гично по­ис­ку по об­раз­цу в ме­то­де Ху­ка-Джив­са — ес­ли от­ра­же­ние при­ве­ло к зна­чи­тель­но­му улуч­ше­нию (значение в точке xr ока­за­лось мень­ше, чем во всех вер­ши­нах), то про­из­во­дит­ся до­по­л­ни­тель­ное сме­ще­ние от xr в том же на­пра­в­ле­нии: xe=xc+·(xrxc), где >1 – ко­эф­фи­ци­ент рас­тя­же­ния. Сжа­тие за­к­лю­ча­ет­ся в за­ме­не xr на точ­ку, ле­жа­щую по дру­гую сто­ро­ну гра­ни (т. е. вну­т­ри мно­го­гран­ни­ка): xr=xc+·(xhxc), где 0<<1 – ко­эф­фи­ци­ент сжа­тия. Сжа­тие при­ме­ня­ет­ся, ес­ли от­ра­же­ние при­ве­ло к ухуд­ше­нию зна­че­ния функ­ции по срав­не­нию с Fh.

На ка­ж­дом ша­ге вы­де­ля­ют­ся три вер­ши­ны мно­го­гран­ни­ка: xh, как и рань­ше — вер­ши­на, в ко­то­рой зна­че­ние функ­ции ма­к­си­маль­но («наи­худ­шая» вер­ши­на), xl — вер­ши­на, в ко­то­рой зна­че­ние функ­ции ми­ни­маль­но («наи­луч­шая» вер­ши­на), и xg — вер­ши­на, в ко­то­рой зна­че­ние функ­ции боль­ше, чем во всех дру­гих, за ис­к­лю­че­ни­ем xh (т. е. бли­жай­шая к xh по сте­пе­ни «пло­хо­с­ти»). Ком­би­на­ция опе­ра­ций от­ра­же­ния, рас­тя­же­ния, сжа­тия и со­кра­ще­ния для по­лу­че­ния сле­ду­ю­ще­го мно­го­гран­ни­ка за­ви­сит от срав­не­ния зна­че­ний функ­ции в вер­ши­нах xh, xg, xl и в но­вых точках xr и xe. Ло­ги­чес­кая схе­ма вы­бо­ра луч­шей точ­ки до­с­та­точно сло­ж­на, и мы не бу­дем рас­сма­т­ри­вать ее во всех де­та­лях (под­роб­но­сти мо­ж­но най­ти в кни­гах [12]). В про­цес­се по­ис­ка ми­ни­му­ма мно­го­гран­ник вы­тя­ги­ва­ет­ся в на­пра­в­ле­нии ус­пеш­ных ша­гов и сжи­ма­ет­ся в «не­пер­с­пек­тив­ных» на­пра­в­ле­ни­ях, что при­во­дит к ус­ко­рен­но­му дви­же­нию в сто­ро­ну об­ще­го по­ни­же­ния значений функ­ции. Пе­ре­ме­ще­ние мно­го­гран­ни­ка на­по­ми­на­ет по­ве­де­ние аме­бы; по этой при­чи­не про­це­ду­ра, ре­а­ли­зу­ю­щая ме­тод Нел­де­ра-Ми­да, по­лу­чи­ла на­з­ва­ние Amoeba.