SCHEMAT DZIAŁANIA AG: METODY HEURYSTYCZNE wykład 3 procedure Algorytm_genetyczny t:=0 wybierz populację począ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) METODY ANALITYCZNE kontra AG ZALETY ścisłe rozwiązanie wysoka szybkość działania METODY ANALITYCZNE WADY Funkcja celu musi być ciągła Hesjan funkcji celu musi być dodatnio określony Istnieje duże ryzyko zbiegnięcia się algorytmu do optimum lokalnego Obliczenia rozpoczynają się z jednego punktu ograniczając obszar poszukiwań optimum Wybór punktu startowego wpływa na zbieżność metody 3 METODY ANALITYCZNE kontra AG ALGORYTMY GENETYCZNE ZALETY WADY jedyną informacją potrzebną do działania jest wartość funkcji celu praca na populacji dopuszczalnych rozwiązań przeszukiwanie wielokierunkowe Stosunkowo wolne Trudności z precyzyjnym znalezieniem optimum 4 Przykład: Znaleźć max { f (x)=x } dla wartości całkowitych x z zakresu 0-3. Populacja w chwili t: Założenia: P(t)= {x t,...x t n} - łańcuchy 5-bitowe (x=0,,...,3); - liczebność populacji n=4 5 Ścisłe rozwiązanie: x = x = 3; x = 96. Populacja początkowa (losowanie): x 0 = 0 0 0 x 0 = 0 0 x 0 3 = 0 0 0 0 x 0 4 = 0 0 6
Sytuacja początkowa: Selekcja: Nr Wartość x Przystosowanie f(x)=x Prawd. wylosowania Oczekiwana liczba kopii Każdemu ciągowi kodowemu odpowiada sektor koła ruletki o polu proporcjonalnym do przystosowania. 000 00 3 0000 4 00 4 8 9 Suma Średnia Max 576 64 36 8 576 0.5 0. 0.06 0.3.00 0.5 0.5.05 0.43 0.3.7 4.00.00.05 7 <0, 0.5), <0.5, 0.6),... 8 Po selekcji: Krzyżowanie: p c = 0.9 Nr Oczekiwana liczba kopii.05 0.43 3 0.3 4.7 Liczba wylosowanych kopii 0 po selekcji 000 00 000 00 Wartość x 4 4 9 Suma Średnia Max Przystosowanie f(x)=x 576 576 36 634 409 576 Prawd. wylosowania 0.35 0.07 0.35 0.3.0 0.5 0.35 (x) po selekcji 0 0 0 0 0 3 0 0 0 4 0 0 Nr Partner 4 3 Punkt krzyżowania 4 4 0 0 0 0 0 0 0 0 0 0 po krzyżowaniu Wartość x 5 0 7 6 Suma Średnia Max Przystosowanie f(x)=x 65 00 79 56 70 48 79 było: 576 Prawd. wylosowania 0.36 0.06 0.43 0.5.0 0.5 0.43 9 0 Mutacja: p m = 0.05 Nr po krzyżowa niu 0 0 0 0 0 3 0 4 0 0 0 0 NNNNN NNNNN NNNNN NNNTN po mutacji 0 0 0 0 0 0 0 0 0 Mutacja? Wartość x 5 0 7 8 Suma Średnia Max Przystosowanie f(x)=x 65 00 79 34 778 447 79 było: 79 Prawd. wylosowania 0.35 0.06 0.4 0.8.0 0.5 0.4
Rozpatrywać można zawsze zadanie maksymalizacji: g (x) = -f (x) min f (x) = max g(x) = max{-f (x)} Zakłada się również, iż funkcja jest dodatnia w całej dziedzinie (selekcja!) C max g(x) = max{g(x )+C} (jeśli g(x) jest ograniczona z dołu) 3 4 Wielkości zadawane przed uruchomieniem AG: liczebność populacji, prawdopodobieństwo krzyżowania, prawdopodobieństwo mutacji, inne (zależy od algorytmu). KODOWANIE LICZB RZECZYWISTYCH Założenia: f (x,...x k ): R k R D i = [a i, b i ] R f (x,...x k ) > 0 dla każdego x i D i dokładność do c liczb znaczących po przecinku Zazwyczaj wartości dobiera się eksperymentalnie (metodą prób i błędów), indywidualnie dla rozwiązywanego problemu... choć istnieją pewne ogólne zalecenia... 5 Wykonanie:. Podział D i = [a i, b i ] na r = (b i - a i ) 0 c podprzedziałów.. Wyznaczenie najmniejszej liczba całkowitej m: (b i - a i ) 0 c m 6 ODKODOWYWANIE: Przykład:.Przekształcenie łańcucha binarnego o długości m na liczbę dziesiętną x ;. Obliczenie rzeczywistej wartości liczby: f (x) = x sin(0π x) + max{ f (x)} Dziedzina funkcji: x [-, ] Liczba miejsc po przecinku: c = 6 7 Na ilu bitach trzeba zakodować liczbę (wyznaczenie m)? 8 3
a i = -; b i = ; c = 6 liczba podprzedziałów: r = (b i - a i ) 0 c = 3 0 6 (b i - a i ) 0 c m [ (-)] 0 6 + = 3 000 00 m Mając ciąg bitów: 00000000000 Odkodowywanie:. Przekształcenie łańcucha na liczbę dziesiętną x : x =3395. Obliczenie rzeczywistej wartości liczby: 097 5 = 3 000 00 = 4 94 304 m = 9 a i = -; b i = ; c = 6 0 00000000000000000000000 x = 0 x = 494303 Przykład: f (x) =.5 + x sin(4πx ) + x sin(0πx ) x [-3.0,.] x [4., 5.8] c = c = 4 max{f (x, x )} a i = -; b i = x : x : r = (b - a ) 0 c = 5. 0 4 5. 0 4 m 3 03 = 7 5 00 8 = 6 44 m = 8 r = (b - a ) 0 c =.7 0 4.7 0 4 m 6 384 = 4 7 00 5 = 3 768 m = 5 m = m + m = 33 000000000000000 x x 3 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) leżały również blisko siebie w przestrzeni zadania (fenotyp). (Nie zawsze prawdziwe przy kodowaniu binarnym) np.: Binarnie Całkowitoliczbowo 0 7 000 8 4 4
KOD GRAYA procedure BinToGray procedure GrayToBin value := g b := value for k := to m do g := b for k := to m do g k := b k XOR b k a b a XOR b if g k = then value := NOT value 0 0 0 b k := value 0 0 0 b = b, b,..., b m liczba binarna g = g, g,..., g m liczba w kodzie Graya; m długość ciągu kodowego. 5 Binarnie 0000 000 000 00 000 00 00 0 000 00 00 0 00 0 0 Kod Graya 0000 000 00 000 00 0 00 000 00 0 0 00 0 00 000 Zmiana bitu w kodzie powoduje, iż otrzymana liczba ma szansę być liczbą bezpośrednio bliską liczbie przed zmianą. 6 Jednakże jeżeli: 00 zmiennych; dziedzina z zakresu [-500 500]; żądana dokładność 6 miejsc po przecinku; KODOWANIE LOGARYTMICZNE Stosowane w celu zmniejszenia długości łańcucha binarnego. To: długość łańcucha binarnego wynosi 3000; przestrzeń poszukiwań rzędu 0 000. b bit znaku wykładnika funkcji wykładniczej; b bit znaku funkcji wykładniczej; bin reprezentacja wykładnika funkcji wykładniczej Dla tak wielkich przestrzeni AG działają słabo... [bin] 0 wartość dziesiętna liczby zakodowanej binarnie. Zasada minimalnego alfabetu: Należy wybrać najmniejszy alfabet, w którym zadanie wyraża się w sposób naturalny. 7 8 Za pomocą 5 bitów możliwe jest zakodowanie liczb z zakresu [-e 7, e 7 ] (w kodowaniu binarnym [0, 3]). Dalszą modyfikacją jest zastosowanie KODOWANIA ZMIENNOPOZYCYJNEGO. 9 Modyfikacje: łańcuchy o zmiennej długości; struktury bogatsze od łańcuchów (np. macierze); zmodyfikowane operatory; nowe operatory (inwersja, klonowanie, itp.) inna niż binarna reprezentacja zadania; pamięć chromosomu;... zmieniony AG, ulepszony AG, zmodyfikowany AG,... 30 5
Różnorodne programy opierające się na zasadzie ewolucji mogą się różnić: strukturą danych; operatorami; metodami tworzenia populacji początkowej; sposobami uwzględniania ograniczeń zadania; parametrami. Zasada działania nie zmienia się: populacja osobników podlega pewnej transformacji zaś osobniki starają się przetrwać w procesie ewolucji. 3 ALGORYTMY EWOLUCYJNE 3 Dla danego problemu można określić wiele sposobów kodowania i zdefiniować szereg operatorów (np. zadanie komiwojażera). AE to rozwinięcie i uogólnienie AG Należy jednoznacznie określić: schemat działania AE; metodę selekcji; sposób kodowania; operatory genetyczne; środowisko działania AE. 33 procedure Algorytm_Ewolucyjny t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) (działanie operatorów ewolucyjnych) oceń O(t) utwórz P(t+) z O(t) i P(t) (sukcesja) t:=t+ T temporary O - offspring 34 REPRODUKCJA (preselekcja) SELEKCJA = + SUKCESJA (postselekcja) procedure Algorytm_Ewolucyjny t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) (operatory) oceń O(t) utwórz P(t+) z O(t) i P(t) (sukcesja) t:=t+ Reprodukcja tworzenie populacji tymczasowej T(t), która jest poddawana działaniu operatorów genetycznych tworząc populację potomną O(t). Sukcesja tworzenie nowej populacji bazowej P(t+) z populacji potomnej O(t) oraz starej populacji bazowej P(t). 35 Superosobniki: Niepożądane w początkowej fazie działania (przedwczesna zbieżność). Pozytywne pod koniec pracy algorytmu (zawężenie przestrzeni poszukiwań). Napór selekcyjny (selektywny nacisk): tencja algorytmu do poprawiania wartości średniej przystosowania. Algorytm charakteryzuje się tym większym naporem selekcyjnym, im większa jest oczekiwana liczba kopii lepszego w porównaniu z oczekiwaną liczbą kopii gorszego. 6
Twarda (brutalna) selekcja wybór do populacji potomnej i powielanie tylko najlepszego (metoda stochastycznego wzrostu). Przyjęcie jednakowego prawdopodobieństwa - algorytm błądzi przypadkowo (brak selekcji). W AE - metoda pośrednia, zwana miękką selekcją. METODY REPRODUKCJI I SUKCESJI KOŁO RULETKI SELEKCJA RANKINGOWA jak w AG... Szeregowanie osobników według wartości przystosowania i selekcja zgodnie z kolejnością (wg tzw. linii rangi ): SELEKCJA TURNIEJOWA Wybór k osobników (rozmiar turnieju, zwykle k=) i selekcja najlepszego z grupy. Powtarzane pop_size razy. Zapobiega powstawaniu superosobników. Pomija informację o względnych ocenach osobników. SUKCESJA TRYWIALNA (z całkowitym zastępowaniem) SUKCESJA Z CZĘŚCIOWYM ZASTĘPOWANIEM Nową populacją bazową staje populacja potomna P(t+) = O(t) (jak w AG). Najbardziej odporna na przedwczesną zbieżność. Najwolniej prowadzi do rozwiązania optymalnego. Może powodować, że najlepsze rozwiązania z populacji P(t) nie znajdą się w populacji P(t+). 4 W nowej populacji bazowej są osobniki z populacji potomnej i ze starej populacji bazowej: P(t+) = O(t) + P(t) Prowadzi zwykle do stabilniejszej pracy AE. Może spowodować tencję do osiągania maksimów lokalnych. Mechanizm usuwania (warianty): usuwanie najgorzej przystosowanych osobników; usuwanie osobników podobnych do potomnych; usuwanie losowo wybranych osobników. 4 7
SUKCESJA ELITARNA Gwarantuje przeżycie co najmniej najlepszego poprzez odpowiedni wybór osobników z P(t) do P(t+) Wzrost wielkości elity powoduje przyspieszenie zbieżności algorytmu. Wzrost wielkości elity powoduje większe prawdopodobieństwo osiągania ekstremów lokalnych. Wartość wielkości elity δ decyduje o naporze selekcyjnym (δ=0 sukcesja trywialna). Najkorzystniej jeden, ew. kilka osobników). 43 TYPOWE OPERATORY KRZYŻOWANIA Para rodziców para potomków Zwykle: osobniki rodzicielskie dają (sprzężone) osobniki potomne. Pojedynczy osobnik potomny wariant dwuosobniczy para osobników rodzicielskich; wariant globalny jeden wiodący i n pomocniczych osobników rodzicielskich (po jednym dla każdego genu). Krzyżowanie wieloosobnicze: z wieloma mi potomnymi; z jednym osobnikiem potomnym. 45 OPERATORY KRZYŻOWANIA WYMIENIAJĄCEGO Tworzą chromosomy potomne przez składanie ich z wartości genów chromosomów rodzicielskich. Mogą być wykorzystywane zarówno przy kodowaniu binarnym, jak i rzeczywistoliczbowym. Nie dochodzi do modyfikacji wartości genów zawartych w chromosomach krzyżowanych osobników rodzicielskich (tylko ich przetasowanie). 46 KRZYŻOWANIE JEDNOPUNKTOWE (proste) wybór (z rozkładem jednostajnym) liczby c (punkt rozcięcia) ze zbioru {,,..., n -} n - długość ; Podział chromosomów X i X poddawanych krzyżowaniu na dwie części i ich sklejanie: Y = [X,..., X c, X c+,, X n]. X i 3.4-0..3 3..0 7.3 -. X i. 3.4 7.7..40 4.8 -.4 c Y i 3.4-0..3..40 4.8 -.4 Z i. 3.4 7.7 3..0 7.3 -. W wersji z mi potomnymi drugi potomek: Z = [X,..., X c, X c+,, X n] 47 48 8
KRZYŻOWANIE DWUPUNKTOWE wybór punktów rozcięcia c i c ; X i 3.4 X i. Y i 3.4 Z i. Podział chromosomów X i X poddawanych krzyżowaniu na 3 części i wymiana środkowej części: Y = [X,..., X c, X c+,, X c, X c+,, X n] -0..3 3..0 3.4 7.7..40 c -0..3..40 3.4 7.7 3..0 W wersji z mi potomnymi drugi potomek: Z = [X,..., X c, X c+,, X c, X c+,, X n] 7.3 -. 4.8 -.4 c 4.8 7.3 -. -.4 c = c krzyżowanie jednopunktowe 49 50 KRZYŻOWANIE RÓWNOMIERNE p e =0.5 Chromosom potomny: jeśli wylosowano liczbę <p e ; w przeciwnym razie. X i 3.4-0. X i. 3.4 wylosowano 0.09699 0.58384 Y i 3.4-0. Z i. 3.4 p e parametr krzyżowania (typowo p e =0.5).3 7.7 0.69790 7.7.3 W wersji z mi potomnymi drugi potomek: 3..0..40 0.3584 0.84 3..40..0 jeśli Y i = X i ; 7.3 4.8 0.39998 7.3 4.8 w przeciwnym razie. -. -.4 0.48556 -. -.4 5 5 KRZYŻOWANIE DIAGONALNE Jest krzyżowaniem wieloosobniczym. Tworzy r potomków z rodziców przy c = r - punktach krzyżowania. i potomne powstają w wyniku składania fragmentów kodu po przekątnej. X X X 3 Y Dla 3 osobników: Y = [X,..., X c, X c+,, X c, X 3 c+,, X 3 n] Z W Z = [X,..., X c, X 3 c+,, X 3 c, X c+,, X n] W wersji potomkiem tylko potomek Y W = [X 3,..., X 3 c, X c+,, X c, X c+,, X n] 53 54 9
OPERATORY KRZYŻOWANIA UŚREDNIAJĄCEGO Są specyficzne dla kodowania rzeczywistoliczbowego; Oddziałują na wartości genów chromosomów poddawanych krzyżowaniu; Wartości każdego genu chromosomów potomnych są liczbami zawierającymi się między największą i najmniejszą wartością genu chromosomów rodzicielskich. KRZYŻOWANIE ARYTMETYCZNE generowanie liczby losowej k z zakresu (0,) lub jej arbitralny wybór; uśrednianie arytmetyczne wartości genów chromosomów rodzicielskich: Y = X + k (X - X ) W wersji z mi potomnymi drugi potomek: Z = X + X - Y 55 56 X i X i Y i Z i KRZYŻOWANIE HEURYSTYCZNE 4.0-0. 3.. -3.4 -.. 3.4 7.7.8.45-5.4.43 k=0.5 3..56 4.36.5.83-4.8 0. 3..56 4.36.5.83-4.8 0. Nie jest krzyżowaniem uśredniającym! Generowanie liczby losowej k z zakresu (0,); Tworzy się (maksymalnie) jednego potomka: Y = k (X - X ) + X przy założeniu, że f(x ) f(x ) Może utworzyć potomka, który nie jest dopuszczalny, wówczas:» generuje się nową liczbę losową i tworzy nowego potomka; 57» Jeśli po założonej liczbie prób nie utworzono dopuszczalnego, to nie tworzy się potomka. 58 X i X i Y i.0.30.3.0 3..0.0 3. 3.0. 3. 3.40 TYPOWE OPERATORY MUTACJI 59 0
MUTACJA RÓWNOMIERNA MUTACJA NIERÓWNOMIERNA Losowy wybór genu w chromosomie. Należy do grupy tzw. mutacji ze strojeniem. Przyjęcie przez gen wartości losowej (z rozkładem równomiernym) z zakresu dopuszczalnego dla danej zmiennej: Modyfikacja wartości wybranego genu o wartość pewnej funkcji (t,y): Y = [X,..., X k,..., X n ], X k = left(k), right(k) gdzie: Y = [X,..., X k,..., X n ], Szczególnie użyteczna we wczesnej fazie działania AE (gdy pożądane jest szerokie przeszukiwanie obszaru poszukiwań optimum). 6 X k =X k + (t, right(k)-x k ) gdy wylosowano 0 X k =X k (t, X k - left(k) gdy wylosowano 6 Funkcja (t,y) przyjmuje wartości z zakresu [0,y]; Prawdopodobieństwo, że (t,y) jest bliskie zero wzrasta ze wzrostem czasu obliczeń y (t,y) (nie zależy jednak od zachowania się AE). y (t,y) MUTACJA BRZEGOWA Jest odmianą mutacji równomiernej, w której: X k = left(k) gdy wylosowano 0 X k = right(k) gdy wylosowano 0 k 0 k Szczególnie użyteczna, gdy rozwiązanie optymalne leży na brzegu obszaru dopuszczalnego lub bardzo blisko tego brzegu. Początkowa faza obliczeń Pod koniec działania AE 63 64 MUTACJA GAUSSOWSKA Przyjęcie przez wylosowany gen wartości losowej (z rozkładem Gaussa) o wartości oczekiwanej równej wartości przed zmianą: Y = [X,..., X k,..., X n ], X k = X k +N(0,σ) 65 Algorytmy genetyczne Kompium t. Tomasz Dominik Gwiazda Seria 6 książek stanowiących wyczerpujące kompium wiedzy o Algorytmach Genetycznych. Trzy pierwsze tomy poświęcone są AG zastosowanym w obszarze problemów optymalizacji numerycznej, następne trzy AG zastosowanym w obszarze optymalizacji kombinatorycznej. Tom, który zapoczątkowuje serię, przedstawia najbardziej istotny dla AG operator - operator krzyżowania 66