6 na stronę - Stefan Brock
Transkrypt
6 na stronę - Stefan Brock
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 global maximum shoulder local maximum "flat" local maximum current state state space Poprawa prostej metody gradientowej Lokalne minima. Plateaux, czyli równiny. Wąskie grzbiety. • Obszary płaskie – Dozwolone ruchy w bok, ale ostroŜnie: ograniczenia, aby nie były to ruchy wyłącznie w bok • Lokalne maksima W niektórych problemach mogą pomóc wielokrotne starty z przypadkowych punktów. 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 dr inŜ. Stefan Brock 2007/2008 – 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 Pomysł - dopuszczalne błędne ruchy • S to pozycja początkowa, a V=Eval(S) jej wartość funkcji celu • Sx to losowo wybrana kolejna pozycja, i odpowiednio Vx=Eval(Sx) • JeŜeli V<Vx to S=SX (nastąpiła poprawa - ruch w górę) w przeciwnym razie: takŜe S=Sx z prawdopodobieństwem p (ruch na dół) • Powtarzaj, aŜ do osiągnięcia kryterium zakończenia 1 Jak dobrać prawdopodobieństwo p „złego” ruchu • Pomysł 1: Wartość stała ( p = 0.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-Vx (spadek ze stromej pochyłości) • 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. 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). • 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 Vx>V to zawsze S=Sx • Gdy Vx<V to przyjmij S =Sx z prawdopodobieństwem: Exp (-(V-V x ) /T ) Rozkład Boltzmana p =Exp (-(V-V x ) /T ) • T>0 jest parametrem - odpowiednik temperatury. • Działanie algorytmu rozpoczyna się od wysokich temperatur, a potem temperatura jest obniŜana • Gdy T jest bliskie 0, to p jest teŜ bliskie 0 dr inŜ. Stefan Brock 2007/2008 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) 2 Przebieg procesu wyŜarzania 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 1. Ustaw rozwiązanie początkowe S i ustaw temperaturę początkową T=TMAX 2. Dopóki T>0, wykonaj L razy: 3. wybierz nowe rozwiązanie Sx z sąsiedztwa S 4. oblicz róŜnice funkcji celu ∆=V(S)-V(Sx) 5. jeŜeli ∆<0, to przyjmij Sx = S 6. w przeciwnym wypadku, gdy ∆>0, załóŜ Sx = S z prawdopodobieństwem e-∆/T, czyli wygeneruj liczbę losową R z przedziału [0,1] gdy e-∆/T>R to zaakceptuj nowe rozwiązanie Sx= S w przeciwnym wypadku nie. 7. Zredukuj temperaturę (T=rT), przy współczynniku redukcji 0<r<1 i wróć do 2. 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 2007/2008 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. Interakcja osobników Spotkanie • • Gdy spotkanie pary osobników wtedy 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 Pm= Cp/Mp Cp - aktualna wielkosc populacji, Mp - dopuszczalna maksymalna wielkosc populacji. • 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 • Oznacza to, ze im wiecej osobników znajduje sie w aktualnej populacji, tym wieksze jest prawdopodobienstwo spotkania się pary osobników Pr= 1 - Cp/Mp • Oznacza to, ze im wiecej osobników w populacji tym mniejsza szansa na powstanie osobników potomnych. 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. 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: Pk= Cp/Mp • 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 2007/2008 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 ( x, y ) = −100 * ( y − x 2 ) 2 − (1 − x ) 2 • Bardzo wolna zbieznoscia w okolicy punktu maksimum (x=1, y=1) • Naturalne kodowanie binarne z rozdzielczoscia 10 bitów dla zmiennych x oraz y, w przedziale od -4 do +4 Funkcja Rosenbrocka Wyniki optymalizacji S re dni 0 x 10 4 -1 -2 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 Ite ra cja 60 70 80 90 100 Na jle ps zy 0 -0.5 -1 P opula cja 100 50 0 SpostrzeŜenia Funkcja z ekstremami lokalnymi • 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 dr inŜ. Stefan Brock 2007/2008 5 Wyniki badań Wyniki badań 4 Wyniki 3 2 * - wyniki na jle ps ze o -wyniki s re dnie w popula cji 1 0 0 20 40 60 80 100 120 140 160 180 200 0 20 40 60 80 100 Ite ra cje 120 140 160 180 200 100 P opula cja 80 60 40 20 0 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 F2 de Jonga f(x)=sum(100·(x(i+1)-x(i)^2)^2+(1-x(i))^2), i=1:n-1; -2.048<=x(i)<=2.048. dr inŜ. Stefan Brock 2007/2008 • Dla dopuszczalnej liczby 100 osobników, po 200 powtórzeniach uzyskano : x=5.0000 oraz y=4.8750 • 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) Funkcja F1 de Jonga f(x)=sum(x(i)^2), i=1:n; -5.12<=x(i)<=5.12. Funkcja F3 de Jonga f(x)=sum(floor(x(i))), i=1:n-1; 6 Funkcja F4 de Jonga f(x)=sum(x(i)^2)+Gauss(0,1) , Funkcja F5 de Jonga i=1:n-1; Funkcja Rastrigina f(x)=10·n+sum(x(i)^2-10·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 2007/2008 7