130 likes | 299 Views
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!!!)
E N D
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!!!) • 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 nisuzavršna stanja igre ) M(x) se određuje heurističkom funkcijom procjene stanja
Minimax-pojmovi MAX razina MIN razina X X1 X2 MAX razina X11 X12 X21 X22 6 -4 2 3 M(x) Pozitivna minimax vrijednost povoljnija za MAX igrača Negativnija 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 X X1 X2 X11 X12 X21 X22 2 -4 2 6 2 3 -4
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 )
Primjer minimax stabla 1 X X1 X2 1 -3 1 X11 X12 X21 X22 2 -3 2 X111 X112 X121 X122 X123 X211 X212 X221 X222 1 2 0 1 0 -3 -5 0 2
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.
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 padati Za 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 )
Algoritam minimax Dubina = 3 MAX X 1 MIN X1 X2 1 -3 MAX X11 X12 X21 X22 1 0 2 -3 2 MIN X111 X112 X121 X122 X123 X211 X212 X221 X222 1 2 0 1 0 -3 -5 0 2 Ako je x1 list stabla: NE vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xi)) Za svako dijete xi čvora x: Proširi čvor x. vrijednostCvora := min(vrijednostCvora, minimaxParni(xii)) Ako je x112 list stabla: DA Vrati vrijednostCvora Proširi čvor x1. Vrati vrijednost funkcije procijeni(x) Ako je x list stabla: NE Za svako dijete xii čvora xi: Procedura minimaxNeparni(čvor x111) Procedura minimaxParni(čvor x11) Procedura minimaxNeparni(čvor x112) Ako je x11 list stabla: NE Vrati vrijednost funkcije procijeni(x) Ako je x111 list stabla: DA vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xiii)) vrijednostCvora := max(vrijednostCvora, minimaxNeparni(xiii)) Za svako dijete xiii čvora xii: Proširi čvor x11. Procedura minimaxNeparni(čvor x1) Procedura minimaxParni(čvor x) 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” ?
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