metody probabilistyczne
TRANSCRIPT
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Sztuczna Inteligencja i Systemy EkspertoweAlgorytmy probabilistyczne.
Aleksander Pohlhttp://apohllo.pl/dydaktyka/ai
Wyzsza Szkoła Zarzadzania i Bankowosci
4 czerwca 2009
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wyzarzanie
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wyzarzanie
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Problemy NP-zupełne
◮ Klasa problemów z teorii złozonosci obliczeniowej◮ Problemy o czasie co najmniej wykładniczym
∃k : m(n) = O(kn)◮ Problem komiwojazera◮ Problem rozkładu liczby złozonej na składowe
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Metody rozwiazania
◮ Metody rozwiazywania:◮ Aproksymacje◮ Probabilistyczne◮ Rozpatrywanie szczególnych przypadków
◮ Algorytmy z ustalonymi parametrami◮ Heurystyki
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Algorytmy probabilistyczne
Klasyczny algorytmy probabilistyczne:◮ Metoda Monte-Carlo◮ Wyzarzanie◮ Algorytmy Genetyczne◮ Algorytmy Mrówkowe
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Algorytmy probabilistyczne
◮ Metody ograniczone ze wzgledu na czas, dopuszczajacebład
◮ Metody Monte-Carlo◮ Metody nieograniczone ze wzgledu na czas, nie
dopuszczajace błedu◮ Metody Las-Vegas
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Metody Monte-Carlo („hill-climbing”)
◮ 1930 – Fermi ; własnosci neutronu, projekt Manhattan◮ Całkowanie numeryczne◮ Zagadnienia optymalizacyjne◮ Losowanie markera w przestrzeni n-wymiarowej◮ Marker w małym promieniu szuka kierunku spadku
gradientu i przesuwany jest w takim kierunku◮ Zagrozenie maksimami lokalnymi
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Metoda Monte-CarloMała odpornosc na lokalne maksima
Rysunek: Wykres funkcji celu dla problemów o róznejcharakterystyce
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wyzarzanie
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Wyzarzanie („simulated annealing”)
◮ Heurystyczna metoda probabilistyczna poszukiwaniaglobalnego maksimum
◮ Analogia do „wyzarzania” w metalurgii łaczacej ogrzewaniei chłodzenie materiału w celu zwiekszenia rozmiarukryształów oraz usuniecie defektów – poprzezumozliwienie atomom osiagniecia stanu nizszej energii
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Zasada działania
◮ Okreslamy norme/metryke w przestrzeni stanów – energie◮ Prawdopodobienstwo przejscia miedzy stanami jest
zalezne od róznicy energii miedzy nimi oraz odtemperatury
◮ δE < 0 : P(s) = 1
◮ δE ≥ 0 : P(s) = e−
δET
◮ δE – róznica energii◮ T – temperatura◮ P(s) – prawdopodobienstwo przejscia z jednego stanu do
innego
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Charakterystyka temperaturowa
◮ T = 0 – algorytm zachłanny◮ T = ∞ – algorytm losowy◮ Istotny element – „chłodzenie”◮ Rapid quenching
◮ Szybka redukcja temperatury◮ Ponowne ogrzewanie
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Implementacja – pseudokod
T := T0
S := S0
E := objective(S)k := 0while terminal condition not trueSnew := move(S, T)Enew := objective(Snew)if Enew < E orrandom() < acceptor(Enew - E, T)S := Snew
E := Enew
T := schedule(T0, k)k := k + 1
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Implementacja – metody pomocnicze
◮ Objective() - oblicza energie◮ Funkcja celu
◮ Move() - proponuje nowy stan (niezalezne odtemperatury)
◮ Losowy stan bliski dla stanu wyjsciowego◮ Acceptor() podaje prawdopodobienstwo przejscia
◮1
1+eδE
k∗T
◮ Schedule() podaje temperature w kroku k◮ T = T0 ∗ ck , 0 < c < 1 (Metropolis)
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wyzarzanie
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Algorytmy genetyczne
◮ John Holland (1970) University of Michigan◮ Dobrze sie nadaja do mieszanych dyskretno/ciagłych
problemów optymalizacyjnych◮ Bardziej odporne na lokalne minima niz metody bazujace
na gradiencie
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Algorytmy genetyczne
◮ Stochastyczna metoda przeszukiwania przestrzenirozwiazan
◮ Operujaca nie na pojedynczych elementach ale napopulacji stanów
◮ Stan zakodowany jest w postaci „chromosomu”◮ Algorytm jest niezalezny od reprezentacji
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Terminologia
◮ Stan – chromosom, genotyp◮ Pola stanu – allele◮ Przestrzen rozpatrywanych stanów - populacja◮ Operacje:
◮ Selekcja◮ Krzyzowanie◮ Mutacja
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Algorytm ogólny
◮ Stwórz populacje poczatkowa◮ Iteratywnie wykonuj nastepujaca operacje (nazywana
pokoleniem) dopóki warunek stopu nie jest spełniony◮ Sprawdz stopien przystosowania kazdego genotypu◮ Wybierz z populacji pare o okreslonym st. przystosowania◮ Zastosuj do niej jedna z nastepujacych operacji:
◮ Krzyzowanie (crossover)◮ Replikacje◮ Mutacje◮ Lokalna optymalizacje
◮ Dokonaj selekcji w ramach populacji
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Kodowanie
◮ {0...7}◮ binarnie
{000, 001, 010, 011, 100, 101, 110, 111}◮ kod Gray’a
{000, 001, 011, 010, 110, 111, 101, 100}
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Krzyzowanie (liniowy genotyp)
◮ Single-point◮ Parent 1: 11001|010◮ Parent 2: 00100|111◮ Offspring1: 11001|111◮ Offspring2: 00100|010
◮ Two-point◮ Parent 1: 110|010|10◮ Parent 2: 001|001|11◮ Offspring1: 110|001|10◮ Offspring2: 001|010|11
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Krzyzowanie (cd.)
◮ Arithmetic◮ Offspring1 = a * Parent1 + (1 - a) * Parent2◮ Offspring2 = (1 - a) * Parent1 + a * Parent2
◮ Uniform Crossover (UX) – mymieniamy zprawdopodobienstwem 50%
◮ Parent 1: 11001010◮ Parent 2: 00100111◮ Offspring1: 10100011◮ Offspring2: 01001110
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Krzyzowanie (cd.)
◮ Half Uniform Crossover (HUX) – wymieniamy dokładniepołowe (losowo) rózniacych sie bitów
◮ Parent 1: 10111011◮ Parent 2: 10010011◮ Offspring 1: 10011011◮ Offspring 2: 10110011
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Krzyzowanie – permutacyjne genotypy
◮ Order Crossover (OX) kopiujemy losowy odcinek z jednegorodzica, kopiujemy reszte zachowujac porzadek z drugiegorodzica
◮ Parent 1: 12|345|678◮ Parent 2: 87654321◮ Offspring: 34587621
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Krzyzowanie (cd.)
◮ Partially mapped crossover (PMX) kopiujemy losowyodcinek z jednego rodzica, kopiujemy reszte z drugiegorodzica zachowujac pozycje, jesli jest konflikt, bierzemymapowanie z wycinka pierwszego rodzica
◮ Parent 1: 12|345|678◮ Parent 2: 87|654|321◮ Offspring: 87|345|621
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Selekcja
◮ Prosta◮ Populacja wymieniana co pokolenie
◮ Stała populacja◮ Tylko niektóre osobniki sa wymieniane
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Skalowanie stopnia przystosowania
◮ Pozycja („rank”)◮ Brak skalowania
◮ Liniowa◮ Wartosc przeskalowana przez max/min w populacji
◮ Sigma – odciecie◮ Odciecie ponizej pewnego poziomu
◮ Skalowanie podobienstwa („sharing”)◮ Premiowanie „odmienców”
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Mechanizm zastepowania
◮ Najlepszy◮ Najgorszy◮ Rodzic◮ Losowo◮ Podobne („crowding”)
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Kandydaci do selekcji
◮ Najlepszy◮ Zasada ruletki◮ Turniejowa◮ itd.
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Implementacja
◮ execute_generations(Generation) :-maximum_generations(MaxGens),MaxGens =:= Generation.
◮ execute_generations(Generation) :-recombine(Generation),fitness_test(0),Next is Generation + 1,execute_generations(Next).
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wyzarzanie
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
Wprowadzenie Wyzarzanie Algorytmy genetyczne Postscriptum
Materiały zródłowe
◮ L.Sterling, E.Shapiro - „The Art Of Prolog”◮ Ivan Bratko - „Prolog – Programming For Artificial
Intelligence”◮ Slajdy zostały przygotowane za zgoda
dr. Michała Korzyckiego na podstawie jego wykładu.
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne