slides in ppt

Download Report

Transcript slides in ppt

RAČUNALNIŠKO IGRANJE
IGER S KARTAMI
MITJA LUŠTREK
IGRE S POPOLNO IN NEPOPOLNO INFORMACIJO


Popolna informacija
(vsi igralci poznajo celotno stanje igre):
 šah,
 dama,
 Othello,
 Scrabble,
 backgammon
 ...
Nepopolna informacija
(vsi igralci ne poznajo celotnega stanja igre):
 poker,
 bridž,
 tarok
 ...
O ČEM BOM GOVORIL


Metode za računalniško igranje iger s kartami:
 preiskovanje drevesa igre (kot pri igrah s popolno informacijo);
 vzorčenje Monte Carlo (za obravnavanje nepopolne
informacije).
Uporaba teh metod v programu za igranje taroka:
 želel sem izdelati program, ki bi dobro igral tarok in bi kar
najmanj uporabljal človeško znanje o igri;
 Silicijasti tarokist je na voljo na spletni strani
http://tarok.bocosoft.com;
 preizkuševalci menijo, da solidno tarokira, vendar je potreben
izboljšav.
DREVO IGRE IN MINIMAKS

Predstavitev igranja z drevesom igre in preiskovanje drevesa z
izpeljanko algoritma minimaks sta običajna pri igrah s popolno
informacijo:
 vozlišča – stanja igre,
 veje – poteze.
VZORČENJE MONTE CARLO

Preiskovanje drevesa igre se da uporabiti tudi pri igrah z
nepopolno informacijo.
PREISKOVANJE ALFA-BETA

Alfa-beta je nadgradnja minimaksa:
 uporablja okno (α, β), ki omejuje trenutno pričakovani rezultat;
 veje, ki so zunaj okna, se preskočijo, ker ne morejo biti izbrane.
TRANSPOZICIJSKA TABELA



Običajno: v tabelo se shranjujejo
stanja igre in njihove vrednosti.
Particijsko iskanje (program za
igranje bridža GIB – M. L.
Ginsberg, 1996): za vsako
vozlišče se izračuna množica
vozlišč z enako vrednostjo, ki se
skupaj s to vrednostjo shrani v
tabelo.
Silicijasti tarokist: množica
enakovrednih vozlišč se določi
hevristično.
TRANSPOZICIJSKA TABELA PRI TAROKU



Silicijasti tarokist si zapomni za vsakega igralca:
 število tarokov;
 vsoto tarokov na 10 natančno;
 najvišji tarok;
 prisotnost škisa, monda in pagata;
 figure;
 število plateljcev vsake barve.
To zmanjša število preiskanih vozlišč za približno 2,3-krat.
Vidnega poslabšanja igranja ni (neformalna ugotovitev).
RAZVRŠČANJE POTEZ



Dobro je najprej preizkusiti potezo, zaradi katere se preiskovanje v
nekem vozlišču prekine.
Silicijasti tarokist uporablja zgodovinsko hevristiko:
 vsaka karta ima svojo zgodovinsko vrednost, na začetku 0;
 zgodovinska vrednost karte se poveča, kadar se zaradi te karte
prekine iskanje.
Podobno: ovržbena tabela, ubijalska havristika.
PRILAGAJANJE ŠIRINE ISKALNEGA OKNA


Če je iskalno okno manjše, je preiskovanje hitrejše.
Slicijasti tarokist uporablja iskanje z najmanjšim oknom: za neprve
naslednike vozlišča je okno najmanjše možno, ker skuša le
pokazati, da so slabši od prvega.
PRILAGAJANJE GLOBINE ISKANJA



Manj zanimive veje je smotrno preiskati plitveje.
Ker je pri zadnjih kartah vzetka na voljo največ informacij o
položaju, Silicijasti tarokist to počne le pri njih.
Npr.:
 če je treba odvreči tarok, se upoštevajo le pagat, najmanjši
tarok, najmanjši tarok, ki še pobere, in mond;
 če je treba odvreči barvo in je soigralec odvrgel višjo karto od
nasprotnika, se upoštevajo le najvišja karta v tej barvi in druga
najvišja, če je najvišja dovolj visoka, da bi se dalo kdaj pobrati
z njo.
PREISKOVANJE DREVESA IGRE V ŠTEVILKAH


