• Nie Znaleziono Wyników

Ewolucja różnicowa (DE)

N/A
N/A
Protected

Academic year: 2021

Share "Ewolucja różnicowa (DE)"

Copied!
35
0
0

Pełen tekst

(1)

Ewolucja różnicowa (DE)

Ewolucja różnicowa Rainer Storn Kenneth Price

(2)

Ewolucja różnicowa (DE)

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.

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.

(3)

Ewolucja różnicowa (DE)

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.

(4)

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.

(5)

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 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.

(6)

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 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.

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.

(7)

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 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.

(8)

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 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.

(9)

Ewolucja różnicowa (DE)

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ń.

(10)

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ń.

(11)

Ewolucja różnicowa (DE)

Podstawowy mechanizm w DE

(12)

Schemat mutacji w DE

(13)

Ewolucja różnicowa (DE)

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.

(14)

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.

(15)

Ewolucja różnicowa (DE)

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.

(16)

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.

(17)

Ewolucja różnicowa (DE)

Przykład rekombinacji w DE

(18)

Ewolucja różnicowa (DE)

Przykład rekombinacji 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] .

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.

(19)

Ewolucja różnicowa (DE)

Przykład rekombinacji 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.

(20)

Badanie funkcji f(x) =1+p 1

1x +p2x2

(21)

Ewolucja różnicowa (DE)

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.

(22)

Ewolucja różnicowa (DE)

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.

ż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.

(23)

Ewolucja różnicowa (DE)

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.

(24)

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.

(25)

Ewolucja różnicowa (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

(26)

Ewolucja różnicowa (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.

(27)

Ewolucja różnicowa (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

(28)

ALGOTYTM 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 6= i16=i26=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

(29)

Ewolucja różnicowa (DE)

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.

(30)

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.

(31)

Ewolucja różnicowa (DE)

ALGOTYTM 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 wybór osobników z pozostałych 80

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.

(32)

ALGOTYTM 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łowa 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.

(33)

Ewolucja różnicowa (DE)

Przykład działań DE

(34)

DE - Mathematica

(35)

Ewolucja różnicowa (DE)

Przykład - SOMA (Ivan Zelinka)

Cytaty

Powiązane dokumenty

N - może być prawdziwe lub

[r]

Czy istnieje funkcja f, że jest tylko jeden punkt a o tej włąsności?.

[r]

[r]

[r]

Zauważmy, że kombinacja liniowa UL z dodatnimi współczynnikami jest UL.. Miara Levy’ego: Niech P

uczeń poprawnie oblicza pola co najmniej 5 prostokątów, które mogą być umieszczone wewnątrz ramki jako obrazki - nie zapisując ich wymiarów.