Algorytmy Ewolucyjne
Download
Report
Transcript Algorytmy Ewolucyjne
Algorytmy ewolucyjne
Termin EC (Evolutionary Computation) obliczenia
ewolucyjne obejmuje wiele technik obliczeniowych
kluczowym elementem jest model procesów
ewolucyjnych
Algorytmy ewolucyjne operują na populacji struktur, które
podlegają procesowi ewolucji w czasie, wykorzystując
operatory selekcji, mutacji i rekombinacji
Każdy element populacji oceniany jest za pomocą miary
przystosowania do środowiska (fitness factor).
Wśród algorytmów ewolucyjnych wyróżnia się
programowanie ewolucyjne (EP)
strategie ewolucyjne (ES)
algorytmy genetyczne (GA).
procedure EA;{
T=0;
inicjuj_populację P(t);
oceń P(t);
repeat {
t=t+1;
wybór rodziców P(t);
rekombinacja P(t);
mutacja P(t);
oceń P(t);
sukcesja P(t);}
until warunek stopu;}
Podstawowymi elementami wszystkich
algorytmów ewolucyjnych jest populacja i
działające na niej operatory
Różnice pomiędzy algorytmami tkwią w
wyborze:
reprezentacji indywidualnych struktur,
typu mechanizmów selekcji,
rodzaju genetycznych operatorów,
metody ich oceny.
W programowaniu ewolucyjnym (EP)
nie stosuje się operacji krzyżowania
Elementy - wektory liczb rzeczywistych, listy lub grafy
Wybór rodziców nie zależy od funkcji przystosowania (każdy)
selekcja jest dokonywana na podstawie probabilistycznej funkcji,
bazującej na przystosowaniu
Ewolucyjne strategie (ES)
stosują reprezentację wektorów rzeczywistych
Rodzice wybierani są losowo,
stosuje się mutację, a następnie rekombinację, która ma drugorzędne
znaczenie
Operator selekcji wybiera najlepiej przystosowane indywidualne
struktury.
Algorytmy genetyczne
używają zwykle niezależnej reprezentacji w postaci ciągu bitów, (grafy,
wyrażenia Lisp’u, listy, wektory)
Selekcja rodziców zależna jest od wartości funkcji przystosowania
Elementy potomne utworzone w wyniku rekombinacji rodziców
poddawane są mutacji i krzyżowaniu
Relacje między tymi operatorami są przeciwne niż w ES
Mutacja ma znaczenie drugorzędne
AG John Holland 1975
przetwarza populację osobników (rozwiązań problemu)
Działa w środowisku (zdefiniowanym na pdst. problemu;
opisanym przez funkcję przystosowania - ff)
Osobnik
Przystosowanie – określa jakość rozwiązania – ff
Genotyp – informacja; przepis na
Fenotyp – zestaw cech (podlega ocenie)
Kodowanie – zamiana fenotypu na genotyp
Fenotyp – punkt w przestrzeni rozwiązań problemu
Genotyp – punkt w przestrzeni kodów
Funkcja przystosowania – przypisuje osobnikom
przystosowanie na podstawie fenotypu
GA
Funkcja przystosowania
Stacjonarna
Zmienna w czasie
Zawierająca element losowy
ff – określona dla genotypu
Genotyp – składa się z chromosomów
(najczęściej jednego)
Chromosom – zawiera kod określający fenotyp;
składa się z genów
Allel – wartość genu
GA
Reprodukcja operatory genetyczne ocena sukcesja
Utworzenie początkowej populacji bazowej (losowo)
Pętla: - generacje, pokolenia
Reprodukcja – powielenie losowo wybranych elementów z
populacji bazowej do populacji tymczasowej; losowość
uwzględnia przystosowanie
Kopie powstałe w wyniku reprodukcji – osobniki rodzicielskie –
populacja tymczasowa
Operatory genetyczne – losowa modyfikacja genów
Krzyżowanie
Mutacja
Populacja potomna
Ocena
Sukcesja – tworzenie nowej populacji bazowej (zawiera osobniki
z populacji bazowej i potomnej)
Warunek stopu: odpowiednio duże przystosowanie lub
stagnacja algorytmu
procedure SGA;{
t=0;
inicjuj_populację P(t);
oceń P(t);
repeat {
t=t+1;
T(t)=reprodukcja P(t);
O(t)=rekombinacja i mutacja P(t);
oceń O(t);)
P(t)=O(t);}
until warunek stopu;}
P(t) – populacja bazowa
O(t) – populacja potomna
T(t) – populacja tymczasowa
Zastosowanie algorytmu genetycznego do
rozwiązania problemu wymaga określenia
następujących elementów:
sposobu reprezentacji poszczególnych
osobników populacji (tj. możliwych
rozwiązań),
sposobu oceny elementów populacji,
operatorów genetycznych.
Łańcuchy zer i jedynek stosowane w
algorytmach genetycznych są najprostszą
reprezentacją, niezależną od problemu
Można przy jej pomocy budować
skomplikowane struktury, co wymaga jednak
stosowania często złożonych schematów
kodowania
Każde rozwiązanie problemu musi posiadać
swoją reprezentację w postaci łańcucha i każdy
łańcuch musi reprezentować jakieś rozwiązanie
Elementy populacji oceniane są za pomocą
funkcji przystosowania, reprezentującej
rozwiązywany problem.
kodowanie
Chromosom – n-elementowy ciąg genów
(0 lub 1)
0101000111
reprodukcja
Odpowiednik zasady doboru naturalnego
Powielanie ciągów kodowych w zależności
od wartości funkcji przystosowania
Proporcjonalna, ruletkowa
Każdemu ciągowi kodowemu odpowiada
sektor o rozmiarze proporcjonalnym do ff
Wielokrotne zakręcenie kołem ruletki –
kopiowanie do populacji
mutacja
Wykonywana dla każdego genu z prawdopodobieństwem pm
0101000111
0100001111
Krzyżowanie pc
Miejsce rozcięcia wybierane losowo z rozkładem równomiernym
Odpowiednik przemian w DNA
chromosm
ff
p. reprodukcji
dystrybuanta
1
1111110011
8
0,082474227
0,082474227
2
0110100100
4
0,041237113
0,12371134
3
0000110100
3
0,030927835
0,154639175
4
0110100111
6
0,06185567
0,216494845
5
1001111001
6
0,06185567
0,278350515
6
1001110011
6
0,06185567
0,340206186
7
0000100101
3
0,030927835
0,371134021
8
1000110100
4
0,041237113
0,412371134
9
0001011001
4
0,041237113
0,453608247
10
1011110000
5
0,051546392
0,505154639
11
0010111101
6
0,06185567
0,567010309
12
1100010010
4
0,041237113
0,608247423
13
0111110111
8
0,082474227
0,690721649
14
0100101100
4
0,041237113
0,731958763
15
0001100110
4
0,041237113
0,773195876
16
1001001101
5
0,051546392
0,824742268
17
1010000110
4
0,041237113
0,865979381
18
0010101100
4
0,041237113
0,907216495
19
1101000011
5
0,051546392
0,958762887
20
0010010011
4
0,041237113
1
Σ=97
wart. śr. ff =
4.85
Koło ruletki
4
5 4
4
4
8
3
5
6
4
6
4
6
8
4 6
1
2
3
4
5
6
15
16
17
18
19
20
7
5 4
8
3
4
9
10
11
12
13
14
Dystrybuanta rozkładu reprodukcji
1
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
Wylosowana liczba
Wybrany – osobnik 9
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20
rep - zmienna losowa wykorzystywana do określenia reprodukowanego
osobnika
i - numer reprodukowanego osobnika
g -jego genotyp
ff - jego funkcja przystosowania (liczba "1" w ciągu kodowym)
c - wartość zmiennej losowej okreslającej decyzję o krzyżowaniu
k - pozycja rozcięcia
gp - genotyp potomka
ffp - funkcja przystosowania potomka
wm - wektor decyzji o mutacji poszczególnych genów
gpm - genotyp potomka po mutacji
ffpm - funkcja przystosowania potomka po mutacji
ffp
rep
i
g
ff
c
k
gp
wm
gpm
ff
0.0267
1
1111110011
8
1
1
1111110011
8 0000001000
1111111011
9
0.0428
1
1111110011
8
1
1
1111110011
8 0001000000
1110110011
7
0.3426
7
0000100101
3
0 —
0000100101
3 0000000100
0000100001
2
0.6351
13
0111110111
8
0 —
0111110111
8 0100001100
0011111011
7
0.6975
14
0100101100
4
1
8
0100101100
4 0000000001
0100101101
5
0.8737
18
0010101100
4
1
8
0010101100
4 0010000000
0000101100
3
6
1
5 0110110111
7 1000000000
1110110111
8
8
1
5
7 0000000000
0.1706
0.6526
4 0110100111
13
0111110111
0111100111
0111100111
7
Reprodukcja
średnia wartość ff w kolejnych pokoleniach
wzrasta
Maleje różnorodność populacji
Operatory genetyczne (mutacja,
krzyżowanie)
Przywracają różnorodność
Nie gwarantują poprawy średniego
przystosowania
selekcja
Reprodukcja (preselakcja)
Powielanie osobników o lepszym
przystosowaniu z większym
prawdopodobieństwem niż osobników gorzej
przystosowanych
Nacisk selektywny
Sukcesja (postselekcja)
Utworzenie nowej populacji bazowej na
podstawie populacji potomnej i starej
populacji bazowej
Metody reprodukcji
Reprodukcja proporcjonalna (ruletkowa)
Zmodyfikowana reprodukcja
proporcjonalna
Reprodukcja rangowa (rankingowa)
Reprodukcja turniejowa
Reprodukcja progowa
Metody reprodukcji
Reprodukcja proporcjonalna (ruletkowa)
pr(X)=ff(X)/ΣY є P(t)f(Y)
Jeśli ff różnią się o stałą – zmniejsza się
intensywność nacisku selektywnego w
kolejnych generacjach (coraz więcej
osobników ma podobne wartości ff), co
utrudnia zbieżność;
Na początku – duże zróżnicowanie ff
tendencja do przedwczesnej zbieżności
Metody reprodukcji
Zmodyfikowana reprodukcja proporcjonalna
Odjęcie najmniejszej wartości ff
Reprodukcja rangowa (rankingowa)
Prawdopodobieństwo reprodukcji każdego osobnika
podane w sposób jawny – na podstawie rangi –
liczby, określającej jakość
Posortowanie osobników nierosnąco wg. wartości
ff; ranga = numer osobnika w szeregu
Funkcja prawdopodobieństwa:
Liniowa: pr(X) = a + k (1 – r(X)/rmax)
Lub potęgowa: pr(X) = a + k (rmax – r(X))b
Niewrażliwa na zwiększenie ff o stałą
Metody reprodukcji
Reprodukcja turniejowa
Dwustopniowa selekcja
1. Wybór q osobników z P(t) – Q(t)
Losowanie ze zwracaniem i bez zwracania
2. turniej między osobnikami z Q – wygrywa najlepiej
przystosowany
q – rozmiar (liczność) turnieju q=2
Reprodukcja progowa
pr(X)=1/(μρ) dla 0 <= r(X) < μρ
pr(X)=0 w przeciwnym wypadku
r – ranga μ – rozmiar populacji ρ - nacisk selektywny
ρ= 1 – wszystkie elementy mogą reprodukować
ρ=1/μ – tylko 1 element reprodukuje (najlepszy)
Metody sukcesji
1. Z całkowitym zastępowaniem (trywialna) -
nowa populacja bazowa powstaje wyłącznie z
populacji potomnej
Nie zawsze najlepsze rozwiązania z populacji P(t)
znajdą się w P(t+1)
2. Sukcesja z częściowym zastępowaniem
Część osobników starej populacji zamieniona
przez potomstwo
Najgorzej przystosowani - sukcesja elitarna
Najbardziej podobni do potomnych – metoda ze ściskiem
Losowo wybrani
Sukcesja elitarna
P(t+1) powstaje z O(t) i η najlepszych osobników z
P(t)
η - elita
kodowanie
Reprezentacja rzeczywistych wartości zmiennej x –
chromosom – wektor binarny
Długość wektora zależy od żądanej dokładności i
dziedziny zmienności x
Przykład:
x Є < -1; 1 > 2
dokładność - 1 cyfra po przecinku
Podział przedziału na 2 * 101 części
2 4 = 16 < 20 <25=32
Długość chromosomu – 5 bitów
liczba= -1 + x * 2 / ( 25 – 1 ) // x – chromosom binarny
zamieniony na liczbę (10)
11111 31 * 2 / (25 – 1) = 2 ; -1 +2 = 1
00000 -1
PRZYKŁAD
d = -1 + x(10) * 2 / 31
d = 0.5 ???
x(10) = (d+1) * 31 / 2 = 1.5 *31 / 2 = 23.25 ->23 =10111(2
10111 23 23 * 2 / 31= 46/31 -1 +1.48=0.48 0.5
d=0.2
1.2 * 31/2 = 18.6 19 10011
10011 19 19 *2/31 38/31 =1.22 -1 + 1.2 = 0.2
Kod Gray’a
Problemy reprezentacji binarnej
100 zmiennych z zakresu <-500, 500>;
dokładność – 6 cyfr po przecinku długość
binarnego wektora = 3000
2 punkty leżące blisko siebie w przestrzeni
reprezentacji leżą blisko siebie w
reprezentacji zadania ??
Odległość między reprezentacjami = liczba pozycji
o różnych bitach
kod Grey’a
binarny Grey’a
0000
0000
0001
0001
0010
0011
0011
0010
0100
0110
0101
0111
0110
0101
0111
0100
1000
1100
1001
1101
1010
1111
1011
1110
1100
1010
1101
1011
1110
1001
1111
1000
procedure B-G
begin
g[1]=b[1];
for k=2 to m do
g[k]=b[k-1] xor b[k]
end
procedure G-B
begin
v=g[1];
b[1]=v;
for k=2 to m do
if g[k]==1 then v=not v;
b[k]=v;
end
Kodowanie zmiennopozycyjne
Genotyp: s=<v1, v2, ….., vm>
vi – pojedyncza zmienna; m – długość wektora
rozwiązania
Każdy element z zadanej dziedziny
Możliwe duże dziedziny i nieznane dziedziny
Operatory genetyczne zachowują
ograniczenia związane z dziedziną
Mutacja
krzyżowanie
Kodowanie zmiennopozycyjne
Mutacja
Losowa – zmiana jednej cyfry wybranej
składowej liczby
Równomierna – zastąpienie losowo wybranego vk
nowym wygenerowanym z jego dziedziny
s=<v1, v2, ….., vm> <v1, ..v’k, ….., vm>
Nierównomierna - zależna od numeru pokolenia
s=<v1, v2, ….., vm> <v1, ..v’k, ….., vm>
Początkowo – większe zmiany; później lokalne
przeszukiwanie
Zmiana pojedynczego vi
Zmiana całego wektora
Kodowanie zmiennopozycyjne
Krzyżowanie
Proste
Punkty krzyżowania pomiędzy wartościami vi
Arytmetyczne
Liniowa kombinacja wektorów rodzicielskich (całe wektory lub
wybrane elementy)
sta=<v1, v2, ….., vm>
stb=<v1, v2, ….., vm>
St+1a=c* sta + (1-c)* stb
St+1b=c *stb + (1-c)* sta
c – stała ( jednorodne krzyżowanie)
zmienna (niejednorodne krzyżowanie)
Ocena algorytmu ewolucyjnego
Metoda niedeterministyczna - przy jednakowych
parametrach i identycznych populacjach startowych –
różne zachowanie algorytmu
Rzetelna ocena – wymaga wielu uruchomień, analizy
statystycznej
Krzywa zbieżności – wykres zmian rozwiązania
roboczego w czasie (wartości średnie ff, wartości
maksymalne, wykres zmian przystosowania najlepszego
osobnika); uśrednione lub dla pojedynczego przebiegu
Koszt symulacji – liczba iteracji + liczność populacji
Testy odporności algorytmu – zdolności opuszczania
ekstremum lokalnego
Dopuszczalne jest pogorszenie populacji
bazowej przez reprodukcję osobników
słabo przystosowanych wyjście z
pułapki ewolucyjnej
Pułapka ewolucyjna – niewielkie zmiany
fenotypu prowadzą do pogorszenia
rozwiązania
Operator selekcji, wielkość populacji oraz generacja
populacji początkowej mają wpływ na różnorodność
populacji
Jest ona bardzo ważnym aspektem algorytmów
genetycznych, gdyż decyduje o sposobie
przeszukiwania dziedziny i od niej zależy możliwość
znalezienia najlepszego rozwiązania
Na początku algorytm sprawdza wiele różnych
rozwiązań, a następnie dokładniej penetruje potencjalnie
bardziej perspektywiczne obszary dziedziny funkcji.
Jeśli początkowa populacja jest zróżnicowana, tj.
zawiera dobrze spróbkowaną dziedzinę algorytmu to
algorytm ma szansę na odnalezienie najlepszego
rozwiązania. Źle przygotowana populacja startowa może
spowodować, że pewne obszary dziedziny nie będą w
ogóle badane.
Algorytm genetyczny nie gwarantuje zbieżności do
minimum globalnego, dlatego często stosuje się jego
hybrydy.
PRSA
połączenie AG z SA (parallel
recombinative simulated annealing)
procedure PRSA;{
T=T0; ustal wysoką początkową temperaturę
Inicjuj n-elementową populację ;
repeat {
do n/2 razy{
t=t+1;
wybór 2 rodziców z populacji;
generuj 2 potomków (mutacja, rekombinacja ) ;
oceń potomków (Ei);
przeprowadź zawody Boltzmanna;
zastąp rodziców zwycięzcami zawodów;}
T=T-T; }
until warunek stopu;}
PRSA odpowiada równolegle działającym wielu kopiom
SA, z wykorzystaniem operatorów genetycznych: mutacji
i krzyżowania
Zastosowanie schematu Metropolisa gwarantuje
zbieżność metody do minimum globalnego
Tradycyjny operator selekcji zastąpiono tzw. alternatywą
Boltzmanna [Aarts i Korst, 1989], w której prawo
rodziców do życia określone jest prawdopodobieństwem
p, danym wzorem
1
p
( Ei E j )/T
1 e
gdzie:
Ei – „energia” rodzica,
Ej – „energia” potomka.
Ważnym problemem algorytmów ewolucyjnych jest
również właściwy wybór reprezentacji oraz rozmiaru
populacji, będącej miarą ilości zawartej w niej informacji
(ang. carrying capacity). Małe populacje mogą być
wystarczające do rozwiązania prostych problemów,
natomiast liczniejsze stosuje się do bardziej
skomplikowanych zadań. Trudne problemy wymagają
stosowania licznych populacji. Dlatego, aby zredukować
czas potrzebny do uzyskania zadawalającego
rozwiązania stosuje się algorytmy współbieżne,
wykorzystujące inherentną równoległość metody
Grefenstette wyróżnił cztery typy równoległych algorytmów
genetycznych:
synchroniczny scentralizowany - w którym proces nadrzędny
realizuje operacje genetyczne i koordynuje procesy
podrzędne, obliczające wartości funkcji przystosowania,
półsynchroniczny scentralizowany - będący modyfikacją
poprzedniego, polegającą na asynchronicznym działaniu
procesów podrzędnych,
asynchroniczny rozproszony - w którym współbieżne
procesy realizują niezależnie wszystkie operacje,
wykorzystując pamięć dzieloną,
sieciowy - z autonomicznymi procesami realizującymi
niezależne algorytmy genetyczne, komunikującymi się
między sobą wymieniając najlepiej przystosowane osobniki.
Erick Cantu-Paz sformułował kilka kategorii
technik zrównoleglających, stosowanych w
algorytmach genetycznych:
zrównoleglenie globalne (global parallelization),
gruboziarniste równoległe GA (coarse grained
parallel GA),
drobnoziarniste równoległe GA (fine grained
parallel GA),
hybrydowe równoległe GA.
W GGA (Global Genetic Algorithm) każde dwa osobniki mogą
być krzyżowane.
podział populacji między dostępne procesory
symultaniczna ewolucja subpopulacji
impulsowy wzrost komunikacji między procesami
Algorytmy coarse grained
Subpopulacje izolowane są między sobą na wzór
geograficznych kontynentów,
genetyczne połączenie grup zapewnia migracja osobników
- każda grupa w każdym kroku czasowym wysyła do innych
swoich przedstawicieli
W modelu „wyspa” (island) migracja może się odbywać do
dowolnej subpopulacji, natomiast metoda „stepping stone”
ogranicza ją do sąsiednich obszarów.
Drobnoziarniste równoległe GA dzielą populację na wiele
małych i realizowane są na masywnie równoległych
komputerach
Algorytmy hybrydowe stanowią połączenie tych trzech
technik.
procedure LGA;{
inicjuj_populację P(t);
oceń P(t);
repeat {
losowy wybór obszaru 3x3;
wybór dwóch rodziców;
krzyżowanie;
mutacja;
probabilistyczny wybór najlepszego spośród dwóch
potomków i osobnika najgorszego w danym sąsiedztwie;
dołącz zwycięzcę do nowej populacji;}
until warunek stopu;}
Klasyczny GA
Gdy krzyżowane są osobniki o wysokiej
wartości ff, a niepodobnych ciągach
kodowych może dojść do:
rozrywania dobrze przystosowanych
łańcuchów
zuniformizowania populacji
zaniku różnorodności populacji
oddalenia od optimum globalnego
Przykład
wykres funkcji kwadratowej
60
0000
1111
50
40
f(x)
30
0011
1100
20
10
0
0
5
10
x
15
20
GA, wykorzystujące ideę lokalności
Znaczenie geograficznego rozmieszczenie
osobników
krzyżowanie ma miejsce jedynie pomiędzy
spokrewnionymi gatunkami - „dobór
krewniaczy”
dobrze przystosowane elementy populacji
tworzą skupiska
oddalone od siebie ciągi kodowe, cechujące się
dużą wartością funkcji celu nie zostaną rozbite
utrzymanie różnorodności populacji; możliwe
jest zlokalizowanie większej ilości ekstremów