Przeszukiwanie przestrzeni stanów — powtórka Przeszukiwanie
Transkrypt
Przeszukiwanie przestrzeni stanów — powtórka Przeszukiwanie
Przeszukiwanie przestrzeni stanów — powtórka DEFINICJA: System produkcji — M • zbiór S t.zw. stanów • wyróżniony s0 ∈ S t.zw. stan początkowy • podzbiór G ⊆ S t.zw. stanów docelowych • zbiór O t.zw. operacji: o : S → S dla każdej o ∈ O ZADANIE: M Znaleźć drogę od s0 do któregoś stanu docelowego. Wykład 2, 24 II 2010, str. 2 Przeszukiwanie przestrzeni stanów — powtórka ALGORYTM: M r := [ ]; s := s0 ; while (s ∈ / G) { wybierz najlepszą operację o ∈ O; r := r . o; s := o(s); } Przykład: Gra w 8-kę — M 2 3 s0 = 1 8 4 7 6 5 o=P 1 2 3 G= 8 4 7 6 5 wybór operacji najlepszej: heureza czyli nieformalna zasada „rozsądnie” prowadząca do celu możliwie szybko O = {L, P, D, G} r = [L, D, P ] Jak znaleźć drogę r? Lewo Prawo Dół Góra Przeszukiwanie przestrzeni stanów Przykład: Wieże w Hanoi — M s0 = h1, 1, 1i G = {h3, 3, 3i} ( z c n ) 1 → 2, 1 → 3, 2 → 3, O= 2 → 1, 3 → 1, 3 → 2 " 1 1 → 3, 1 → 2, 3 → 2, 1 → 3, r= 2 → 1, 2 → 3, 1 → 3 2 3 hz na 1, c na 1, n na 1i # Jak znaleźć drogę r? Wykład 2, 24 II 2010, str. 4 Przeszukiwanie przestrzeni stanów Przykład: Wieże w Hanoi — przestrzeń stanów M h1, 1, 1i h2, 1, 1i h3, 1, 1i h2, 3, 1i h3, 2, 1i h3, 3, 1i h1, 3, 1i h1, 2, 1i h2, 2, 1i h3, 3, 2i h2, 2, 3i h1, 3, 2i h2, 3, 2i h3, 2, 3i h1, 2, 3i h1, 2, 2i h2, 1, 2i h3, 1, 3i h1, 3, 3i h2, 2, 2i h3, 2, 2i h3, 1, 2i h1, 1, 2i h1, 1, 3i h2, 1, 3i h2, 3, 3i h3, 3, 3i Przeszukiwanie przestrzeni stanów • W — lista stanów zamkniętych (przeszukanych); • R — lista stanów otwartych (do przeszukania); sąsiednich; dla s ∈ S: ) • N — generowanie stanów ( o ∈ O, N (s) def = ho(s), ai a jest strzałką z o(s) do s ALGORYTM: przeszukiwanie (ogólnie) M W := {hs ; R 0 , niestrzałkai} := N (s0 ); while ( hs, ai ∈ W s ∈ G = ∅) { if (R = ∅) {drukuj “porażka”; stop; } else { wybierz hs, ai ∈ R; W := W ∪ {hs, ai} ; R := R ∪ N (s) r hs′ , a′ i ∃a′′ hs′ , a′′ i ∈ W ; } } wymaga doprecyzowania Wykład 2, 24 II 2010, str. 6 Przeszukiwanie przestrzeni stanów Przykład: Gra w 8-kę — M 2 3 184 765 L 23 184 765 P6 ID 23 184 765 D 234 18 765 W — stany zamknięte 283 14 765 L 283 1 4 765 * 6 P D 283 14 765 283 164 7 5 R — stany otwarte s — wybrany stan z R Przeszukiwanie przestrzeni stanów ALGORYTM: przeszukiwanie (ogólnie) M W := {hs ; R 0 , niestrzałkai} := N (s0 ); while ( hs, ai ∈ W s ∈ G = ∅) { if (R = ∅) {drukuj “porażka”; stop; } else { wybierz hs, ai ∈ R; W := W ∪ {hs, ai} ; R := R ∪ N (s) r hs′ , a′ i ∃a′′ hs′ , a′′ i ∈ W ; } } Zależność od sposobu wyboru stanu hs, ai ∈ R: • jeśli R jest traktowany jak stos, to przeszukiwanie w głąb (depth-first search); • jeśli R jest traktowany jak kolejka, to przeszukiwanie wszerz (breadth-first search). Wykład 2, 24 II 2010, str. 8 Przeszukiwanie przestrzeni stanów w głąb wszerz ) — ślepe strategie przeszukiwania Ślepe — bo nie korzystają z żadnej wiedzy o naturze problemu. • W głąb: – stosunkowo niska złożoność pamięciowa (liniowa) i czasowa (wykładnicza); – znajduje rozwiązanie „pierwsze z brzegu” a nie minimalne; – jeśli przestrzeń stanów nieskończona, może nie zakończyć działania. • Wszerz: – wysoka złożoność pamięciowa (wykładnicza — trzeba pamiętać całe rosnące R) i czasowa (wykładnicza), – znajduje rozwiązanie leżące najpłycej (minimalne). Przeszukiwanie przestrzeni stanów Inne ślepe strategie (warianty): • Dwukierunkowe — jednocześnie od stanu początkowego i od końcowego (dwa drzewa); potrzebny jest dostęp zarówno do następników, jak do poprzedników każdego stanu. • Ograniczone w głąb — nie dalej niż dowolnie z góry ustalona głębokość ℓ. Wykład 2, 24 II 2010, str. 10 Przeszukiwanie przestrzeni stanów Inne ślepe strategie (warianty): • Iterowane pogłębianie — j.w., ale w przypadku porażki powtórka z większą głębokością ℓ′ = ℓ + 1: załóżmy, że drzewo ma rząd rozgałęzienia b, a rozwiązanie znajduje się na głębokości d; wtedy metodą wszerz trzeba przejrzeć (pesymistycznie) nw = d X i=0 bi = bd+1 − 1 b−1 stanów; a metodą iterowanego pogłębiania nip d X ℓ X b bd+1 − 1 d b j = b = · −1 − ¬ ·nw b−1 b−1 b(b − 1) b−1 ℓ=1 j=0 ! stanów. Więc czas niewiele dłuższy, a pamięć o wiele oszczędniejsza. Przeszukiwanie przestrzeni stanów Inne ślepe strategie (warianty): • Równomierny koszt — jeśli każdej operacji (strzałce) a, zmieniającej stan, przypisany jest koszt κ(a) 0, to możemy znaleźć rozwiązanie o najmniejszym koszcie przez rozwijanie zawsze tego stanu listy R, którego koszt jest najmniejszy. Koszt stanu s to suma kosztów operacji prowadzących do s: g(s) = ( 0 jeśli s = s0 ′ g(s ) + κ(a) jeśli a prowadzi z s′ do s Wykład 2, 24 II 2010, str. 12 Przeszukiwanie przestrzeni stanów Inne ślepe strategie (warianty): ALGORYTM: Strategia równomiernego kosztu M hs, ai ∈ N (s ) W := {hs , niestrzałka, 0i} ; R := hs, a, κ(a)i ; 0 0 s ∈ G while ( hs, a, ki ∈ W = ∅) { if (R = ∅) {drukuj “porażka”; stop; } else { wybierz minimalny hs, a, ni ∈ R ze względu na n; W := W ∪ {hs, a, ni} ; R := R ∪′ ′ hs , a , n + κ(a′ )i hs′ , a′ i ∈ N (s) & mR,n hs′ , a′ i r ′ ′ hs , a i ∃a′′ hs′ , a′′ i ∈ W ; } } def mR,n hs′ , a′ i ⇐⇒ w R albo nie ma stanu s′ , albo jest, ale z kosztem wyższym niż n + κ(a′ ) Przeszukiwanie przestrzeni stanów Przykład: Poszukiwanie najkrótszej trasy M Wykład 2, 24 II 2010, str. 14 240 • 143 191 309 366 375 181 180 273 108 440 233 226 234 215 165 • 289 410 485 435 294 136 413 245 532 288 284 377 341 363 102 132 121 • 227 192 415 159 335 147 528 252 236 375 175 114 178 191 • 224 315 332 410 140 597 153 387 495 Zielona G. 131 170 • 102 142 129 324 192 308 134 504 154 253 376 Wrocław 193 228 • 426 442 530 308 369 295 120 558 90 396 219 91 Warszawa Szczecin Rzeszów Poznań Opole Olsztyn Łódź Lublin Kraków Kielce Gorzów Wl. Gdańsk . og • 345 328 535 307 408 214 295 193 453 429 353 575 177 476 536 Bydgoszcz dr Białystok Bydgoszcz Gdańsk Gorzów Wl. Kielce Kraków Lublin Łódź Olsztyn Opole Poznań Rzeszów Szczecin Warszawa Wrocław Zielona G. Białystok Przeszukiwanie przestrzeni stanów • 235 162 188 262 381 119 183 273 • 387 283 429 394 176 378 393 • 205 298 384 276 79 220 162 167 • 441 196 279 145 110 • 637 253 371 502 166 137 209 218 97 183 • 455 • 309 302 • 156 178 379 141 • Przeszukiwanie przestrzeni stanów Jak dojechać z Gdańska do Krakowa? hGdańsk, 0i hSzczecin, 363i hBydgoszcz, 165i hOlsztyn, 170i hPoznań, 296i hŁódź, 393i hWarszawa, 388i hBiałystok, 410i hGorzów Wl., 428i hWrocław, 479i hKielce, 566i hLublin, 554i hZielona G., 542i hOpole, 576i hKraków, 687i hRzeszów, 721i hKraków, 767i Wykład 2, 24 II 2010, str. 16 Przeszukiwanie przestrzeni stanów Porównanie ślepych strategii poszukiwania: kompletność — czy na pewno znajdzie istniejące rozwiązanie optymalność — czy znajdzie najlepsze rozwiązanie b — rząd rozgałęzienia m — wysokość drzewa d — głębokość, na której znajduje się szukany stan ℓ — głębokość ograniczenia Strategia w głąb wszerz dwukierunkowe (o ile stosowalne) w głąb ograniczone iterowane pogłębianie równomierny koszt Złożoność czasowa pamięciowa bm bm d b bd kompletność optymalność nie tak nie tak tak tak bd/2 bd/2 tak, gdy l d tak tak nie tak tak bℓ bd bd bℓ bd bd