Ewolucja różnicowa (DE)155.158.112.25/~algorytmyewolucyjne/materialy/ewolucja... · 2014. 10....

Post on 31-Aug-2021

3 views 0 download

Transcript of Ewolucja różnicowa (DE)155.158.112.25/~algorytmyewolucyjne/materialy/ewolucja... · 2014. 10....

Ewolucja różnicowa (DE)

Ewolucja różnicowa

Rainer StornKenneth Price

Ewolucja różnicowa (DE)

Rzut oka na DE

Równoległa wersja DE przechowuje dwie tablice. W każdej z nichznajduje się populacja NP D-wymiarowych wektorów o wartościachrzeczywistych. W tablicy głównej (primary) znajduje się bieżącapopulacja, 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ównaniuuczestniczy i-ty wektor populacji, nazywany tarczą (target) i wektorpróbny, dla którego tarcza jest jednym z rodziców. drugim rodzicemjest 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, wktórej określa się, które parametry nowy wektor przejmuje odktórego z wektorów macierzystych. Jeżeli koszt wektora próbnego nieprzekroczy kosztu tarczy-rodzica, wektor próbny zastąpi tarczę napozycji i-tej w następnym pokoleniu.

Ewolucja różnicowa (DE)

Rzut oka na DE

Równoległa wersja DE przechowuje dwie tablice. W każdej z nichznajduje się populacja NP D-wymiarowych wektorów o wartościachrzeczywistych. W tablicy głównej (primary) znajduje się bieżącapopulacja, 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ównaniuuczestniczy i-ty wektor populacji, nazywany tarczą (target) i wektorpróbny, dla którego tarcza jest jednym z rodziców. drugim rodzicemjest 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, wktórej określa się, które parametry nowy wektor przejmuje odktórego z wektorów macierzystych. Jeżeli koszt wektora próbnego nieprzekroczy kosztu tarczy-rodzica, wektor próbny zastąpi tarczę napozycji i-tej w następnym pokoleniu.

Ewolucja różnicowa (DE)

Rzut oka na DE

Równoległa wersja DE przechowuje dwie tablice. W każdej z nichznajduje się populacja NP D-wymiarowych wektorów o wartościachrzeczywistych. W tablicy głównej (primary) znajduje się bieżącapopulacja, 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ównaniuuczestniczy i-ty wektor populacji, nazywany tarczą (target) i wektorpróbny, dla którego tarcza jest jednym z rodziców. drugim rodzicemjest 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, wktórej określa się, które parametry nowy wektor przejmuje odktórego z wektorów macierzystych. Jeżeli koszt wektora próbnego nieprzekroczy kosztu tarczy-rodzica, wektor próbny zastąpi tarczę napozycji i-tej w następnym pokoleniu.

Ewolucja różnicowa (DE)

Mutacja w DE

Całą ewolucją w DE sterują 3 zjawiska:1 wielkość populacji NP,2 waga przyłożona do losowej różnicy F,3 stała operacji krzyżowania CR.

Wygodnym źródłem odpowiednio przeskalowanego zaburzenia jestsama populacja. Dla każdej pary wektorów (Xa, Xb) możnazdefiniować różnicę: Xa i Xb. Kiedy Xa i Xb zostaną wybrane losowo,ich ważoną różnicę można wykorzystać zamiast gaussowskiegoszumu do zakłócenia wartości trzeciego wektora Xc .Xc ’= Xc + F(Xa – Xb)Czynnik skalujący F jest zadaną przez użytkownika stałą z zakresuod 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.

Ewolucja różnicowa (DE)

Mutacja w DE

Całą ewolucją w DE sterują 3 zjawiska:1 wielkość populacji NP,2 waga przyłożona do losowej różnicy F,3 stała operacji krzyżowania CR.

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

Xc ’= Xc + F(Xa – Xb)Czynnik skalujący F jest zadaną przez użytkownika stałą z zakresuod 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.

Ewolucja różnicowa (DE)

Mutacja w DE

Całą ewolucją w DE sterują 3 zjawiska:1 wielkość populacji NP,2 waga przyłożona do losowej różnicy F,3 stała operacji krzyżowania CR.

Wygodnym źródłem odpowiednio przeskalowanego zaburzenia jestsama populacja. Dla każdej pary wektorów (Xa, Xb) możnazdefiniować różnicę: Xa i Xb. Kiedy Xa i Xb zostaną wybrane losowo,ich ważoną różnicę można wykorzystać zamiast gaussowskiegoszumu do zakłócenia wartości trzeciego wektora Xc .Xc ’= Xc + F(Xa – Xb)

Czynnik skalujący F jest zadaną przez użytkownika stałą z zakresuod 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.

