Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Metody probabilistyczne
1. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Sztuczna Inteligencja i Systemy Ekspertowe
Algorytmy probabilistyczne.
Aleksander Pohl
http://apohllo.pl/dydaktyka/ai
Wy˙ sza Szkoła Zarzadzania i Bankowo´ ci
z ˛ s
4 czerwca 2009
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
2. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wy˙ arzanie
z
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
3. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wy˙ arzanie
z
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
4. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Problemy NP-zupełne
◮ Klasa problemów z teorii zło˙ ono´ ci obliczeniowej
z s
◮ Problemy o czasie co najmniej wykładniczym
∃k : m(n) = O(k n )
◮ Problem komiwoja˙ era
z
◮ Problem rozkładu liczby zło˙ onej na składowe
z
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
5. Wprowadzenie Wy˙ arzanie
z 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
6. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Algorytmy probabilistyczne
Klasyczny algorytmy probabilistyczne:
◮ Metoda Monte-Carlo
◮ Wy˙ arzanie
z
◮ Algorytmy Genetyczne
◮ Algorytmy Mrówkowe
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
7. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Algorytmy probabilistyczne
◮ Metody ograniczone ze wzgledu na czas, dopuszczajace
˛ ˛
bład
˛
◮ Metody Monte-Carlo
◮ Metody nieograniczone ze wzgledu na czas, nie
˛
dopuszczajace błedu
˛ ˛
◮ Metody Las-Vegas
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
8. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Metody Monte-Carlo („hill-climbing”)
◮ 1930 – Fermi ; własno´ ci neutronu, projekt Manhattan
s
◮ 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
◮ Zagro˙ enie maksimami lokalnymi
z
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
9. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Metoda Monte-Carlo
s´
Mała odporno´ c na lokalne maksima
Rysunek: Wykres funkcji celu dla problemów o ró˙ nej
z
charakterystyce
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
10. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wy˙ arzanie
z
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
11. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Wy˙ arzanie („simulated annealing”)
z
◮ Heurystyczna metoda probabilistyczna poszukiwania
globalnego maksimum
◮ Analogia do „wy˙ arzania” w metalurgii łaczacej ogrzewanie
z ˛ ˛
i chłodzenie materiału w celu zwiekszenia rozmiaru
˛
kryształów oraz usuniecie defektów – poprzez
˛
umo˙ liwienie atomom osiagniecia stanu ni˙ szej energii
z ˛ ˛ z
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
12. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Zasada działania
◮ Okre´ lamy norme/metryk˛ w przestrzeni stanów – energie
s ˛ e ˛
◮ ´
Prawdopodobienstwo przej´ cia miedzy stanami jest
s ˛
zale˙ ne od ró˙ nicy energii miedzy nimi oraz od
z z ˛
temperatury
◮ δE < 0 : P(s) = 1
δE
◮ δE ≥ 0 : P(s) = e− T
◮ δE – ró˙ nica energii
z
◮ T – temperatura
◮ ´
P(s) – prawdopodobienstwo przej´ cia z jednego stanu do
s
innego
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
13. Wprowadzenie Wy˙ arzanie
z 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
14. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Implementacja – pseudokod
T := T0
S := S0
E := objective(S)
k := 0
while terminal condition not true
Snew := move(S, T)
Enew := objective(Snew )
if Enew < E or
random() < acceptor(Enew - E, T)
S := Snew
E := Enew
T := schedule(T0, k)
k := k + 1
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
15. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Implementacja – metody pomocnicze
◮ Objective() - oblicza energie
˛
◮ Funkcja celu
◮ Move() - proponuje nowy stan (niezale˙ ne od
˛ z
temperatury)
◮ Losowy stan bliski dla stanu wyj´ ciowego
s
◮ ´
Acceptor() podaje prawdopodobienstwo przej´ cia
s
◮ 1
δE
1+e k ∗T
◮ Schedule() podaje temperature w kroku k
˛
◮ T = T0 ∗ c k , 0 < c < 1 (Metropolis)
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
16. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wy˙ arzanie
z
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
17. Wprowadzenie Wy˙ arzanie
z 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 ni˙ metody bazujace
z ˛
na gradiencie
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
18. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Algorytmy genetyczne
◮ Stochastyczna metoda przeszukiwania przestrzeni
˛ ´
rozwiazan
◮ Operujaca nie na pojedynczych elementach ale na
˛
populacji stanów
◮ Stan zakodowany jest w postaci „chromosomu”
◮ Algorytm jest niezale˙ ny od reprezentacji
z
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
19. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Terminologia
◮ Stan – chromosom, genotyp
◮ Pola stanu – allele
◮ ´
Przestrzen rozpatrywanych stanów - populacja
◮ Operacje:
◮ Selekcja
◮ Krzy˙ owanie
z
◮ Mutacja
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
20. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Algorytm ogólny
◮ Stwórz populacje poczatkowa
˛ ˛ ˛
◮ Iteratywnie wykonuj nastepujaca operacje (nazywana
˛ ˛ ˛ ˛ ˛
pokoleniem) dopóki warunek stopu nie jest spełniony
◮ z ´
Sprawd´ stopien przystosowania ka˙ dego genotypu
z
◮ Wybierz z populacji pare o okre´ lonym st. przystosowania
˛ s
◮ Zastosuj do niej jedna z nastepujacych operacji:
˛ ˛ ˛
◮ Krzy˙ owanie (crossover)
z
◮ Replikacje˛
◮ Mutacje˛
◮ Lokalna optymalizacje
˛ ˛
◮ Dokonaj selekcji w ramach populacji
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
21. Wprowadzenie Wy˙ arzanie
z 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
23. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Krzy˙ owanie (cd.)
z
◮ Arithmetic
◮ Offspring1 = a * Parent1 + (1 - a) * Parent2
◮ Offspring2 = (1 - a) * Parent1 + a * Parent2
◮ Uniform Crossover (UX) – mymieniamy z
´
prawdopodobienstwem 50%
◮ Parent 1: 11001010
◮ Parent 2: 00100111
◮ Offspring1: 10100011
◮ Offspring2: 01001110
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
24. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Krzy˙ owanie (cd.)
z
◮ Half Uniform Crossover (HUX) – wymieniamy dokładnie
połowe (losowo) ró˙ niacych sie bitów
˛ z ˛ ˛
◮ Parent 1: 10111011
◮ Parent 2: 10010011
◮ Offspring 1: 10011011
◮ Offspring 2: 10110011
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
25. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Krzy˙ owanie – permutacyjne genotypy
z
◮ Order Crossover (OX) kopiujemy losowy odcinek z jednego
rodzica, kopiujemy reszte zachowujac porzadek z drugiego
˛ ˛ ˛
rodzica
◮ Parent 1: 12|345|678
◮ Parent 2: 87654321
◮ Offspring: 34587621
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
26. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Krzy˙ owanie (cd.)
z
◮ Partially mapped crossover (PMX) kopiujemy losowy
odcinek z jednego rodzica, kopiujemy reszte z drugiego
˛
rodzica zachowujac pozycje, je´ li jest konflikt, bierzemy
˛ ˛ s
mapowanie z wycinka pierwszego rodzica
◮ Parent 1: 12|345|678
◮ Parent 2: 87|654|321
◮ Offspring: 87|345|621
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
27. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Selekcja
◮ Prosta
◮ Populacja wymieniana co pokolenie
◮ Stała populacja
◮ Tylko niektóre osobniki sa wymieniane
˛
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
28. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Skalowanie stopnia przystosowania
◮ Pozycja („rank”)
◮ Brak skalowania
◮ Liniowa
◮ s´
Warto´ c przeskalowana przez max/min w populacji
◮ Sigma – odciecie
˛
◮ Odciecie poni˙ ej pewnego poziomu
˛ z
◮ ´
Skalowanie podobienstwa („sharing”)
◮ ´
Premiowanie „odmienców”
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
29. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Mechanizm zastepowania
˛
◮ Najlepszy
◮ Najgorszy
◮ Rodzic
◮ Losowo
◮ Podobne („crowding”)
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
30. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Kandydaci do selekcji
◮ Najlepszy
◮ Zasada ruletki
◮ Turniejowa
◮ itd.
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
31. Wprowadzenie Wy˙ arzanie
z 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
32. Wprowadzenie Wy˙ arzanie
z Algorytmy genetyczne Postscriptum
Plan prezentacji
Wprowadzenie
Wy˙ arzanie
z
Algorytmy genetyczne
Postscriptum
Aleksander Pohl WSZiB
Heurystyki. Algorytmy genetyczne
33. Wprowadzenie Wy˙ arzanie
z 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