Ewolucja różnicowa

21
Ewolucja różnicowa Rainer Storn Kenneth Price DE

description

Ewolucja różnicowa. Rainer Storn Kenneth Price DE. Rzut oka na DE. - PowerPoint PPT Presentation

Transcript of Ewolucja różnicowa

Page 1: Ewolucja różnicowa

Ewolucja różnicowa

Rainer Storn

Kenneth Price DE

Page 2: Ewolucja różnicowa

Rzut oka na DE Równoległa wersja DE przechowuje dwie tablice. W każdej z nich

znajduje się populacja NP D-wymiarowych wektorów o wartościach rzeczywistych. W tablicy głównej (primary) znajduje się bieżąca populacja, w tablicy dodatkowej (secondary) zaś gromadzi się wektory przeznaczone do następnego pokolenia.

W każdym pokoleniu ma miejsce NP porównań, które służą określeniu składu następnej populacji: w i-tym porównaniu uczestniczy i-ty wektor populacji, nazywany tarczą (target) i wektor próbny, dla którego tarcza jest jednym z rodziców. drugim rodzicem jest wektor losowo wybrany z populacji, do którego dodano również losowy, ważony wektor różnicowy.

Połączenie tego losowego (symulującego „szum”) wektora z tarczą kontrolowane jest przez niejednorodną operację krzyżowania, w której określa się, które parametry nowy wektor przejmuje od którego z wektorów macierzystych. Jeżeli koszt wektora próbnego nie przekroczy kosztu tarczy-rodzica, wektor próbny zastąpi tarczę na pozycji i-tej w następnym pokoleniu.

Page 3: Ewolucja różnicowa

Mutacja w DE Całą ewolucją w DE sterują 3 zjawiska:

wielkość populacji NP, waga przyłożona do losowej różnicy F, stała operacji krzyżowania CR.

Wygodnym źródłem odpowiednio przeskalowanego zaburzenia jest sama populacja. Dla każdej pary wektorów (Xa, Xb) można zdefiniować różnicę: Xa i Xb. Kiedy Xa i Xb zostaną wybrane losowo, ich ważoną różnicę można wykorzystać zamiast gaussowskiego szumu do zakłócenia wartości trzeciego wektora Xc.

Xc’= Xc + F(Xa – Xb) Czynnik skalujący F jest zadaną przez użytkownika stałą z

zakresu od 0 do 1.2. Górna granica została wyznaczona empirycznie. Optymalna wartość F dla większości funkcji leży między 0.4 a 1.0.

Page 4: Ewolucja różnicowa

Modyfikacje (zmiany) w DE

W celu zbudowania potomka wykorzystuje się jednego głównego ojca i 2 pomocniczych rodziców. W zasadzie ojciec jest zniekształcany przez różnicę między dwoma pomocniczymi rodzicami. Rezultatem tego procesu jest rozwiązanie zwane prototypem/śladem rozwiązania.

Prototyp jest następnie poddawany krzyżowaniu z innym wybranym wcześniej rozwiązaniem w celu wygenerowania potomka. Potomek jest dodawany do populacji jeśli przewyższa wcześniej wybrane rozwiązanie. Używając wektorów różnicujących, DE bierze pod uwagę informację o kierunku przeszukiwań.

Page 5: Ewolucja różnicowa

Podstawowy mechanizm w DE

Page 6: Ewolucja różnicowa

Schemat mutacji w DE

Page 7: Ewolucja różnicowa

Techniki ewolucyjne a DE

W DE stosuje się krzyżowanie niejednorodne, czyli takie, gdzie przejęcie parametrów od jednego z rodziców następuje wyraźnie częściej. Konstruując wektory próbne w oparciu o istniejących członków populacji, rekombinacja sprawia, że informacje o najbardziej udanych połączeniach rozprzestrzeniają się w populacji, co pozwala ograniczyć poszukiwania optimum do najbardziej obiecujących okolic.

