bd-1
Transkrypt
bd-1
Rozwiązywanie problemów metodami przeszukiwań Metody sztucznej inteligencji Wykład 2 Na podstawie wykładu S. Russell and P. Norvig Artificial Intelligence: A Modern Approach Prentice Hall, 2003, 2009-03-02 1 Plan Agenci rozwiązujący problemy Typy problemów Formułowanie problemów Przykłady problemów Podstawowe algorytmy przeszukiwań 2009-03-02 2 Agenci rozwiązujący problemy 2009-03-02 3 Przykład: Rumunia Wakacje w Rumunii; obecnie w Arad. Jutro odlot z Bukaresztu Sformułowanie celu: Sformułowanie problemu: być na czas w Bukareszcie stany: różne miasta akcje: przejazd pomiędzy miastami Rozwiązanie: sekwencja odwiedzanych miast, np. Arad, Sibiu, Fagaras, Bukareszt 2009-03-02 4 Przykład: Rumunia 2009-03-02 5 Typy problemów Deterministyczne, w pełni obserwowalne Æ problem jednostanowy Nie obserwowalne Æ brak sensorów (problem dostosowania) agent nie ma pojęcia gdzie jest; rozwiązanie stanowi sekwencja Niedeterministyczny i/lub częściowo obserwowalny Æ problem nieprzewidzialności agent wie dokładnie w jakim jest stanie; rozwiązanie stanowi sekwencja obserwacje wprowadzają nową informację o obecnym stanie Zwykłe działanie: przeszukiwanie, wykonanie Nieznana przestrzeń stanów Æ problem eksploracyjny 2009-03-02 6 Przykład: odkurzacz Deterministyczny, start w 5 Rozwiązanie? [prawo, ssanie] 2009-03-02 7 Przykład: odkurzacz Nieobserwowalny, start w {1,2,3,4,5,6,7,8}, np. prawo prowadzi do {2,4,6,8} Rozwiązanie? [prawo,ssanie,lewo,ssanie] 2009-03-02 8 Przykład: odkurzacz Nieprzewidzialność Niedeterministyczny: ssanie może mieć miejsce na zabrudzonym jak i czystym dywanie Częściowo obserwowalne: lokacja, brudno w aktualnej lokacji. Obseracja: [L, Czysto], np., start w 5 lub 7 Rozwiązanie? [prawo, if brudno then ssanie] 2009-03-02 9 Problem jednostanowy Problem definiuje czwórka: 1. 2. 3. 4. Stan początkowy np.„w Arad" Akcje lub funkcja rozwinięcia S(x) = zbiór akcji (para stanów) np. S(Arad) = {<Arad Æ Zerind, Zerind>, … } Celem może być explicite, np. x = „w Bukareszcie" implicite, np. Checkmate(x) Koszt (sumarycznie) np. suma odległości, liczba wykonanych akcji cząstkowych, etc. c(x,a,y) jest koszt cząstkowy, zakładamy, że jest ≥ 0 Rozwiązanie stanowi sekwencja akcji prowadząca od stanu początkowego do celu 2009-03-02 10 Wybór przestrzeni stanów Świat rzeczywisty jest absurdalnie złożony Æ przestrzeń stanów musi być wyabstraktowana z sformułownia problemu (Abstrakcyjny) stan = zbiór stanów rzeczywistych (Abstrakcyjna) akcja = złożona kombinacja akcji rzeczywistych Aby zagwarantować realizowalność, dowolny stan rzeczywisty ("in Arad“) musi osiągać pewien stan rzeczywisty ("in Zerind„) (Abstrakcyjne) rozwiązanie = np. "Arad Æ Zerind" reprezentuje zbiór możliwych dróg, objazdów i przerw w podróży, etc. Zbiór rzeczywistych ścieżek reprezentujących rozwiązanie w rzeczywistym świecie Każda abstrakcyjna akcja powinna być prostsza od oryginalnego problemu. 2009-03-02 11 Graf stanów odkurzacza stany? stan czystości, lokalizacja akcje? lewo, prawo, ssanie cel? czysto w każdej lokalizacji koszt? jednostkowy na każdą akcję 2009-03-02 12 Przykład: puzzle 8 elementowe stany? położenie kafelka akcje? przesuń puste miejsce w lewo, prawo, do góry, w dół cel? = stan końcowy (dany) koszt? jednostkowy na każdy ruch [Uwaga: problem poszukiwania optymalnego rozwiązania dla n puzzli jest NP-trudny] 2009-03-02 13 Przykład: montaż automatyczny stany?: współrzędne rzeczywiste i kąty złączy robota, części obiektu do zmontowania akcje?: ciągły ruch złączy robota cel?: całkowity montaż koszt?: czas wykonania 2009-03-02 14 Przeszukiwanie drzew Podstawowa idea: offline, symulowana eksploracja przestrzeni stanów poprzez generowanie sukcesorów dotychczas eksplorowanych stanów 2009-03-02 15 Przykład - przeszukiwanie drzew 2009-03-02 16 Przykład - przeszukiwanie drzew 2009-03-02 17 Przykład - przeszukiwanie drzew 2009-03-02 18 Implementacja: uogólnione przeszukiwanie drzew 2009-03-02 19 Implementacja: stany vs. wierzchołki Stan reprezentuje konfiguracje fizyczną Wierzchołek reprezentuje stan Funkcja Expand tworzy nowe wierzchołki. 2009-03-02 20 Strategie przeszukiwań Strategia przeszukiwań definiuje kolejność wskazań wierzchołków do ekspansji Strategie są oceniane według następujących kryteriów: zupełność: czy rozwiązanie zawsze jest znalezione, jeśli istnieje? złożoność czasowa: liczba wygenerowanych wierzchołków złożoność przestrzenna: maksymalna liczba wierzchołków w pamięci optimalność: czy znajduje rozwiązanie najniższym kosztem? Czasowa i przestrzenna złozoność jest mierzona za pomocą b: maksymalne rozgałęzienie drzewa przeszukiwań d: głębokość optymalnego rozwiązania m: maksymalna głębokość przestrzeni stanów (może być ∞) 2009-03-02 21 Proste strategie przeszukiwań Proste strategie przeszukiwań wykorzystują jedynie informację osiągalną z definicji problemu Przeszukiwanie wszerz (Breadth-first) Przeszukiwanie po najniższym koszcie Przeszukiwanie wgłąb (Depth-first) Przeszukiwanie wgłąb z limitowaną głębokością Iteracyjne przeszukiwanie wgłąb 2009-03-02 22 Przeszukiwanie wszerz Rozwija najpłytszy nierozwinięty wierzchołek Implementacja: Wierzchołki ustawiane są w kolejce (FIFO) 2009-03-02 23 Przeszukiwanie wszerz 2009-03-02 24 Przeszukiwanie wszerz 2009-03-02 25 Przeszukiwanie wszerz 2009-03-02 26 Własności przeszukiwania wszerz Zupełność? Tak (jeśli b skończone) Czas? 1+b+b2+b3+… +bd + b(bd-1) = O(bd+1) Przestrzeń? O(bd+1) (pamietany każdy wierzchołek w pamięci) Optymalność? Tak (jeśli koszt = 1 na krok) Przestrzeń jest najpoważniejszym problemem (bardziej niż czas) 2009-03-02 27 Przeszukiwanie po najniższym koszcie Rozwija wierzchołek o najniższym koszcie z dotychczas nierozwiniętych Implementacja: Kolejka uporządkowa wg kosztu Równoważny z przeszukiwaniem wszerz jeśli koszt wszytkich kroków jest jednakowy Zupełność? Tak, jeśli koszt ≥ ε Czas? Liczba wierzchołków o koszcie większym od optymalnego O(bsup(C*/ ε)) gdzie C* jest kosztem optymalnym Przestrzeń? Liczba wierzchołków o koszcie większym od optymalnego O(bsup(C*/ ε)) gdzie C* jest kosztem optymalnym Optymalność? Tak – nodes expanded in increasing order of g(n) 2009-03-02 28 Przeszukiwanie w głąb Rozwija najgłębszy nierozwinięty wierzchołek Implementacja: stos (LIFO), tzn. nastepcy na górę stosu 2009-03-02 29 Przeszukiwanie w głąb 2009-03-02 30 Przeszukiwanie w głąb 2009-03-02 31 Przeszukiwanie w głąb 2009-03-02 32 Przeszukiwanie w głąb 2009-03-02 33 Przeszukiwanie w głąb 2009-03-02 34 Przeszukiwanie w głąb 2009-03-02 35 Przeszukiwanie w głąb 2009-03-02 36 Przeszukiwanie w głąb 2009-03-02 37 Przeszukiwanie w głąb 2009-03-02 38 Przeszukiwanie w głąb 2009-03-02 39 Przeszukiwanie w głąb 2009-03-02 40 Własności przeszukiwania w głąb Zupełność? Nie: zawodzi przy nieskończonych głębokościach, przestrzeniach z cyklami Modyfikacja prowadząca do uniknięcia powtarzania stanów wzdłuż ścieżki Æ przy skończonej głębokości Czas? O(bm): okropny jeśli niż d m jest znacznie większe ale jeśli rozwiązanie jest głęboko to może być znacznie szybsze niż przeszukiwanie wszerz Space? O(bm), tzn. przestrzeń liniowa!!! Optimal? Nie 2009-03-02 41 Ograniczone przeszukiwanie w głąb = przeszukiwanie w głąb z limitowaną głębokością l, Implementacja rekurencyjna: 2009-03-02 42 Przeszukiwanie z iteracyjną głębokością 2009-03-02 43 Przeszukiwanie z iteracyjną głębokością l =0 2009-03-02 44 Przeszukiwanie z iteracyjną głębokością l =1 2009-03-02 45 Przeszukiwanie z iteracyjną głębokością l =2 2009-03-02 46 Przeszukiwanie z iteracyjną głębokością l =0 2009-03-02 47 Przeszukiwanie z iteracyjną głębokością Liczba wygenerowanych wierzchołków w ograniczonym przeszukiwaniu w głąb z głębokością d i rozgałęzieniem b: NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd Liczba wygenerowanych wierzchołków w przeszukiwaniu z iteracyjną głębokością z głębokością d i rozgałęzieniem b: NIDS = (d+1)b0 + d b^1 + (d-1)b^2 + … + 3bd-2 +2bd-1 + 1bd Dla b = 10, d = 5, NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111 NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456 Narzut = (123,456 - 111,111)/111,111 = 11% 2009-03-02 48 Własności przeszukiwanie z iteracyjną głębokością Zupełność? Tak Czas? (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd) Przestrzeń? O(bd) Optymalność? Tak, przy jednostkowym koszcie jednego kroku 2009-03-02 49 Podsumowanie algorytmów 2009-03-02 50 Stany cykliczne Stany cykliczne mogą prowadzić z liniowego przeszukiwania do wykładniczego! 2009-03-02 51 Przeszukiwanie grafów 2009-03-02 52