1 OBLICZENIA EWOLUCYJNE FITNESS F. START COMPUTATION FITNESS F. COMPUTATION INITIAL SUBPOPULATION SENDING CHROM. TO COMPUTERS chromosome AND RECEIVING FITNESS F. VALUE fitness f. value wykład 2 FITNESS F. communication COMPUTATION with other subpopulations EVOLUTIONARY OPERATORS MIGRATION PHASE SELECTION YES TERMINATION CONDITION NO END
Karol Darwin (1859 On the origin of species ): Na świat przychodzi dużo więcej potomstwa, niż może pomieści cić środowisko. Przeżywaj ywają nieliczni,, ale za to najlepsi (selekcja naturalna). Ewolucja przez dobór r naturalny oznacza, że przeżywaj ywają i rozmnażaj ają się osobniki najlepiej przystosowane do warunków środowiska. Wynik przystosowania zależy y od: - organizmu; - środowiska. 2
3 Gregor Johann Mendel (1822-1884) 1884) - austriacki zakonnik, augustianin, prekursor genetyki. Sformułowa ował podstawowe prawa dziedziczenia (3( prawa Mendla), przeprowadzając c badania nad krzyżowaniem roślin, głównie g grochu jadalnego.
Główne czynniki wpływaj ywające na ewolucję: Dziedziczność organizmy dziedziczą cechy swoich przodków, zgodnie z zasadami genetyki. Zmienność dziedziczność nie jest absolutnie dokładna: wprowadza przypadkowe (mutacje). Ponadto źródłami zmienności są: s : rekombinacja i poziomy transfer genów. Ograniczone zasoby konieczność konkurencji organizmów w o te same zasoby środowiska. Przystosowanie niektóre cechy sąs korzystniejsze w danym środowisku niż inne (ułatwiaj( atwiają konkurencję o zasoby). Różnicowa przeżywalno ywalność osobniki o wyższym przystosowaniu mają większe szanse przeżycia i tym samym wydania na świat potomstwa. 4
Równanie Price a: George R. Price (1922-1975) 1975) amer. naukowiec, znany głównie z wkładu w rozwój j genetyki populacji i teorii ewolucji gdzie: W Δ Z = cov( w, z) + E( w Δz) W średnie przystosowanie; ΔZ zmiana średniej wartości cech w populacji; cov() kowariancja (określa zal.. liniową mi w dostosowanie i-tego i fenotypu; z wartość cechy i-tego i fenotypu; E() wartość oczekiwana Człon kowariancyjny opisuje proces doboru, zaś człon wartości oczekiwanej opisuje procesy transmisyjne (np( np.. mutacje). między dwoma zm. losowymi) Uznaje się, że e równanie r Price'a opisuje ilościowo, dokładnie i zupełnie proces ewolucji biologicznej (i jest największym wkładem w rozwój j teorii ewolucji od czasów w Darwina) 5
W procesie ewolucji istotne jest zachowywanie różnorodności cech. Siła a ewolucji to nie zaawansowany proces doskonalenia jednostki, lecz utrzymywanie dużej liczby różnorodnych osobników w (tzw. populacji), która ewoluuje jako całość ść. W procesie krzyżowania cechy osobników w mieszają się,, mogąc c dawać kombinacje cech dotąd d nie występuj pujące. Mutacja pozwala na powstanie osobników niemożliwych do uzyskania poprzez krzyżowanie. 6
7 AG CO TO JEST? AG odwzorowują naturalne procesy ewolucji zachodzące ce w czasie. Celem tych procesów w jest maksymalne dopasowanie osobników do istniejących warunków życia. Rolę środowiska spełnia tu funkcja oceniająca ca (funkcja celu).
8 Łącz czą w sobie ewolucyjną zasadę przeżycia najlepiej przystosowanych osobników w z systematyczną,, choć zrandomizowaną wymianą informacji. Pomimo elementu losowości AG nie błąb łądzą przypadkowo, lecz wykorzystują efektywnie przeszłe doświadczenia wiadczenia.
9 John H. Holland,, 1975: Adaptation in Natural and Artificial Systems : Koncepcja algorytmu przeszukiwania opartego na zasadzie doboru naturalnego. Procedurę probabilistycznego przeszukiwania dyskretnej przestrzeni stanów w nazwał algorytmem genetycznym.
10 AG - TERMINOLOGIA 100011011 gen najmniejsza składowa chromosomu, decydująca ca o dziedziczności ci jednej lub kilku cech; chromosom uporządkowany ciąg g genów w (ciąg kodowy). Zwykle utożsamiany z osobnikiem; locus miejsce genu w chromosomie; allel wariant (stan) jednego genu warunkujący daną cechę; populacja pewna liczba osobników w (chromosom( chromosomów);
11 AG - TERMINOLOGIA 100011011 genotyp ogół genów w danego osobnika; fenotyp ogół cech ujawniających się na zewnątrz (np.. rozkodowana postać zmiennych projektowych); mutacja zmiana jednego lub kilku genów w chromosomie; krzyżowanie operacja mająca na celu wymianę materiału u genetycznego między osobnikami.
12 ALGORYTMY NAŚLADUJ LADUJĄCE PROCESY ZACHODZĄCE CE W NATURZE: algorytmy genetyczne; programowanie ewolucyjne (ewoluujące automaty); programowanie genetyczne; strategie ewolucyjne; sieci neuronowe; algorytmy mrówkowe; algorytmy immunologiczne.
13 ZASTOSOWANIA PRAKTYCZNE AG (i AE): harmonogramowanie; wyznaczanie trasy połą łączeń kablowych; sterowanie adaptacyjne; rozgrywanie gier; zadanie plecakowe; zadanie komiwojażera; sterowanie optymalne; optymalizacja obsługi pytań w bazach danych;
nieliniowe systemy dynamiczne analiza danych; przewidywanie; projektowanie sieci neuronowych: architektury i wagi; poruszanie robotem; tworzenie programów; planowanie; znajdowanie kształtu tu molekuł białek; tworzenie grafik i muzyki;... 14
15 SZTUKA? http://classes.yale.edu classes.yale.edu/fractals/ca/ga/ /CA/GA/GA.htmlGA.html Steven Rooke: generowanie fraktali złożonych onych ze zbioru Mandelbrota.. Zaczynał ze 100 obrazków w w populacji przypisując każdemu funkcję estetyczną i stosując c klasyczny AG.
MUZYKA? Joanna Kołodziejczyk odziejczyk: Elementy sztucznej inteligencji - http://bijo.wi.ps.pl bijo.wi.ps.pl/ W chromosomie pamiętane sąs poziome wysokości tonów. Allele określaj lają półtony mogące być odtwarzane jako akordy. Oceny jakości dokonuje operator nadając c wagi odpowiednim chromosomom. 16
17 JAK DZIAŁA A AG Generowanie (zwykle losowo) populacji początkowej. Ocena każdego osobnika na podstawie pewnej miary jego dopasowania Każda następna iteracja (pokolenie) t : 1. Selekcja najlepszych osobników w z pokolenia t-1 2.Transformacja z zastosowaniem operatorów w genetycznych
18 SCHEMAT DZIAŁANIA ANIA AG: procedure algorytm_genetyczny begin t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do begin t:=t+1 wybierz P(t) z P(t-1) (selekcja) zmień P(t) (działanie operatorów genetycznych) oceń P(t) end end
AG MUSI MIEĆ OKREŚLONE (DLA KAŻDEGO ZADANIA): 1. Podstawową reprezentację zmiennych potencjalnego zadania; 2. Sposób b tworzenia początkowej populacji potencjalnych rozwiąza zań; 3. Funkcję oceniającą rozwiązania; zania; 4. Podstawowe operatory; 5. Wartości różnych r parametrów w (rozmiar populacji, prawdopodobieństwa użycia u operatorów w gen. itp.) 19
Przykład Znaleźć źć: max { f (x)=x 2 } dla wartości całkowitych x z zakresu 0-31. 0 Populacja w chwili t: P(t)= {x{ t 1,,...x t n); Założenia: - łańcuchy 5-bitowe 5 (x=0,1,...,31);( - liczebność populacji n=4. =4. 20
Ścisłe e rozwiązanie zanie: x = 1 1 1 1 1 x = 31; x 2 = 961. Populacja początkowa (losowanie): x 0 = 1 x 0 = 2 x 0 = 3 x 0 = 4 1 1 0 0 0 0 1 0 1 1 0 1 0 0 0 1 0 0 1 1 21
22 Sytuacja początkowa: Nr osobnika Osobnik Wartość x Przystosowanie f(x)=x 2 Prawd. wylosowania osobnika fi p i f = Σ f / i Oczekiwana liczba kopii i f 1 11000 24 576 0.51 2.05 2 01011 3 01000 4 10011 11 8 19 121 64 361 0.11 0.06 0.32 0.43 0.23 1.27 Suma Średnia Max 1122 281 576 1.00 0.25 0.51 4.00 1.00 2.05
Selekcja: Każdemu ciągowi kodowemu odpowiada sektor koła ruletki o polu proporcjonalnym do przystosowania: 32% 6% 51% 1 2 3 4 11% <0, 0.51) 1, <0.51, 0.62) 2,... 23
Po selekcji: Nr osobnika Oczekiwana liczba kopii Liczba wylosowanych kopii Osobnik po selekcji Wartość x Przystosowanie f(x)=x 2 Prawd. wylosowania osobnika 1 2.05 2 11000 24 576 0.35 2 0.43 1 01011 11 121 0.07 3 0.23 0 11000 24 576 0.35 4 1.27 1 10011 19 361 0.23 Suma 1634 1.0 Średnia 409 0.25 Max 576 0.35 (x2) 24
25 Krzyżowanie: p c = 0.9 Osobnik po selekcji 1 11000 Nr osobnika Partner 2 Punkt krzyżowania 4 1 1 0 0 1 Osobnik po krzyżowaniu Wartość x 25 Przystosowanie f(x)=x 2 625 Prawd. wylosowania osobnika 0.36 2 01011 3 11000 4 10011 1 4 3 4 2 2 0 1 0 1 0 1 1 0 1 1 1 0 0 0 0 10 27 16 Suma Średnia Max 100 729 256 1710 428 729 0.06 0.43 0.15 1.0 0.25 0.43 było: 576
Mutacja: p m = 0.05 Nr osobnika Osobnik po krzyżow aniu Osobnik po mutacji Mutacja? Wartość x Przystosowanie f(x)=x 2 Prawd. wylosowania osobnika 1 1 1 0 0 1 NNNNN 1 1 0 0 1 25 625 0.35 2 01010 NNNNN 0 1 0 1 0 10 100 0.06 3 1101 1 NNNNN 1 1 0 1 1 27 729 0.41 4 1000 0 0 0 NNNTN 1 0 0 1 0 18 324 0.18 Suma 1778 1.0 Średnia 447 0.25 Max 729 0.41 było: 729 26
ŚREDNIE DOPASOWANIE POPULACJI 500 400 300 200 100 281 409 428 447 0 Początkowo Po selekcji Po krzyżowaniu Po mutacji 800 700 600 500 400 300 200 100 0 MAX WARTOŚĆ FUNKCJI 729 729 576 576 Początkowo Po selekcji Po krzyżowaniu Po mutacji 27
Rozpatrywać można zawsze zadanie maksymalizacji: g (x)) = -f (x) min f (x) = max g(x) = max{-f (x)} Zakłada ada się również,, iżi funkcja jest dodatnia w całej dziedzinie (selekcja!) max g(x) = max{g(x )+C} (jeśli g(x) jest ograniczona z dołu) 28
29 25 20 15 10 5 0-5 0 1 2 3 4 5 6-10 -15-20 25 20 15 10 C 5 0-5 0 1 2 3 4 5 6-10 -15-20
30 KODOWANIE LICZB RZECZYWISTYCH Założenia enia: f : R k R D i = [a[ i, b i ] R f (x 1,...x k ) > 0 dla każdego x i D i dokładno adność do c liczb znaczących cych po przecinku Wykonanie: 1. Podział D i = [a i, b i ] na r = (b i - a i ) 10 c podprzedziałów. 2. Wyznaczenie najmniejszej liczby całkowitej m: (b - a ) 10 c 2 m 1 i i
ODKODOWYWANIE: 31 1. Przekształcenie łańcucha binarnego o długod ugości m na liczbę dziesiętn tną x ; 2. Obliczenie rzeczywistej wartości liczby: x = a + i ( b a ) x' i m i 2 1
Przykład: f (x)) = x sin(10π x) ) +1 max{ f (x)} Dziedzina funkcji: x [-1, 2] Liczba miejsc po przecinku: c = 6 Na ilu bitach trzeba zakodować liczbę (wyznaczenie m)? 32
33 a i = -1; b i = 2; 2 c = 6 liczba podprzedziałów: r = (b - a ) 10 c = i i 3 103 6 (b - a ) 10 c 2 m 1 i i [2 - (-1)] 1)] 1010 6 +1 = 3 000 001 2 m 2 097 152 = 2 21 3 000 001 222 = 4 194 304 m = 22
Mając c ciąg g bitów: 1100101010010101010101 Odkodowywanie: 1. Przekształcenie łańcucha na liczbę dziesiętn tną x : x =3319125 2. Obliczenie rzeczywistej wartości liczby: x = a + i ( b a ) x' i m i 2 1 3 3319125 = 1+ 4194304 1 =1.374025 a i = -1; b i = 2; 2 c = 6 34
35 00000000000000000000000 1111111111111111111111 x = 0 x = 4194303 1 0 x = + = 4194304 1-1 x 3 4194303 = 1+ = 4194304 1 2 a i = -1; b i = 2
Przykład: 36 f (x)) = 21.5 + x sin(4πx ) 1 1 + x sin(20πx ) 2 2 max{f (x 1, x 2 )} x [-3.0, 12.1] 1 x [4.1, 2 5.8] c 1 = c 2 = 4
x 1 : r ( 1 = (b 1 - a 1 ) 10 c = 15.1 10 10 4 15.1 10 10 4 2 m 1 131 032 = 2 17 151 001 2 18 = 262 144 m = 18 1 x 2 : r ( 2 = (b 2 - a 2 ) 10 c = 1.7 10 10 4 1.7 10 10 4 2 m 1 16 384 = 214 17 001 215 = 32 768 m 2 = 15 m = m 1 + m 2 = 33 11001010100101011001110101010101 37
Wielkości zadawane przed uruchomieniem AG: liczebność populacji, prawdopodobieństwo krzyżowania, prawdopodobieństwo mutacji, inne (zależy y od algorytmu). Zazwyczaj wartości dobiera się ekspe- rymentalnie (metodą prób b i błęb łędów), indywidualnie dla rozwiązywanego zywanego problemu... choć istnieją pewne ogólne zalecenia... 38
39
OSOBNIK PRZYSTOSOWANIE 11000 576 01011 121 01000 64 10011 361? Alfabet trójkowy: { 0, 1, * } * - symbol uniwersalny, nieistotne SCHEMAT: Wzorzec opisujący zbiór łańcuchów w podobnych ze względu na ustalone pozycje. 40
S =(*111100100) 1 (1111100100) 111100100) i (0111100100) S =(*1*1100100) 1100100) 2 (1111100100),( 1100100),(1101100100) (0101100100) 100100),(0111100100) 1100100) Do każdego schematu pasuje 2 r łańcuchów (r liczba * w schemacie) Schemat reprezentuje wszystkie łańcuchy, które zgadzają się z nim na wszystkich pozycjach innych niż *. 41
42 Ale: Do każdego łańcucha o długod ugości m pasuje 2 m schematów. Np. dla łańcucha (1001): 1001, *001,1*01,10*1,100*, **01,*0*1,*00*,1**1,1*0*,10**, 1***,*0**,**0*,***1, **** 2 m = 2 4 =16
Z kolei: 43 Dla wszystkich łańcuchów w o długod ugości m istnieje 3 m schematów. (3 = 1 + 0 + * ) Np. dla łańcuchów w 5-bitowych: 5 2 5 = 32 różnych łańcuchów; 3 5 = 243 różne schematy.
Rząd d schematu o(s): 44 - liczba pozycji ustalonych w schemacie: S 1 = (***001**10), o(s 1 ) = 5; S 2 = (*0**00**1*), o(s 2 ) = 4; S 3 = (1110011*11), o(s 3 ) = 9; Rząd schematu określa jego specyficzność ść. (***001****) i (00*******1) ten sam rząd, ale...
45 Rozpięto tość ść (długo ugość definiująca) ca) schematu δ(s): - odległość pomiędzy pierwszą a ostatnią pozycją ustaloną w schemacie: S 1 = (***001**10), δ(s 1 ) = 10-4= 4=6; S 2 = (*0**00**1*), δ(s 2 ) = 9-2= 9 2=7; S 3 = (1110011*11), δ(s 3 ) = 10-1= 1=9 Rozpięto tość schematu określa jego zwartość ść.
Schematy: stanowią narzędzie do ścisłego badania i kla- syfikowania podobieństw ciągów w kodowych; są podstawowym narzędziem analizy wpływu operacji genetycznych na zachowanie populacji. 46
WPŁYW OPERACJI GENETYCZNYCH NA SCHEMATY 47 v1 = 100110100000001111111010011011111 v2 = 111000100100110111001010100011010 v3 = 000010000011001000001010111011101 v4 = 100011000101101001111000001110010 v5 = 000111011001010011010111111000101 v6 = 000101000010010101001010111111011 v7 = 001000100000110101111011011111011 v8 = 100001100001110100010110101100111 v9 = 010000000101100010110000001111100 v10 = 000001111000110000011010000111011 v11 = 011001111110110101100001101111000 v12 = 110100010111101101000101010000000 v13 = 111011111010001000110000001000110 v14 = 010010011000001010100111100101001 v15 = 111011101101110000100011111011110 v16 = 110011110000011111100001101001011 v17 = 011010111111001111010001101111101 v18 = 011101000000001110100111110101101 v19 = 000101010011111111110000110001100 v20 = 101110010110011110011000101111110 S 0 = = (****111**************************) L. łańcuchów w pasujących do S 0 w chwili t: ξ(s 0, t) =3 Rząd d schematu: o(s 0 ) =3 Rozpięto tość schematu: δ(s 0 ) = 7-57 = 2
Dopasowanie schematu w chwili t: eval( S, t) = ξ ( St, ) j= 1 eval( v ) ξ ( St, ) ij v ij łańcuch pasujący do schematu S eval(s 0,t) = (27.316702+30.060205+23.867227)/3 = pop _ size F () t = eval( vi )/ pop_ size i= 1 (27.316702+30.060205+23.867227)/3 =27.081378 Średnie dopasowanie populacji: F() t = 387.776822/20 = 19.388841 pop_size l. osobników w populacji Liczba łańcuchów w pasująca do schematu w chwili t+1: ξ( St, + 1) = ξ( St, ) eval( S, t) Ft () ξ(s, t+1) = 3 (27.081378 /19.388841) = 3 1.396751 = 4.19 ξ(s, t+2) = 4.19 1.396751 1.396751 = 5.85 (teoretycznie) 48
49 Selekcja v 1 1 = 011001111110110101100001101111000 = v11 v 2 2 = 100011000101101001111000001110010 = v4 v 3 3 = 001000100000110101111011011111011 = v7 v 4 4 = 011001111110110101100001101111000 = v11 v 5 5 = 000101010011111111110000110001100 = v19 v 6 6 = 100011000101101001111000001110010 = v4 v 7 7 = 111011101101110000100011111011110 = v15 v 8 8 = 000111011001010011010111111000101 = v5 v 9 9 = 011001111110110101100001101111000 = v11 v 10 = 000010000011001000001010111011101 = v3 v 11 = 111011101101110000100011111011110 = v15 v 12 = 010000000101100010110000001111100 = v9 v 13 = 000101000010010101001010111111011 = v6 v 14 = 100001100001110100010110101100111 = v8 v 15 = 101110010110011110011000101111110 = v20 v 16 = 100110100000001111111010011011111 = v1 v 17 = 000001111000110000011010000111011 = v10 v 18 = 111011111010001000110000001000110 = v13 v 19 = 111011101101110000100011111011110 = v15 v 20 = 110011110000011111100001101001011 = v16 nie wprowadza nowych schematów; powiela najlepsze schematy; niweluje najgorsze schematy.
Krzyżowanie v 18 v 18 = 111011111010001000110000001000110 18 pasuje do2 33 schematów, np.: S ( 0 = (****111**************************) S ( 1 = (111****************************10) v 13 = 000101000010010101001010111111011 punkt krzyżowania: pk = 20 Po krzyżowaniu: v 18 = 1110111 111110100010001110101111110111010111111011 v 13 13 = 0001010000100101010000000010001 0000001000110 50
S ( 0 = (****111**************************) S ( 1 = (111****************************10) Rozpięto tości schematów: δ(s 0 ) = 7-5= 7 5=2 δ(s 1 ) = 33-1= 1=32 Prawdopodobieństwo zniszczenia schematu: p d ( S) = δ( S) m -1 p d (S 0 )=2/32=1/16= 2/32=1/16=0.0625 p d (S 1 )= 32/32=1 Prawdopodobieństwo przetrwania schematu: p S ( S) =1- δ( S) m -1 p S (S 0 )= 1-2/32= 2/32=0.9375 p S (S 1 )= 1-1= 1=0 51
Uwzględniaj dniając c całą populację (p c ) prawdopodobieństwo przetrwania schematu: p S ( S) =1- p c = 0.25 ( ) p δ S c m -1 p S (S 0 )= 1-0.25 0.25*2/32= 2/32=0.9844 0.9844 p S (S 1 )= 1-0.25 0.25*1= 1=0.75 Uwzględniaj dniając c możliwo liwość pasowania obu partnerów do schematu S: p S ( S) 1- ( ) p δ S c m -1 52
Liczba łańcuchów w pasujących do schematu S w chwili t+1 uwzględniaj dniając c selekcję i krzyżowanie: eval( S, t) δ( S) ξ( S, t + 1) ξ( S, t) 1- pc Ft () m-1 (RÓWNANIE WZROSTU SCHEMATU) U nas: ξ(s, t+1) 3 1.396751 (1-0.25 0.25 2/32) 2/32) = 4.12 uwzględniaj dniając c tylko selekcję: ξ (S, t+1) = 4.18 53
Mutacja v 19 = 111011101101110000100011111011110 S ( 0 = (****111**************************) wylosowano gen nr 8: v 19 = 1110111 11111101110000100011111011110 Prawdopodobieństwo przetrwania bitu: 1- p m Prawdopodobieństwo przetrwania schematu: p s (S) = (1- p m ) o(s) p m << 1 p s (S) 1- o(s) p m 54
55 RÓWNANIE WZROSTU SCHEMATU eval( S, t) δ ( S) ξ( St, + 1) ξ( St, ) 1 pc os ( ) p Ft () m 1 m U nas: ξ(s, t+1) 3 1.396751 (1-0.25 2/32 2/32-3 0.01) = 4.0 uwzględniaj dniając c selekcję i krzyżowanie: ξ (S, t+1) = 4.12 uwzględniaj dniając c tylko selekcję: ξ (S, t+1) = 4.18
56 TWIERDZENIE O SCHEMATACH: Krótkie, niskiego rzędu i oceniane powyżej średniej schematy uzyskują wykładniczo rosnącą liczbę łańcuchów w kolejnych pokoleniach. HIPOTEZA O BLOKACH BUDUJĄCYCH: Algorytm genetyczny poszukuje działania zbliżonego do optymalnego przez zestawianie krótkich, niskiego rzędu schematów o dużej wydajności działania, zwanych blokami budującymi (cegiełkami).