kierunek poszukiwań
Transkrypt
kierunek poszukiwań
Metody optymalizacji nieliniowej (metody programowania nieliniowego) Ewa Niewiadomska-Szynkiewicz Instytut Automatyki i Informatyki Stosowanej 1 Ewa Niewiadomska-Szynkiewicz [email protected] Instytut Automatyki i Informatyki Stosowanej Pokój 572A 2 Problem optymalizacji • n - wymiarowa przestrzeń zmiennych (x1,...,xn) Rn • funkcja celu (oceniająca) f: Rn R Zadanie optymalizacji bez ograniczeń: wyznaczyć x* = arg min x f (x) które spełnia ograniczenia f(x) f * x*,1 x*,2 x x2 x1 3 Zastosowania Potrzeba optymalizacji pojawia się w większości praktycznych problemów… Planowanie Sterowanie i zarządzanie systemami Sieci Finanse, ekonomia, marketing Systemy środowiskowe ….. Zarządzanie danymi Rozpoznawanie wzorców Uczenie maszynowe Alokacja zasobów Przetwarzanie sygnałów Modelowanie zachowania ludzi …… 4 Historia optymalizacji Fermat (1626): twierdzenie o minimum funkcji bez ograniczeń. Lagrange (1789): problem z ograniczeniami równościowymi (mechanika). 18-19th Euler, Lagrange, Legendre, Hamilton, etc. : rachunek wariacyjny. Karush (1939), Kuhn-Tucker (1951): warunki optymalności. 1950-te (programowanie liniowe), 60-80-te (programowanie nieliniowe): większość algorytmów. 1950-te: początki obliczeń ewolucyjnych. Holand i Fogel 1967: algorytm genetyczny (GA). 1950-60-te: Bellman, Pontryagin, etc.: sterowanie optymalne (zastosowania inżynierskie). 1990-te: aproksymacja ciągła problemów kombinatorycznych. 5 Problem optymalizacji 1. Wybrać odpowiedni algorytm do rozwiązania zadania 1. Wybrać początkowe przybliżenie rozwiązania: x0 1. Znaleźć przybliżone rozwiązanie zadania optymalizacji (x*) o zadowalającej dokładności przy założonych nakładach obliczeniowych f(x) f * x*,1 x*,2 x 6 Rozwiązania - lokalne i globalne f(x) • Punkt x * jest minimum globalnym funkcji f w przestrzeni Rn, jeżeli x Rn : f (x ) f (x *) f * x*,1 • Punkt x * jest minimum lokalnym funkcji f w przestrzeni Rn, jeżeli istnieje takie otwarte otoczenie U Rn punktu x * , że x*,2 x x U : f (x ) f (x *) • Obszar przyciągania minimum lokalnego x *, to zbiór wartości x Rn , z których startując lokalny algorytm optymalizacji zbiega do tego minimum. 7 Interpretacja geometryczna funkcji różniczkowalnej Różniczkowalność funkcji w punkcie (x0, y0) oznacza, że istnieje w tym punkcie płaszczyzna styczna do wykresu tej funkcji w punkcie (x0, y0, f(x0,y0)) 8 Definicje Gradient funkcji f(x) w punkcie x0 (f(x) ma ciągłe pierwsze pochodne w x0) f ( x ) f ( x ) f ( x f ( x ) , ,.... x2 xn x1 0 0 0 0 ) T Macierz Hessego (hesjan) funkcji f(x) w punkcie x0 : (f(x) ma ciągłe drugie pochodne w x0) 2 f ( x0 ) 2 f ( x0 ) 2 f ( x0 ) , ,.... x x x x x x 1 2 1 n 1 1 0 2 0 H (x ) f (x ) ...... 2 0 2 0 2 0 f (x ) f (x ) f (x ) x x , x x ,.... x x n 2 n n n 1 9 Gradient – interpretacja geometryczna Gradient funkcji w punkcie wskazuje kierunek najszybszego wzrostu funkcji w tym punkcie. 10 Gradient – interpretacja geometryczna Gradient funkcji w punkcie jest prostopadły do poziomicy funkcji przechodzącej przez ten punkt 11 Przykłady Funkcja: f ( x) x 2 x1 x2 2 1 Gradient funkcji w punkcie x0 = [1, 2] f ( x ) 2 x1 2 x2 ,2 x T 1 [1, 2 ] 0 [6,2]T Macierz Hessego (hesjan) funkcji w punkcie x0 = [1, 2] 2 2 f (x ) 2 0 2 0 12 Definicja wypukłości funkcji Funkcję ciągłą f(x) na zbiorze x nazywamy wypukłą jeżeli: x1 , x2X t[0,1] f (tx1 (1 t ) x2 ) tf ( x1 ) (1 t ) f ( x2 ) 13 Lemat o wypukłości funkcji Funkcja różniczkowalna f(x) jest wypukła na zbiorze wypukłym X wtedy i tylko wtedy, gdy x, x X 0 f ( x) f ( x ) f ( x ), x x 0 0 0 Funkcja podwójnie różniczkowalna f(x) jest wypukła na zbiorze wypukłym X wtedy i tylko wtedy, gdy jej hesjan H(x) jest dodatnio półokreślony x X x , Hx 0 T Minima lokalne funkcji wypukłej są globalnymi. Wypukłość odgrywa kluczową rolę również w zadaniach niewypukłych. 14 Warunki konieczne optymalności Jeżeli funkcja f (x) jest różniczkowalna, to w każdym jej minimum lokalnym jest spełniony następujący warunek konieczny optymalności: f (x*) = 0 (warunek stacjonarności) x* - minimum lokalne 15 Warunki dostateczne optymalności • Jeżeli funkcja f (x) jest dwukrotnie różniczkowalna, to każdy punkt x spełniający poniższe warunki dostateczne optymalności: – f (x*) = 0 warunek stacjonarności – d T H(x*) d > 0, d 0 warunek ściśle dodatniej określoności hesjanu 2f (x*) funkcji celu (czyli funkcja f jest wypukła) jest minimum lokalnym funkcji f (x) 16 Warunki optymalności globalnej • Zazwyczaj należy oczekiwać, że zadanie optymalizacji globalnej jest źle postawione w sensie Hadamarda drobne zaburzenia danych mogą bardzo zmienić położenie x* • Użyteczne warunki optymalności globalnej są możliwe do sformułowania jedynie dla wąskich klas funkcji • Dla funkcji wypukłych każde minimum lokalne jest minimum globalnym • Dla funkcji ściśle wypukłych istnieje jedno minimum globalne 17 Ogólna postać algorytmu optymalizacji lokalnej bez ograniczeń – zadanie różniczkowalne f * minimize f ( x) : x R n • Założenie f(x) – funkcja różniczkowalna. • Start z punktu x Rn takiego, że f(x) 0. • Wyznacz nowy punkt xk+1 = xk + α d gdzie d Rn jest kierunkiem poprawy: < d, f(x) > < 0 α (0, +) oznacza długość kroku. jak daleko przesunąć się w kierunku d aby zagwarantować dla α f ( x k 1 ) f ( x k d ) f ( x k ) 18 Zbieżność algorytmów optymalizacji • Zbieżność lokalna a globalna efektywne algorytmy są zbieżne lokalnie f(x) A B f* przybliżenie x lokalnego rozwiązania x* x =lim i xi zależy od wyboru punktu startowego x0 • Szybkość zbieżności – co najmniej liniowa: ||xi+1 - x||/ ||xi - x||≤ c c (0,1) – kwadratowa: ||xi+1 - x||/ ||xi - x||2 ≤ C, C > 0 *,1 x 0,1 x x*,2 x 0,2 x i 10 | x -x | 0 algorytm zb. liniowo 10 10 -5 -10 algorytm zb. kwadratowo 10 10 -15 -20 0 2 4 6 numer iteracji i 8 19 10 Kryteria zatrzymania algorytmu Algorytm jest zatrzymywany jeśli punkt znajdzie się w zbiorze rozwiązań S. Nie ma uniwersalnych kryteriów zatrzymania dobrych dla każdego problemu i dla każdej metody optymalizacji. Praktyczne zasady: Zatrzymujemy algorytm gdy: 1. Bezwzględna odległość między wartościami punktów po wykonaniu M iteracji mniejsza od > 0 || xk M xk || 2. Względna odległość między wartościami punktów po wykonaniu M iteracji mniejsza od > 0 || xk M xk || || xk || 20 Kryteria zatrzymania algorytmu cd. 3. Po M iteracjach bezwzględna różnica wartości wskaźnika jakości mniejsza od > 0 f ( xk ) f ( xk M ) 4. Po M iteracjach względna różnica wartości wskaźnika jakości mniejsza od >0 f ( xk ) f ( xk M ) | f ( xk ) | 5. Dodatkowe kryterium zatrzymania dla metod korzystających z gradientu funkcji – jeśli gradient jest mniejszy od g 0 f (xk) g 6. Liczba iteracji osiągnęła maksymalną (założoną) wielkość k K 21 Metody programowania matematycznego (optymalizacji) klasyfikacja Metody programowania liniowego Metody programowania nieliniowego Wypukłego – metody optymalizacji lokalnej Niewypukłego – metody optymalizacji globalnej Bez ograniczeń Bez ograniczeń Z ograniczeniami Z ograniczeniami 22 Metody programowania nieliniowego bez ograniczeń (optymalizacja lokalna) Metody minimalizacji w kierunku Metody poszukiwań prostych (bezgradientowe i gradientowe) (bezgradientowe) Złotego podziału Interpolacja kwadratowa Testów jedno- i dwuskośnych Metody poprawy (bezgradientowe) Gaussa-Seidela Kierunków sprzężonych Powella Hooka Jevesa Rosenbrocka Neldera i Meada Metody kierunków poprawy (gradientowe) Metoda największego spadku Metoda Newtona Metody gradientu sprzężonego Metody zmiennej metryki 23 Metody programowania nieliniowego z ograniczeniami klasyfikacja Informacje o funkcji celu i ograniczeniach Metody bezgradientowe Metody gradientowe 24 Metody programowania nieliniowego z ograniczeniami klasyfikacja: sposób rozwiązania zadania Transformacja do zadania bez ograniczeń Transformacja zmiennych niezależnych Modyfikacja kierunku Modyfikacja kierunków dopuszczalnych Metoda rzutu ortogonalnego Modyfikacja funkcji celu Metody zewnętrznej funkcji kary Metody wewnętrznej funkcji kary Tworzenie ograniczonego sympleksu Metoda Complex 25 Metody poszukiwań prostych • Wykorzystują jedynie wartości funkcji celu, nie obliczają bezpośrednio ani nie estymują gradientu funkcji celu. • Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu otoczenia aktualnego przybliżenia rozwiązania (w danej iteracji). • Nie stosuje się minimalizacji w kierunku – długość skoku ustalana dla danego algorytmu (zmienia się adaptacyjnie). • Zalecane do stosowania w zadaniach z nieróżniczkowalną funkcją celu oraz podejściu symulacja-optymalizacja. • Charakterystyczne cechy metod: – Odporność i niezawodność – Mała efektywność (powolne dochodzenie do rozwiązania) 26 Metoda Hooka-Jeevesa • Pierwszy cykl minimalizacji: wzdłuż zestawu d 1, d 2, ... d n prostopadłych kierunków osi układu współrzędnych: z x 0 do x 1 • Pierwszy krok roboczy - w kierunku w 1= x 1 - x 0 doprowadza do x 2. • Drugi cykl minimalizacji: wzdłuż kierunków d 1, d 2, ... d n : z x 2 do x 3 • Drugi krok roboczy - w kierunku w 2= x 3 - x 2 doprowadza do x 4. • Itd. x2 x1 Krok roboczy istotnie poprawia zbieżność dla „ukośnych” zbiorów poziomicowych bez dodatkowych nakładów obliczeniowych. 27 Metoda Neldera i Meada (pełzającego sympleksu) • Jedna z bardziej popularnych metod poszukiwań prostych – prosta – rozsądnie skuteczna dla małych rozmiarów przestrzeni poszukiwań, chociaż bez dowodu zbieżności • Sympleks w Rn - wypukłe pokrycie n+1 punktów wraz z wnętrzem (np. trójkąt w R2) • Metoda NM w każdym kroku porządkuje wierzchołki w 1, w 2,...,w n+1 tak, by f (w 1) f (w 2) ... f (w n+1) • Środek ciężkości c najlepszych n wierzchołków w 1, w 2,...,w n n wyznaczany jest następująco: wi c i 1 n 28 Metoda N-M: krok roboczy Krok roboczy: odbicie w n+1 względem c: x r=c+ (c -w n+1), >0 a) Jeśli: f (w 1) f (x r) ... f (w n+1), to zastąpić w n+1 przez x r . Koniec. b) Jeśli f (x r) f (w 1) to ekspansja: x e=c+ (x r -c), >1 Jeśli f (x e) f (x r), to zastąpić w n+1 przez x e , inaczej przez x r . Koniec. c) Jeśli f(x r) f (w n), to kontrakcja (aż do uzyskania poprawy). Dla f (x r)f (w n+1): x c=c+(w n+1 -c), inaczej: x c=c+(x r -c), (0,1) Gdy f (x c )<min(f (x r),f (w n+1)) koniec w3 c w3 c w3 w3 xc xr xr c c xexr 29 xe Metody Poprawy (bezgradientowe) • Wykorzystują jedynie wartości funkcji celu, nie obliczają bezpośrednio ani nie estymują gradientu funkcji celu. • Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu przestrzeni w odpowiednio skonstruowanych kierunkach, tworzących bazę tej przestrzeni. • Realizowane jest poszukiwanie minimum w każdym z tych kierunków (zastosowanie wybranych, bezgradientowych metod poszukiwania w kierunku). • Zalecane do stosowania w zadaniach z nieróżniczkowalną funkcją celu. • Charakterystyczne cechy metod: – Stosunkowo odporne (jednak nie są zalecane w przypadkach niektórych postaci funkcji celu) – Oczekiwana efektywność większa niż w przypadkach metod poszukiwań prostych 30 Metody poprawy Ogólny schemat algorytmu: 1. Określ kierunek poszukiwań d k z punktu x k . 2. Znajdź współczynnik kroku k minimalizujący f w kierunku d k , tzn. k =arg min f (x k+ d k ). Minimalizacja może być zgrubna bądź dokładna. 3. Podstaw x k+1 =x+ k d k. Jeśli spełnione są warunki stopu: koniec. W przeciwnym razie przejdź do kroku 1 31 Metoda Gaussa-Seidla • Optimum znajduje się przez minimalizację funkcji celu względem kolejnych zmiennych x1,x2,...,xn, x1,x2,...,xn,... x2 x1 • Zaleta: prostota algorytmu, który naśladuje typowe postępowanie człowieka przy poprawianiu działania urządzeń - „jedną gałką na raz” • Wada: mała skuteczność przy „ukośnych” poziomicach funkcji celu • Zbieżność liniowa 32 Metoda Powella (kierunki sprzężone) • Pierwszy cykl minimalizacji: wzdłuż zestawu d 1, d 2, ... d n prostopadłych kierunków osi układu współrzędnych: z x 0 do x 1 • Zmiana zestawu kierunków: d 1=d 2, d 2=d 3 , ..., d n = x 1 - x 0 i minimalizacja wzdłuż d n dla uzyskania x 2 • Drugi cykl minimalizacji: wzdłuż kierunków d1, d2, ... dn: z x 2 do x 3 • Zmiana zestawu kierunków: d 1=d 2, d 2=d 3 , ..., d n = x 3 - x 2 itd. • Dla poprawy niezależności kierunków poszukiwań d 1, d 2, ... d n co n iteracji rozpoczyna się cykl minimalizacji wzdłuż kierunków osi układu współrzędnych. x2 x 33 Metody kierunków poprawy • Stosowane w zadaniach różniczkowalnych. Wykorzystują wartości funkcji celu oraz jej gradient, a czasami hesjan. • Wyznaczanie rozwiązania odbywa się w wyniku iteracji, polegających na przeszukiwaniu przestrzeni w odpowiednio skonstruowanych kierunkach poprawy funkcji celu, tworzących bazę tej przestrzeni. Wyznaczenie tych kierunków jest możliwe dzięki znajomości gradientu. • Realizowane jest poszukiwanie minimum w każdym z tych kierunków (zastosowanie wybranych metod poszukiwania w kierunku). • Charakterystyczne cechy metod: – Najefektywniejsze metody programowania nieliniowego bez ograniczeń – Zbieżność liniowa, a czasami kwadratowa 34 Metody kierunków poprawy Ogólny schemat algorytmu: 1. Określ kierunek poszukiwań d k z punktu x k . Kierunek spadku spełnia warunek: (d k)T f (x k)<0 2. Znajdź współczynnik kroku k minimalizujący f w kierunku d k , tzn. k =arg min f (x k+ d k ). Minimalizacja może być zgrubna bądź dokładna. 3. Podstaw x k+1 =x k + k d k. Jeśli spełnione są warunki stopu: koniec. W przeciwnym razie przejdź do kroku 1 35 Kierunki poszukiwań • Kierunek spadku spełnia warunek: (d k)T f (x ) < 0 co sprawia, że d k jest kierunkiem poprawy istnieje >0: f (x+ d k ) < f (x k ) 36 Algorytm najszybszego spadku x k+1 =x k + k d k , d k =-f (x k ) k =arg min f (x k+ d k ) Użyty kierunek spadku skutkuje bardzo wolną, liniową zbieżnością nawet dla kwadratowej funkcji celu. 37 x2 Przykład 2 2 Optymalizacja kwadratowej funkcji: f ( x) 21x1 38 x1 x2 21x2 f(x)=21*x2+38*x *x +21*x2 1 2.5 1 2 2 2 1.5 f(xk) 2 10 x0 0 10 1 -2 10 0.5 -4 10 x 0 -6 10 -0.5 -2.5 -2 -1.5 -1 -0.5 0 x1 0.5 -8 10 0 5 10 15 20 25 30 35 40 45 Nr iteracji k Kroki algorytmu w przestrzeni x1 x2 Zależność f (x k) od numeru iteracji k 38 Algorytm gradientów sprzężonych • Kierunek spadku: d k =-f (x k )+ d k-1 • Współczynnik powinien być mały z dala od optimum i rosnąć przy zbliżaniu się do x * Formuła Fletchera-Reeves’a: f ( x ) f ( x ) f ( x ) f ( x ) k t k k 1 t k 1 dk-1 xk dk -f(xk) dk-1 Formuła Polaka-Ribierre’a: f ( x ) f ( x ) f ( x ) f ( x ) f ( x ) k 1 k k 1 • • t t k k 1 Algorytm jest zbieżny w n krokach dla funkcji kwadratowej Dla bardziej nieliniowych funkcji gładkich można oczekiwać lokalnej zbieżności superliniowej 39 Przybliżanie wartości funkcji za pomocą szeregu Taylora f (x k 1 1 kT ) f ( x ) f ( x )d d H ( x k )d k , d k x k 1 x k 2 k k k kwadratowa liniowa 40 Algorytm Newtona i jego modyfikacja Motywacja algorytmu (rozwinięcie w szereg Taylora): f (x k 1 Stąd: 1 kT ) f ( x ) f ( x )d d H ( x k )d k , d k x k 1 x k 2 k k k 1 d H ( x ) f ( x k ), H ( x) 2 f ( x) k k Zalety: szybka (kwadratowa) asymptotyczna zbieżność; dla funkcji kwadratowych optimum w jednym kroku Wady: mały obszar zbieżności, w każdej iteracji potrzebny gradient, hesjan oraz rozwiązanie pomocniczego układu równań: H ( x k ) d k f ( x k ) 41 Modyfikacje algorytmu Newtona • Metody zmiennej metryki: Konstrukcja ciągu macierzy stanowiących przybliżenie odwrotności macierzy hesjanu (drugich pochodnych) funkcji celu w kolejnych punktach xk. Macierze te wyznacza się na podstawie zmian gradientu funkcji celu w poprzednich iteracjach metody. Metody nazywane metodami quasi-newtonowskimi. 42 Metody quasi-Newtonowskie Schemat algorytmów quasi-Newtonowskich (zmiennej metryki) 1. Wyznacz kierunek spadku: d k = -Qk f (x k ) 2. Wyznacz współczynnik kroku: k =arg min f (x k+ d k ) 3. Zaktualizuj macierz Qk (przybliżenie H-1 (x k )), np. za pomocą formuły Davidona-Fletchera-Powella (DFP): Q k 1 qk sk k k t k k k k t s ( s ) ( Q q )( Q q ) k Q k t k (q ) s (q k ) t Q k q k f ( x k 1 ) f ( x k ) x k 1 x k 43 Przykład: funkcja Rosenbrocka f(x)= 100*(x(2)-x(1)^2)^2+(1-x(1))^2 3000 o 3 2000 2 x 1000 1 0 0 -2 -1.5 -1 -0.5 0 0.5 1 x1 1.5 2 -1 x2 44 Algorytm Neldera-Meada Algorytm Neldera-Meada 3 Funkcja celu Algorytm Neldera Meada 2.5 2 4 10 x0 2 10 0 1 10 x -2 10 0.5 f(xk) x2 1.5 0 -0.5 -1 -2 -4 10 -6 10 -1 0 x1 1 Wykres poziomicowy 2 -8 10 -10 10 0 50 100 150 200 250 Nr iteracji k Numer iteracji 45 Davidona-Fletchera-Powella DFP DFP + mixed polynomial interpolation 3 2.5 2 x0 Funkcja celu x 1 DFP+mixed polynomial interpolation 4 10 0.5 2 10 0 0 10 -0.5 -1 -2 -1.5 -1 -0.5 0 0.5 1 x1 Wykres poziomicowy 1.5 2 f(xk) x2 1.5 -2 10 -4 10 -6 10 -8 10 0 5 10 15 20 25 30 Nr iteracji k Numer iteracji 46 Algorytm Newtona Gauss-Newton+mixed polynomial interpolation Gauss-Newton+mixed polynomial interpolation 3 2.5 2.5 2 x0 2 x0 1.5 1.5 1 1 0.5 0.5 0 0 -0.5 -0.5 -1 -2-1 -2 Funkcja celu Gauss-Newton and mixed polynomial interpolation 5 10 x x x2 x2 3 10 -5 f(xk) 10 0 -1 -1 0 x1 0 x1 1 10 2 1 Wykres poziomicowy -10 2 10 10 -15 -20 0 2 4 6 Nr iteracji k 8 10 12 Numer iteracji 47