Globina 9, Athlon XP P1800+, 512 MB RAMa.
Preiskovalni algoritem Silicijastega tarokista pri isti globini razvije
184-krat manj vozlišč kot alfa-beta in za to porabi 86-krat manj
časa.
Algoritem
vse izboljšave
Vozlišča
Čas (s)
Čas/vozlišče (μs)
8.667
0,248
28,6
brez transpozicijske tabele
25.349
0,527
20,8
brez zgodovinske hevristike
13.467
0,350
26,0
brez najmanjšega okna
15.827
0,433
27,4
brez izločanja nekaterih vej
15.952
0,435
27,3
transpozicijska tabela
95.575
2,451
25,6
zgodovinska hevristika
324.633
5,463
16,8
najmanjše okno
320.792
4,438
13,8
izločanje nekaterih vej
258.060
4,891
18,9
1.598.924
21,266
13,3
nič izboljšav
POMANJKLJIVOSTI VZORČENJA MONTE CARLO


Znano je, da ima vzorčenje Monte Carlo pomanjkljivosti.
Nekatere so take, da bi nastopile tudi, če bi bilo moč preizkusiti
vse možnosti (in tako izločiti naključnost):
 predpostavlja, da je nasprotnik popolno informiran, in če ni,
tega ne izkoristi;
 če je nasprotnik popolno informiran, nas lahko pripelje v
položaje, kjer je manj verjetno stanje igre dejansko;
 odločitve prelaga na kasnejše poteze ob predpostavki, da bo
takrat na voljo več informacij o stanju igre, kar pa ne drži nujno.
PRELAGANJE ODLOČITEV NA KASNEJŠE POTEZE
REŠEVANJE PRELAGANJA ODLOČITEV


Metoda z dosegljivimi množicami (GIB):
 poišče čim večjo množico možnih stanj igre, za katero se da
najti zmagovito strategijo ne glede na to, kateri izmed njenih
elementov je dejanski;
 igranje izboljša malo.
Vektorski minimaks:
 časovno prezahteven;
 za tarok neuporaben.
VEKTORSKI MINIMAKS
VZORČENJE MONTE CARLO PRI TAROKU



Naštete pomanjkljivosti je pri igranju težko opaziti.
Pomanjkljivost, ki je bila opažena pri Silicijastemu tarokistu:
 postavi predpostavko o stanju igre;
 zaporedje slaba, a neizogibna poteza – dobra poteza je
ocenjeno enako kot dobra poteza – slaba, a neizogibna
poteza;
 včasih zato najprej naredi slabo, a neizogibno potezo;
 zatem se izkaže, da ni bila neizogibna.
Rešitev: poleg iskanja do polne globine se opravi še iskanje do
globine enega vzetka. To daje prednost takojšnjemu dobičku.
Uporabi se kombinacija rezultatov obeh iskanj.
SILICIJASTI TAROKIST
POMOŽNI ALGORITMI



Licitiranje:
 preizkuša vedno težje igre, dokler ne pride do take, za katero
oceni, da je ne more dobiti;
 to stori tako, da naključno tvori nekaj talonov, se založi in
odigra nekaj iger.
Zalaganje in napovedi:
 preizkusi vse možne izbire kart iz talona;
 za vsako se založi na nekaj načinov (določenih z rabo
človeškega znanja);
 za vsak način odigra nekaj iger in primerja rezultate;
 če pri tem dovoljkrat dobi kralje, trulo ali pagat ultimo, to
napove.
Če se pri licitiranju ali napovedih po odigrani igri izkaže, da je bil
preveč (ali premalo) optimističen, je v prihodnje manj (ali bolj).
OCENJEVALNA FUNKCIJA

f (stanje) = razlika × 5 + vsota_tarokov + mond × 5 × 10 + škis × 5
× 10 + pagat_ultimo × napoved_pagata_ultimo × 5 × 25






razlika ... razlika med pobranim programa in nasprotnikov
vsota_tarokov ... vsota programovih tarokov
škis ... ima škisa
mond ... ima monda
pagat_ultimo ... 1, če ga je naredil; -1, če mu ga je nasprotnik pobral; 0
sicer
napoved_pagata_ultimo ... 2, če ga je nepovedal; 0 sicer
ZAKLJUČEK


Preizkušanje s človeškimi igralci je pokazalo, da program sicer
dela napake, a je dovolj dober, da je igra proti njemu ni
nezanimiva.
Za zares dobro igro samo preiskovanje drevesa igre ne zadošča:
 je preplitvo, zato se dolgoročne strategije ne razvijejo;
 potrebno bi ga bilo bistveno izboljšati,
 dolgoročne strategije izrecno vdelati ali
 najti način za samodenjo iskanje dolgoročnih strategij.