METODY HEURYSTYCZNE wykład 3 1
ALGORYTMY GENETYCZNE 2
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 3
METODY ANALITYCZNE kontra AG METODY ANALITYCZNE ZALETY WADY ścisłe rozwiązanie zanie wysoka szybkość działania ania 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 ność metody 4
ALGORYTMY GENETYCZNE ZALETY WADY METODY ANALITYCZNE kontra AG jedyną informacją potrzebną do działania ania jest wartość funkcji celu praca na populacji dopuszczalnych rozwiąza zań Stosunkowo wolne Trudności z precyzyjnym znalezieniem optimum przeszukiwanie wielokierunkowe 5
Przykład: źć max { f (x)=x 2 } Znaleźć 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 6
Ś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 7
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 11 8 121 64 0.11 0.06 0.43 0.23 4 10011 19 361 0.32 1.27 Suma Średnia Max 1122 281 576 1.00 0.25 0.51 4.00 1.00 2.05 8
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,... 9
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) 10
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 11
Mutacja: p m = 0.05 Nr osobnika Osobnik po krzyżowa niu 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 110000 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 12
Ś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 13
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) 14
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 15
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... 16
KODOWANIE LICZB RZECZYWISTYCH Założenia enia: f (x 1,...x k ): 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 17
ODKODOWYWANIE: 1. Przekształcenie łańcucha binarnego o długości m na liczbę dziesiętną x ; 2. Obliczenie rzeczywistej wartości liczby: x = a + i ( b a ) x' i m i 2 1 18
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)? 19
a i = -1; b i = 2; 2 c = 6 liczba podprzedziałów: r = (b - a ) 10 c = i i 3 103 6 3 10 6 2 m 1 3 000 001 2 m 2 097 152 = 2 21 3 000 001 222 = 4 194 304 m = 22 20
Mając ciąg bitów: 1100101010010101010101 Odkodowywanie: 1. Przekształcenie łańcucha na liczbę dziesię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 21
00000000000000000000000 1111111111111111111111 x = 0 x = 4194303 0 x = 1+ 4194304 = -1 3 4194303 x = 1+ 1 4194304 = 2 1 a i = -1; b i = 2 22
Przykład: 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 23
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 24
Jeden z celów 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 y równier wnież blisko siebie w przestrzeni zadania (fenotyp). (Nie zawsze prawdziwe przy kodowaniu binarnym) np.: Binarnie Całkowitoliczbowo 0111 7 1000 8 25
KOD GRAYA procedure GrayToBin begin value := g 1 b 1 := value for k := 2 to m do begin if g k = 1thenvalue := NOT value b k := value end end procedure BinToGray begin g 1 := b 1 for k := 2 to m do g k := b k 1 XOR b k end b = b 1, b 2,..., b m liczba binarna g = g 1, g 2,..., g m liczba w kodzie Graya; m długość ciągu kodowego. a b a XOR b 0 0 0 0 1 1 1 0 1 1 1 0 26
Binarnie 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 Kod Graya 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 Zmiana 1 bitu w kodzie powoduje, iżi otrzymana liczba ma szansę być liczbą bezpośrednio bliską liczbie przed zmianą. 27
Jednakże e jeżeli: eli: 100 zmiennych; dziedzina z zakresu [-500[ 500]; żądana dokładno adność 6 miejsc po przecinku; To: długość łańcucha binarnego wynosi 3000; przestrzeń poszukiwań rzędu 10 10 1000 1000. Dla tak wielkich przestrzeni AG działaj ają słabo... Zasada minimalnego alfabetu: Należy y wybrać najmniejszy alfabet, w którym zadanie wyraża a się w sposób b naturalny. 28
KODOWANIE LOGARYTMICZNE Stosowane w celu zmniejszenia długod ugości łańcucha binarnego. [ b b bin] = ( 1) 1 2 b 1 bit znaku wykładnika funkcji wykładniczej adniczej; b 2 bit znaku funkcji wykładniczej adniczej; b b1 2 ( 1) [ bin] 10 bin reprezentacja wykładnika funkcji wykładniczej [bin] 10 wartość dziesiętna liczby zakodowanej e zakodowanej binarnie. 1 10110 = 0 ( 1) [ 110] 10 = 6 = 0.00247875 [ ] ( 1) e e 2 0 1 ( 1) [ 01 1 ] 10 3 1011 = e = e = 20.08553 [ 0 ] ( 1) 692 29
Za pomocą 5 bitów w możliwe jest zakodowanie liczb z zakresu [-e 7, e 7 ] (w kodowaniu binarnym [0, 31]). Dalszą modyfikacją jest zastosowanie KODOWANIA ZMIENNOPOZYCYJNEGO. 30
Modyfikacje: łańcuchy o zmiennej długod ugości; struktury bogatsze od łańcuchów w (np. macierze); zmodyfikowane operatory; nowe operatory (inwersja, klonowanie, itp.) inna niż binarna reprezentacja zadania; pamięć chromosomu;... zmieniony AG, ulepszony AG, zmodyfikowany AG,... 31
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 ania nie zmienia się: populacja osobników w podlega pewnej transformacji, zaś osobniki starają się przetrwać w procesie ewolucji. 32
ALGORYTMY EWOLUCYJNE 33
Dla danego problemu można określi lić wiele sposobów kodowania i zdefiniować szereg operatorów (np. zadanie komiwojażera). AE to rozwinięcie i uogólnienie AG Należy y jednoznacznie określi lić: schemat działania ania AE; metodę selekcji; sposób b kodowania; operatory genetyczne; środowisko działania ania AE. 34
procedure Algorytm_Ewolucyjny begin t:=0 wybierz populację początkową P(t) oceń P(t) while (not warunek_zakończenia) do begin wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) oceń O(t) utwórz P(t+1) z O(t) i P(t) (sukcesja) t:=t+1 end end (działanie operatorów ewolucyjnych) T temporary O - offspring 35
SELEKCJA = REPRODUKCJA SUKCESJA + (preselekcja) (postselekcja) procedure Algorytm_Ewolucyjny begin t:=0 wybierz populację początkow tkową P(t) oceń P(t) while (not warunek_zakończenia czenia) do begin wybierz T(t) z P(t) (reprodukcja) utwórz O(t) z T(t) (operatory) oceń O(t) utwórz P(t+1) z O(t) i P(t) (sukcesja) t:= :=t+1 end end Reprodukcja tworzenie populacji tymczasowej T(t), która jest poddawana działaniu aniu operatorów genetycznych tworząc c populację potomną O(t). Sukcesja tworzenie nowej populacji bazowej P(t+1) z populacji potomnej O(t) oraz starej populacji bazowej P(t). 36
Superosobniki: Niepożą żądane w początkowej fazie działania ania (przedwczesna zbieżno ność). Pozytywne pod koniec pracy algorytmu (zawęż ężenie przestrzeni poszukiwań). Napór r selekcyjny (selektywny nacisk): tendencja algorytmu do poprawiania wartości średniej przystosowania. Algorytm charakteryzuje się tym większym naporem selekcyjnym, im większa jest oczekiwana liczba kopii lepszego osobnika w porównaniu z oczekiwaną liczbą kopii osobnika gorszego. 37
Twarda (brutalna) selekcja wybór r do populacji potomnej i powielanie tylko najlepszego osobnika (metoda stochastycznego wzrostu). Przyjęcie jednakowego prawdopodobieństwa - algorytm błąb łądzi przypadkowo (brak selekcji). W AE - metoda pośrednia, zwana miękką selekcją. 38
METODY REPRODUKCJI I SUKCESJI 39
KOŁO O RULETKI jak w AG... SELEKCJA TURNIEJOWA Wybór k osobników (rozmiar turnieju, zwykle k=2) i selekcja najlepszego z grupy. Powtarzane pop_size razy. 40
SELEKCJA RANKINGOWA Szeregowanie osobników w wedługw wartości przystosowa- nia i selekcja zgodnie z kolejności cią (wg tzw. linii rangi ): 25 25 20 20 15 15 10 10 5 5 0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 Zapobiega powstawaniu superosobników. Pomija informację o względnych ocenach osobników. 41
SUKCESJA TRYWIALNA (z całkowitym zastępowaniem) Nową populacją bazową staje populacja potomna P(t+1) = O(t) (jak w AG). Najbardziej odporna na przedwczesną zbieżno ność. Najwolniej prowadzi do rozwiązania zania optymalnego. Może e powodować, że e najlepsze rozwiązania zania z populacji P(t) nie znajdą się w populacji P(t+1). 42
SUKCESJA Z CZĘŚ ĘŚCIOWYM ZASTĘPOWANIEM W nowej populacji bazowej sąs osobniki z populacji potomnej i ze starej populacji bazowej: P(t+1) = O(t) + P(t) Prowadzi zwykle do stabilniejszej pracy AE. Może e spowodować tendencję do osiągania maksimów lokalnych. Mechanizm usuwania (warianty): usuwanie najgorzej przystosowanych osobników; usuwanie osobników w podobnych do potomnych; usuwanie losowo wybranych osobników. 43
SUKCESJA ELITARNA Gwarantuje przeżycie co najmniej najlepszego osob- nika poprzez odpowiedni wybór r osobników w z P(t) do P(t+1) Wzrost wielkości elity powoduje przyspieszenie zbieżno ności algorytmu. Wzrost wielkości elity powoduje większe prawdo- podobieństwo osiągania ekstremów w lokalnych. Wartość wielkości elity δ decyduje o naporze selek- cyjnym (δ=0 sukcesja trywialna). Najkorzystniej jeden, ew. kilka osobników). 44
TYPOWE OPERATORY KRZYŻOWANIA 45
Para rodziców para potomków Zwykle: 2 osobniki rodzicielskie dają 2 (sprzęż ężone) osobniki potomne. Pojedynczy osobnik potomny wariant dwuosobniczy para osobników w rodzicielskich; wariant globalny jeden wiodący i n pomocniczych osobników w rodzicielskich (po jednym dla każdego genu). Krzyżowanie wieloosobnicze: z wieloma osobnikami potomnymi; z jednym osobnikiem potomnym. 46
OPERATORY KRZYŻOWANIA WYMIENIAJĄCEGO Tworzą chromosomy potomne przez składanie ich z wartości genów w chromosomów w rodzicielskich. Mogą być wykorzystywane zarówno przy kodowaniu binarnym, jak i rzeczywistoliczbowym. Nie dochodzi do modyfikacji wartości genów zawar- tych w chromosomach krzyżowanych osobników rodzicielskich (tylko ich przetasowanie). 47
KRZYŻOWANIE JEDNOPUNKTOWE (proste) wybór r (z rozkładem jednostajnym) liczby c (punkt rozcięcia) cia) ze zbioru {1, 2,..., n -1} n - długość osobnika; Podział chromosomów X 1 i X 2 poddawanych krzyżowaniu na dwie częś ęści i ich sklejanie: Y = [X[ 1 1,,..., X 1 c, X 2 c+1,, X 2 n]. W wersji z 2 osobnikami potomnymi drugi potomek: Z = [X[ 2 1,,..., X 2 c, X 1 c+1,, X 1 n] 48
X 1 i X 2 i Y i Z i 3.24 2.22 3.24 2.22-0.22 3.14-0.22 3.14 1.32 7.72 c 1.32 7.72 3.22 1.22 1.22 3.22 1.20 2.40 2.40 1.20 7.23 4.28 4.28 7.23-2.21-2.42-2.42-2.21 49
KRZYŻOWANIE DWUPUNKTOWE wybór r 2 punktów w rozcięcia cia c 1 i c 2 ; Podział chromosomów X 1 i X 2 poddawanych krzyżo- waniu na 3 częś ęści i wymiana środkowej częś ęści: Y = [X[ 1 1,,..., X 1 c1, X 2 c1+1,, X 2 c2, X 1 c2+1,, X 1 n] W wersji z 2 osobnikami potomnymi drugi potomek: Z = [X[ 2 1,,..., X 2 c1, X 1 c1+1,, X 1 c2, X 2 c2+1,, X 2 n] c 1 = c 2 krzyżowanie jednopunktowe 50
X 1 i X 2 i Y i Z i 3.24 2.22 3.24 2.22-0.22 3.14-0.22 3.14 1.32 7.72 c 1 1.32 7.72 3.22 1.22 1.22 3.22 1.20 2.40 2.40 1.20 7.23 4.28 c 2 4.28 7.23-2.21-2.42-2.21-2.42 51
KRZYŻOWANIE RÓWNOMIERNER Chromosom potomny: 1 X i Yi = 2 X i jeśli wylosowano liczbę <p e ; w przeciwnym razie. p e parametr krzyżowania (typowo p e =0.5) W wersji z 2 osobnikami potomnymi drugi potomek: Z i X = X 2 i 1 i jeśli Y i = X 1 i ; w przeciwnym razie. 52
p e =0.5 X 1 i X 2 i wylosowano Y i Z i 3.24 2.22 0.092699 3.24 2.22-0.22 3.14 0.158384-0.22 3.14 1.32 7.72 0.697190 7.72 1.32 3.22 1.22 0.315814 3.22 1.22 1.20 2.40 0.821422 2.40 1.20 7.23 4.28 0.399981 7.23 4.28-2.21-2.42 0.428556-2.21-2.42 53
KRZYŻOWANIE DIAGONALNE Jest krzyżowaniem wieloosobniczym. Tworzy r potomków w z r rodziców w przy c = r - 1 punktach krzyżowania. Osobniki potomne powstają w wyniku składania fragmentów w kodu po przekątnej. Dla 3 osobników: Y = [X[ 1 1,,..., X 1 c1, X 2 c1+1,, X 2 c2, X 3 c2+1,, X 3 n] Z = [X[ 2 1,,..., X 2 c1, X 3 c1+1,, X 3 c2, X 1 c2+1,, X 1 n] W = [X[ 3 1,,..., X 3 c1, X 1 c1+1,, X 1 c2, X 2 c2+1,, X 2 n] 54
X 1 X 2 X 3 Y Z W W wersji 1 potomkiem tylko potomek Y 55
OPERATORY KRZYŻOWANIA UŚREDNIAJĄCEGO Są specyficzne dla kodowania rzeczywistoliczbowego; Oddziałuj ują na wartości genów w chromosomów poddawanych krzyżowaniu; Wartości każdego genu chromosomów w potomnych sąs liczbami zawierającymi się między największ kszą i najmniejszą wartości cią genu chromosomów rodzicielskich. 56
KRZYŻOWANIE ARYTMETYCZNE generowanie liczby losowej k z zakresu (0,1) lub jej arbitralny wybór; uśrednianie arytmetyczne wartości genów chromosomów w rodzicielskich: Y = X 1 + k (X 2 - X 1 ) W wersji z 2 osobnikami potomnymi drugi potomek: Z = X 2 + X 1 - Y 1 57
X 1 X 2 Y Z 4.0 2.22 3.11 3.11-0.2 3.14 1.56 1.56 1 7.72 4.36 4.36 3.22 1.28 k=0.5 2.25 2.25 1.21 2.45 1.83 1.83-3.42-5.14-4.28-4.28-2.21 2.43 0.11 0.11 X 2 Rodzic 2 Linia krzyżowania Potomek 2 Potomek 1 k=0.25 Rodzic 1 X 1 58
KRZYŻOWANIE HEURYSTYCZNE Nie jest krzyżowaniem uśredniaju redniającym! Generowanie liczby losowej k z zakresu (0,1); Tworzy się (maksymalnie) jednego potomka: przy założeniu, że X 2 X 1 Y = k (X 2 - X 1 ) + X 2 Może e utworzyć potomka, który nie jest dopuszczalny, wówczas: wczas:» generuje się nową liczbę losową i tworzy nowego potomka;» jeśli po założonej onej liczbie prób b nie utworzono osobnika dopuszczalnego, to nie tworzy się potomka. 59
X 1 X 2 Y i 1.20 1.0 3.22 1.20 1.30 2.0 3.22 3.20 1.31 1.1 3.22 3.40 X 2 Potomek Rodzic 2 Linia krzyżowania Rodzic 1 X 1 60
TYPOWE OPERATORY MUTACJI 61
MUTACJA RÓWNOMIERNAR Losowy wybór r genu w chromosomie. Przyjęcie przez gen wartości losowej (z rozkładem równomiernym) z zakresu dopuszczalnego dla danej zmiennej: Y = [X 1,..., X k,..., X n ], X k = left(k), right(k) Szczególnie użyteczna u we wczesnej fazie działania ania AE (gdy pożą żądane jest szerokie przeszukiwanie obszaru poszukiwań optimum). 62
MUTACJA NIERÓWNOMIERNA Należy y do grupy tzw. mutacji ze strojeniem. Modyfikacja wartości wybranego genu o wartość pewnej funkcji Δ(t,y): gdzie: Y = [X 1,..., X k,..., X n ], X k =X k + Δ (t, right(k)-x k ) gdy wylosowano 0 X k =X k Δ (t, X k - left(k) gdy wylosowano 1 63
Funkcja Δ(t,y) przyjmuje wartości z zakresu [0,y]; Prawdopodobieństwo, że Δ(t,y) jest bliskie zero wzrasta ze wzrostem czasu obliczeń (nie zależy y jednak od zachowania się AE). Δ(t,y) Δ(t,y) y y 0 1 k 0 1 k Początkowa faza obliczeń Pod koniec działania ania AE 64
MUTACJA BRZEGOWA Jest odmianą mutacji równomiernej, r w której: X k = left(k) gdy wylosowano 0 X k = right(k) gdy wylosowano 1 Szczególnie użyteczna, u gdy rozwiązanie zanie optymalne leży na brzegu obszaru dopuszczalnego lub bardzo blisko tego brzegu. 65
MUTACJA GAUSSOWSKA Przyjęcie przez wylosowany gen wartości losowej (z rozkładem Gaussa) o wartości oczekiwanej równej r wartości przed zmianą: Y = [X 1,..., X k,..., X n ], X k = X k +N(0, N(0,σ) 66