ztuczna Inteligencja i ystemy Doradcze Przeszukiwanie przestrzeni stanów Przeszukiwanie przestrzeni stanów 1
Postawienie problemu eprezentacja problemu: stany: reprezentują opisy różnych stanów świata rzeczywistego akcje: reprezentują działania zmieniające bieżący stan koszt akcji ( 0): reprezentuje koszt związany z wykonaniem akcji Świat rzeczywisty jest ogromnie złożony: przestrzeń stanów dla problemu musi być wyabstrahowana z rzeczywistości, pojedynczne akcje w opisie problemu muszą reprezentować złożone operacje rzeczywiste formułowanie problemu stan początkowy: początkowy stan przed rozwiązaniem problemu cel: stan docelowy lub formuła oceniająca, czy dany stan spełnia cel rozwiązanie: ciąg akcji prowadzący od stanu początkowego do celu koszt rozwiązania: funkcja oceny kosztu rozwiązania równa sumie kosztów poszczególnych akcji występujących w rozwiązaniu ozwiązania o niższym koszcie są lepsze niż rozwiązania o wyższym koszcie. Przeszukiwanie przestrzeni stanów 2
Przyklad problemu: umunia 71 Oradea Neamt Zerind 75 140 118 Timisoara 111 70 75 Dobreta 151 ibiu 99 Fagaras 80 imnicu Vilcea ugoj Mehadia 120 Pitesti 211 97 146 101 85 138 Bucharest Craiova 90 Giurgiu 87 Iasi 92 142 98 Urziceni Vaslui Hirsova 86 Eforie Przeszukiwanie przestrzeni stanów 3
Przyklad problemu: umunia Na wakacje do umunii; obecnie w zie. amolot odlatuje jutro z Bukaresztu eprezentacja problemu: stany: miasta {, ibiu, Tibisoara, Zerind,...} akcje: przejazdy pomiędzy dwoma miastami, np. Zerind koszt akcji: odległość pomiędzy dwoma miastami formułowanie problemu stan początkowy: stan docelowy: Bukareszt rozwiązanie: ciąg przejazdów, np. ibiu Fagaras Bukareszt koszt rozwiązania: suma kilometrów pomiędzy kolejnymi miastami Przeszukiwanie przestrzeni stanów 4
Przyklad problemu: sprzatanie stany?? akcje?? cel?? koszt rozwiązania?? Przeszukiwanie przestrzeni stanów 5
Przyklad problemu: sprzatanie stany??: stan pomieszczeń (czysto/brudno) i lokalizacja robota akcje??: ewo, P rawo, Odkurzaj, N icn ieób cel??: czysto koszt rozwiązania??: 1 dla każdej akcji (0 dla nicnieób) Przeszukiwanie przestrzeni stanów 6
Przyklad problemu: 8-elementowe puzzle 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 tart tate Goal tate stany?? akcje?? cel?? koszt rozwiązania?? Przeszukiwanie przestrzeni stanów 7
Przyklad problemu: 8-elementowe puzzle 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 tart tate Goal tate stany??: rozmieszczenia puzzli akcje??: przesuń puste miejsce w prawo, w lewo, w górę, w dół cel??: wybrane rozmieszczenie puzzli koszt rozwiązania??: 1 za każdy ruch [Uwaga: znalezienie optymalnego rozwiązania dla rodziny problemów n-elementowych puzzli jest NP-trudne] Przeszukiwanie przestrzeni stanów 8
Przyklad problemu: montaz przy uzyciu robota P stany??: rzeczywiste współrzędne kątów w złączeniach robota elementy do zmontowania akcje??: ciągłe ruchy złączy robota cel??: kompletny montaż (ale nie robota!) koszt rozwiązania??: czas montażu Przeszukiwanie przestrzeni stanów 9
Przeszukiwanie drzewa stanow Prosty pomysł: symulowanie offline przeszukiwania przestrzeni stanów poprzez generowanie następników wcześniej odwiedzonych stanów (znane również jako ekspansja stanów) function Tree-earch(problem,strategy) returns a solution, or failure initialize the search tree using the initial state of problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add the resulting nodes to the search tree end Przeszukiwanie przestrzeni stanów 10
Przyklad przeszukiwania drzewa stanow ibiu Timisoara Zerind Fagaras Oradea imnicu Vilcea ugoj Oradea Przeszukiwanie przestrzeni stanów 11
Przyklad przeszukiwania drzewa stanow ibiu Timisoara Zerind Fagaras Oradea imnicu Vilcea ugoj Oradea Przeszukiwanie przestrzeni stanów 12
Przyklad przeszukiwania drzewa stanow ibiu Timisoara Zerind Fagaras Oradea imnicu Vilcea ugoj Oradea Przeszukiwanie przestrzeni stanów 13
Implementacja: stany vs. wezly tan jest fizyczną konfiguracją (jej reprezentacją) Węzeł jest strukturą danych stanowiącą część drzewa przeszukiwań zawiera poprzednik (parent), następniki, głebokość (depth) oraz koszt ścieżki od korzenia (g) tany nie mają poprzedników, następników, głębokości i kosztu ścieżki! parent, action tate 5 6 4 1 8 Node depth = 6 g = 6 7 3 2 state Funkcja uccessorfn zwraca jako wynik zbiór akcji możliwych do wykonania w danym stanie wraz ze stanami osiąganymi po wykonaniu akcji. Funkcja Expand tworzy nowe węzły i wypełnia ich pola używając funkcji uccessorfn. Przeszukiwanie przestrzeni stanów 14
Implementacja: przeszukiwanie drzewa stanow function Tree-earch(problem,fringe) returns a solution, or failure fringe Insert(Make-Node(Initial-tate[problem]), fringe) loop do if fringe is empty then return failure node emove-front(fringe) if Goal-Test[problem] applied to tate(node) succeeds return node fringe InsertAll(Expand(node, problem), fringe) function Expand(node,problem) returns a set of nodes successors the empty set for each action, result in uccessor-fn[problem](tate[node]) do s a new Node Parent-Node[s] node; Action[s] action; tate[s] result Path-Cost[s] Path-Cost[node] + tep-cost(node, action, s) Depth[s] Depth[node] + 1 add s to successors return successors Przeszukiwanie przestrzeni stanów 15
trategie przeszukiwania trategia jest definiowana poprzez wybór kolejności ekspansji stanów trategie są ocenianie według następujących kryteriów: zupełność czy zawsze znajduje rozwiązanie, jeśli ono istnieje? złożoność czasowa liczba wygenerowanych węzłów złożoność pamięciowa maksymalna liczba węzłów w pamięci optymalność czy znajduje rozwiązanie o minimalnym koszcie? Złożoność czasowa i pamięciowa są mierzone w terminach b maksymalnego rozgałęzienia drzewa przeszukiwań d głębokości rozwiązania o najmniejszym koszcie m maksymalnej głębokości drzewa przeszukiwań (może być ) Przeszukiwanie przestrzeni stanów 16
odzaje strategii przeszukiwania trategie ślepe korzystają z informacji dostępnej jedynie w definicji problemu: Przeszukiwanie wszerz trategia jednolitego kosztu Przeszukiwanie wgłąb Przeszukiwanie ograniczone wgłąb Przeszukiwanie iteracyjnie pogłębiane Przeszukiwanie dwukierunkowe trategie heurystyczne korzystają z dodatkowej, heurystycznej funkcji oceny stanu (np. szacującej koszt rozwiązania od bieżącego stanu do celu): Przeszukiwanie zachłanne Przeszukiwanie A ekurencyjne przeszukiwanie pierwszy najlepszy Przeszukiwanie lokalne zachłanne (hill-climbing) ymulowane wyżarzanie Algorytm genetyczny Przeszukiwanie przestrzeni stanów 17