Reševanje problemov v prostoru stanj Predstavitev problemov s

Reševanje problemov v prostoru stanj
• Predstavitev problemov s prostorom stanj
• Strategije preiskovanja prostora stanj
• Algoritem A* in njegove lastnosti
Predstavitev problemov s prostorom stanj
• Prostor stanj (angl. state-space):
splošna shema za predstavljanje problemov
• Formalno: graf G = (V, E)
• Vozlišča: problemske situacije
• Povezave: poteze, akcije, koraki, …
• Rešitve: zaporedja potez
• Reševanje problema: preiskovanje prostora stanj
1
Opredelitev konkretnega problema
Problem opredelimo:
• s prostorom stanj
• z začetnim vozliščem
• s ciljnim pogojem (ki določa ciljna vozlišča)
Primer: prelaganje kock
(Bratko, 1989)
2
Prostor stanj
(Bratko, 1989)
Primeri rešitev
(Bratko, 1989)
3
Primer 2: igra 8 ploščic (8-puzzle)
(Bratko, 1989)
Prostor stanj
(Bratko, 1989)
4
Prostor stanj in drevo preiskovanja
(Bratko, 1989)
Strategije preiskovanja prostora stanj
• Neinformirano (slepo) iskanje:
– iskanje v globino
– iskanje v širino
• Usmerjeno iskanje:
– iskanje iskanje po načelu najprej najboljši
5
Iskanje v globino (angl. depth-first search)
(Bratko, 1989)
Iskanje v širino (angl. breadth-first search)
(Bratko, 1989)
6
Usmerjeno iskanje
• Tudi: iskanje po načelu najprej najboljši
(angl. best-first search)
• Cena povezav v prostoru stanj: c(n, n’)
• Ocena (težavnosti) vozlišč: f(n)
• Poseben primer: f(n) = g(n) + h(n)
Hevristična funkcija
• f(n) = g(n) + h(n)
• h(n) … hevristična funkcija
(znanje o problemu)
(Bratko, 1989)
7
Algoritem A*
• Za razliko od “slepega” preiskovanja (v globino, širino)
vozlišča izbiramo glede na oceno težavnosti poti do
ciljnega vozlišča: najprej najobetavnejša
Primer: iskanje najkrajše poti
(Bratko, 1989)
8
Lastnosti algoritma A*
• Ocena (hevristika) h je popolna, če velja: h ≤ h*
(h* je dejanska cena poti od trenutnega do ciljnega
vozlišča, ki je v splošnem ne poznamo)
• A* s popolno hevristično funkcijo je popoln
(najde optimalno rešitev, če ta obstaja)
• V praksi: h spodnja meja za h* (zaradi popolnosti) in
čim bliže h* (zaradi učinkovitosti)
Vprašanja
• Kako se obnaša algoritem A*, če uporabimo trivialno
hevristično oceno h=0?
• Kakšna bi bila primerna hevristična ocena za igro 8
ploščic (8-puzzle)?
9
Literatura
• Bratko, I. (1989). Prolog in umetna inteligenca. Ljubljana:
Društvo matematikov, fizikov in astronomov Slovenije.
• Russell, S., Norvig, P. (2010). Artificial Intelligence: A
Modern Approach, Third edition. Upper Saddle River,
NJ: Prentice Hall.
10