Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek
Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania osobników najlepiej przystosowanych Różnice: Kodowanie binarne - algorytmy genetyczne Strategie ewolucyjne - wektory liczb zmiennoprzecinkowych
Parametry egzogenne MI [μ] - Ilość osobników w populacji RO [ρ] - Ilość osobników rodzicielskich LAMBDA [λ] - Ilość osobników potomnych Parametry te nie ulegają zmianie w trakcie działania algorytmu.
Osobnik w populacji Pojedyńczy osobnik prezentowany jest jako, gdzie: Y - wektor położenia (jego wielkość odpowiada wymiarowości zadania) S - endogenny wektor odchyleń standardowych (jego wielkość odpowiada wymiarowości zadania) F - funkcja celu (przystosowania)
Problem optymalizacyjny - Ackley's function Wzór funkcji Globalne minimum Rozpatrywana dziedzina funkcji
Pseudokod algorytmu = initialize(mi) // inicjalizacja wartości początkowych while not terminalcontition(): // główna pętla offspring = [] // wyczyść tablice wyselekcjonowanych osobników for i:1.. LAMBDA: // wygeneruj potomków parents=marriage (, p) s = sreconbination(parents) // rekombinacja na parametrach endogennych y = yrecombination(parents) // rekombinacja na wektorze parametrów s = smutation(s) // mutacja parametrów endogennych y = ymutation(s, y) // mutacja wektora parametrów f = F(y) // obliczenie funckji przystosowania offspring = [offspring, osobnik(y, s, f)] // dodaj osobnika do tablicy osobników end = selection(offspring,, mi) // uaktualnij populację osobników end
Warunek końcowy As termination conditions the standard stopping rules can be used resource criteria: maximum number of generations, maximum cpu-time convergence criteria: in the space of fitness values, in the space of object parameters, in the space of strategy parameters.
Mutacje i Rekombinacje Operator krzyżowania ma za zadanie łączyć w różnych kombinacjach cechy pochodzące z różnych osobników populacji, zaś operator mutacji ma za zadanie zwiększać różnorodność tych osobników
Mutacja izotropowa dla liczb rzeczywistych Wzór ogólny na mutacje: y := y + z --------------------------------------------------------------------------------------------------------- z = σ(n1(0, 1),..., NN(0, 1)) y - wektor parametrów z - współczynnik mutacji y~ - mutant σ - odchylenie standardowe
Mutacja metodą gaussa dla liczb rzeczywistych Mutacja ta jest operatorem modyfikującym wybrany zmutowany gen w ten sposób, że przyjmuje on wartość losową z rozkładem Gaussa(normalnym). z = (σ 1N1(0, 1),...,σ n Nn(0, 1)) gdzie [σ 1 σ n] jest wektorem endogennym S. Konkluzja : Dla każdego elementu wektora Y : dodaj odpowiadający mu element z wektora S pomnożony przez liczbę losową z rozkładu gaussa dla parametrów (0,1) (czyli defakto chodzi o o wektor Z)
Mutacje w świecie binarnym: W tych mutacjach potrzebujemy wektory bitów. Polega na manipulowaniu indeksów po szczególnych bitów.
Rekombinacje Rekombinacja dominująca - polega na losowym tworzeniu rodziców z indywidualnych osobników i z nich wybieramy kolejnych losowych osobników. ak = amk, mk = Random{1,, p} rk := (amk )k, rk - wektor nowych rodziców po rekombinacji
Rekombinacje Rekombinacja uśredniająca - początek jest taki sam jak w poprzedniej rekombinacji, z wyjątkiem jest sposób tworzenia wektora r. gdzie, p - liczba wektorów rodziców wybranych przy pierwszym losowaniu rk - wektor nowych uśrednionych rodziców
Rekombinacje Multirekombinacja - poprzednie rekombinacje wykonuje się w świecie binarnym ten zaś,wykonuje się wtedy gdy p>2. Wzór wygląda następująco: gdzie: g - kolejny krok w iteracji μ - pierwotna populacja z - wektor współczynników mutacji y^(g+1) - wektor nowych rodziców
Wyjaśnienia σ - odchylenie standardowe wektora parametrów N(0,1) - standardowym rozkładem normalnym gdzie x jest parametrem z wektora parametrów y s - wektor endogennych parametrów Mutacje zwracają wektory Z współczynników mutacji
Strategie: 1. 1+1 2. µ+λ 3. µ,λ
Strategia 1+1 algorytm typu random hill-climbing. W każdej iteracji korzysta się z jednego rodzica, by stworzyć jednego potomka Rozkładu Gaussa - losowa wartość z rozkładu normalnego - N(0,1).
Rozkład normalny
function evolution_strategy_1_plus_1(sigma,maxiteration) { currentstate = initstate(); k=1; }; while( (k < maxiteration) && (rate(currentstate) > 0) ) { childrenstate = currentstate + sigma*n(0,1); if( rate(childrenstate) < rate(currentstate) ) currentstate = childrenstate; k = k+1; } return currentstate;
Dobieranie wartości sigma. reguła ⅕ sukcesów: φ(k) - stosunek udanych mutacji do wszystkich mutacji.
Zmiana wartości funkcji celu w kolejnych iteracjach
Strategia (µ+λ) budowanie populacji jest bardziej złożone niż w strategii (1+1). osobnik zostaje w populacji tak długo jak zostanie zastąpiony przez lepszego osobnika. algorytm szybko zbiega do minimum lokalnego operuje na wiekszej liczbie osobnikow, pozwala uniknac optimów lokalnych λ > µ
Opis słowny algorytmu 1. Wylosuj populację P zawierającą µ osobników. 2. Utwórz populację T zawierającą λ osobników poprzez reprodukcję (losowanie ze zwracaniem) zbioru P. 3. Dla każdego osobnika z populacji T wykonaj operację krzyżowania i mutacji.zapisz każdego z nich do nowej populacji O. 4. Połącz oba zbiory. P = T + O, P = λ + λ 5. Ze zbioru P wybierz µ najlepiej przystosowanych osobników.
function strategy_evolution_mi_plus_lambda(u, lambda) { P = initstate(u); ratep = rate(p); result = randomstate(p); while(not condition stop) { T = randfrom(p, lambda); O = mutation(t); rateo = rate(o); P = (from state in T.Concat(O) order state by state.f select state).take(u); result = P.First(); } }; return result;
function randfrom(state, amount) { result = List<State>(); for(i=0;i< amount;i++) { randomindex = Random.Next(State.length); randomstate = State[randomIndex]; result.add(randomstate); } }; return result;
function mutation(list<state> T) { result = List<State>(); for(i=0;i<t.length;i++) result.add(domutation(t[i])); return result; };
Strategia (µ,λ) Wszyscy rodzice giną po jednej generacji (stare osobniki nie przechodzą do nowej populacji). Nowa populacja P zawiera µ osobników, która jest wybierana spośród λ osobników z populacji zmutowanej O. µ > λ