Obliczenia Naturalne - Strategie ewolucyjne

Transkrypt

Obliczenia Naturalne - Strategie ewolucyjne
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Literatura
Historia
Obliczenia Naturalne - Strategie ewolucyjne
Paweł Paduch
Politechnika Świętokrzyska
3 kwietnia 2014
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
1 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Literatura
Historia
Plan wykładu
1
Wstęp
Literatura
Historia
2
Strategie ewolucyjne
Strategia (1+1)-SE
Strategia (µ+1)-SE
Strategia (µ + λ)-SE
Strategia (µ, λ)-SE
3
Programowanie ewolucyjne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
4
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
2 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Literatura
Historia
Literatura
Mariusz Flasiński - Wstęp do sztucznej inteligencji, PWN, 2011
Jarosław Arabas - Wykłady z algorytmów ewolucyjnych, WNT,
2001
David Edward Goldberg - Algorytmy genetyczne i ich
zastosowania, WNT, 2009
Zbigniew Michalewicz - Algorytmy genetyczne+struktury
danych=programy ewolucyjne, WNT, 2003
T. D. Gwiazda - Algorytmy Genetyczne - kompendium, Tom 1
i 2, PWN, 2007
H.P. Schwefel - A Survey of Evolution Strategies, University of
Dortmund,
http://rain.ifmo.ru/ buzdalov/lab-2011/books/es-survey.pdf
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
3 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Literatura
Historia
Historia
Po raz pierwszy zastosowano strategie ewolucyjne w 1963 roku
przez dwóch studentów Politechniki Berlińskiej Ingo Rechenberga i
Hans-Paula Schwefela. Brali oni udział w badaniach nad
poszukiwaniem optymalnych kształtów ciał w przepływach.
Pierwsze strategie można uznać za programy ewolucyjne używające
reprezentacji zmiennopozycyjnej oraz mutacją (zwaną perturbacją)
jako jedynym operatorem.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
4 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Podobieństwa
Strategie ewolucyjne tylko trochę podobne są do algorytmów
genetycznych:
Zarówno SE jak i AG opierają się na populacji potencjalnych
rozwiązań.
W obu wykorzystuje się selekcję opierającą się na przeżyciu
bardziej przystosowanych osobników.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
5 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Różnice
SE używają wektorów zmiennopozycyjnych, AG wektorów
binarnych.
SE procedura selekcji jest deterministyczna a AG
probabilistyczna.
SE stosuje odwrotną kolejność selekcji i rekombinacji, selekcja
jest po rekombinacji.
Parametry reprodukcji (prawdopodobieństwo krzyżowania i
mutacji) zwykle są stałe w SE parametry są „samodostrajalne”
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
6 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia Ewolucyjna (1+1)-SE
Mechanizm adaptacji
zasięgu mutacji - reguła 1/5
sukcesów
Przetwarzany jest tylko
jeden chromosom bazowy Xt
W każdym kroku
generowany jest nowy
chromosom Yt , będący
wynikiem mutacji Xt
Potomek jest porównywany
z rodzicem i do następnego
pokolenia przechodzi ten o
lepszym przystosowaniu.
Paweł Paduch
Algorytm 1 Strategia 1+1
1: procedure SE 1 + 1
2:
t←0
3:
inicjalizacja X0
4:
ocena X0
5:
while (warunek stopu niespełniony) do
6:
Yt ← mutacja Xt
7:
ocena Yt
8:
if (f (Yt ) > f (Xt )) then
9:
Xt+1 ← Y t
10:
else
11:
Xt+1 ← X t
12:
end if
13:
t ←t+1
14:
end while
15: end procedure
Obliczenia Naturalne - Strategie ewolucyjne
7 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia Ewolucyjna (1+1)-SE
W strategii (1+1) kluczową rolę w działaniu odgrywa sposób
mutacji. Dodajemy losową (rozkładem normalnym) modyfikację do
każdego genu chromosomu Xt
Yt = Xt + N(0, σ)
Gdzie N(0, σ) jest wektorem liczb wylosowanych z rozkładu
normalnego o wartości oczekiwanej 0 i odchyleniach standardowych
podanych wektorem σ. Losowanie jest wykonywane niezależnie dla
każdej wartości.
σ = 1
Funkcja gęstości rozkładu
prawdopodobieństwa normalnego
−4
Paweł Paduch
0.3
σ = 1.5
σ = 3
0.2
0.1
−2
2
4
Obliczenia Naturalne - Strategie ewolucyjne
8 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Twierdzenie o zbieżności
Jeżeli σ nie zmienia się w procesie ewolucyjnym a składniki jego są
jednakowe (σ = (σ, σ, ..., σ)), to można udowodnić poniższe
twierdzenie:
Dla σ > 0 i regularnego zadania optymalizacji z fopt > −∞ (przy
minimalizacji) lub fopt < ∞ (przy maksymalizacji) zachodzi:
p
n
o
lim f (xt ) = fopt = 1
t→∞
Czyli globalne optimum zostanie na pewno znalezione, jeżeli
będziemy przeszukiwać odpowiednio długo. Niestety nie wiemy nic
o szybkości zbieżności (ilorazu odległości przebytej w kierunku
optimum i liczby pokoleń, przy której uzyskano tę odległość).
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
9 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Reguła 1/5 sukcesów
W celu zoptymalizowania szybkości zbieżności Rechenberg
zaproponował regułę 1/5 sukcesu.
„Stosunek ϕ udanych mutacji do wszystkich mutacji powinien
wynosić 1/5. Jeżeli ϕ jest większe od 1/5, to zwiększ wariancję
operatora mutacji, w odwrotnym przypadku zmniejsz ją.”
σ t+1 =

