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