Upload
zudora
View
65
Download
6
Embed Size (px)
DESCRIPTION
Umjetna inteligencija 3. Igranje igara. Minimax pretraživanje prostora stanja. Autori: Ivan Šakić, Jura Ćurić Mentor: Bojana Dalbelo Bašić. Donošenje odluka u igrama. Primjer – zamišljena igra na poteze s dvije suprotstavljene strane (ograničenje!!!) - PowerPoint PPT Presentation
Citation preview
Umjetna inteligencija 3. Igranje igara
Minimax pretraživanje prostora stanja
1
Autori: Ivan Šakić, Jura ĆurićMentor: Bojana Dalbelo Bašić
Donošenje odluka u igrama
• Primjer – zamišljena igra na poteze s dvije suprotstavljene strane (ograničenje!!!)
• Potrebno je donijeti optimalnu odluku o idućem potezu
Minimax
• Metoda u teoriji odlučivanja kojoj je cilj minimizirati maksimalni mogući gubitak• Također se može reći da maksimizira minimalni
dobitak• Pretpostavlja da će protivnik uvijek odabirati
“optimalan put” ( o tome malo kasnije... )• Igra se modelira stablom pretraživanja ( exp.
složenost pretraživanja ) • Čvorovi –> situacije, stanja u igri• Poveznice čvorova – > potezi u igri
Minimax - pojmovi• Čvorovi na parnoj udaljenosti – MAX čvorovi (računalo)
• Početni čvor – MAX čvor (udaljenost 0)• Čvorovi na neparnoj udaljenosti – MIN čvorovi (protivnik)
• Minimax vrijednost čvora– M(x)-> INFORMACIJA O POVOLJNOSTI STANJA
• U slučaju da su listovi završna stanja igre – nije potrebna heuristika, već se M(x) određuje direktno ( pobjeda, poraz, izjednačeno ) - uglavnom nemoguće zbog vremenskih(bitnije) i memorijskih zahtjeva
• Za listove ( krajnje promatrane situacije koji nisu završna stanja igre ) M(x) se određuje heurističkom funkcijom procjene stanja
Minimax-pojmovi
X1
X
X2
X12 X22X21X11
5
6 -4 32M(x)
MAX razina
MIN razina
MAX razina
Pozitivna minimax vrijednost povoljnija za MAX igračaNegativnija minimax vrijednost povoljnija za MIN igrača
Minimax vrijednost nula – izjednačeni izgledi
Minimax - pojmovi
• U slučaju da neki čvor x nije list, dodijelit će mu se minimax vrijednost djeteta s najpovoljnijom pripadnom minimax vrijednošću• Najvrjednije dijete postaje čvor nasljednik čvora x
• Optimalan put je onaj koji vodi od čvora x prema njegovom nasljedniku
6
X1
X
X2
X12 X22X21X11
6 -4 2 3
-4 2
2
Minimax - rezultat
• Oprez : Navedeni “optimalan put” postoji samo u trenutnoj situaciji, tj. stablu
• Naime, zbog nepredvidivosti protivnika taj će se put ( vjerojatno ) promijeniti
• Bitan je isključivo odabir poteza u danom trenutku !!!
• Taj potez igra MAX igrač ( situacija na nultoj razini stabla )
7
Primjer minimax stabla
8
X1
X
X2
X12 X22X21
X121X111 X112 X122 X211X123 X221X212 X222
X11
11 20 -30 -5 0 2
1
1
2 -3 2
-3
1
Minimax algoritam (MAX čvorovi)Funkcija minimaxParni(čvor x)
Ako je x list stabla:Vrati vrijednost funkcije procijeni(x).
Proširi čvor x.VrijednostCvora := -inf. // inicijalno najgora za
računalo, dalje može samo rasti Za svako dijete y čvora x :
vrijednostCvora := max(vrijednostCvora, minimaxNeparni(y)).
Vrati vrijednostCvora.Kraj.
9
Minimax algoritam (MIN čvorovi)Funkcija minimaxNeparni(čvor x)
Ako je x list stabla:Vrati vrijednost funkcije procijeni(x).
Proširi čvor x.VrijednostCvora := inf. // inicijalno najgora za
protivnika, dalje može samo padatiZa svako dijete y čvora x:
vrijednostCvora := min(vrijednostCvora, minimaxParni(y)).
Vrati vrijednostCvora.Kraj.
// Očito, radi se o međusobno rekurzivnim funkcijama čime se ostvaruje alterniranje između dva stanja ( max i min )
10
Algoritam minimax
11
X1
X
X2
X12 X22X21
X121X111 X112 X122 X211X123 X221X212 X222
X11
11 20 -30 -5 0 2
01
1
2 -3 2
-3
1
Dubina = 3
Procedura minimaxParni(čvor x)Ako je x list stabla: NEProširi čvor x.Za svako dijete xi čvora x:vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xi))Procedura minimaxNeparni(čvor x1)Ako je x1 list stabla: NEProširi čvor x1.Za svako dijete xii čvora xi:vrijednostCvora := min(vrijednostCvora, minimaxParni(xii))Procedura minimaxParni(čvor x11)Ako je x11 list stabla: NEProširi čvor x11.Za svako dijete xiii čvora xii:vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xiii))Procedura minimaxNeparni(čvor x111)Ako je x111 list stabla: DAVrati vrijednost funkcije procijeni(x)vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xiii))Procedura minimaxNeparni(čvor x112)Ako je x112 list stabla: DAVrati vrijednost funkcije procijeni(x)Vrati vrijednostCvora
Zelenom bojom su označeni čvorovi izbrisani iz memorije
Heuristička funkcija
• Funkcija procjene vrijednosti čvora• Procjena povoljnosti čvora po igrača• Računa se na temelju značajki (eng. feature)
pojedinog stanja• Ključna za pravilan rad minimax algoritma
• Kvaliteta algoritma konačno ovisi o kvaliteti heurističke funkcije ( koja naravno, nije jednoznačno određena )
• Zašto “optimalno” ?
12
Sažetak• Minimax algoritam
• Temelji se na pretraživanju dijela prostora stanja (ograničeni vremenski i prostorni resursi)
• Omogućava računalu da donese odluku (samo) o idućem potezu procjenom budućih stanja
• Pretpostavlja se da protivnik igra “optimalno”• Stablo se generira za svaki potez računala (zbog
nepredvidivosti protivnika)• Samo stablo ne postoji u memoriji• Za procjenu krajnjih stanja (listova) koristi se
heuristička funkcija
13