Strategie ewolucyjne
Transkrypt
Strategie ewolucyjne
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 parents=marriage ( potomków , 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, end , mi) // uaktualnij populację osobników 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. ● µ>λ