Strategia akceptacyjna stosowana w DE przypomina nieco metodę turniejową, z tą jednak różnicą, że za każdym razem dziecko spotyka się z jednym ze swoich rodziców, a nie z przypadkowym – lepiej przystosowanym przeciwnikiem – lepiej dopasowany z takiej pary wektorów zostaje przekazany do następnego pokolenia.

Page 8: Ewolucja różnicowa

Rekombinacja w DE

Każdy wektor z tablicy głównej Xi, dla i=0, 1 jest rekombinowany z wektorem Xc’, w wyniku czego powstaje wektor próbny Xi’. Wektor próbny jest potomkiem dwojga rodziców : losowego wektora zaszumienia i wektora tarczy, z którym zostanie później porównany.

Poczynając od losowo ustalonego parametru źródło każdego z parametrów wektora próbnego ustala się porównując CR z wartością losową z [0, 1]. jeśli liczba ta jest większa od CR, wektor próbny zawdzięcza ten parametr tarczy, Xi’, w przeciwnym wypadku źródłem parametru będzie wektor szumu Xc’. Gdy CR =1 to parametry wektora próbnego pochodzą z Xc’, gdy zaś CR=0 to tylko jeden parametr pochodzi z Xc’. Zawsze jest to ostatni parametr.

Page 9: Ewolucja różnicowa

Przykład rekombinacji w DE

Page 10: Ewolucja różnicowa

Selekcja w DE

W przeciwieństwie do wielu algorytmów genetycznych w DE nie stosuje się selekcji proporcjonalnej, czy szeregowania. Tutaj porównujemy koszt wektora próbnego z kosztem jego macierzystej tarczy – ten, który ma niższy koszt, zostaje nagrodzony przeniesieniem do tablicy pomocniczej, ponadto jeśli zwycięzcą okaże się wektor próbny, jego koszt zostaje zapisany w tablicy cost[i] .

Kiedy mutacja, rekombinacja i selekcja dotknie już wszystkich wektorów z głównej tablicy, zamieniamy wskaźniki do tablic, przez co tablice główna i pomocnicza zamieniają się rolami: teraz wektory z tablicy pomocniczej zostaną poddane transformacji, zaś poprzednia tablica główna oczekuje na zwycięzców konkursu z następnego pokolenia.

Page 11: Ewolucja różnicowa

Badanie funkcji f(x) =1/ 1+p1x+p2x^2

Page 12: Ewolucja różnicowa

Rady praktyczne

NP powinno być 5 do 10 razy większe od liczby parametrów tworzących wektor.

F powinno przyjmować wartości od 0.5 , a następnie stopniowo powinno się zwiększać F i/lub NP, jeśli populacja nazbyt szybko przestanie się rozwijać. wartości F < 0.4 i F > 1 rzadko okazują się użyteczne.

CR na początku powinno mieć wartość 0.1, następnie 0.9 do 1.0, żeby przekonać się, czy szybko znajdziemy rozwiązanie

Jak widać istnieje duże pole manewru, pod warunkiem wybrania dobrej kombinacji stałych kontrolujących działanie DE.

Page 13: Ewolucja różnicowa

Zastosowania DE

Niedawno algorytm DE wziął udział w międzynarodowym konkursie dla programów optymalizujących, w którym zastosowano zestaw o wiele bardziej złożonych funkcji testowych. DE okazał się być najszybszym ze zgłoszonych „zawodników” w kategorii algorytmów ewolucyjnych.

DE wykorzystano już w kilku przypadkach do stworzenia złożonych filtrów cyfrowych, z których największy wymagał dostrojenia 60 parametrów.

www. ICSI. Berkeley. edu/~storn/code.html

Page 14: Ewolucja różnicowa

ALGORYTM DE DE/rand/I {wariant DE} we: populacja P, par. krzyżowania CR, war. rzecz. F ewoluuj P:

