Algorytmy stochastyczne, wykład 02 Algorytmy genetyczne
J. Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2014-02-27
1 „Mutacje” algorytmu genetycznego Warunki stopu
Modyfikacje selekcji Reprezentacja
2 Optymalizacja w złożonych przestrzeniach Dziedzina niewypukła
Zmienna długość chromosomu Reprezentacja abstrakcyjna Równoległe algorytmy genetyczne
Warunki stopu
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 C1, gdzie C1 — presja genetyczna (utrudnia wygranie słabym osobnikom)
Φ(O) = (F (O))C1 — C1> 1 — większa presja
wysoka presja = dobry osobnik łatwiej wygrywa, słaby ma mniejsze szanse na przeżycie
Φ(O) = (F (O))C1 — 0 < C1< 1 — mała presja
Selekcja turniejowa
dla każdego slotu w nowej populacji Pt+1 powtarzamy:
losujemy k ≥ 2 osobników z Pt
wybieramy zwycięzcę i dodajemy do Pt+1
Ruletka ze stałymi odstępami
mieszamy populację
obliczamy dystrybuantę empiryczną (tabelę sum prefiksowych) do Pt dodajemy osobniki, które trafiły na liczby:
1
|Pt|,|P2t|,|P3t|, ...,|P|Pt|−1t| , 1
ta ruletka gwarantuje że osobniki o dostosowaniu większym niż średnia będą miały przynajmniej jedno wystąpienie
nie stosować, jeżeli Pt−1 została powiększona o potomków bez usuwania rodziców (tzn. gdy |Pt−1| 6= |Pt|)
Reprezentacja 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) pc 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) pc powoduje wykładniczy wzrost populacji nawet dla bardzo małych czasów życia!
jak określić czas życia?
Zmienna wielkość populacji
proporcjonalny
LT (o) = min(MAX LT , MIN LT + η · F (o) avg (F (P))) liniowy
LT (o) = MIN LT + η F (o) − min(F (P)) max(F (P)) − min(F (P))
Zmienna wielkość populacji
dwustronny
jeżeli F (o) < avg (F (P))
LT (o) = MIN LT + η F (o) − min(F (P)) 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))
Równoległe algorytmy genetyczne
1 „Mutacje” algorytmu genetycznego Warunki stopu
Modyfikacje selekcji Reprezentacja
2 Optymalizacja w złożonych przestrzeniach Dziedzina niewypukła
Zmienna długość chromosomu Reprezentacja abstrakcyjna Równoległe algorytmy genetyczne
Równoległe algorytmy genetyczne
Optymalizacja w dziedzinach niewypukłych
Nie każdy ciąg [o1, .., on] 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
Równoległe algorytmy genetyczne
Optymalizacja w dziedzinach niewypukłych
¯
o = [o1, .., on] — osobnik
modyfikujemy funkcję dostosowania
F1(¯o) = c1F (¯o) − c2P(¯o)
c1, c2> 0 — skalary aby oba składniki były porównywalne 0 ≤ P(¯o) < F (¯o) — funkcja kary, zmniejszamy dostosowanie
Równoległe algorytmy genetyczne
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 ¯o narusza warunki, to
F1:= F (¯o) Jeżeli ¯o nie narusza narusza warunków, to
F1 := F (¯o) + najlepszy naruszający
Równoległe algorytmy genetyczne
Zmienna długość chromosomu
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 (¯o) = co + c1|¯o| + c2|¯o|2
Równoległe algorytmy genetyczne
Reprezentacja 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
Równoległe algorytmy genetyczne
Zrównoleglenie
Co można łatwo zrównoleglić?
obliczenie funkcji oceny F mutacje osobników Trochę mniej łatwo:
krzyżowanie selekcja
Równoległe algorytmy genetyczne
Równoległe algorytmy genetyczne
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)