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

1. Функции одной переменной

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

1.1 Поиск методом золотого сечения

Рис. 1. Локализация минимума

Пусть f(x) – не­пре­рыв­ная функ­ция не­за­ви­си­мой пе­ре­мен­ной x, об­ла­даю­щая по край­ней ме­ре од­ним ми­ни­му­мом. Пред­по­ло­жим, что за­да­но зна­че­ние ар­гу­мен­та x0, от ко­то­ро­го сле­ду­ет на­чать по­иск. Пре­ж­де все­го не­об­хо­ди­мо най­ти ко­неч­ный от­ре­зок [a, b], внут­ри ко­то­ро­го со­дер­жит­ся ми­ни­мум (и при­том един­ст­вен­ный). Эта часть ал­го­рит­ма но­сит на­зва­ние ло­ка­ли­зую­ще­го по­ис­ка. Вы­бе­рем не­ко­то­рый шаг h и вы­чис­лим зна­че­ние функ­ции в точ­ке x0+h. Ес­ли ока­жет­ся, что f(x0+h) < f(x0), то шаг сде­лан в пра­виль­ном на­прав­ле­нии; пе­ре­не­сем на­чаль­ную точ­ку в но­вое по­ло­же­ние и уве­ли­чим раз­мер ша­га в раз (обыч­но 2). В про­тив­ном слу­чае из­ме­ним знак h на об­рат­ный и по­пы­та­ем­ся дви­гать­ся в про­ти­во­по­лож­ном на­прав­ле­нии. Дви­же­ние в сто­ро­ну по­ни­же­ния про­дол­жа­ет­ся со все уве­ли­чи­ваю­щим­ся ша­гом до тех пор, по­ка зна­че­ние функ­ции в оче­ред­ной точ­ке не ока­жет­ся боль­ше пре­ды­ду­ще­го, т. е. воз­ник­нет си­туа­ция, по­ка­зан­ная на рис. 1. Ес­ли сме­ще­ние от x0 на шаг h как в по­ло­жи­тель­ном, так и в от­ри­ца­тель­ном на­прав­ле­нии при­во­дит к уве­ли­че­нию зна­че­ния функ­ции, то даль­ней­шие ша­ги не нуж­ны (ми­ни­мум ло­ка­ли­зо­ван на от­рез­ке [x0h, x0+h]).

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

x4

x1

x3

x2

Рис. 3

x1

x3

x2

Рис. 2

Итак, пусть ми­ни­мум ло­ка­ли­зо­ван, т. е. най­де­ны три точки x1<x2<x3 та­кие, что f(x1)>f(x2)<f(x3) (см. рис. 2). Мо­ж­но ут­вер­ждать, что ми­ни­мум на­хо­дит­ся ме­ж­ду x1 и x3, так что дли­на ин­тер­ва­ла не­оп­ре­де­лен­но­сти на пер­вом ша­ге рав­на L1=x3x1. Не бу­дем по­ка уточнять по­ло­же­ние точки x2; за­ме­тим лишь, что она сме­ще­на вле­во или впра­во от се­ре­ди­ны от­ре­з­ка, ко­то­рая от­мечена вер­ти­каль­ной пун­к­тир­ной ли­ни­ей. До­ба­вим но­вую точку x4, как по­ка­за­но на рис. 3, и вычис­лим значение функ­ции f(x4). Ес­ли ока­жет­ся, что f(x4)<f(x2), то ми­ни­мум на­хо­дит­ся на от­ре­з­ке [x1x2]; в про­тив­ном случае — на от­ре­з­ке [x4x3] (вто­рой ва­ри­ант изо­б­ра­жен на рис 3 пун­к­ти­ром). Ку­да же сле­ду­ет по­ме­с­тить точку x4? Ра­зум­но по­тре­бо­вать, что­бы но­вый ин­тер­вал не­оп­ре­де­лен­но­сти не за­ви­сел от то­го, ока­жет­ся f(x4) боль­ше или мень­ше, чем f(x2), т. е. что­бы ме­тод га­ран­ти­ро­вал по­сто­ян­ный ко­эф­фи­ци­ент со­кра­ще­ния от­ре­з­ка не­за­ви­си­мо от по­ве­де­ния функ­ции. Та­ким об­ра­зом, при­хо­дим к ус­ло­вию L2=x2x1= x3x4. Сле­до­ва­тель­но, точку x4 сле­ду­ет рас­по­ло­жить сим­мет­рично x2 от­но­си­тель­но се­ре­ди­ны от­ре­з­ка. При ана­ло­гичном вы­бо­ре сле­ду­ю­щей точки x5 (сим­мет­рично к x2 или x4 от­но­си­тель­но се­ре­ди­ны но­во­го от­ре­з­ка) дли­на ин­тер­ва­ла не­оп­ре­де­лен­но­сти L3=x3x2= x4x1.

Очевид­но, три по­с­ле­до­ва­тель­ных ин­тер­ва­ла не­оп­ре­де­лен­но­сти L1, L2 и L3 свя­за­ны сле­ду­ю­щим об­ра­зом:

L1=L2+L3 (1)

Требование постоянства коэффициента  сокращения интервала неопределенности на каждом ша­ге алгоритма записывается в виде:

. (2)

Отношение с учетом (1) можно представить как

,

то есть

или ,

откуда

(3)

Это из­ве­ст­ное от­но­ше­ние «зо­ло­то­го сечения» (це­лое так от­но­сит­ся к боль­шей из двух сво­их час­тей, как большая часть к мень­шей). Дли­ны ин­тер­ва­лов не­оп­ре­де­лен­но­сти L2 и L3 вы­ра­жа­ют­ся через L1 сле­ду­ю­щим об­ра­зом:

(4)

Та­ким об­ра­зом, точка x2 дол­ж­на де­лить от­ре­зок [x1x3] в от­но­ше­нии зо­ло­то­го сечения; точка x4 дол­ж­на та­ким же об­ра­зом де­лить от­ре­зок [x1x2] и т. д. Толь­ко в этом случае бу­дет обес­печена по­сто­ян­ная и ма­к­си­маль­но воз­мо­ж­ная ско­рость со­кра­ще­ния от­ре­з­ка не­оп­ре­де­лен­но­сти. При лю­бом дру­гом спо­со­бе вы­бо­ра по­с­ле­до­ва­тель­ных точек ста­биль­ность ре­зуль­та­тов не га­ран­ти­ро­ва­на. Воз­мо­ж­но, на не­ко­то­рых ша­гах про­дви­же­ние ока­жет­ся бо­лее бы­ст­рым, чем в случае зо­ло­то­го сечения, но эти ус­пеш­ные ша­ги не ком­пен­си­ру­ют не­из­бе­ж­ное за­ме­д­ле­ние схо­ди­мо­сти на ос­таль­ных ша­гах.

Рас­смо­т­рен­ный вы­ше ал­го­ритм уточне­ния по­ло­же­ния ми­ни­му­ма пу­тем по­с­ле­до­ва­тель­но­го де­ле­ния от­ре­з­ка в от­но­ше­нии  но­сит на­зва­ние ме­то­да зо­ло­то­го сечения. Он об­ла­да­ет ли­ней­ной схо­ди­мо­стью, так как по­греш­ность (от­ре­зок не­оп­ре­де­лен­но­сти) на n-м ша­ге, со­г­ла­с­но урав­не­нию (4), про­пор­ци­о­наль­на по­греш­но­сти пре­ды­ду­ще­го ша­га с ко­эф­фи­ци­ен­том про­пор­ци­о­наль­но­сти 10.61803