http://wazniak.mimuw.edu.pl INTELIGENTNE TECHNIKI KOMPUTEROWE wykład Karol Darwin (59 On the origin of species ): ALGORYTMY GENETYCZNE I EWOLUCYJNE Gregor Johann Mel (-) - austriacki zakonnik, augustianin, prekursor genetyki. Sformułował dstawowe prawa dziedziczenia ( prawa Mla), przeprowadzając badania nad krzyżowaniem roślin, głównie grochu jadalnego. Wynik przystosowania zależy od: - organizmu; - środowiska. Na świat przychodzi dużo więcej tomstwa, niż może mieścić środowisko. Przeżywają nieliczni,, ale za to najlepsi (selekcja naturalna). W procesie ewolucji istotne jest zachowywanie różnorodności cech. Ewolucja przez dobór naturalny oznacza, że prze- żywają i rozmnażają się osobniki najlepiej przystoso- wane do warunków środowiska. Siła ewolucji to nie zaawansowany proces doskona- lenia jednostki,, lecz utrzymywanie dużej liczby różnorodnych osobników (tzw. pulacji), która ewoluuje jako całość. 5 6
AG CO TO JEST? AG odwzorowują naturalne procesy ewolucji zachodzące w czasie. Celem tych procesów jest maksymalne dopasowanie osobników do istniejących warunków życia. Rolę środowiska spełnia tu funkcja oceniająca (funkcja celu). Łączą w sobie ewolucyjną zasadę przeżycia najlepiej przystosowanych osobników z syste- matyczną,, choć zrandomizowaną wymianą informacji. Pomimo elementu losowości AG nie błądzą przypadkowo, lecz wykorzystują efektywnie przeszłe doświadczenia. 7 AG - TERMINOLOGIA AG - TERMINOLOGIA gen najmniejsza składowa chromosomu, decydująca o dziedziczności jednej lub kilku cech; chromosom urządkowany ciąg genów (ciąg kodowy). Zwykle utożsamiany z osobnikiem; locus miejsce genu w chromosomie; allel wariant (stan) jednego genu warunkująy daną cechę; genotyp ogół genów danego ; fenotyp ogół cech ujawniających się na zewnątrz (np. rozkodowana stać zmiennych projektowych); mutacja zmiana jednego lub kilku genów w chromosomie; krzyżowanie operacja mająca na celu wymianę materiału genetycznego między mi. pulacja pewna liczba osobników (chromosomów); 9 ALGORYTMY NAŚLADUJ LADUJĄCE PROCESY ZACHODZĄCE CE W NATURZE: algorytmy genetyczne; programowanie ewolucyjne (ewoluujące automaty); strategie ewolucyjne; symulowane wyżarzanie; systemy klasyfikujące; sieci neuronowe; algorytmy mrówkowe; algorytmy immunologiczne. ZASTOSOWANIA PRAKTYCZNE AG (i AE): wyznaczanie trasy łączeń kablowych; harmonogramowanie; sterowanie adaptacyjne; rozgrywanie gier; zadanie plecakowe; zadanie komiwojażera; sterowanie optymalne; optymalizacja obsługi pytań w bazach danych;...
SZTUKA? http://classes.yale.edu classes.yale.edu/fractals/ca/ga/ /CA/GA/GA.htmlGA.html Steven Rooke: generowanie fraktali złożonych ze zbioru Mandelbrota.. Zaczynał ze obrazków w pulacji przypisując każdemu funkcję estetyczną i stosując klasyczny AG. MUZYKA? Joanna Kołodziejczyk: Elementy sztucznej inteligencji - http://bijo.wi.ps.pl bijo.wi.ps.pl/ W chromosomie pamiętane są ziome wysokości tonów. Allele określają półtony mogące by odtwarzane jako akordy. Oceny jakości dokonuje operator nadając wagi odwiednim chromosom. SCHEMAT DZIAŁANIA AG: John H. Holland,, 975: Adaptation in Natural and Artificial Systems : Koncepcja algorytmu przeszukiwania opartego na zasadzie doboru naturalnego. Procedurę probabilistycznego przeszukiwania dyskretnej przestrzeni stanów nazwał algorytmem genetycznym. procedure algorytm_genetyczny t:= wybierz pulację czątkową P(t) oceń P(t) while (not warunek_zakończenia) do t:=t+ wybierz P(t) z P(t-) (selekcja) zmień P(t) (działanie operatorów genetycznych) oceń P(t) 5 6 AG MUSI MIEĆ OKREŚLONE (DLA KAŻDEGO ZADANIA): JAK DZIAŁA AG? 7. Podstawową reprezentację zmiennych tencjalnego zadania;. Ssób b tworzenia czątkowej pulacji tencjalnych rozwiąza zań;. Funkcję oceniającą rozwiązania; zania;. Podstawowe operatory; 5. Wartości różnych r parametrów w (rozmiar pulacji, prawdodobieństwa użycia u operatorów w gen. itp.)
Przykład Znale aleźć: max { f (x)=x } dla wartości całkowitych x z zakresu -. Populacja w chwili t: P(t)= {x{ t,,...x t n); Założenia: - łańcuchy 5-bitowe 5 (x=,,...,);( - liczebność pulacji n=. 9 Ścisłe e rozwiązanie zanie: x = x = ; x = 96. Populacja czątkowa (losowanie): x = x = x = x = Sytuacja czątkowa tkowa: Selekcja: Nr x 9 Suma Średnia Max Przystosowanie f(x)=x 6 6 Prawd. wylosowania Oczekiwana liczba kopii i p = f i Σ f f / f.5..6...5.5 i i.5...7...5 Każdemu ciągowi kodowemu odwiada sektor koła ruletki o lu prorcjonalnym do przystosowania. % 6% % 5% <,.5), <.5,.6),... Po selekcji: Krzyżowanie: p c =.9 Nr Przystosowanie f(x)=x Oczekiwana liczba kopii.5...7 Liczba wylosowanych kopii selekcji x 9 Suma Średnia Max 6 6 9 Prawd. wylosowania.5.7.5...5.5 (x) Nr selekcji krzyżowaniu Partner Punkt krzyżowania x 5 7 6 Suma Średnia Max Przystosowanie f(x)=x 65 79 56 7 79 Prawd. wylosowania.6.6..5..5. było:
Mutacja: ŚREDNIE DOPASOWANIE POPULACJI p m =.5 5 9 7 Nr krzyżowa niu Mutacja? NNNNN NNNNN NNNNN NNNTN mutacji x 5 7 Suma Średnia Max Przystosowanie f(x)=x 65 79 77 7 79 było: 79 Prawd. wylosowania.5.6....5. 5 7 6 5 Początkowo Po selekcji Po krzyżowaniu MAX WARTOŚĆ FUNKCJI Po mutacji 79 79 Początkowo Po selekcji Po krzyżowaniu Po mutacji 6 Rozpatrywać można zawsze zadanie maksymalizacji: 5 5 g (x)) = -f (x) 5 5 6-5 min f (x) = max g(x) = max{-f (x)} - -5-5 Zakłada się również, iż funkcja jest dodatnia w całej dziedzinie (selekcja!) 5 5 C max g(x) = max{g(x )+C} 5 6-5 - (jeśli g(x) jest ograniczona z dołu) 7-5 - KODOWANIE LICZB RZECZYWISTYCH Założenia enia: f (x,...x k ): R k R D i = [a[ i, b i ] R f (x,...x k ) > dla każdego x i D i dokładno adność do c liczb znaczących cych przecinku Wykonanie:. Podział D i = [a i, b i ] na r = (b i - a i ) c dprzedziałów.. Wyznaczenie najmniejszej liczba całkowitej m: (b i - a i ) c m 9 ODKODOWYWANIE:. Przekształcenie łańcucha binarnego o długości m na liczbę dziesiętną x ;. Obliczenie rzeczywistej wartości liczby: ( bi ai) x' x = ai + m 5
Przykład: a i = -; b i = ; c = 6 f (x)) = x sin(π x) ) + max{ f (x)} liczba dprzedziałów: r = (b i - a i ) c = 6 (b i - a i ) c m Dziedzina funkcji: x [-, ] Liczba miejsc przecinku: c = 6 Na ilu bitach trzeba zakodować liczbę (wyznaczenie m)? [ (-)] )] 6 + = m 97 5 = = 9 m = Mając ciąg bitów: Odkodowywanie:. Przekształcenie łańcucha na liczbę dziesiętną x : x =95. Obliczenie rzeczywistej wartości liczby: ( bi ai) x' x = ai + m 95 = + 9 x = x = 9 x = + = - 9 9 x = + = 9 =.75 a i = -; b i = ; c = 6 a i = -; b i = Przykład: f (x)) =.5 + x sin(πx ) + x sin( sin(πx ) max{f (x, x )} x : r = (b( - a ) c = 5. 5. m = 7 5 = 6 m = x [-.,.] x [., 5.] c = c = x : r = (b( - a ) c =.7.7 m 6 = 7 5 m = 5 m = m + m = 5 = 76 5 6 6
Wielkości zadawane przed uruchomieniem AG: liczebność pulacji, prawdodobieństwo krzyżowania, prawdodobieństwo mutacji, inne (zależy od algorytmu). Zazwyczaj wartości dobiera się ekspe- rymentalnie (metodą prób i błędów), indywidualnie dla rozwiązywanego problemu... choć istnieją pewne ogólne zalecenia... 7 BINARNIE CZY INACZEJ? Binarnie...... Niebinarnie A B... Z... 6 Jeden z celów zmodyfikowanego kodowania: przybliżenie algorytmu do przestrzeni zadania. Dogodne jest, by dwa punkty leżące blisko siebie w przestrzeni reprezentacji (genotyp( genotyp) ) leżały również blisko siebie w przestrzeni zadania (fenotyp). (Nie zawsze prawdziwe przy kodowaniu binarnym) Ciąg binarny Ciąg niebinarny Y L I T 9 Dopasowanie 6 6 9 np.: Binarnie Całkowitoliczbowo 7 KOD GRAYA procedure GrayToBin value := g b := value for k := to m do if g k = then value := NOT b k := value NOT value procedure BinToGray g := b for k := to m do g k := b k XOR b k b = b, b,..., b m liczba binarna g = g, g,..., g m liczba w kodzie Graya; m długość ciągu kodowego. a b a XOR b Binarnie Kod Graya Zmiana bitu w kodzie woduje, iż otrzymana liczba ma szansę być liczbą bezśrednio bliską liczbie przed zmianą. 7
Jeżeli: zmiennych; dziedzina z zakresu [-5[ 5]; żądana dokładność 6 miejsc przecinku; To: długość łańcucha binarnego wynosi ; przestrzeń szukiwań rzędu. Dla tak wielkich przestrzeni AG działają słabo... Zasada minimalnego alfabetu: Należy wybrać najmniejszy alfabet, w którym zadaniewyraża się w ssób naturalny. KODOWANIE LOGARYTMICZNE Stosowane w celu zmniejszenia długości łańcucha binarnego. [ b b bin] = ( ) b ( ) [ bin] ( ) [ ] się w ssób naturalny. [ ] = ( ) e = e =.556 9 b bit znaku wykładnika funkcji wykładniczej adniczej; b bit znaku funkcji wykładniczej adniczej; bin reprezentacja wykładnika funkcji wykładniczej [bin] wartość dziesiętna liczby zakodowanej binarnie. b ( ) [ ] 6 [ ] = ( ) e = e =.775 e Za mocą 5 bitów możliwe jest zakodowanie liczb z zakresu [-e 7, e 7 ] (w kodowaniu binarnym [, ]). ). Dalszą modyfikacją jest zastosowanie KODOWANIA ZMIENNOPOZYCYJNEGO. 5