Ewolucja różnicowa (DE)

Mutacja w DE

Całą ewolucją w DE sterują 3 zjawiska:1 wielkość populacji NP,2 waga przyłożona do losowej różnicy F,3 stała operacji krzyżowania CR.

Wygodnym źródłem odpowiednio przeskalowanego zaburzenia jestsama populacja. Dla każdej pary wektorów (Xa, Xb) możnazdefiniować różnicę: Xa i Xb. Kiedy Xa i Xb zostaną wybrane losowo,ich ważoną różnicę można wykorzystać zamiast gaussowskiegoszumu do zakłócenia wartości trzeciego wektora Xc .Xc ’= Xc + F(Xa – Xb)Czynnik skalujący F jest zadaną przez użytkownika stałą z zakresuod 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.

Ewolucja różnicowa (DE)

Modyfikacje (zmiany) w DE

W celu zbudowania potomka wykorzystuje się jednego głównego ojcai 2 pomocniczych rodziców. W zasadzie ojciec jest zniekształcanyprzez różnicę między dwoma pomocniczymi rodzicami. Rezultatemtego procesu jest rozwiązanie zwane prototypem/ślademrozwiązania.

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

Ewolucja różnicowa (DE)

Modyfikacje (zmiany) w DE

W celu zbudowania potomka wykorzystuje się jednego głównego ojcai 2 pomocniczych rodziców. W zasadzie ojciec jest zniekształcanyprzez różnicę między dwoma pomocniczymi rodzicami. Rezultatemtego procesu jest rozwiązanie zwane prototypem/ślademrozwiązania.Prototyp jest następnie poddawany krzyżowaniu z innym wybranymwcześniej rozwiązaniem w celu wygenerowania potomka. Potomekjest dodawany do populacji jeśli przewyższa wcześniej wybranerozwiązanie. Używając wektorów różnicujących, DE bierze poduwagę informację o kierunku przeszukiwań.

Ewolucja różnicowa (DE)Podstawowy mechanizm w DE

Ewolucja różnicowa (DE)Schemat mutacji w DE

Ewolucja różnicowa (DE)

Techniki ewolucyjne a DE

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

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

Ewolucja różnicowa (DE)

Techniki ewolucyjne a DE

W DE stosuje się krzyżowanie niejednorodne, czyli takie, gdzieprzejęcie parametrów od jednego z rodziców następuje wyraźnieczęściej. Konstruując wektory próbne w oparciu o istniejącychczłonków populacji, rekombinacja sprawia, że informacje onajbardziej udanych połączeniach rozprzestrzeniają się w populacji,co pozwala ograniczyć poszukiwania optimum do najbardziejobiecujących okolic.Strategia akceptacyjna stosowana w DE przypomina nieco metodęturniejową, z tą jednak różnicą, że za każdym razem dziecko spotykasię z jednym ze swoich rodziców, a nie z przypadkowym – lepiejprzystosowanym przeciwnikiem – lepiej dopasowany z takiej parywektorów zostaje przekazany do następnego pokolenia.

Ewolucja różnicowa (DE)

Rekombinacja w DE

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

Poczynając od losowo ustalonego parametru źródło każdego zparametró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óbnyzawdzięcza ten parametr tarczy, Xi ’, w przeciwnym wypadkuźródłem parametru będzie wektor szumu Xc ’. Gdy CR =1 toparametry wektora próbnego pochodzą z Xc ’, gdy zaś CR=0 to tylkojeden parametr pochodzi z Xc ’. Zawsze jest to ostatni parametr.

Ewolucja różnicowa (DE)

Rekombinacja w DE

Każdy wektor z tablicy głównej Xi , dla i=0, 1 jest rekombinowany zwektorem Xc ’, w wyniku czego powstaje wektor próbny Xi ’. Wektorpróbny jest potomkiem dwojga rodziców : losowego wektorazaszumienia i wektora tarczy, z którym zostanie później porównany.Poczynając od losowo ustalonego parametru źródło każdego zparametró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óbnyzawdzięcza ten parametr tarczy, Xi ’, w przeciwnym wypadkuźródłem parametru będzie wektor szumu Xc ’. Gdy CR =1 toparametry wektora próbnego pochodzą z Xc ’, gdy zaś CR=0 to tylkojeden parametr pochodzi z Xc ’. Zawsze jest to ostatni parametr.

Ewolucja różnicowa (DE)Przykład rekombinacji w DE

Ewolucja różnicowa (DE)

Przykład rekombinacji w DE

