Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne J. Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2014-02-27
1 Mutacje algorytmu genetycznego 2 Dziedzina niewypukła abstrakcyjna
Mutacje algorytmu genetycznego liczba pokoleń dostatecznie dobre rozwiązanie jednolita populacja limit czasu
Przetrwanie najlepszego wymuszamy przeżycie najlepiej dostosowanego osobnika pierwszy slot w nowej populacji jest dla najlepszego reszta według ruletki
Presja genetyczna F funkcja dostosowania (im większe F tym lepiej) i F (O) > 0 Φ(O) zależy od F (O) i C 1, gdzie C 1 presja genetyczna (utrudnia wygranie słabym osobnikom) Φ(O) = (F (O)) C 1 C 1 > 1 większa presja wysoka presja = dobry osobnik łatwiej wygrywa, słaby ma mniejsze szanse na przeżycie Φ(O) = (F (O)) C 1 0 < C 1 < 1 mała presja
Selekcja turniejowa dla każdego slotu w nowej populacji P t+1 powtarzamy: losujemy k 2 osobników z P t wybieramy zwycięzcę i dodajemy do P t+1
Ruletka ze stałymi odstępami mieszamy populację obliczamy dystrybuantę empiryczną (tabelę sum prefiksowych) do P t dodajemy osobniki, które trafiły na liczby: 1 P t, 2 P t, 3 P t,..., Pt 1 P t, 1 ta ruletka gwarantuje że osobniki o dostosowaniu większym niż średnia będą miały przynajmniej jedno wystąpienie nie stosować, jeżeli P t 1 została powiększona o potomków bez usuwania rodziców (tzn. gdy P t 1 P t )
liczbowa fragment chromosomu koduje liczbę zapisaną binarnie do reprezentacji lepiej jest zastosować zapis pomieszany np. kodowanie Gray a (sąsiadujące liczby różnią się jednym bitem)
Niebinarne geny zamiast ciągu bitów jako można przyjąć ciąg liczb, krzyżowanie zwykłe mutacje zmiana liczby na inną z dopuszczonego zakresu, mutacje dodanie do liczby małego szumu np. N(0, σ 2 ),
Zmienna wielkość populacji chromosomy mają swój wiek i czas zycia w każdej epoce wiek := wiek + 1, dla potomków wiek := 0 jeżeli wiek > czas zycia, to osobnik umiera ze starości uwaga duże (a nawet średnie i małe) p c powoduje wykładniczy wzrost populacji nawet dla bardzo małych czasów życia! jak określić czas życia?
Zmienna wielkość populacji chromosomy mają swój wiek i czas zycia w każdej epoce wiek := wiek + 1, dla potomków wiek := 0 jeżeli wiek > czas zycia, to osobnik umiera ze starości uwaga duże (a nawet średnie i małe) p c powoduje wykładniczy wzrost populacji nawet dla bardzo małych czasów życia! jak określić czas życia?
Zmienna wielkość populacji proporcjonalny liniowy LT (o) = min(max LT, MIN LT + η F (o) avg(f (P)) ) F (o) min(f (P)) LT (o) = MIN LT + η max(f (P)) min(f (P))
Zmienna wielkość populacji dwustronny jeżeli F (o) < avg(f (P)) F (o) min(f (P)) LT (o) = MIN LT + η avg(f (P)) min(f (P)) wpw F (o) < avg(f (P)) LT (o) = MIN LT + MAX LT 2 F (o) avg(f (P)) + η max(f (P)) avg(f (P))
Dziedzina niewypukła abstrakcyjna 1 Mutacje algorytmu genetycznego 2 Dziedzina niewypukła abstrakcyjna
Dziedzina niewypukła abstrakcyjna Optymalizacja w dziedzinach niewypukłych Nie każdy ciąg [o 1,.., o n ] jest poprawnym rozwiązaniem problemu (podejście niedopuszczające) zmieniamy mutacje i krzyżowania, aby nie wyprowadzały poza zbiór poprawnych osobników (podejście niedopuszczające) naprawa niewłaściwego osobnika na jakiegokolwiek poprawnego (podejście niedopuszczające) śmierć osobnika (osobnik nie może przeżyć selekcji) (podejście akceptujące) dodajemy karę za naruszenie warunków
Dziedzina niewypukła abstrakcyjna Optymalizacja w dziedzinach niewypukłych ō = [o 1,.., o n ] osobnik modyfikujemy funkcję dostosowania F 1 (ō) = c 1 F (ō) c 2 P(ō) c 1, c 2 > 0 skalary aby oba składniki były porównywalne 0 P(ō) < F (ō) funkcja kary, zmniejszamy dostosowanie niepoprawnych osobników
Dziedzina niewypukła abstrakcyjna Optymalizacja w dziedzinach niewypukłych Jak dobrać funkcję kary? F () naturalne dostosowanie im większe tym lepsze nie ma prostej funkcji kary P() Jeżeli ō narusza warunki, to F 1 := F (ō) Jeżeli ō nie narusza narusza warunków, to F 1 := F (ō) + najlepszy naruszający
Dziedzina niewypukła abstrakcyjna gdy nie wiadomo jak długie może być rozwiązanie długość chromosomu może być zmienna dodajemy karę za długość rozwiązania, np. K(ō) = c o + c 1 ō + c 2 ō 2
abstrakcyjna Dziedzina niewypukła abstrakcyjna ciąg binarny bywa trudny w interpretacji chromosom reprezentujemy jako abstrakcyjny obiekt np: tablica liczb lista liczb / obiektów drzewo graf dla nowej reprezentacji redefiniujemy mutację i krzyżowanie określamy karę na naruszenie warunków i wielkość chromosomu
Zrównoleglenie Dziedzina niewypukła abstrakcyjna Co można łatwo zrównoleglić? obliczenie funkcji oceny F mutacje osobników Trochę mniej łatwo: krzyżowanie selekcja
Dziedzina niewypukła abstrakcyjna każdy komputer prowadzi ewolucję własnej populacji (mikroewolucja, np. populacja w jaskiniach, lokalna komunikacja) co pewien czas, łączymy / kopiujemy najlepszą / mieszamy populacje pomiędzy węzłami (makroewolucja, mieszamy jaskiniowców z różnych jaskiń, rzadka globalna komunikacja)