t

 cd · σ ,
ci · σ t ,

 σt ,
dla ϕ(k) < 1/5,
dla ϕ(k) > 1/5,
dla ps (k) = 1/5
ϕ(k) - współczynnik sukcesów operatora mutacji w poprzednich k
pokoleniach, ci > 1, cd < 1 współczynniki wzrostu lub
zmniejszania wariacji mutacji. Schwefel eksperymentalnie dobrał
cd = 0, 82, ci = 1/cd = 1, 22.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
10 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia (1+λ)-SE
Jest to strategia będąca modyfikacją (1+1)-SE.
Jeden rodzic tworzy λ potomków.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
11 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia (µ+1)-SE
Jest to SE wieloelementowa w której:
Pokolenie składające się z µ osobników, tworzy jednego
potomka.
Z pokolenia µ + 1 osobników usuwa się najsłabszego
Wszystkie osobniki w populacji mają te same
prawdopodobieństwa łączenia się w pary
Wprowadzono możliwość rekombinacji (w dziedzinie AG
zwanego jednorodnym krzyżowaniem) - omówione dalej.
Odchylenie standardowe σ oraz mutacja pozostają bez zmian.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
12 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia Ewolucyjna (µ + λ)-SE
Jest nie tylko uogólnieniem
strategii (µ+1)-SE, ale
wprowadza nowe elementy.
Oprócz krzyżowania
wprowadzono mechanizm
samoregulacji parametru σ
zastępując regułę 1/5. Parametr
σ jest teraz elementem osobnika
i także podlega ewolucji.
Paweł Paduch
Algorytm 2 Strategia (µ + λ)-SE
1: procedure (µ + λ)-SE
2:
t←0
3:
inicjalizacja Pt
4:
ocena Pt
5:
while (warunek stopu niespełniony) do
6:
Tt ← reprodukcja Pt
7:
Ot ← krzyżowanie i mutacja Tt
8:
ocena Ot
9:
Pt+1 ← µ najlepszych z Pt ∪ Ot
10:
t ←t+1
11:
end while
12: end procedure
Obliczenia Naturalne - Strategie ewolucyjne
13 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Rekombinacja dyskretna
Przy operatorze rekombinacji dyskretnej dwoje losowo wybranych
rodziców
(x1 , σ 1 ) = ((x11 , ..., xn1 ), (σ11 , ..., σn1 ))
(x2 , σ 2 ) = ((x12 , ..., xn2 ), (σ12 , ..., σn2 ))
tworzą potomka
(x, σ) = ((x1q1 , ..., xnqn ), (σ1q1 , ..., σnqn ))
gdzie qi = 1 lub qi = 2 z jednakowym prawdopodobieństwem dla
wszystkich i = 1, ..., n
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
14 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Rekombinacja przez uśrednienie
Przy operatorze rekombinacji przez uśrednienie dwoje losowo
wybranych rodziców
(x1 , σ 1 ) = ((x11 , ..., xn1 ), (σ11 , ..., σn1 ))
(x2 , σ 2 ) = ((x12 , ..., xn2 ), (σ12 , ..., σn2 ))
tworzą potomka
(x, σ) =
x11 + x12
x 1 + xn2
, ..., n
2
2
!
σ11 + σ12
σ 1 + σn2
,
, ..., n
2
2
!!
Czyli wybieramy wektory będące średnią wektorów σ 1 i σ 2 oraz x1
i x2 .
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
15 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Rekombinacja przez uśrednienie
Uogólniona metoda rekombinacji przez uśrednianie dla dwoje
losowo wybranych rodziców uwzględnia losowy współczynnik
a = ξU(0,1) wylosowany z rozkładu jednostajnego. Potomkowie
powstają z sumowania „części” rodziców.
x01 = ax1 + (1 − a)x2
x02 = ax2 + (1 − a)x1
σ 01 = aσ 1 + (1 − a)σ 2
σ 02 = aσ 2 + (1 − a)σ 1
W AG takie krzyżowanie nazywa się gwarantowanym średnim
krzyżowaniem zaś w SE natychmiastowym krzyżowaniem
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
16 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Mutacja
Na nowo otrzymanym potomku (x, σ) stosujemy mutację i
powstaje (x0 , σ 0 ) gdzie:
σ 0 = σ · e N(0,∆σ)
x0 = x + N(0, σ 0 )
gdzie ∆σ jest parametrem metody.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
17 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Mutacja
W celu poprawienia szybkości zbieżności SE Schwefel wprowadził
dodatkowy parametr sterujący Θ, związany ze skorelowaniem
mutacji. Teraz jeden osobnik jest reprezentowany przez 3 wektory:
(x, σ, Θ)
Rekombinacja jest podobna do już omawianej, mutacja tworzy
potomka (x0 , σ 0 , Θ0 ) gdzie:
σ 0 = σ · e N(0,∆σ)
Θ0 = Θ + N(0, ∆Θ)
x0 = x + C (0, σ 0 , Θ0 )
Gdzie ∆Θ jest dodatkowym parametrem metody, a C (o, σ 0 , Θ0 )
oznacza wektor niezależnych losowych liczb gaussowskich z zerową
średnią.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
18 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Strategia
Strategia
Strategia
Strategia
(1+1)-SE
(µ+1)-SE
(µ + λ)-SE
(µ, λ)-SE
Strategia (µ, λ)-SE
W strategii (µ + λ)-SE osobnik o
wyróżniającej się wartości funkcji
przystosowania ale ze złym
parametrem σ mógł „zalegać”
zbyt długo. Modyfikacja w
strategii (µ, λ)-SE polega na
tym, że nowa populacja tworzona
jest wyłącznie z λ osobników
potomnych populacji Ot , a więc
stare pokolenie jest usuwane.
Paweł Paduch
Algorytm 3 Strategia (µ, λ)-SE
1: procedure (µ, λ)-SE
2:
t←0
3:
inicjalizacja Pt
4:
ocena Pt
5:
while (warunek stopu niespełniony) do
6:
Tt ← reprodukcja Pt
7:
Ot ← krzyżowanie i mutacja Tt
8:
ocena Ot
9:
Pt+1 ← µ najlepszych z Ot
10:
t ←t+1
11:
end while
12: end procedure
Obliczenia Naturalne - Strategie ewolucyjne
19 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Różnice
Różnica pomiędzy AG i SE a programowaniem genetycznym jest
taka, że w tych pierwszych punkty poszukiwania przestrzeni
rozwiązań odpowiadają osobnikom populacji. W programowaniu
ewolucyjnym osobniki pochodzą jakby z osobnych gatunków, stad
stosowanie operatora krzyżowania jest bezsensowne (nie
krzyżujemy różnych gatunków).
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
20 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Początki
Lawrence Fogel w 1966 opracował pierwsze metody programowania
ewolucyjnego do rozwoju sztucznej inteligencji.
Rozważał problem odkrywania gramatyki nieznanego języka.
Zestaw jego symboli i przykłady wyrażeń syntaktycznie
poprawnych były znane.
Gramatyka była modelowana za pomocą automatu
skończonego.
Zbiór stanów, funkcja przejść i funkcja wyjść były
przedmiotem poszukiwań.
Liczba prawidłowych klasyfikacji (poprawnych syntaktycznie)
wyrażeń poznawanego języka była funkcją przystosowania
osobnika (automatu).
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
21 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Automat skończony
0/a
1
Stany to węzły
0/a
Krawędzie to przejścia
Przy przejściach podane są dwa
symbole x/y gdzie:
4
x symbol wejściowy wprowadzany
do automatu
y symbol wyjściowy
wygenerowany przez automat
1/a
0/b
2
0/a
1/b
1/a
3
1/a
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
22 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Ewolucja Automatu
Automat podlega ewolucji polegającej jedynie na mutacji. Fogel
rozważał 5 rodzajów mutacji:
dodanie stanu,
usunięcie stanu,
zmiana stanu początkowego,
zmiana funkcji wyjść,
zmiana funkcji przejść.
Pomimo obiecujących wyników prac programowanie ewolucyjne w
pierwotnej formie nie stało się zbyt popularne aż do...
następnego pokolenia.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
23 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Nowe podejście
Ponad 20 lat później, syn Fogela, David rozwinął programowanie
ewolucyjne dzięki pewnym zmianom upodabniając PE do strategii
ewolucyjnych.
zmiana dziedziny zastosowań - optymalizacja numeryczna
wprowadzenie reprezentacji rzeczywistoliczbowej
dostosowanie do niej operatora mutacji
wzbogacenie genotypu osobnika o chromosom, zawierający
wektor σ standardowych odchyleń
wprowadzenie mechanizmu modyfikacji zasięgu σ.
zamiana selekcji rankingowej na selekcje turniejową
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
24 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Algorytm
Algorytm 4 Programowanie ewolucyjne
1: procedure Programowanie Ewolucyjne
2:
t←0
3:
inicjalizacja Pt
4:
ocena Pt
5:
while (warunek stopu niespełniony) do
6:
Ot ← 0
7:
for all (X ∈ Pt ) do
8:
Y ← mutacja X
9:
Ot ← Ot ∪ {Y}
10:
end for
11:
ocena Ot
12:
for all (X ∈ Pt ∪ Ot ) do
13:
wyznacz r (X)
14:
end for
15:
Pt+1 ← wybór najlepszych z Ot ∪ Pt
16:
t ←t +1
17:
end while
18: end procedure
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
25 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Algorytm
Każdy osobnik tworzy jednego potomka
Każdy potomek jest poddawany mutacji
Obliczana jest wartość przystosowania nowych osobników
Tworzona jest nowa populacja bazowa
dla każdego osobnika (z obu populacji) określana jest ranga
wybieramy do nowej populacji te z najwyższą rangą
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
26 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Określanie wartości rang
Dla każdego osobnika X losujemy q osobników o populacji
Q ⊂ (Pt ∪ Ot \ {X})
Ranga osobnika r (X) jest równa liczbie osobników z Q o
przystosowaniu mniejszym od niego.
r (X) = k{Y ∈ Q|f (X) > f (Y)}k
Osobniki o największej wartości przystosowania w Pt ∪ Ot z
definicji mają rangę równą q
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
27 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Brak adaptacji
Mutacja polega na dodaniu do genotypu osobnika wartości
zmiennej losowej o wielowymiarowym nieskorelowanym rozkładzie
normalnym
Xi0 = Xi + σi ξN(0,1),i
gdzie współczynniki σi są parametrami algorytmu dla każdego
genu z osobna lub σi = σ dla każdego i.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
28 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Adaptacja przez śledzenie wartości funkcji przystosowania
Uzależniamy stopień mutacji osobnika od wartości funkcji
przystosowania. Nowy gen jest tworzony w następujący sposób:
Xi0 = Xi +
q
β(fmax − f (X)) + γ · ξN(0,1),i
β jest współczynnikiem szybkości zmian,
γ jest parametrem ograniczającym od dołu wartość wariancji
zmiennej losowej wykorzystywanej podczas mutacji,
fmax jest oszacowaniem wartości funkcji przystosowania w
maksimum globalnym.
Im osobnik bardziej zbliża się do szacowanej wartości maksimum
globalnego tym stopień jego mutacji jest mniejszy.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
29 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Początki
Algorytm
Określanie wartości rang
Operatory mutacji
Samoczynna adaptacja zasięgu
Samoczynna adaptacja wartości odchyleń standardowych σ jest
podobna do tej w strategiach ewolucyjnych. Wartości σi zapisane
są w osobniku i też podlegają ewolucji.
Modyfikujemy wartości genów odpowiadających
przystosowaniu osobnika
Xi0 = Xi + σi ξN(0,1),1
Następnie wartości odchyleń:
σi0
r
=
2 , (σ 2 + ζξ
min σmin
N(0,1),i )
i
ζ jest współczynnikiem sterującym intensywnością zmian σi .
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
30 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Historia
Programowanie genetyczne powstało jako szczególna odmiana
algorytmów genetycznych o mocno rozwiniętych strukturach
danych. Chciano by kody programów same się generowały gdy
znane były kryteria oceny prawidłowości działania. Używano języka
LISP, w którym program i dane reprezentowane są w postaci
drzewa.
Kodowanie binarne zastąpiono drzewiastym. W węzłach znajdują
się symbole pewnego alfabetu lub wartości liczbowe ciągłe jak i
dyskretne, a także, stałe, zmienne i funkcje.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
31 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Kodowanie drzewiaste
Chromosom jest w formie drzewa składającego się z węzłów
z zapisaną informacją i krawędzi opisujących wzajemne relacje.
Jeżeli krawędź jest skierowana od węzła A do B to A jest
nadrzędnym, zaś B podrzędnym.
Liście drzewa to węzły terminalne reszta to węzły pośrednie.
Węzeł bez nadrzędnego to korzeń drzewa.
W węzłach terminalnych znajdują się elementy atomiczne o niepodzielnej strukturze wewnętrznej.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
32 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Kodowanie drzewiaste
Węzły atomiczne zawierają, stałe, zmienne lub funkcje
bezparametrowe
Węzły pośrednie to odpowiedniki funkcji lub operatorów
przyjmujących jeden lub więcej argumentów i zwracających
dokładnie jedną wartość.
Argumenty mogą pochodzić jako wartości z węzłów
terminalnych albo z innych funkcji.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
33 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Przykład
setq
(defun pierwiastki (a b c)
( (setq (delta -( *(b b) *(4 * (a c)))))
(if<(delta 0)
(setq n 0)
)
delta
(if=(delta 0)
( (setq n 1)
(setq x1 ( /(-b)(* (2 a))))
)
*
)
(if>(delta 0)
( (setq n0)
(setq x1 (x /((-( -b sqrt(delta) )(* (2 a))))))
b
(setq x2 (x /((+( -b sqrt(delta) )(* (2 a)))))) b
)
)
)
)
Paweł Paduch
-
*
4
Obliczenia Naturalne - Strategie ewolucyjne
*
a
c
34 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacje
Drzewa mogą podlegać mutacjom np:
zmiana zawartości węzła terminalnego,
zamiana węzła terminalnego na pośredni z losowo
wygenerowanym poddrzewem,
zamiana węzła pośredniego na terminalny,
zamiana węzeł pośredni ze swoim poddrzewem na inny z
losowo wygenerowanym poddrzewem,
reorganizacja poddrzew węzła pośredniego.
Drzewa mogą się rozrastać, zmniejszać lub zmieniać kształt.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
35 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacja 1
+
x
+
y
x
25
zmiana zawartości węzła terminalnego
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
36 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacja 2
*
x
*
y
x
+
y
x
Zamiana węzła terminalnego na korzeń losowego poddrzewa
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
37 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacja 3
+
x
+
x
*
y
4
22
Zamiana korzenia poddrzewa na węzeł terminalny
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
38 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacja 4
*
x
*
x
+
y
cos
x
/
x
4
Zmiana poddrzewa na inne
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
39 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Mutacja 5
/
/
sin
cos
cos
sin
y
/
/
y
x
x
4
4
Reorganizacja poddrzew
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
40 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Krzyżowanie
/
/
+
a
-
+
b
-
b
√
-
a
∆
*
√
2
a
∆
Krzyżowanie struktur drzewiastych polega na losowym wybraniu po
jednym węźle u każdego z 2 rodziców ...
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
41 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Krzyżowanie
/
/
-
+
a
b
-
a
+
√
-
∆
b
*
√
2
a
∆
... oraz zamienieniu miejscami tych węzłów wraz całymi
poddrzewami tak jak widać to na rysunku powyżej.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
42 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
Pytania
?
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
43 z 44
Wstęp
Strategie ewolucyjne
Programowanie ewolucyjne
Programowanie genetyczne
Historia
Kodowanie drzewiaste
Mutacja
Krzyżowanie
koniec
Dziękuję Państwu za uwagę.
Paweł Paduch
Obliczenia Naturalne - Strategie ewolucyjne
44 z 44

Podobne dokumenty