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.
● µ>λ

Podobne dokumenty