Dla index = 1 do rozmiaru pop. begin

wybierz losowo 3 różne wartości i1, i2, i3, index ≠ i1≠i2≠i3 Dla każdej zmiennej j if Random CR

X = P[i][j] + F(P[i2][j] – P[i3][j]) else X = P[index][j] if X jest lepszy od P[index], zamień P[index] przez X

end wy: nowa populacja P

Page 15: Ewolucja różnicowa

Modyfikacje DE (Shan, Qi, Abbass) Nową propozycją jest generowanie długości kroku w sposób losowy i

zapamiętywanie kierunku w populacji, która zmienia się w czasie. W celu zapamiętania kierunku kolejny algorytm składa się z dwu populacji; jedną jest populacja rozwiązań a drugą jest populacja kierunków. Kierunek jest wyznaczany jako różnica między 2 rodzicami przedstawiona w pop. algorytmie. Jednakże I rodzic jest wybierany z najlepszej części bieżącej populacji, podczas gdy drugi z nich jest wybrany z pozostałej reszty. Rozmiar najlepszej części jest parametrem definiowanym przez użytkownika. To w pewien sposób zabezpiecza różnorodność w populacji kierunków, przy równoczesnym skupianiu się na elitaryzmie.

W celu wygenerowania kolejnej populacji, populacja chwilowa jest wykorzystywana do zapamiętania zmodyfikowanych osobników najlepszej części bieżącej populacji. Każdy osobnik jest modyfikowany poprzez dodanie do niego losowo wybranych kierunków. To podejście ukierunkowane na elitaryzm, ułatwia nam zachowanie najlepszych osobników bez utraty różnorodności. Populacja chwilowa jest połączona z bieżącą w celu utworzenia następnej populacji poprzez mechanizm współdzielenia przystosowania.

Page 16: Ewolucja różnicowa

ALGORYTM II

Inicjalizacja. Ewaluacja wszystkich indywiduów z P1 i posortowanie

ich w kolejności malejącej dla wartości przystosowania.

Generowanie populacji kierunków w kolejnych krokach: wybór osobników spośród 20% najlepszych z P1 wybór osobników z pozostałych 80% z P1 wygeneruj kierunek d: d= i +U(0, 1)(i - j), w którym U(0,1) jest zmienną pseudolosową z przedz. (0,1)

zmień każdą wart. kierunku d z prawdopodob. CR dodaj tę nowo utworzoną wart. kierunku do populacji kierunków

Zbuduj kolejną populację rozwiązań P2 z tym samym rozmiarem, co P1 poprzez proces wyboru osobnika z 20% najlepszych osobników z P1 i dodania do nich losowo wybranych kierunków z populacji kierunków.

Page 17: Ewolucja różnicowa

ALGORYTM II (cd) Oceń wszystkie osobniki w P2, jak również w populacji

kierunków. Wartość przystosowania każdego wybranego kierunku jest określona poprzez wartość przystosowania po użyciu jego w odpowiadającemu mu potomku. Jeśli ten kierunek pogarsza f. przystosowania , lub nie jest wybrany, przypisuje mu się wartość zero.

Połącz P1 z P2 w celu utworzenia nowej populacji P3 tego samego rozmiaru jak P1, poprzez wybór najlepszych z P1+P2. Najlepsi są określani poprzez współdzielenie przystosowania i użycie alpha1 jako współczynnika.

Zamień P1 z P3. Posortuj P1. Zamień najgorsze 50% kierunków w populacji kierunków z

nowo wygenerowanymi jak następuje: Połową z nich jest generowana losowo z już

istniejących kierunków Pozostałość generowana jest jak w kroku 1

idź do punktu 2 aż do spełnienia warunków końcowych.

Page 18: Ewolucja różnicowa

Przykłady działań DE

Page 19: Ewolucja różnicowa

DE - Mathematica

Page 20: Ewolucja różnicowa
Page 21: Ewolucja różnicowa