210 likes | 367 Views
Ewolucja różnicowa. Rainer Storn Kenneth Price DE. Rzut oka na DE.
E N D
Ewolucja różnicowa Rainer Storn Kenneth Price DE
Rzut oka na DE • Równoległa wersja DE przechowuje dwie tablice. W każdej z nich znajduje się populacja NPD-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.
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.
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ń.
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.
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.
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.
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.
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
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
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.
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.
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.