Prosta gradientowa metoda wyszukiwania maksimum (hill-climbing) Zawsze poruszaj się w kierunku największego wzrostu funkcji Łatwe w zastosowaniu, nie wymaga duŝo pamięci Jest podstawą innych metod gradientowych Problemy metody gradientowej Łatwo moŝe utknąć: lokalne maksima (minima) obszary płaskie o małym lub zerowym gradiencie objective function shoulder global maximum local maximum "flat" local maximum current state state space Lokalne minima. Plateaux, czyli równiny. Wąskie grzbiety. W niektórych problemach mogą pomóc wielokrotne starty z przypadkowych punktów. Poprawa prostej metody gradientowej Obszary płaskie Dozwolone ruchy w bok, ale ostroŝnie: ograniczenia, aby nie były to ruchy wyłącznie w bok Lokalne maksima Losowy restart: kolejne próby z róŝnych pozycji początkowych - dobre wyniki, ale bardzo czasochłonne wspinaczka w kierunkach losowych - wybieraj jeden z grupy punktów otoczenia powyŝej aktualnej pozycji Metoda gradientowa - wniosek Algorytm, który uniemoŝliwia zejście do punktu poniŝej aktualnego jest niekompletny - łatwo moŝe zostać zablokowany w lokalnym maksimum Ponowny start w losowo dobranym punkcie jest bardzo czasochłonny Pomysł: Algorytm który co pewien czas robi błędne posunięcia będzie miał szansę zejść z lokalnego maksimum Pomysł - dopuszczalne błędne ruchy S to pozycja początkowa, a V=Eval(S) jej wartość funkcji celu S x to losowo wybrana kolejna pozycja, i odpowiednio V x =Eval(S x ) JeŜeli V<V x to S=S X (nastąpiła poprawa - ruch w górę) w przeciwnym razie: takŝe S=S x z prawdopodobieństwem p (ruch na dół) Powtarzaj, aŝ do osiągnięcia kryterium zakończenia dr inŝ. Stefan Brock 27/28 1
Jak dobrać prawdopodobieństwo p złego ruchu Pomysł 1: Wartość stała ( p =.1 )? Pomysł 2: Malejące z czasem (na początku się częściej błądzi) Pomysł 3: Malejące z czasem, ale rosnące z róŝnicą V-V x (spadek ze stromej pochyłości) Motywacja fizyczna -wyŝarzanie Zasada przeprowadzania wyŝarzania symulowanego została zaczerpnięta z metalurgii: kawałek metalu jest ogrzewany (atomy są wzbudzone termicznie), a następnie pozostawiany do powolnego ostygnięcia. Powolne i regularne chłodzenie się metalu pozwala atomom na obniŝenie poziomu swej energii do momentu znalezienia się w stanie metastabilnym (o minimalnej energii). Gwałtowne ochłodzenie zamroziłoby je na przypadkowych pozycjach, na których aktualnie by się znajdowały Otrzymana w rezultacie struktura metalu jest silniejsza i bardziej stabilna. Zamiast minimalizowania energii bloku metalu program symulowanego wyŝarzania minimalizuje lub maksymalizuje funkcję celu V=Eval(S) związaną z problemem. Ta funkcja pełni rolę energii. Gdy V x >V to zawsze S=S x Gdy V x <V to przyjmij S =S x z prawdopodobieństwem: Exp (-(V-V x ) /T ) Rozkład Boltzmana p =Exp (-(V-V x ) /T ) T> jest parametrem - odpowiednik temperatury. Działanie algorytmu rozpoczyna się od wysokich temperatur, a potem temperatura jest obniŝana Gdy T jest bliskie, to p jest teŝ bliskie Właściwości symulowanego wyŝarzania JeŜeli T maleje wystarczająco wolno, to procedura symulowanego wyŝarzania gwarantuje znalezienie maksimum globalnego Wniosek: Szybkość obniŝania T jest krytyczna Gdy T jest wysoka: Faza rozpoznawcza (exploratory) (przesunięcia przypadkowe) Gdy T jest niskie: Faza wykorzystania (exploitation) (wspinaczka w kierunkach losowych) dr inŝ. Stefan Brock 27/28 2
Przebieg procesu wyŝarzania 1. Ustaw rozwiązanie początkowe S i ustaw temperaturę początkową T=T MAX 2. Dopóki T>, wykonaj L razy: 3. wybierz nowe rozwiązanie S x z sąsiedztwa S 4. oblicz róŝnice funkcji celu =V(S)-V(S x ) 5. jeŝeli <, to przyjmij S x = S 6. w przeciwnym wypadku, gdy >, załóŝ S x = S z prawdopodobieństwem e - /T, czyli wygeneruj liczbę losową R z przedziału [,1] gdy e - /T >R to zaakceptuj nowe rozwiązanie S x = S w przeciwnym wypadku nie. 7. Zredukuj temperaturę (T=rT), przy współczynniku redukcji <r<1 i wróć do 2. Klasyczne algorytmy genetyczne Poszukiwania prowadzone są jednocześnie przez grupę potencjalnych rozwiązań - populację osobników. Kroki algorytmu: kodowanie wybór populacji początkowej wybór puli rodzicielskiej wybór par rodzicielskich krzyŝowanie par osobników mutacja pojedynczych osobników ocena warunków zakończenia działania procesu Dobierane parametry AG Szereg parametrów musi być wstępnie wybrany przez uŝytkownika: sposób kodowania liczebność populacji sposób wyboru puli rodzicielskiej sposób i prawdopodobieństwo krzyŝowania sposób i prawdopodobieństwo mutacji kryterium zakończenia optymalizacji. Prosty algorytm ewolucyjny Idea algorytmów ewolucyjnych polega na interpretacji rozwaŝanych rozwiązań jako populacji osobników, Ŝyjących w środowisku o ograniczonych zasobach. W ten sposób uŝytkownik definiuje wyłącznie sposób kodowania rozwiązań oraz wielkość zasobów środowiska (określona dopuszczalną liczbą osobników) dr inŝ. Stefan Brock 27/28 3
procedure algorytm_ewolucyjny() { inicjalizacja() oblicz_funkcje_dopasowania(); dopóki (nie spelnione warunki zakonczenia) { wybierz_dwa_osobniki(); jezeli (spotkanie) { jezeli (reprodukcja) {reprodukcja_plciowa(); oblicz_funkcje_dopasowania(); w przeciwnym przypadku konkurencja(); w przeciwnym przypadku {reprodukcja_bezplciowa(); oblicz_funkcje_dopasowania(); Inicjalizacja Pierwsza operacja, podobnie jak w przypadku klasycznych algorytmów genetycznych jest inicjalizacja(). W przypadku algorytmów genetycznych nalezy wybrac pierwsza populacje osobników, o przyjetej ilosci. Dla algorytmu ewolucyjnego wystarczy przyjecie niewielkiej liczby osobników. Spotkanie W algorytmach genetycznych pula rodzicielska jest tworzona przez osobniki wybrane sposród calej populacji, na przyklad metoda kola ruletki lub metoda turniejowa. Koncepcja spotkania osobników. Wybór pary osobników dokonywany jest losowo, w calej populacji. Nastepnie obliczane jest prawdopodobienstwo spotkania P m = C p /M p C p - aktualna wielkosc populacji, M p - dopuszczalna maksymalna wielkosc populacji. Oznacza to, ze im wiecej osobników znajduje sie w aktualnej populacji, tym wieksze jest prawdopodobienstwo spotkania się pary osobników Interakcja osobników Gdy spotkanie pary osobników wtedy reprodukcja_plciowa lub konkurencja. Reprodukcja plciowa jest odpowiednikiem krzyzowania z klasycznych algorytmów genetycznych. Podobnie tworzone sa nowe osobniki, poprzez wymiane czesci informacji pomiedzy para rodzicielska. Jednak osobniki rodzicielskie nie sa usuwane z populacji. W efekcie reprodukcji ilosc osobników w populacji zwieksza sie o dwa. Reprodukcja plciowa zachodzi z prawdopodobienstwem P r = 1 - C p /M p Oznacza to, ze im wiecej osobników w populacji tym mniejsza szansa na powstanie osobników potomnych. Interakcja osobników Jezeli miedzy wybrana para nie zachodzi reprodukcja plciowa, to nastepuje miedzy nimi konkurencja. Polega ona na porównaniu funkcji przystosowania dla kazdego z osobników, oraz na eliminacji z populacji osobnika gorzej przystosowanego. Prawdopodobienstwo konkurencji wynosi odpowiednio: P k = C p /M p Oznacza to, ze im wiecej osobników w populacji tym większa szansa na wyeliminowanie osobników gorzej przystosowanych. Brak spotkania W przypadku, gdy dla danego osobnika nie zostanie wybrany drugi osobnik (nie dochodzi do spotkania) wtedy nastepuje rozmnazanie bezplciowe. Odpowiada ono mutacji z klasycznych algorytmów genetycznych. Rozmnazanie bezplciowe polega na klonowaniu (powieleniu) wybranego osobnika, a nastepnie losowej mutacji tak powstalego nowego osobnika. W efekcie rozmnazania bezplciowego liczba osobników w populacji zwieksza sie o 1 Im wiecej osobników w populacji tym mniejsza szansa na mutacje dr inŝ. Stefan Brock 27/28 4
Prosta implementacja w Matlabie dodaj - funkcja dodaje jednego osobnika do populacji usun - funkcja usuwa jednego osobnika z populacji krzyzow - funkcja przeprowadza spotkanie z reprodukcją między osobnikami mutuj - funkcja tworzy nowego osobnika na drodze rozmnaŝania bezpłciowego. fitness - funkcja oblicza wartość przystosowania dla nowego osobnika ewoluc - główna procedura, sterująca obliczeniami Badania testowe algorytmu ewolucyjnego Testy algorytmu ewolucyjnego z wykorzystaniem funkcji algebraicznych Funkcja Rosenbrocka(funkcja typu "banan"): f 2 2 2 ( x, y) = 1*( y x ) (1 x) Bardzo wolna zbieznoscia w okolicy punktu maksimum (x=1, y=1) Naturalne kodowanie binarne z rozdzielczoscia 1 bitów dla zmiennych x oraz y, w przedziale od -4 do +4 Funkcja Rosenbrocka Wyniki optymalizacji x 14 S re dni -1-2 1 2 3 4 5 6 7 8 9 1 Najle ps zy -.5-1 1 2 3 4 5 6 7 8 9 1 1 P opula cja 5 1 2 3 4 5 6 7 8 9 1 Ite racja SpostrzeŜenia algorytmy ewolucyjne, podobnie jak algorytmy genetyczne cechuja sie wolna zbieznoscia w poblizu punktu optimum srednia wartosc funkcji dopasowania ma charakter niemalejacy najlepszy znaleziony osobnik jest przechowywany przez cale obliczenia (nie ginie w wyniku konkurencji) ilosc osobników stabilizuje sie na poziomie 73% pojemnosci srodowiska Funkcja z ekstremami lokalnymi dr inŝ. Stefan Brock 27/28 5
P opula cja Wyniki 4 3 2 1 2 4 6 8 1 12 14 16 18 2 1 8 6 4 2 Wyniki badań * - wyniki najlepsze o -wyniki srednie w populacji 2 4 6 8 1 12 14 16 18 2 Iteracje Wyniki badań Dla dopuszczalnej liczby 1 osobników, po 2 powtórzeniach uzyskano : x=5. oraz y=4.875 Powtórzono badania dla niekorzystnego rozkładu populacji początkowej - wszystkie osobniki równe - wyniki zadawalające - lokalizuje ekstremum globalne algorytmy ewolucyjne nadaja sie do rozwiazywania zadan optymalizacji wielomodalnej (z ekstremami lokalnymi) Funkcje testowe De Jong w swojej pracy doktorskiej w 1975 badał szereg funkcji testowych F1 - F5, które przyjęły się jako benchmarki dla układów optymalizacji TakŜe inne charakterystyczne funkcje Funkcja F1 de Jonga f(x)=sum(x(i)^2), i=1:n; -5.12<=x(i)<=5.12. Funkcja F2 de Jonga f(x)=sum(1 (x(i+1)-x(i)^2)^2+(1-x(i))^2), i=1:n-1; -2.48<=x(i)<=2.48. Funkcja F3 de Jonga f(x)=sum(floor(x(i))), i=1:n-1; dr inŝ. Stefan Brock 27/28 6
Funkcja F4 de Jonga Funkcja F5 de Jonga f(x)=sum(x(i)^2)+gauss(,1), i=1:n-1; Funkcja Rastrigina f(x)=1 n+sum(x(i)^2-1 cos(2 pi x(i))), i=1:n; -5.12<=x(i)<=5.12. http://www.geatbx.com/docu/fcnindex.html dr inŝ. Stefan Brock 27/28 7