algorytm ewolucji różnicowej

Transkrypt

algorytm ewolucji różnicowej
ALGORYTM EWOLUCJI
RÓŻNICOWEJ
Andrzej Sawicki
EWOLUCJA RÓŻNICOWA - WSTĘP
• Stosunkowo nowy (połowa lat 90tych) algorytm optymalizacji numerycznej
(autorzy: R. Storn i K. Price).
• Należy do rodziny algorytmów ewolucyjnych.
• Został zaprojektowany z myślą o optymalizacji problemów
rzeczywistoliczbowych.
EWOLUCJA RÓŻNICOWA - WSTĘP
• Osobniki są L-wymiarowymi wektorami liczb rzeczywistych.
• Mutacja polega na perturbacji losowo wybranego wektora o różnicę
dwóch innych wektorów pomnożoną przez stały współczynnik.
• Algorytm wymaga tylko trzech parametrów, z których jeden (Np) jest
rozmiarem populacji, drugi (F) steruje mutacją, a trzeci (CR) krzyżowaniem.
EWOLUCJA RÓŻNICOWA
– DOBÓR PARAMETRÓW
•
•
•
•
Algorytm posiada tylko trzy parametry: F, CR, Np.
F – czynnik skalujący - zazwyczaj 0.5≤F≤ 0.9.
Cr - jednostka intensywności krzyżowania
Np – wielkośd populacji. W literaturze spotyka się propozycje 5*L≤ Np ≤
10*L, ale prowadziłoby to do bardzo dużych rozmiarów populacji dla
funkcji wielowymiarowych. Proponuję w swoich eksperymentach przyjąd
na początek S≈50
• 0≤Cr≤1. Proponuję zacząd od bardzo małe (bliskie 0) oraz bardzo duże
(bliskie 1) wartości Cr.
• Zaproponowano również schematy adaptacji i samoadaptacji parametrów
algorytmu. Np. Dla każdego mutanta losuj F z rozkładu N(0.5,0.3).
• Literatura podpowiada, aby co dobraną ilośd iteracji zwiększad/ zmniejszad
wartości Cr i F
EWOLUCJA RÓŻNICOWA - ALGORYTM
•
•
•
•
•
•
•
•
•
•
•
•
zainicjuj współczynniki F, Cr, Np.
zainicjalizuj populację p0 (Np)
t=0
while (nie zachodzi warunek stopu)
for i ∈ {1, … , Np }
pt r1 , pt r2 , pt r3 ← losowa_selekcja (pt )
u ← mutacja_roznicowa (pt r1 , pt r2 , pt r3 )
y ← krzyzowanie_wymieniające(pt i ,u)
pi t+1 ← sukcesja_elitarna (pt i ,y)
end
for t ← t+1
end while
EWOLUCJA RÓŻNICOWA –
INICJALIZACJA POPULACJI
• Należy zainicjalizowad populację o wielkości Np przechowującą wektory o
wielkości D gdzie D oznacza wymiarowośd problemu .
• Przyjmuje się, że wielkośd populacji Np powinna byd 5-10x większa niż
liczba parametrów (D) tworzących wektor pojedynczego osobnika
EWOLUCJA RÓŻNICOWA - SELEKCJA
• W klasycznym wariancie algorytmu DE/rand/1 reprodukują osobniki
wylosowane z bieżącej populacji.
• Osobniki próbne są wybierane losowo.
• Często wymaga się ,aby indeksy osobników biorących udział w mutacji
różnicowej były różne .
• Stąd warto zadbad , aby i≠r1 ≠r2 ≠r3 .
EWOLUCJA RÓŻNICOWA - MUTACJA
• Mutacja polega na wykorzystaniu trzech reprodukowanych osobników i
dodaniu do pierwszego z nich r1 przeskalowanej różnicy pomiędzy dwoma
pozostałymi r2 i r3
ui =pr1 + F*(pr2−pr3 )
gdzie:
F – czynnik skalujący (powinien przyjmowad wartości *0.5-0.9] )
ui – jest nowym zmutowanym wektorem osobnika
pr1, pr2 , pr3 – losowo wybrane osobniki z obecnej populacji (w wersji
DE/rand/1)
EWOLUCJA RÓŻNICOWA –
KRZYŻOWANIE
• W ewolucji różnicowej wykorzystuje się krzyżowanie wymieniające ze
względu na potrzebę zwiększenia różnorodności populacji.
• Potomek yi tworzony jest poprzez wymianę elementów wektora rodzica pit
oraz mutanta ui
• Najczęściej wykorzystywany jest wariant krzyżowania dwumianowego
oznaczonego DE/X/Y/bin gdzie dla każdego elementu wektora potomka
losuje się czy ma pochodzid od rodzica czy od mutanta
𝒚i =ui jeżeli rand(0,1) ≤ Cr
gdzie:
Cr - jednostka intensywności krzyżowania
pit w przeciwnym przypadku
EWOLUCJA RÓŻNICOWA – SUKCESJA
• Sukcesja polega na porównaniu osobnika potomnego yi z rodzicem pit i
wybraniu lepszego z nich
• Ma charakter elitarny, zachłanny, a także lokalny w zbiorze osobników co
pozwala na utrzymanie różnorodności populacji.
if f(yi)≤f(pit) then
pit ← yi
end if

Podobne dokumenty