Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna...
Transcript of Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna...
Wstęp do Sztucznej Inteligencji
Algorytmy Genetyczne
Joanna Kołodziej Politechnika Krakowska
Wydział Fizyki, Matematyki i Informatyki
Metody heurystyczne
Algorytm efektywny: koszt zastosowania (mierzony czasem wykonania i wielkością zajętej pamięci) nie rośnie zbyt szybko w zależności od rozmiaru zadania
„Bariera rozmiaru” dla zadań trudnych obliczeniowo (NP-zupełnych,NPO-zupełnych)
Alternatywa: metody heurystyczne
Przykład: sztuczna inteligencja, soft computing
Heurystyka
Etymologia: heuriskein (gr.) — znaleźć, odkryć
Potocznie: praktyczna, oparta na doświadczeniu, ”inteligentna” reguła postępowania, która może drastycznie uprościć lub skrócić proces rozwiązywania problemu, gdy metoda rozwiązania nie jest znana lub jest zawiła i czasochłonna
W algorytmice: “niepełnowartościowy” algorytm, który umożliwia znalezienie w akceptowalnym czasie przynajmniej “dostatecznie dobrego” przybliżonego rozwiązania problemu, choć nie gwarantuje tego we wszystkich przypadkach.
Soft Computing
Jakim sposobem programować komputery, aby nabywały one zdolności rozwiązywania zadań na podstawie opisu tego co należy zrobić, a nie jak to zrobić?
[John Holland, Adaptation in Natural and Artificial Systems. 1975]
Zdolność do efektywnego rozwiązywania problemów przy tolerancji dla: nieścisłości (imprecision) niepewności (uncertainty) półprawdy (partial truth) niedokładności (approximation) (cechy charakteryzujące umysł ludzki)
Soft Computing — Technologie
systemy rozmyte (fuzzy systems)
sieci neuronowe (neural networks)
obliczenia ewolucyjne (evolutionary computation)
uczenie maszynowe (machine learning)
wnioskowanie probabilistyczne (probabilistic reasoning)
Dlaczego ewolucja?
Żywe organizmy są ekspertami w rozwiązywaniu problemów i
wykazują wszechstronność, której nie mają nawet najlepsze programy
komputerowe. Zasada doboru naturalnego usuwa jedną z
największych przeszkód w projektowaniu oprogramowania: konieczność
uprzedniej specyfikacji wszystkich szczegółów problemu
i wszystkich działań, które powinien podjąć program. Wykorzystując
mechanizmy ewolucyjne badacze będą mogli «wyhodować» programy
potrafiące rozwiązywać problemy o strukturze tak złożonej, że nikt ich w
pełni nie rozumie.
[J. Holland, Algorytmy genetyczne. Świat Nauki, wrzesień 1992]
Metoda ewolucyjna
Metoda dochodzenia do celu (rozwiązania końcowego) drogą
stopniowych, drobnych przemian, oparta na mechanizmie
sprzężenia zwrotnego:
• nowe rozwiązania wytwarzane są poprzez modyfikacje lub
kombinacje znanych (istniejących) rozwiązań
• wartość nowych rozwiązań jest poddawana weryfikacji na
podstawie odniesionego sukcesu (“rozpoznanie walka”)
Jest to wiec metoda “prób i błędów”: błędy są eliminowane, a
sukcesy — kumulowane
Zadania optymalizacyjne
• niepusty zbiór S obiektów, zwanych rozwiązaniami
• funkcja oceny (jakości) rozwiązań f : S R – f. fitness
• maksimum globalne funkcji f: (zS) f(x) ≥ f(z)
• minimum globalne funkcji f: (zS) f(x) ≤ f(z)
• ekstremum : maksimum lub minimum
• rozwiązanie ekstremalne, optimum: rozwiązanie dla
którego funkcja f osiąga ekstremum (wartość
optymalną)
Przykłady funkcji benchmarkowych dla zadań optymalizacji globalnej
Funkcja Griewanka
10
1
10
1
2
10,1 1)cos(4000
)|(:i
i
i
i
iii
xxxfF
]512;512[ix
Metody ewolucyjne – metody stochastyczne
Typy metod ewolucyjnych
• Algorytmy genetyczne
• Strategie ewolucyjne
• Programowanie Genetyczne
• Programowanie Ewolucyjne
Algorytmy Genetyczne
John H. Holland (University of Michigan at Ann Arbor, Santa Fe Institute)
– Koncepcja planów reprodukcyjnych (Adaptation in
Natural and Artificial Systems, 1975)
Kenneth A. De Jong (George Mason University, Fairfax, Virginia)
– Pierwsze implementacje i zastosowania w optymalizacji (An Analysis of the Behavior of a Class of Genetic Adaptive Systems, 1975)
David E. Goldberg (University of Illinois at Urbana-Champaign)
– Popularyzacja, podrecznik algorytmów genetycznych (Genetic Algorithms in Search, Optimization and Machine Learning, 1989)
Algorytmy genetyczne - twórcy
Jak działa algorytm genetyczny?
Konkretniej…
AG- schemat działania
utwórz populację początkową
while not warunek zatrzymania do
->utwórz pulę rodzicielską z populacji
bieżącej
-> wygeneruj osobniki potomne za pomocą
operatorów mieszających i lokalnych
-> uaktualnij populację bieżącą
end while
return najlepsze rozwiązanie
Pula rodzicielska
W pierwotnym ujęciu: efekt etapu selekcji wstępnej (reprodukcji);
pokolenie pośrednie, zawierające “klony” osobników wybranych z
populacji bieżącej
• Osobniki z puli rodzicielskiej są kojarzone (losowo) w pary w celu
skrzyżowania; wybrana para zostaje usunięta z puli (losowanie bez
zwracania)
• Etapy reprodukcji i kojarzenia można zintegrować, wybierając
bezpośrednio pary rodzicielskie z populacji bieżącej (wg reguł
selekcji wstępnej)
• Oba schematy są stochastycznie równoważne
Kanoniczny (klasyczny) AG
• reprezentacja: kodowanie genetyczne (chromosom zerojedynkowy)
• wielkość populacji: stała
• selekcja wstępna: proporcjonalna
• rekombinacja: krzyżowanie proste z prawdopodobieństwem pc
• mutacja: równoległa z punktowym prawdopodobieństwem mutacji pm
• wymiana pokoleń: pełna
• warunek zatrzymania: limit liczby pokoleń
Reprezentacja rozwiązań – kodowanie metodą siatki binarnej
Genotyp - 8 bitów
Fenotyp – postać całkowita
Fenotyp – wartość rzeczywista pomiędzy 2,5 a 20,5
Selekcja proporcjonalna
Metoda ruletki
// ps[1..N] -- wektor prawdopodobieństw wyboru
// porządek elementów bez znaczenia
u := random;
s := 0.0;
i := 0;
repeat
i := i+1;
s := s + ps[i]
until s >= u;
return(i); // numer "zwycięskiego" sektora
Implementacja modelu ruletkowego
Implementacja -uzasadnienie
Reprodukcja
Operatory reprodukcji:
• Krzyżowanie
• Mutacja
Krzyżowanie - idea
Krzyżowanie jednopunktowe
Krzyżowanie wielopunktowe
Mutacja binarna
Przykład – problem OneMax
Selecja dla OneMax
Rekombinacja dla OneMax