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

Podobne dokumenty