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

Post on 21-Jul-2021

1 views 0 download

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