M eto dy o p ty m a liza cji M e to d y d et erm i ni s ty cz n e M et od y st oc h a sty cz n e b e z o gr an ic z eń z o gra n ic z en ia m i m e to d a M o nt e-c ar lo b ezg r ad ie n to w e g r ad ie nto w e b ez gr a d ien to w e g rad ie n to w e b ezp ośr ed n ie z m in im alizac ją m et od a s ym u lo w a n eg o w yŝ a rz an ia R o s en b r o ck a, G au s sa -S eid ela, g r ad ien tu p ro steg o, al go ry tm y g e n et yc z n e H o o k a -J eev e sa, S im p lek su N e ld er a i M ea d a, zło te go p o d zia łu, in ter p o lac yjn e. D av ies a-sw an n a C am p e y a, Po w ella, Z an g w illa, G au s sa -N ew to n a i n ajs zy b sz eg o s p ad k u, g r ad ien tu sp rzęŝ o n eg o, N ew to n a-r ap h s o n a, M arq u ard ta.
2 METODY POSZUKIWANIA EKSTREMUM BEZ OGRANICZEŃ Metoda złotego podziału Funkcja f(x) jest ciągła i posiada w przedziale [a, b] pojedynczy punkt stacjonarny. W celu znalezienia podprzedziału, w którym leŝy ten punkt stacjonarny trzeba obliczyć wartości funkcji w dwóch punktach przedziału. Utworzenie tylko jednego punktu x nie pozwala określić, w którym przedziale mieści się minimum. Dopiero po obliczeniu x 2 moŝna stwierdzić, czy minimum znajduje się w przedziale [x, b], czy w [a, x 2 ]. Rys. Jeden z punktów znajduje się zawsze wewnątrz nowego przedziału, tak więc w kolejnej iteracji wystarczy wyliczyć wartość funkcji w jednym punkcie. Algorytm "złotego podziału" zakłada, Ŝe wielkość nowy podprzedziałów będzie się zmniejszała o pewien stały czynnik τ. ZałóŜmy, Ŝe w bieŝącym przedziale [a (i),b (i) ] zostały wyznaczone dwie wartości funkcji celu w punktach x (i) oraz x (i) 2 naleŝących do tego przedziału, przy czym x (i) < x (i) 2. Punkty te spełniają zaleŝność: (i) (i) (i) (i) x2 -a b -x = = τ (i) (i) (i) (i) b -a b -a skąd: x (i) - a (i) = b (i) - x 2 (i).
3 Jeśli f(x 2 (i) ) > f(x (i) ) wówczas nowy przedział będzie : Wyznaczanie wartości τ : oraz b (i+) = x 2 (i), a (i+) = a (i), x 2 (i+) = x (i). (i+) (i) (i) (i) (i) (i) x2 -a x -a x2 -a = = = τ (i) (i) (i) (i) (i) (i) x2 -a x2 -a b -a x (i) - a (i) = b (i) - a (i) - (x 2 (i) - a (i) ). Wynika stąd, Ŝe - x (i) (i) a = 2 + = τ, czyli τ + τ = 0. (i) (i) 2 - τ x a Szukana wartość τ wynosi więc : 5 τ = 0,68. 2 Algorytm "złotego podziału" w punktach:. jeśli f(x 2 (i) ) > f(x (i) ), to : b (i+) = x 2 (i), x 2 (i+) = x (i), x (i+) = a (i) + ( - τ) (b (i+) - a (i) ). 2. jeśli f(x 2 (i) ) f(x (i) ), to : a (i+) = x (i), x (i+) = x 2 (i), x 2 (i+) = b (i) + ( - τ) (b (i) - a (i+) ). Po n - krotnych obliczeniach długość przedziału redukuje się do wielkości : Zalety: b (n) - a (n) = [b () - a () ] t n- DuŜa prostota oraz dobra zbieŝność. Wady: Niewielka szybkość zbieŝności przy duŝej dokładności.
4 Metoda interpolacji kwadratowej W otoczeniu minimum badaną funkcję moŝna zastąpić wielomianem drugiego stopnia: -szy sposób : 2-gi sposób : wartość funkcji jest wyliczana w trzech kolejnych punktach, przez które jest prowadzony wielomian interpolacyjny drugiego stopnia. Następnie określa się minimum tego wielomianu. Następnie punkt ten jest wprowadzany zamiast jednego z punktów początkowych. Procedura jest powtarzana do osiągnięcia załoŝonej zbieŝności. Niewłaściwa zamiana punktów moŝe doprowadzić do braku zbieŝności. najpierw wyznacza się przedział, w którym znajduje się minimum, a potem stosuje interpolację kwadratową. ZałóŜmy, Ŝe znamy wartości funkcji w trzech punktach a, b, c: f a (x a ), f b (x b ), f c (x c ), przy czym x a < x b < x c. Rys. 2 Wielomian interpolacyjny jest parabolą i ma postać : ( x-x )( x-x ) ( x-x )( x-x ) ( x-x )( x-x ) f ( x ) = f + f + f. ( )( ) ( )( ) ( )( ) b c a c a b a b c xa -xb xa -xc xb -xa xb -xc xc -xa xc -xb Warunkiem koniecznym istnienia w punkcie x min ekstremum jest warunek: a więc: i : f ( x ) = 0 x dla x=x min b c min a c min a b a b c xa xb xa xc xb xa xb xc xc xa xc xb min 2 x ( x +x ) 2 x ( x +x ) 2 x ( x +x ) f + f + f = 0. ( )( ) ( )( ) ( )( ) 2 2 2 2 2 2 ( xb -xc ) f a+ ( xc -xa ) f b+ ( xa -xb ) fc x min =. 2 ( x -x ) f + ( x -x ) f + ( x -x ) f b c a c a b a b c
5 Inna postać wzoru (zaproponowana przez Daviesa, Swanna i Campeya): L c a x m=x b, 2 fc 2f b+ fa pod warunkiem zachowania równych odległości L pomiędzy bieŝącymi punktami x a, x b, x c. f f Metoda interpolacji sześciennej Metoda najefektywniejsza, jednak wymagana jest znajomość pochodnej kierunkowej. Stosowana jest we wszystkich metodach gradientowych. Przebieg wartości funkcji aproksymujemy krzywą trzeciego stopnia. Rys. 3. Współczynniki a,b,c,r wyznaczane są z układu czterech równań: Poszukiwana wartość minimum x min : Y a = a x a 3 + b x a 2 + c x a + r Y b = a x b 3 + b x b 2 + c x b + r P a = 3a x a 2 + 2b x a + c P b = 3a x b 2 + 2b x b + c 2 2b+ 4b 2ac xmin= b ac 6a 2, gdzie: 4 2 0. Zazwyczaj korzysta się z równowaŝnej postaci zaleŝności: e= x x, a b 3 a b, 2 w= z Pa Pb b d= e P b P a + 2 w x = x d. min b b a Y Y z= + P+ P e, P+ w z,
6 METODY BEZGRADIENTOWE POSZUKIWANIA EKSTREMUM Metoda Hooka-Jeevesa Punkt minimalny x min jest granicą ciągu x 0, x, x 2,..., gdzie x 0 jest punktem początkowym. Występują dwa sposoby poruszania się: próbny : roboczy : badanie zachowania funkcji w pewnym niewielkim obszarze przez wykonywanie kroków próbnych wzdłuŝ wszystkich kierunków bazy ortogonalnej, przejście w określony sposób do następnego obszaru. Przejście do następnego obszaru następuje, gdy przynajmniej jeden z kroków etapu próbnego był pomyślny, to znaczy nastąpiło zmniejszenie wartości funkcji f(x). W przeciwnym wypadku etap próbny jest powtarzany przy zmniejszonym kroku. a) informacje wejściowe x 0 - punkt startowy ξ,ξ 2,...,ξ n - baza wektorów ortogonalnych, e - początkowa długość kroku, β - współczynnik zmniejszenia kroku, 0 < β <, ε - wymagana dokładność obliczeń, n - liczba zmiennych niezaleŝnych. Etap próbny: podstaw j = oraz oblicz wartość funkcji f(x 0 ) i podstaw pod F 0. 2 wykonaj krok próbny w kierunku ξ j : x j = x j - + e ξ j oraz oblicz f(x j ) i podstaw pod F. 3 jeŝeli F < F 0 to podstaw F w miejsce F 0 i przejdź do pkt.6. jeŝeli F F 0 to przejdź do punktu następnego (4 ). 4 wykonaj krok próbny w przeciwnym kierunku : x j = x j - 2eξ j, oblicz f(x j ) i podstaw pod F. 5 jeŝeli krok ten był pomyślny podstaw F w miejsce F 0. JeŜeli nie, to j = j + i wróć do (2 ). 6 zbadaj, czy j = n (wykonano kroki we wszystkich kierunkach bazy ortogonalnej). Jeśli nie, to j = j + i wróć do (2 ). JeŜeli tak, to: 7 Zbadaj, czy w wykonanym cyklu wystąpiły kroki pomyślne. JeŜeli tak, podstaw x j jako punkt bazowy x B i wykonaj etap roboczy. JeŜeli nie, to: 8 JeŜeli nie minimum, to: przy pierwszej iteracji zmień punkt startowy, a przy następnych zmniejsz długość kroku i wróć do poprzedniego punktu bazowego i do ( ). Etap roboczy: wykonaj krok roboczy : x 0 = x B + (x B - x B0 ) = 2 x B - x B0. 2 podstaw x B w miejsce x B0 i wróć do etapu próbnego.
7 Schemat działania opisanego algorytmu: - start 4 - etap próbny (x B ) 5 - etap roboczy 8 - etap próbny 9 - etap roboczy 3 - nie jest spełniony warunek (7 ), powrót do 8, zmniejszenie e. Kryterium zbieŝności : aktualna długość kroku e < ε.
8 Metoda Rosenbrocka Metoda ta jest dość podobna do metody Hooka-Jeevesa, gdyŝ równieŝ poszukujemy ekstremum w n wzajemnie ortogonalnych kierunkach. RóŜnica między tymi metodami polega na tym, iŝ tutaj kierunki te nie pozostają stałe, lecz ulegają zmianom w wyniku obrotu. Baza wyjściowa ξ.. ξ n tworzona jest najczęściej z wektorów jednostkowych (wersorów) układu współrzędnych kartezjańskich. Na wstępie wykonuje się po jednym kroku o długości e w kaŝdym z tych kierunków. Jeśli w danym kierunku uzyskujemy sukces, to zwiększamy długość kroku w tym kierunku, natomiast w przeciwnym wypadku, długość kroku mnoŝymy przez współczynnik -b z przedziału (0..), a więc wykonujemy krótszy krok w kierunku przeciwnym do danego. Procedura taka jest powtarzana aŝ do momentu, gdy wykonanie kroku we wszystkich n kierunkach daje efekt niepomyślny, czyli f(x j ) > f(x j- ) dla wszystkich j. W tej sytuacji jeŝeli jest spełnione kryterium na ekstremum, to procedurę moŝna uznać za zakończoną, w przeciwnym wypadku zaś wykonujemy algorytm obrotu współrzędnych i rozpoczynamy jej działanie od początku. Kryterium zbieŝności tej metody zaproponowane przez Rosenbrocka opiera się na załoŝeniu, iŝ bieŝący punkt moŝna uznać za minimum, jeśli w czasie pięciu kolejnych obrotów współrzędnych (i wykonaniu kroków we wszystkich ortogonalnych kierunkach po kaŝdym obrocie) nie wystąpił Ŝaden pomyślny krok. Jednak w realizacjach praktycznych ze względu na zbytnie przedłuŝenie czasu wykonywania procedury stosuje się zwykle znacznie prostsze kryterium narzucając z góry ilość iteracji. Po wykonaniu tej ilości iteracji porównuje się uzyskany wynik z oczekiwaniami i ewentualnie przyjmuje nową wartość ilości iteracji startując z ostatnio wyliczonego punktu. Współczynniki a, b naleŝy dobrać eksperymentalnie; w przypadkach rozpatrywanych przez Rosenbrocka jako optymalne wartości przyjęto a = 3 i b = 0,5.
9 Oznaczenia: x 0 - punkt startowy, ξ.. ξ n - baza wektorów ortogonalnych (dla dwóch zmiennych n = 2), e - początkowa długość kroku (wektor n-wymiarowy), a - współczynnik korekcyjny zwiększający wartość kroku (a > ), b - współczynnik korekcyjny zmniejszający wartość kroku (b < ). Algorytm: ) Obliczenie wartości funkcji w punkcie startowym i obliczenie wartości funkcji f(x j- + e j S j ) dla wszystkich kierunków bazy (j =.. n). Gdy f(x j- + e j ξ j ) < f(x j- ) to obliczamy sumę pomyślnych kroków : d j = d j- + e j, przy czym d 0 = 0, przesunięcie punktu x j = x j- + e j ξ j oraz zwiększamy krok (e j = a e j ). W przeciwnym przypadku zmniejszamy krok (e j = -b e j ) oraz podstawiamy x j = x j-. Krok ten jest powtarzany aŝ do momentu, gdy d j = 0 dla wszystkich j =.. n. JeŜeli nastąpiło to po jego jednokrotnym wykonaniu, to przechodzimy do punktu 2. 2) Zmiana punktu startowego x 0 i powtórzenie kroku. W przeciwnym wypadku, jeśli minimum nie zostało osiągnięte przechodzimy do punktu 3. 3) Wykonanie algorytmu obrotu ortogonalnego układu współrzędnych ξ i powrót do wykonywania kroku.
0
Algorytm obrotu współrzędnych: ) Wyznaczenie układu wektorów: q = d ξ + d 2 ξ 2 +... + d n ξ n q 2 = d 2 ξ 2 +... + d n ξ n... q n = d n ξ n 2) Ortogonalizacja tego układu przy zastosowaniu procedury Gram-Schmidta ν ν= q ξ= ν ν ν2= q2 ( q2, ξ) ξ ξ2= ν... n n n ( qn, ξ j) ξ j ξn j= ν ν= q = ν 2 2 n n ) Podstawienie znalezionego układu wektorów bazy ξ w miejsce poprzedniego. Warunkiem jednoznaczności przejścia jest, aby nie zachodziło d j = 0 dla j =.. n, gdzie d j jest sumą pomyślnych kroków wykonanych w j-tym kierunku. Spełnia się go poprzez odpowiedni sposób doboru długości kroku oraz stosowane kryterium oceny, czy osiągnięto minimum.
2 Metoda Gaussa-Seidela Minimalizacja funkcji f(x) wzdłuŝ ortogonalnej bazy ξ,ξ 2,ξ 3,..,ξ n. Jest to minimalizacja funkcji w kierunku. ZbieŜność metody : JeŜeli funkcja celu f(x) ma postać f(x) = /2 x T A x to metoda Gaussa-Seidela jest zbieŝna do punktu ekstremalnego x * wtedy i tylko wtedy, gdy macierz A jest dodatnio określona. Gradient funkcji: grad f(x) = A x, stąd przesunięcie punktu w i-tej iteracji wynosi na podstawie warunku koniecznego na istnienie ekstremum w kierunku: ( x λ ) ξ A ξ. T i i+ i i= 0 Z równania tego otrzymuje się λ i minimalizujące funkcję f(x) w kierunku ξ i : λ i = -a i x i / a ii, a i - i-ty wiersz macierzy A, a ii - odpowiedni element tej macierzy. Wartość funkcji celu w punkcie x i+ = x i + λ i ξ i wynosi : f(x i+ ) = f(x i ) + λ i ξ i T A x i + /2 λ i 2 a ii, a po podstawieniu poprzedniego równania: f(x i+ ) = f(x i ) - /2 λ i 2 a ii. Oznacza to, Ŝe wartość funkcji celu będzie malała w kolejnych iteracjach, gdyŝ a ii > 0 dla A dodatnio określonej. a) informacje wejściowe x 0 ξ,ξ 2,...,ξ n e 0 ε j ε 0 n - punkt startowy - baza wektorów ortogonalnych, - początkowa długość kroku, - wymagana dokładność obliczeń minimum w j-tym kierunku, - wymagana dokładność obliczeń globalnego minimum, - liczba zmiennych niezaleŝnych. b) Algorytm obliczeń dla j =, 2,..., n oblicz λ j minimalizujące f(x j - + λ j ξ j ) oraz współrzędne nowego punktu x j = x j - + λ j ξ j ; 2 jeŝeli kryterium zbieŝności nie zostało spełnione, podstaw x j w miejsce x 0 i wróć do ().
3
4 Metoda Daviesa, Swanna i Campeya (DSC) Jest to metoda Gaussa-Seidela uzupełniona o obrót współrzędnych. - występuje zmienna długość kroku, powiększana dwukrotnie przy krokach pomyślnych, - wyznaczanie minimum w kierunku występuje w oparciu o wzór dla interpolacji kwadratowej ( w przestrzeni wielowymiarowej połoŝenia x stają się wektorami x) x min 2 2 2 2 2 2 ( xb -xc ) f a+ ( xc -xa ) f b+ ( xa -xb ) fc =. 2 ( x -x ) f + ( x - x ) f + ( x - x ) f b c a c a b a b c Algorytm ten ma dobrą szybkość zbieŝności i jest stosowany we wszystkich metodach bezgradientowych. a) informacje wejściowe x 0 ξ,ξ 2,...,ξ n e ε n - punkt startowy - baza wyjściowa utworzona z wektorów ortogonalnych, - początkowa długość kroku, - wymagana dokładność obliczeń globalnego minimum, - liczba zmiennych niezaleŝnych. b) Algorytm obliczeń 0 Oblicz F 0 = f(x 0 ) dla j =, 2,..., n oblicz λ j minimalizujące f(x j - + λ j ξ j ) oraz zbiór x j = x j - + λ j ξ j ; 2 oblicz wektor przesunięć d = x 0 - x n, 3 jeŝeli dla j =,2,...,n d j > e j lub ε < d j < e j dokonaj obrotu układu współrzędnych i powtórz od kroku ( ), przy czym : jeŝeli d k < ε, k [, n], podstaw d k = 0 ε, lub: jeŝeli ε < d j < e j, podstaw e j = β d j. Kryterium zbieŝności moŝe być analogiczne jak w metodzie Gaussa-Seidela.
5 Metoda Powella Metoda Gaussa-Seidela jest bardzo wolno zbieŝna, gdy poziomice funkcji mają kształt wąskich, długich dolin. Poprawę szybkości moŝna uzyskać przez modyfikację kierunku poszukiwań. W metodzie DSC występował obrót układu współrzędnych wraz z bazą ortogonalną. Powell zaproponował, aby do istniejącej bazy wprowadzać na miejsce "starych" kierunków poszukiwań nowe, sprzęŝone do pozostałych. Dwa kierunki ξ i oraz ξ j są wzajemnie sprzęŝone względem dodatnio określonej macierzy A, jeśli: ξ i A ξ j = 0 dla i j. Kierunki sprzęŝone są liniowo niezaleŝne, co zapewnia jednoznaczność przekształcenia bazy kierunków poszukiwań. I wariant metody Powella (P). Procedura iteracyjna ma zbieŝność II rzędu, jeśli pozostaje w mocy następujące twierdzenie : Tw.I. Jeśli ξ, ξ 2,...,ξ n są wzajemnie sprzęŝonymi kierunkami poszukiwań względem A, a ponadto stanowią bazę rozpatrywanej przestrzeni, wtedy zaczynając w dowolnie wybranym punkcie x 0 moŝna wyznaczyć w skończonej liczbie kroków minimum formy kwadratowej: F = a + b T x + /2 x T A x
6 Dowód: Dowolny wektor w moŝna wyrazić wzorem: n i = ξ Aw w= αiξi, gdzie: αi= ξ Aξ ZałóŜmy, Ŝe po p iteracjach osiągnęliśmy punkt x p : p p= 0+ λi i i= x x ξ to wartość λ p+ minimalizującą funkcję f(x) wzdłuŝ kierunku ξ p+ moŝna określić z równania : p T T ( ) ξ p+ f xp + = 0, a więc podstawiając ξ p A + x0 λiξi λp + ξ p+ b + + + = 0 i= otrzymujemy λ ( + b) ξ Ax =, gdyŝ wyraŝenie = 0 z załoŝenia. T p+ p+ 0 T ξ T p+ A ξ p+ Aξ p+ λiξi Wynika stąd, Ŝe wartość λ p+ zaleŝy jedynie od połoŝenia punktu startowego x 0, natomiast sposób przejścia nie ma Ŝadnego znaczenia. Po n iteracjach otrzymuje się: x T i T i ( + b) ξ n T ξi Ax0 i n= x0, T ξ i n i Aξ = p + ale na podstawie dwóch pierwszych równań widać, Ŝe jest ono równowaŝne równaniu: x n = x 0 x 0 A - b = A - b, co oznacza, Ŝe osiągnięte zostało szukane ekstremum. i Tw.II. JeŜeli x 0 jest minimum w kierunku ξ oraz x jest równieŝ minimum wzdłuŝ tego samego kierunku, to kierunek (x - x 0 ) łączący te dwa minima jest sprzęŝony z kierunkiem ξ. Dowód: Z warunku koniecznego na ekstremum w kierunku mamy : ξ T (Ax + b) = 0 oraz ξ T (A x 0 + b) = 0, ξ T A (x - x 0 ) = 0 (warunek sprzęŝenia).
7 a) informacje wejściowe x 0 ξ,ξ 2,...,ξ n e 0 ε n - punkt startowy - baza wyjściowa utworzona z wektorów ortogonalnych, - początkowa długość kroku, - wymagana dokładność obliczeń globalnego minimum, - liczba zmiennych niezaleŝnych. b) Algorytm obliczeń : dla j =, 2,..., n oblicz λ j minimalizujące f(x j + λ j ξ j ) oraz współrzędne nowego punktu x j = x j - + λ j ξ j, 2 wyznacz składowe kierunku sprzęŝonego w myśl wzoru : ξ x x x n n+ = xn 3 przeprowadź minimalizację λ wzdłuŝ kierunku ξ n+ : f(x n + λ ξ n+ ) oraz wyznacz współrzędne nowego punktu startowego : x n+ = x n + λ ξ n+ x 0. 4 dokonaj modyfikacji kierunków poszukiwań wg zasady : ξ r+ ξ r dla r =, 2,...,n. JeŜeli nie minimum, powtarzaj od ( ). Kryterium zbieŝności. wykonywać procedurę tak długo, aŝ przesunięcie punktu będzie mniejsze niŝ 0.ε 0 (P A ), 2. obliczyć nowy punkt startowy mnoŝąc współrzędne P A przez 0 ε 0, 3. powtórzyć procedurę znajdując P B 4. znaleźć minimum funkcji na linii P A - P B P C, 5. zakończyć działanie, jeŝeli P A - P C oraz P B - P C < 0.ε 0, jeŝeli nie, to : 6. wyznaczyć nowe ξ k równe (P A - P C ) / P A - P C i włączyć je do bazy na miejsce ξ, 7. wrócić do pkt. Często poprzestaje się na warunku pkt. 0 0
8 Przebieg algorytmu Powella (P).
9 II wariant metody Powella (P2) W metodzie P w układach wielowymiarowych mogą powstawać kierunki liniowo zaleŝne. W metodzie P2 modyfikacja kierunków poszukiwań następuje dopiero po spełnieniu warunku : λ max 0,8, α gdzie: λ max - maks przesunięcie wzdłuŝ jednego z n kierunków poszukiwań ξ s, - wyznacznik macierzy utworzonej z n wektorów ξ i, α - całkowite przesunięcie po dokonaniu kolejnego obiegu. JeŜeli warunek ten nie jest spełniony, w nowym obiegu obowiązują poprzednie kierunki. Twierdzenie 3. JeŜeli kierunki ξ,..., ξ n są tak wybrane, Ŝe : ξ i A ξ i =, i =, 2,...,n to wyznacznik macierzy, której kolumnami są wektory ξ i osiąga wartość maksymalną wtedy i tylko wtedy, gdy kierunki te są wzajemnie sprzęŝone. Dowód: JeŜeli dany jest zbiór kierunków wzajemnie sprzęŝonych η,η 2,...,η n to z definicji : η i A η j = δ ij, i =, 2,..., n ; j =, 2,..., n ; gdzie δ ij jest deltą Kroneckera : 0 dla i j δij= dla i= j ZałóŜmy, Ŝe istnieje transformacja wiąŝąca {ξ} z {η} : ξ n i= Uijηj j= to z podanej wcześniej własności otrzymujemy : a w szczególności : n n n i j= U iku jlηαη k l= UikU jk k= l= k= ξ Aξ n k= U U =, i=,2,..., n. ik ik
20 Oznacza to, Ŝe wyznacznik macierzy U nie przewyŝsza i jest równy jedności tylko wówczas, gdy U jest macierzą ortogonalną. A więc ξ i A ξ j = δ ij, co oznacza, Ŝe kierunki ξ i są wzajemnie sprzęŝone. Kierunki ξ,..., ξ n naleŝy dobierać tak, aby wyznacznik macierzy był jak największy. Wyklucza to liniową zaleŝność pomiędzy nowoutworzonymi kierunkami. Ze starej bazy usuwa się kierunek ξ m, wzdłuŝ którego następuje największe przesunięcie punktu. ZałóŜmy, Ŝe x i jest punktem, w którym funkcja f(x) osiąga minimum w kierunku ξ i, przy czym: ξ i A ξ i =. Przesunięcie wzdłuŝ tego kierunku moŝna wyrazić : x i - x i ξ i = α i ξ i, gdzie x i - jest punktem odpowiadającym minimum wzdłuŝ kierunku ξ i -. Po wykonaniu całego obiegu : x n - x 0 = α ξ + α 2 ξ 2 +... + α n ξ n, gdzie x 0 - punkt startowy, x n - punkt wynikowy po zakończeniu obiegu. Zgodnie z zasadą tworzenia kierunku sprzęŝonego : x n - x 0 = µ ξ n + oraz ξ n + A ξ n + =. Oznacza to, Ŝe zamiana ξ i na ξ n+ powoduje pomnoŝenie wyznacznika macierzy kierunków przez α i / µ. Wybierać trzeba takie ξ m, dla którego przesunięcie α i jest największe. Zamiana ta ma sens tylko dla α i µ.
2 Informacje wejściowe : jak w metodzie P. Algorytm obliczeń : k = dla j =, 2,..., n oblicz λ k j minimalizując f ( x k j- + λ k j ξ k j ) i określ x k j = x k j- + λ k j ξ k j ; 2 określ α k = x n k - x k 0 i ξ k n + = ( x n k - x k 0 ) / α k oblicz λ k n+ minimalizujące f ( x k n + λ n+ k ξ k n+ ) i określ zbiór x k+ 0 = x k n+ = x k n + λ k n+ ξ k n+ ; 3 znajdź λ k s = max λ k j dla j =, 2,..., n a. jeŝeli λ k s k / α k 0,8 niech ξ k+ k j = ξ j dla j s, ξ k+ k+ s = ξ n+ i niech k+ = λ k s k / α k ; b. jeŝeli λ k s k / α k < 0,8 niech ξ k+ j = ξ k j dla j =, 2,..., n i k+ = k. Powtórz czynności od kroku zwiększając k = k +.
22 Metoda Zangwilla Metoda ta została opracowana ze względu na to, iŝ w pewnych przypadkach metoda Powella (dokładniej jej I wariant) nie posiada zbieŝności II rzędu. NaleŜało wówczas przed jej rozpoczęciem dokonać minimalizacji funkcji wzdłuŝ wszystkich kierunków ortogonalnej bazy początkowej. Dodatkowa modyfikacja polega tutaj na wprowadzeniu dodatkowego zbioru ortogonalnych kierunków poszukiwań, który pozostaje niezmienny w trakcie poszukiwań ekstremum (na wstępie identycznego ze zbiorem wektorów ξ.. ξ n ). Za kaŝdym razem przed wykonaniem pełnego obiegu (takiego jak w metodzie Powella) dokonuje się minimalizacji funkcji wzdłuŝ kierunku c t ze wspomnianego zbioru dla wartości od t = zmieniając ją cyklicznie o co jeden krok. JeŜeli efekt jest pomyślny (czyli przesunięcie α t jest róŝne od zera), to zostaje wykonany jeden obieg procedury Powella, w przeciwnym przypadku zaś zastępuje minimalizacja wzdłuŝ kolejnego kierunku c t+. Po n kolejnych niepomyślnych próbach wzdłuŝ kierunków c znaleziony punkt jest uznawany za minimum. Ta metoda posiada więc zbieŝność II rzędu. Jako kryterium zbieŝności przyjęto więc podobnie jak w metodzie Gaussa-Seidela uznawanie bieŝącego punktu za minimum, jeśli kolejne przesunięcia wzdłuŝ ortogonalnych kierunków c t dla t =.. n są mniejsze od z góry załoŝonej dokładności. Oznaczenia: x 0 ξ.. ξ n c.. c n e Algorytm: punkt startowy baza wektorów ortogonalnych (wyjściowa dla pętli Powella) baza wektorów ortogonalnych nie ulegająca zmianie w trakcie poszukiwań początkowa długość kroku ) Obliczenie λ n 0 minimalizującego f(x n 0 + λ n 0 ξn ) i określenie x n+ 0 = x n 0 + λ n 0 ξn 2) Podstawienie t = i rozpoczęcie iteracji k dla k = 3) Obliczenie α minimalizującego f(x n+ k- + αc t ) i ustawienie t = t + (jeŝeli t < n) lub t = (jeŝeli t = n). a) jeśli α jest róŝne od zera, to wówczas obliczamy x 0 k = x n+ k- + αc t oraz przechodzimy do kroku 4 b) jeśli α =0, powtarzamy krok 3, zaś w przypadku n-krotnego powtórzenia uznajemy punkt za minimum. 4) Dla j =.. n obliczamy λ j k minimalizujące f(x j- k + λ j k ξj k ) oraz określamy x j k = x j- k + λ j k ξ j k. Niech: ξ x x k k k n n+ n+ = k k xn xn + 5) Obliczenie λ n+ k minimalizującego f(x n k + λ n+ k ξ n+ k ) oraz określamy x n+ k = x n k + λ n+ k ξ n+ k. Modyfikacja kierunków zgodnie z ξ j k+ = ξ j+ k dla j =.. n. 6) Powtarzamy kroki począwszy od 3 podstawiając k = k+.
23
24 Metoda simpleksu Neldera i Meada Metoda ta powstała w 965 roku i jest często zwana metodą pełzającego simpleksu. Jest metodą numeryczną słuŝącą do minimalizacji funkcji w wielowymiarowej przestrzeni. Polega ona na utworzeniu w przestrzeni E n+ n - wymiarowego simpleksu o n+ wierzchołkach tak, aby moŝna było go wpisać w powierzchnię reprezentującą badaną funkcję celu. Jednowymiarowym simpleksem jest odcinek o dwóch wierzchołkach, simpleksem dwuwymiarowym jest trójkąt i ogólnie simpleksem n - wymiarowym o n+ wierzchołkach jest wielościan rozpięty na n+ wektorach bazowych. Współrzędne punktów simpleksu oznaczono jako x i. Na początku procedury wylicza się współrzędne punktów wierzchołkowych simpleksu x i (dla i =,..,n+) przy załoŝeniu pewnej odległości między tymi wierzchołkami. W następnych iteracjach dokonuje się przekształceń simpleksu tak długo, aŝ odległość pomiędzy jego wierzchołkami w pobliŝu poszukiwanego ekstremum będzie mniejsza od załoŝonej dokładności obliczeń e. To właśnie zostało przyjęte jako kryterium zbieŝności dla tej metody. PoniŜej opisano jeden z wariantów metody Neldera i Meada. opracowano na podstawie www.wikipedia.org
25 Wariant algorytmu Neldera-Meada. porządkowanie według wartości funkcji w węzłach: ( xlow)... ( xi)... ( xhigh) ( xlow= x, xhigh= x n ) f f f + 2. odbicie: wyznaczamy nowy punkt ( ) x= x+ α x x, r 0 0 high przy czym x 0 jest środkiem cięŝkości figury, za wyjątkiem węzła x high. Jeśli f( ) > f( ) f( ) x x x, to i wyznaczamy nowy simpleks z uŝyciem x r w miejsce x high. Idziemy do kroku. r low x x, wtedy 3. ekspansja: gdy f( r) < f( low) obliczamy e= 0+ γ( 0 high) Jeśli f( x) < f( ) e x x x x. x wyznaczamy nowy r simpleks z uŝyciem x e zamiast x high oraz idziemy do kroku. W innym przypadku wyznaczamy simpleks zawierający x r w miejsce x high, a następnie wracamy do kroku. 4. kontrakcja: gdy f( xr) f( xi), xi x wtedy wyznaczamy c= high+ ρ( 0 high) Jeśli f( c) f( high) high x x x x. x x wyznaczamy nowy simpleks zawierający x c w miejsce x high, po czym wracamy do kroku. W innym wypadku idziemy do kroku 5. 5. zmniejszanie: dla wierzchołków i wyznaczamy nowe współrzędne: σ( ), gdzie: { 2,... } x= x + x x + i low i low i n Idziemy do kroku. Standardowe wartości to: α =, γ = 2, ρ = /2, σ = /2.
26 Uwaga: α,ρ,γ oraz σ są odpowiednio współczynnikami odbicia, ekspansji, kontrakcji lub zmniejszenia. Ich typowe wartości wynoszą α =, γ = 2, ρ = /2 oraz σ = /2. W przypadku odbicia, jeśli x high jest wierzchołkiem o największej wartości funkcji, moŝemy oczekiwać znalezienia mniejszej wartości po odbiciu tego wierzchołka względem bryły (powierzchni) uformowanej z pozostałych wierzchołków. Podczas ekspansji, jeśli odbity punkt x r jest nowym minimum spośród wierzchołków, to moŝemy spodziewać się znalezienia interesujących wartości na linii od x o do x r. Odnośnie kontrakcji: jeśli f(x r ) > f(x i ) moŝemy się spodziewać, Ŝe lepsza wartość wystąpi wewnątrz simpleksu uformowanego przez wszystkie wierzchołki x i. Wybór początkowego simpleksu jest istotny, poniewaŝ zbyt mały moŝe powodować długie lokalne poszukiwanie. Oznaczenia: e - wymagana dokładność obliczeń, x high - wybrany punkt wierzchołkowy simpleksu spośród n+ wierzchołków x i, w którym wartość badanej funkcji osiąga maksimum, x low - wybrany punkt wierzchołkowy simpleksu spośród n+ wierzchołków x i, w którym wartość badanej funkcji osiąga minimum, x 0 - d - środek symetrii simpleksu z wyłączeniem punktu x high zdefiniowany jako: n x i i= x0=, xn + = x high n początkowa odległość pomiędzy wierzchołkami wyjściowego simpleksu α - współczynnik odbicia (α > 0), γ - współczynnik kontrakcji (0< γ <), ρ - współczynnik ekspansji (ρ > ), σ - współczynnik zmniejszenia (σ < ) n - liczba zmiennych niezaleŝnych. Wartości współczynników α, ρ, γ, σ dobiera się w sposób eksperymentalny, choć w przykładach rozpatrywanych przez autorów metody jako optymalne przyjęto wartości α =, ρ = 0,5, σ = 0,5 oraz γ = 2.