Metody przeszukiwania
Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania w grafie rozwiązao. Przykładowe zastosowania: gry w szachy, warcaby, Przesówanka, Problem komiwojażera itp
Definicja problemu Trzy elementy potrzebne do zdefiniowania problemu: 1. Baza danych: fakty, stany, możliwości, opis sytuacji. 2. Możliwe operacje: zmieniają stan bazy danych. 3. Strategia kontrolna: start, koniec i kolejnośd operacji. Ciąg operacji tworzy sekwencję działao, od stanu początkowego do stanu koocowego (celu). Z każdą operacją związany jest pewien koszt. W procesie szukania należy dążyd do minimalizacji całkowitych kosztów. Źródło W. Duch wykład AI
Pojęcia Przeszukiwanie kompletne algorytm przeszukiwania jest kompletny jeśli gwarantuje odnalezienie rozwiązania w grafie, o ile takie rozwiązanie istnieje Algorytm przeszukiwania niekompletny jeśli nie gwarantuje odnalezienie rozwiązania Przeszukiwanie zupełne odwiedza wszystkie możliwe stany Optymalnośd rozwiązania odnalezione jest najprostsze rozwiązanie (np. znalezione rozwiązanie w przesuwance gwarantuje minimalna ilośd kroków - przesunięd)
Typy metod przeszukiwania Przeszukiwanie ślepe gdy nie mamy żadnej wiedzy/oceny jakości znalezionego rozwiązania Przeszukiwanie heurystyczne gdy potrafimy jakoś ocenid proces przeszukiwania
Przeszukiwanie ślepe Przeszukiwanie wszerz Przeszukiwanie wgłąb Przeszukiwanie ograniczone wgłąb Przeszukiwanie iteracyjnie pogłębianie Przeszukiwanie dwukierunkowe
Przeszukiwanie wszerz Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie wszerz Właściwości: Zupełnośd: tak - jeśli skooczona liczba krawędzi b (b max. Liczba rozgałęzieo drzewa przeszukiwao) Złożonośd czasowa: O(b d+1 ) wykładnicza względem głębokości d (d-głębokośd rozwiązania o najmniejszym koszcie) Złożonośd pamięciowa: O(b d+1 ) przechowuje każdy węzeł w pamięci Optymalnośd: tak jeśli koszty przejśd są równe
Przeszukiwanie wgłąb Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie wgłąb Właściwości Zupełnośd: tak (jeśli przestrzeo skooczona, w szczególności gdy skooczona głebokośd) Złożonośd czasowa: O(b m ) wykładnicza m-liczba wierzchołków, dobra metoda jeśli gęste rozwiązania Złożonośd pamięciowa: O(bm) liniowa Optymalnośd: nie znalezione rozwiązanie nie koniecznie jest optymalne
Przeszukiwanie ograniczone wgłąb To samo co wgłąb ale ograniczona i zdefiniowana maksymalna głebokośd
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie iteracyjne pogłębianie Przeszukiwanie ograniczone wgłąb ale stopniowo zwiększamy głębokośd
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie iteracyjne pogłębianie Właściwości Zupełnośd: tak Złożonośd czasowa: O(b d ) Złożonośd pamięciowa: O(bd) Optymalnośd: tak jeśli równy koszt przejśd
Przeszukiwanie dwukierunkowe Do zastosowao jeśli znamy start i rozwiązanie a szukamy ścieżki prowadzącej do rozwiązania Równolegle szukanie od startu i od rozwiązania
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie dwukierunkowe Właściwości Zupełnośd: tak (jeśli szukanie wszerz) Złożonośd czasowa: O(b d/2 ) Złożonośd pamięciowa: O(b d/2 ) Optymalnośd: tak jeśli szukanie wszerz
Metody heurystyczne W odróżnieniu od szukania ślepego wykorzystujemy wiedzę o przeszukiwanej przestrzeni oceniając znalezione rozwiązania Problem metod ślepych - eksplozja kombinatoryczna liczby możliwych Szukanie heurystyczne wykorzystuje informacje, które poprawiają efektywnośd procesu szukania.
Funkcja heurystyczna Funkcja h : R, gdzie to zbiór dozwolonych stanów, R to liczby rzeczywiste, odwzorowuje stany s ze zbioru na wartości h(s) służące do oceny względnych kosztów lub zysków rozwijania dalszej drogi przez węzeł odpowiadający s. Funkcja heurystyczna ocenia jakośd każdego każdy z węzłów: h(s1) = 1.5 h(s2) = 2.3 h(s3) = 1.53 To gdzie iśd najpierw?
Metody heurystyuczne Pierwszy najlepszy Przeszukiwanie zachłanne Przeszukiwanie A* inne Iteracyjne poprawianie Algorytm wspinaczki Algorytmy genetyczne inne
Przeszukiwanie zachłanne Algorytm przeszukiwania, w którym zachłannie rozwija się każde rozwiązanie prognozujące lokalnie na danym etapie najlepsze rozwiązanie cząstkowe. Przykład: problem komiwojażera każdorazowo odwiedzamy najbliższe nieodwiedzone miasto.
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie zachłanne Funkcja heurystyczna: h(n) odległośd w linii prostej z miasta n do Bukaresztu. Zadanie: znaleźd optymalną trasę z Arad do Bukaresztu
Przeszukiwanie zachłanne Graf rozwiązao
Przeszukiwanie zachłanne Graf rozwiązao Problem! Rozwiązanie nie jest optymalne!!!
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie zachłanne Właściwości Zupełnośd: nie Złożonośd czasowa: O(b m ) dobór odpowiedniej heurystyki Złożonośd pamięciowa: O(b m ) Optymalnośd: nie
Przeszukiwanie A* Podobne do przeszukiwania zachłannego ale zmodyfikowana (rozszerzona) heurystyka: f(n) = h(n) + g(n) h(n) koszt dotarcia do celu g(n) koszt dotarcia od startu do danego węzła f(n) unika stanów do których ponieśliśmy duży koszt dotarcia
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie A*
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Przeszukiwanie A* Właściwości Zupełnośd: tak jeśli heurystyka dopuszczalna Złożonośd czasowa: Złożonośd pamięciowa: Optymalnośd: tak
Żródło: Arkadiusz Wojna, http://www.mimuw.edu.pl/~awojna/sid/ Algorytm wspinaczki Podobnie jak przeszukiwanie zachłanne ale analizujemy gradient funkcji celu -> idziemy tam gdzie największy gradient (zastosowanie tam gdzie optymalizacja parametrów ciągłych) Problem minimum lokalnych -> konieczne wielostarty
Algorytmy genetyczne Inspirowane procesami ewolucyjnymi, czyli preferowanie osobników najlepiej dostosowanych Pojęcia: Genotyp reprezentacja binarna przestrzeni stanów określa sposób kodowani informacji (które bity za co odpowiadają) Fenotyp reprezentacja odpowiadająca reprezentacji binarnej chromosom - pojedynczy osobnik populacji pojedynczy stan/węzeł zakodowany w postaci binarnej, (w algorytmach ewolucyjnych nie koniecznie reprezentacja binarna) Populacja zbiór jednocześnie rozpatrywanych węzłów - osobników Potomstwo Populacja powstała na podstawie poprzedniej populacji Generacja określona, któraś z kolei populacja
Algorytmy genetyczne Źródło: http://www.chemia.uj.edu.pl/~sulka/ais/012.html
Algorytmy genetyczne Sposób działania:
Algorytmy genetyczne Krzyżowanie wymiana informacji pomiędzy dwoma osobnikami - wysokie prawdopodobieostwo zajścia zdarzenia Mutacja zmiana stanu jednego z bitów na losowej pozycji - małe prawdopodobieostwo zajścia zdarzenia
Algorytmy genetyczne Selekcja - Reguła ruletki: 1. Oceo każdego z osobników F i 2. Stwórz koło (obwód odpowiada sumie F i ) wycinki koła są proporcjonalne do F i, 3. Wylosuj liczbę x z zakresu 0-360st. 4. Sprawdź który wycinek wylosowałeś. (większy wycinek = większe prawdopodobieostwo wylosowania)
Koniec