W przeciwieństwie do wielu algorytmów genetycznych w DE niestosuje się selekcji proporcjonalnej, czy szeregowania. Tutajporównujemy koszt wektora próbnego z kosztem jego macierzystejtarczy – ten, który ma niższy koszt, zostaje nagrodzonyprzeniesieniem do tablicy pomocniczej, ponadto jeśli zwycięzcą okażesię wektor próbny, jego koszt zostaje zapisany w tablicy cost[i] .

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

Ewolucja różnicowa (DE)

Przykład rekombinacji w DE

W przeciwieństwie do wielu algorytmów genetycznych w DE niestosuje się selekcji proporcjonalnej, czy szeregowania. Tutajporównujemy koszt wektora próbnego z kosztem jego macierzystejtarczy – ten, który ma niższy koszt, zostaje nagrodzonyprzeniesieniem do tablicy pomocniczej, ponadto jeśli zwycięzcą okażesię wektor próbny, jego koszt zostaje zapisany w tablicy cost[i] .Kiedy mutacja, rekombinacja i selekcja dotknie już wszystkichwektorów z głównej tablicy, zamieniamy wskaźniki do tablic, przezco tablice główna i pomocnicza zamieniają się rolami: teraz wektoryz tablicy pomocniczej zostaną poddane transformacji, zaśpoprzednia tablica główna oczekuje na zwycięzców konkursu znastępnego pokolenia.

Ewolucja różnicowa (DE)

Badanie funkcji f(x) = 11+p1x+p2x2

Ewolucja różnicowa (DE)

Rady praktyczne

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

F powinno przyjmować wartości od 0.5 , a następnie stopniowopowinno się zwiększać F i/lub NP, jeśli populacja nazbyt szybkoprzestanie 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ązanieJak widać istnieje duże pole manewru, pod warunkiem wybraniadobrej kombinacji stałych kontrolujących działanie DE.

Ewolucja różnicowa (DE)

Rady praktyczne

NP powinno być 5 do 10 razy większe od liczby parametrówtworzących wektor.F powinno przyjmować wartości od 0.5 , a następnie stopniowopowinno się zwiększać F i/lub NP, jeśli populacja nazbyt szybkoprzestanie 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ązanieJak widać istnieje duże pole manewru, pod warunkiem wybraniadobrej kombinacji stałych kontrolujących działanie DE.

Ewolucja różnicowa (DE)

Rady praktyczne

NP powinno być 5 do 10 razy większe od liczby parametrówtworzących wektor.F powinno przyjmować wartości od 0.5 , a następnie stopniowopowinno się zwiększać F i/lub NP, jeśli populacja nazbyt szybkoprzestanie 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 wybraniadobrej kombinacji stałych kontrolujących działanie DE.

Ewolucja różnicowa (DE)

Rady praktyczne

NP powinno być 5 do 10 razy większe od liczby parametrówtworzących wektor.F powinno przyjmować wartości od 0.5 , a następnie stopniowopowinno się zwiększać F i/lub NP, jeśli populacja nazbyt szybkoprzestanie 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ązanieJak widać istnieje duże pole manewru, pod warunkiem wybraniadobrej kombinacji stałych kontrolujących działanie DE.

Ewolucja różnicowa (DE)

Zastosowania DE

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

DE wykorzystano już w kilku przypadkach do stworzenia złożonychfiltrów cyfrowych, z których największy wymagał dostrojenia 60parametrów.www.ICSI.Berkeley.edu/∼storn/code.html

Ewolucja różnicowa (DE)

Zastosowania DE

Niedawno algorytm DE wziął udział w międzynarodowym konkursiedla programów optymalizujących, w którym zastosowano zestaw owiele bardziej złożonych funkcji testowych. DE okazał się byćnajszybszym ze zgłoszonych „zawodników” w kategorii algorytmówewolucyjnych.DE wykorzystano już w kilku przypadkach do stworzenia złożonychfiltrów cyfrowych, z których największy wymagał dostrojenia 60parametrów.

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

Ewolucja różnicowa (DE)

Zastosowania DE

Niedawno algorytm DE wziął udział w międzynarodowym konkursiedla programów optymalizujących, w którym zastosowano zestaw owiele bardziej złożonych funkcji testowych. DE okazał się byćnajszybszym ze zgłoszonych „zawodników” w kategorii algorytmówewolucyjnych.DE wykorzystano już w kilku przypadkach do stworzenia złożonychfiltrów cyfrowych, z których największy wymagał dostrojenia 60parametrów.www.ICSI.Berkeley.edu/∼storn/code.html

Ewolucja różnicowa (DE)

ALGOTYTM DE

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

Dla index = 1 do rozmiaru pop.begin

wybierz losowo 3 różne wartości i1, i2, i3,index 6= i1 6=i2 6=i3Dla każdej zmiennej jif Random CRX = 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

