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: (z S) f(x) f(z) minimum globalne funkcji f: (z S) 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 F : f ( x i x 10 2 10 i i i 1,10) cos( ) 1 i 1 4000 i 1 i x x i [ 512;512]
Metody ewolucyjne metody stochastyczne
Typy metod ewolucyjnych Algorytmy genetyczne Strategie ewolucyjne Programowanie Genetyczne Programowanie Ewolucyjne
Algorytmy Genetyczne
Algorytmy genetyczne - twórcy 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)
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 p c mutacja: równoległa z punktowym prawdopodobieństwem mutacji p m 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
Implementacja modelu ruletkowego // 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 -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