Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna...

30
Wstęp do Sztucznej Inteligencji Algorytmy Genetyczne Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki

Transcript of Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna...

Page 1: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Wstęp do Sztucznej Inteligencji

Algorytmy Genetyczne

Joanna Kołodziej Politechnika Krakowska

Wydział Fizyki, Matematyki i Informatyki

Page 2: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 3: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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.

Page 4: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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)

Page 5: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Soft Computing — Technologie

systemy rozmyte (fuzzy systems)

sieci neuronowe (neural networks)

obliczenia ewolucyjne (evolutionary computation)

uczenie maszynowe (machine learning)

wnioskowanie probabilistyczne (probabilistic reasoning)

Page 6: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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]

Page 7: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 8: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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ą)

Page 9: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 10: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Metody ewolucyjne – metody stochastyczne

Page 11: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Typy metod ewolucyjnych

• Algorytmy genetyczne

• Strategie ewolucyjne

• Programowanie Genetyczne

• Programowanie Ewolucyjne

Page 12: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Algorytmy Genetyczne

Page 13: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 14: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Jak działa algorytm genetyczny?

Page 15: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Konkretniej…

Page 16: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 17: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 18: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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ń

Page 19: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

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

Page 20: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Selekcja proporcjonalna

Metoda ruletki

Page 21: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

// 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

Page 22: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Implementacja -uzasadnienie

Page 23: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Reprodukcja

Operatory reprodukcji:

• Krzyżowanie

• Mutacja

Page 24: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Krzyżowanie - idea

Page 25: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Krzyżowanie jednopunktowe

Page 26: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Krzyżowanie wielopunktowe

Page 27: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Mutacja binarna

Page 28: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Przykład – problem OneMax

Page 29: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Selecja dla OneMax

Page 30: Wstęp do Sztucznejamarsz/dydaktyka/wsi/WSI... · 2017. 3. 15. · Przykład: sztuczna inteligencja, soft computing . Heurystyka ... Przykłady funkcji benchmarkowych dla zadań optymalizacji

Rekombinacja dla OneMax