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

Podobne dokumenty