endwy: nowa populacja P

Ewolucja różnicowa (DE)Modyfikacje DE (Shan, Qi, Abbass)

Nową propozycją jest generowanie długości kroku w sposób losowy izapamiętywanie kierunku w populacji, która zmienia się w czasie. Wcelu zapamiętania kierunku kolejny algorytm składa się z dwupopulacji; jedną jest populacja rozwiązań a drugą jest populacjakierunków. Kierunek jest wyznaczany jako różnica między 2rodzicami przedstawiona w pop. algorytmie. Jednakże I rodzic jestwybierany z najlepszej części bieżącej populacji, podczas gdy drugi znich jest wybrany z pozostałej reszty. Rozmiar najlepszej części jestparametrem definiowanym przez użytkownika. To w pewien sposóbzabezpiecza różnorodność w populacji kierunków, przyrównoczesnym skupianiu się na elitaryzmie.

W celu wygenerowania kolejnej populacji, populacja chwilowa jestwykorzystywana do zapamiętania zmodyfikowanych osobników najlepszejczęści bieżącej populacji. Każdy osobnik jest modyfikowany poprzezdodanie do niego losowo wybranych kierunków. To podejścieukierunkowane na elitaryzm, ułatwia nam zachowanie najlepszychosobników bez utraty różnorodności. Populacja chwilowa jest połączona zbieżącą w celu utworzenia następnej populacji poprzez mechanizmwspółdzielenia przystosowania.

Ewolucja różnicowa (DE)Modyfikacje DE (Shan, Qi, Abbass)

Nową propozycją jest generowanie długości kroku w sposób losowy izapamiętywanie kierunku w populacji, która zmienia się w czasie. Wcelu zapamiętania kierunku kolejny algorytm składa się z dwupopulacji; jedną jest populacja rozwiązań a drugą jest populacjakierunków. Kierunek jest wyznaczany jako różnica między 2rodzicami przedstawiona w pop. algorytmie. Jednakże I rodzic jestwybierany z najlepszej części bieżącej populacji, podczas gdy drugi znich jest wybrany z pozostałej reszty. Rozmiar najlepszej części jestparametrem definiowanym przez użytkownika. To w pewien sposóbzabezpiecza różnorodność w populacji kierunków, przyrównoczesnym skupianiu się na elitaryzmie.W celu wygenerowania kolejnej populacji, populacja chwilowa jestwykorzystywana do zapamiętania zmodyfikowanych osobników najlepszejczęści bieżącej populacji. Każdy osobnik jest modyfikowany poprzezdodanie do niego losowo wybranych kierunków. To podejścieukierunkowane na elitaryzm, ułatwia nam zachowanie najlepszychosobników bez utraty różnorodności. Populacja chwilowa jest połączona zbieżącą w celu utworzenia następnej populacji poprzez mechanizmwspółdzielenia przystosowania.

Ewolucja różnicowa (DE)

ALGOTYTM II

Inicjalizacja.Ewaluacja wszystkich indywiduów z P1 i posortowanie ich wkolejności malejącej dla wartości przystosowania.Generowanie populacji kierunków w kolejnych krokach:

wybór osobników spośród 20wybór osobników z pozostałych 80wygeneruj kierunek d: d= i +U(0, 1)(i - j), w którym U(0,1) jestzmienną pseudolosową z przedz. (0,1)zmień każdą wart. kierunku d z prawdopodob. CRdodaj tę nowo utworzoną wart. kierunku do populacji kierunków

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

Ewolucja różnicowa (DE)

ALGOTYTM II (cd)

Oceń wszystkie osobniki w P2, jak również w populacji kierunków.Wartość przystosowania każdego wybranego kierunku jest określonapoprzez wartość przystosowania po użyciu jego w odpowiadającemumu potomku. Jeśli ten kierunek pogarsza f. przystosowania , lub niejest wybrany, przypisuje mu się wartość zero.Połącz P1 z P2 w celu utworzenia nowej populacji P3 tego samegorozmiaru jak P1, poprzez wybór najlepszych z P1+P2. Najlepsi sąokreślani poprzez współdzielenie przystosowania i użycie alpha1 jakowspółczynnika.Zamień P1 z P3.Posortuj P1.Zamień najgorsze 50% kierunków w populacji kierunków z nowowygenerowanymi jak następuje:

Połowa z nich jest generowana losowo z już istniejących kierunkówPozostałość generowana jest jak w kroku 1

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

Ewolucja różnicowa (DE)Przykład działań DE

Ewolucja różnicowa (DE)DE - Mathematica

Ewolucja różnicowa (DE)

Przykład - SOMA (Ivan Zelinka)