Metody poszukiwania minimów lokalnych funkcji Minimalizacja lokalna: poszukiwanie minimum najbliższego punktowi początkowemu. Przykładem jest znajdowanie lokalnych minimów energii. Minimalizacja globalna: poszukiwanie najmniejszej wartości funkcji w danym obszarze. Przykładem jest teoretyczne przewidywanie najstablilniejszych struktur krystalicznych, struktur natywnych białek, itp. f(x) punkt początkowy minimum lokalne minimum globalne x
Wybrać przybliżenie początkowe x(0). Ogólne zasady algorytmów znajdowania minimów lokalnych funkcji wielu zmiennych: Wybrać przybliżenie początkowe x(0). W p-tej iteracji ustalić kierunek poszukiwań d(p). Zlokalizować minimum funkcji na kierunku poszukiwań otrzymując x(p+1). Jest to problem minimalizacji funkcji jednej zmiennej. Zakończyć proces, jeżeli została osiągnięta zbieżność lub osiągnięto maksymalną liczbę iteracji. x2 x(0) f(x(p)+td(p)) x(2) x(1) x* d(2) d(1) x1 a* a
Metody poszukiwania minimum w kierunku (minimalizacja lokalna funkcji jednej zmiennej) Metody bezgradientowe (wykorzystują tylko wartości funkcji). Metoda złotego podziału. Metoda aproksymacji parabolicznej (Hartleya). Metody gradientowe (wykorzystują wartości funkcji oraz co najmniej wartość pochodnej kierunkowej w kierunku poszukiwań dla t=0). Metoda ekspansji i kontrakcji przedziału. Metoda aproksymacji kwadratowej dwupunktowej (quadratic line search). Metoda aproksymacji sześciennej trójpunktowej (cubic line search).
Metoda złotego podziału Lemat: Jeżeli funkcja f(x) jest unimodalna (posiada tylko jedno minimum) w przedziale [a,b] to dla określenia podprzedziału, w którym leży punkt stacjonarny należy obliczyć wartość funkcji w dwóch punktach tego przedziału oprócz końców przedziału. f(x) f(x) a x1 x2 x b a x1 x2 x b Jeżeli dla a<x1<x2<b zachodzi f(a)>f(x1) i f(x1)<f(x2) to minimum znajduje się pomiędzy a oraz x2; jeżeli zachodzi f(x2)<f(x1) i f(x2)<f(b) to minimum znajduje się pomiędzy x1 i b. Te obserwacje stanowią podstawę zawężania przedziału, w którym zawarte jest minimum.
W metodzie złotego podziału chcemy żeby przedział był zawężany w tym samym stosunku a w każdej iteracji. Musi zatem zachodzić: Załóżmy, że minimum jest pomiędzy a i x2. Wtedy mamy:
Aproksymacja paraboliczna f(x) (xa,fa) (xc,fc) (xb,fb) x (xm,fm)
Algorytm aproksymacji parabolicznej: Jeżeli f(0)-f(t0)>0 to trójkę (t1,t2,t3) konstruujemy jako (0,t0,(1+k)t0), jeżeli nie to (-kt0,0,t0). Sprawdzamy, f’’>0. Jeżeli tak to aproksymujemy minimum parabolą przchodzącą przez (t1,t2,t3) jeżeli nie to wykonujemy ekspansję przedziału: (t1,t2,t3) := (t1+k(t1-t2),t1,t2) lub (t1,t2,t3) := (t2,t3,t3+k(t3-t2))
Metoda ekspansji/kontrakcji przedziału z testem jednoskośnym Zakładamy, że f’(0)<0 (metoda kierunku poprawy) Przyjmujemy początkwą wartość t. Jeżeli f(t)£f(0)+bf’(0)t (0<b<0.5) to następuje ekspansja przedziału w stosunku k (tj. t:=kt); proces ten powtarza się aż f(t)>f(0)+bf’(0)t. Jeżeli f(t)³f(0)+bf’(0)t (0<b<0.5) to następuje kontrakcja przedziału w stosunku k (tj. t:=t/k); proces ten powtarza się aż f(t)<f(0)+bf’(0)t. Stosowany tu test zakończenia nazywa się testem jednoskośnym.
Metoda aproksymacji parabolicznej dwupunktowej z testem jednoskośnym lub dwuskośnym Wybieramy maksymalny krok tm, że Jeżeli f(tm)>f(0)+f’(0)tm, aproksymujemy funkcję parabolą wykorzystując wartości funkcji w 0 i tm oraz wartość pochodnej w zerze: W przeciwnym wypadku przyjmujemy t*=tm. 3. Jeżeli f(t*)<=f(0)+bf’(0) kończymy iterację. Test dwuskośny:
Metody podstawowe kierunków poprawy Metoda Gaussa-Seidla (bezgradientowa). Metoda największego spadku (gradientowa). Metoda Newtona (gradient i hesjan). x2 Ilustracja metody Gaussa-Seidla x1
Metoda Gaussa-Seidla (bardzo wolna zbieżność liniowa) Metoda największego spadku (zbieżność liniowa) Metoda Newtona (zbieżna kwadratowo ale kosztowna i nie zawsze stabilna)
Hybrydą metody Gaussa-Seidla oraz metody największego spadku lub Newtona jest metoda relaksacji grupowej zaproponowana przez Schechtera. W metodzie tej wybiera się w każdej iteracji kierunek odpowiadający tylko części zmiennych (podobnie jak w metodzie Gaussa-Seidla) ale wybiera się go w tej podprzestrzeni zgodnie z wzorem metody największego spadku lub metody Newtona. Metoda ta była stosowana w pakietach MM* i AMBER*; polagała na kolejnym uzmiennianiu współrzędnych poszczególnych atomów. Najefektywniejsze są tzw. metody quasi-newtonowskie, w których w kolejnych iteracjach konstruuje się przybliżenie odwrotności hesjanu.
Metoda Davidona-Fletchera-Powella (DFP) Podstawowym założeniem metody jest, że macierz S złożona z kolejnych kierunków poszukiwań [d(1),d(2),…,d(n)] diagonalizuje hesjan funkcji f w minimum.