1 / 13

Umjetna inteligencija 3. Igranje igara

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!!!)

zudora
Download Presentation

Umjetna inteligencija 3. Igranje igara

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Umjetna inteligencija 3. Igranje igara Minimax pretraživanje prostora stanja Autori: Ivan Šakić, Jura Ćurić Mentor: Bojana Dalbelo Bašić

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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 )

  8. 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

  9. 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.

  10. 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 )

  11. 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

  12. 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” ?

  13. 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

More Related