Tekoäly pokerissa - Poki



Samankaltaiset tiedostot
Kun sinua edeltävä pelaaja on panostanut (laittanut pelimerkkejä pottiin), sinun täytyy joko maksaa saman verran pelimerkkejä tai luovuttaa.

Peliteoreettisen optimaalin approksimointi Texas Hold em -pokerissa

PIENEN STÄKIN STRATEGIA Kootut ohjeet

Blackjack on korttipeli, jossa pelaajan tavoitteena on voittaa pelinhoitaja.

MS-C2105 Optimoinnin perusteet Malliratkaisut 5

Verkkopokerijärjestelmä. Testausdokumentti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Kaksintaistelun approksimatiivinen mallintaminen (valmiin työn esittely)

Epätäydellisen tiedon jatkuvat pelit. Mika Viljanen Peliteorian seminaari

Z O K E R OHJEET REGLER PÅ SVENSKA XL 3 XL 3 M4 1 L4 1 XL 3 M 23 XL 1 XL 4 ML 4 M 41 L4 3 L 1 S4 1 XL 2 XL M 14 M 4 XL 3 LS 4 XL 3 L 3 S L3

Impedanssitomografia-peli

Verkkopokerijärjestelmä. Testausdokumentti 2. iteraatio Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Liite sisäasiainministeriön asetukseen SMDno/2011/2120. RAY:N RAHAPELIEN SÄÄNNÖT sekä suurimmat panokset ja voitot

Peliteoria luento 1. May 25, Peliteoria luento 1

SEKASTRATEGIAT PELITEORIASSA

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

P (A)P (B A). P (B) P (A B) = P (A = 0)P (B = 1 A = 0) P (B = 1) P (A = 1)P (B = 1 A = 1) P (B = 1)

Yksikönmuunnospelit Oppilaalle kopioitavat ohjeet:

LUMATE-tiedekerhokerta, suunnitelma AIHE: PELIT JA TAKTIIKAT

Peliohje (6)

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Paljonko maksat eurosta -peli

Pelaajat siirtävät nappuloitaan vastakkaisiin suuntiin pelilaudalla. Peli alkaa näin. Tuplauskuutio asetetaan yhtä kauas kummastakin pelaajasta.

Probabilistiset mallit (osa 1) Matemaattisen mallinnuksen kurssi Kevät 2002, luento 10, osa 1 Jorma Merikoski Tampereen yliopisto

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Perustaso Fixed limit Kootut ohjeet

Trafficars - Ruuhkaara

Epätäydellisen tiedon jatkuvat pelit

Pokerihuoneen ohjeet 0 (35) POKERIHUONEEN OHJEET. Pokerihuoneen yleiset ohjeet, peliohjeet ja käytännöt

POKERIHUONEEN OHJEET JA YLEISET

Sekalaiset tehtävät, 11. syyskuuta 2005, sivu 1 / 13. Tehtäviä

Taktiikan opettamisen tulee tukeutua pelaajien lajitaitoihin ja siihen, että valmentajalla on selvä kuva käyttämästään pelisysteemistä.

Pohdiskeleva ajattelu ja tasapainotarkennukset

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Luento 5: Peliteoriaa

Verkkopokerijärjestelmä. Suunnitteludokumentti, 2. iteraatio Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Verkkopokerijärjestelmä. Suunnitteludokumentti, 1. iteraatio Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

KASVOTON VIHOLLINEN - SÄÄNNÖT


Huom! (5 4 ) Luetaan viisi potenssiin neljä tai viisi neljänteen. 7.1 Potenssin määritelmä

Pelivaihtoehtoja. Enemmän vaihtelua peliin saa käyttämällä erikoislaattoja. Jännittävimmillään Alfapet on, kun miinusruudut ovat mukana pelissä!

Liite sisäasiainministeriön asetukseen SMDno/2013/2023. RAY:N RAHAPELIEN SÄÄNNÖT sekä suurimmat panokset ja voitot

Board Game Lab. 7 Pelimekaniikat ja -systeemit. Materiaalit CC-BY 4.0 Mikko Lampi

Toistetut pelit Elmeri Lähevirta. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Ravintola-alalla kasvatetaan lisäarvoa

Turun seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

Luku 8. Aluekyselyt. 8.1 Summataulukko

Vedonlyöntistrategioiden simulointi ja evaluointi

Oppiminen verkossa - teoriasta toimiviin käytäntöihin

ORMS2020 Päätöksenteko epävarmuuden vallitessa Syksy 2008

Liite sisäasiainministeriön asetukseen SMDno/2015/1031. RAY:N RAHAPELIEN SÄÄNNÖT sekä suurimmat panokset ja voitot

Kenguru 2011 Cadet RATKAISUT (8. ja 9. luokka)

ShortStack-Strategia Moniste

Muutokset pelisääntöihin 2010

Simulointi. Varianssinhallintaa Esimerkki

Alertointisäännöstö 1. syyskuuta 2011

monitavoitteisissa päätöspuissa (Valmiin työn esittely) Mio Parmi Ohjaaja: Prof. Kai Virtanen Valvoja: Prof.

KOKO PERHEEN HAUSKA STRATEGIAPELI OHJEET

Opettaminen ja oppiminen

TURNAUSOHJEET. Turnauksen tavoite. Ennen aloitusta. Taistelukierroksen Pelaaminen.

Rubikin kuutio ja ryhmät. Johanna Rämö Helsingin yliopisto, Matematiikan ja tilastotieteen laitos

1 of :44

Pelitehtäviä. Helpot tehtävät. Tuomas Korppi

1. Esitä rekursiivinen määritelmä lukujonolle

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Nollasummapelit ja bayesilaiset pelit

PELIOHJEET (suomeksi) Koira. Peli on kaksivaiheinen: Vaihe 1:

Pieniä tietojenkäsittelytieteellisiä. Syksy 2006

Ryhmäfaktorianalyysi neurotiedesovelluksissa (Valmiin työn esittely) Sami Remes Ohjaaja: TkT Arto Klami Valvoja: Prof.

Peliteoria luento 2. May 26, Peliteoria luento 2

805306A Johdatus monimuuttujamenetelmiin, 5 op

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

S Laskennallinen Neurotiede

Kognitiiviset taidot: reaktiokyvyn ja visuaalisen havainnointikyvyn kehittyminen

POKERIHUONEEN OHJEET JA YLEISET TOIMINTATAVAT

Haitallinen valikoituminen: Kahden tyypin malli

Ilkka Mellin Tilastolliset menetelmät Osa 2: Otokset, otosjakaumat ja estimointi Estimointi

pitkittäisaineistoissa

Integrointialgoritmit molekyylidynamiikassa

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Projektisuunnitelma. Projektin tavoitteet

Jalkapallovedonlyöntistrategioiden. evaluointi. Aleksi Avela Ohjaaja: Juho Roponen Valvoja: Ahti Salo

Liikehavaintojen estimointi langattomissa lähiverkoissa. Diplomityöseminaari Jukka Ahola

PANA RY LIIGASA A NNÖ T


Prosenttikäsite-pelin ohje

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Sisällysluettelo. 1. Johdanto

VIISIPALLO PELI JOKA KEHITTÄÄ YHTENÄISYYTTÄ YHTEISTYÖTÄ YHTEISÖÄ

Salasuhteita. esimerkiksi espanjaksi nimi tarkoittaa pientä pusua.

Sisällys. Kaavioiden rakenne. Kaavioiden piirto symboleita yhdistelemällä. Kaavion osan toistaminen silmukalla. Esimerkkejä. 2.2

Simulation model to compare opportunistic maintenance policies

Politiikka ja pedagogiikka: tehtäviä ja toimintahäiriöitä

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

Metsämuuronen: Tilastollisen kuvauksen perusteet ESIPUHE... 4 SISÄLLYSLUETTELO METODOLOGIAN PERUSTEIDEN KERTAUSTA AINEISTO...

Peliteorian soveltaminen hajautettujen järjestelmien protokollasuunnittelussa (valmiin työn esittely)

Algoritmit 2. Luento 10 To Timo Männikkö

Sovellettu todennäköisyyslaskenta B

Osa 2: Otokset, otosjakaumat ja estimointi

Tässä oppaan osiossa kuvataan seuraavien pelimuotojen pokerisäännöt: Tässä oppaan osiossa kuvataan seuraavien käteispelityyppien pokerisäännöt:

Transkriptio:

Tekoäly pokerissa - Poki Samuli Hemminki samuli.hemminki@cs.helsinki.fi Tekoäly kortti- ja lautapeleissä Helsingin yliopisto, tietojenkäsittelytieteen laitos Raportti C-2008-16, s. 21-33, Syyskuu 2008 Tiivistelmä Tämä raportti on käsikirjoitus syksyllä 2008 Helsingin yliopistossa järjestetylle seminaarille Tekoäly kortti- ja lautapeleissä. Aiheeksi on valittu eräs tunnetuimmista pokeriagenteista, Poki. Poki on Albertan yliopiston tutkimusryhmän kehittämä Texas Hold 'Em pokeriagentti. Tekoälytutkimuksen kannalta eräitä sen mielenkiintoisia piirteitä ovat reaaliaikainen muuntautumiskyky ja vastustajien mallinnus. Tutkimusryhmän pitkän tähtäimen tavoitteena on kehittää maailmanluokan pelaajaa vastaava peliäly. Nykyisellään Pokia kuvaillaan keskitasoista kasinopelaajaa taitavammaksi [Bil06]. Poki on ollut käytössä oikeissa peleissä koko kehityksensä ajan ja sen pelitaitoja on voinut haastaa IRC:ssä sekä tutkimusryhmän omalla serverillä. Kaupallisesti Poki on käytössä ryhmän omassa tuotoksessa Poker Academy Pro:ssa, sekä uudemmassa pelissä Stacked. Tämä raportti koostuu kahdesta luvusta. Ensimmäisessä luvussa käydään tiivistetysti läpi pelin säännöt ja kulku, sekä esitellään peliin liittyviä tekoälyn tutkimusongelmia. Toisessa luvussa esitellään Pokin ratkaisuja näihin ongelmiin. 21

Termistö Sokkopanos: Ennalta määrättyjä panoksia, jotka jakajasta myötäpäivään kaksi seuraavaa pelaajaa joutuvat maksamaan. Näitä kutsutaan "sokoiksi", koska ne maksetaan ennen taskukorttien jakamista. Pimeä kortti: Tuntematon kortti, esimerkiksi vastapelaajien taskukortit. Taskukortti: Jokaiselle pelaajalle jaetaan pelin alussa kaksi korttia kuvapuoli alaspäin. Nämä kortit pysyvät muilta pelaajilta salassa pelin loppuun saakka. Katsominen: Pelaaja maksaa vastapelaajan panostaman korotuksen ja jatkaa näin mukana pelissä. Kipata: Pelaaja valitsee olla vastaamatta korotukseen ja jättäytyy pelistä pois, samalla menettäen potissa olevan panoksensa. Korottaminen: Pelaaja maksaa vastapelaajan panostaman summan ja lisää lisäksi korotuksen, johon vastapelaajien täytyy vastata pysyäkseen mukana pelissä. Yhteiset kortit: Viisi kuvapuoli ylöspäin pöydälle jaettavaa korttia, joita jokainen pelaaja voi yhdistellä omiin taskukortteihinsa. Ensimmäiset kolme käännettyä yhteiskorttia ovat nimeltään "flop", neljäs "turn" ja viides "river". Pokerikäsi: Pelaajat pyrkivät luomaan mahdollisimman hyvän viiden kortin yhdistelmän taskukorteistaan ja pöydällä olevista yhteisistä korteista. Sökö: Korottamisen jättäminen nollaan. Floppi: Ensimmäistä kolmea yhteiskorttia kutsutaan flopiksi. Pelikonteksti: Yleinen termi pelitilanteen määrittämiseksi. Pelikontekstiin kuuluu kaikki pelin tilanteeseen vaikuttavat asiat. Tärkeimpiä näistä ovat tasku,- ja pöytäkortit, pelaajamäärä, potti, vastapelaajien pelityyli, pelaajan sijainti panostuskierroksella ja pelimerkkitilanne. 22

1 Taustoja Poki on Albertan yliopiston pokeriin erikoistuneen tutkimusryhmän kehittämä pokeriagentti [Bil02]. Pokia edelsi ohjelman aiempi versio, Loki (1997). Molemmat versiot ohjelmasta ovat olleet vapaasti testikäytössä verkossa tutkimusryhmän omalla IRC -kanavalla sekä palvelimella. 1.1 Pokeri tekoälyn ongelmakenttänä Pokeri on ollut suosittu tutkimusaihe peliteorian saralla alan alkuajoilta lähtien. Suosion syy löytyy useista peliin liittyvistä ominaisuuksista, joiden on huomattu olevan tutkimuksen kannalta kiinnostavia. Tällaisia ovat esimerkiksi [Bil03, Bil06]: epätäydellisen ja epäluotettavan tiedon käsittely, monen agentin kilpailuympäristö, riskien hallinta ja vastustajien mallinnus. Monimutkaisempien pokerivarianttien tehovaatimukset ovat olleet käytännön toteutuksille aiemmin liian intensiivisiä, ja vasta viime aikoina tietokoneiden teho on kasvanut riittäväksi menestyvien pokeriagenttien toteuttamiselle [GiS06]. 1.2 Texas Hold em Pokerista on olemassa useita eri variantteja joista Poki perustuu erääseen Texas Hold em nimiseen. Tämä on yksi suosituimpia kasinoilla pelattavia pokerin muotoja ja sen säännöillä pelataan myös vuosittain järjestettävä World Series of Poker turnaus [GiS06]. Tekoälyn tutkimuksen kannalta tätä varianttia pidetään erityisen soveltuvana, sillä siinä yhdistyvät toteutuksen kannalta riittävän yksinkertainen logiikka ja säännöt sekä tutkimuksen kannalta mielenkiintoisia elementtejä sisältävä, monipuolinen strategia [Bil06]. 1.2.1 Pelin kulku Pelissä on kaksi selkeästi erottuvaa vaihetta, floppia edeltävä (pre-flop) ja flopin jälkeinen (post-flop) vaihe. Pelin kulku on vaiheittain seuraava [Sch06, Wik01]: 23

Ennen floppia 0 Jakajasta kaksi seuraavaa (vasemmalla olevaa) pelaajaa asettavat pienen ja suuren sokkopanoksen (engl. blind). 1a Kullekin pelaajalle jaetaan kaksi taskukorttia (hole cards). 1b Tämän jälkeen seuraa ensimmäinen panostuskierros. Floppi 2a Pöytään jaetaan kolme yhteistä korttia (the flop) Flopin jälkeen 2b Toinen panostuskierros. 3a Pöytään jaetaan neljäs yhteinen kortti (the turn). 3b Kolmas panostuskierros. 4a Pöytään jaetaan viides yhteinen kortti (the river). 4b Neljäs panostuskierros. 5 Lopputuloksen selvittäminen ja potin jako. Kuva 1: Pelin kulku Pelin ideana on, että jokainen pelaaja muodostaa omista taskukorteistaan ja pöydälle jaetuista yhteisistä korteista mahdollisimman hyvän, viiden kortin pokerikäden. Panostusvaiheissa pelaajilla on kolme vaihtoehtoa, joko katsoa (check), korottaa (bet) tai kipata (fold). Katsoessa pelaaja maksaa toisen pelaajan korotuksen ja pysyy näin mukana pelissä. Mikäli pelaaja on ensimmäisenä vuorossa tai maksettava korotus on nolla, voi hän sököttää, eli jättää korotuksen nollaan. Korottaessa pelaaja lisää pottiin korotuksen. Muiden pelaajien on maksettava korotus tai kipattava korttinsa. Kipatessa pelaaja luovuttaa kierroksen, menettäen potissa olevan panoksensa. 24

Neljännen panostuskierroksen jälkeen seuraa korttien näyttö (showdown). Tässä edetään siten, että ensimmäisenä korttinsa näyttää viimeiseksi korottanut pelaaja, tai mikäli viimeisellä panostuskierroksella kukaan ei ole korottanut, jakajan vasemman puoleinen pelaaja. Seuraavan pelaajan ei ole pakko näyttää korttejaan, vaan hän voi myös kipata ne muilta pelaajilta pimeinä. 1.2.2 Pelin strategia Pelin strategiaa käsitellään edellisessä aliluvussa esitellyissä kahdessa vaiheessa; ennen avokorttien jakoa tapahtuvassa (pre-flop) ja avokorttien jaon jälkeen tapahtuvassa vaiheessa (post-flop). Ennen floppia päätös pelistrategiasta muodostetaan hyvin rajoitetun tiedon puitteissa. Tiedossa on kaksi omaa taskukorttia, vastapelaajien pelityylistä kertynyt tieto ja heidän toimintansa ennen omaa vuoroa. Eri korttiyhdistelmiä vertaillaan antamalla näille yksilölliset arvot [SKL04]. Arvon laskemiseen on monia erilaisia tapoja. Pokissa ne perustuvat kahteen ominaisuuteen; korttien sen hetkiseen paremmuusjärjestykseen, sekä niiden potentiaaliin, eli korttien mahdollisuuteen parantua tulevien yhteisten korttien avulla [Bil02]. Flopin jälkeen lopullisista seitsemästä kortista viisi on tiedossa. Myös oman pokerikäden lopullinen arvo on näin paremmin ennustettavissa toisin sanoen käden potentiaalin vaikutus on laskenut floppia edeltäneestä vaiheesta. Pelistrategia muodostuu tässä vaiheessa arvioimalla flopin vaikutusta omiin kortteihin, verrattuna flopin vaikutusta vastapelaajien kortteihin [Bil02]. Texas Hold 'Em :n strategia sisältää paljon muutakin kuin korttien mekaanisen arvon laskemista. Keskeistä hyvän strategian muodostamiseksi on tarkan pelitilanteen hahmottaminen. Tähän liittyy koko pelikontekstin arvioiminen, kuten pelaajamäärän huomioiminen, vastapelaajien lukeminen, tahallinen harhaan johtaminen puolin ja toisin, pelimerkkijakauma sekä riskien arviointi [SKL04]. 25

2 Pokin rakenne Pokin toimintapäätökset ovat pohjimmiltaan satunnaisvalintoja vaihtoehdoista: korotus, katsominen ja kippaus [Bil02]. Näiden valintojen todennäköisyyksien jakaumaa kutsutaan todennäköisyyskolmikoksi. Kullekin vaihtoehdoille annetaan todennäköisyys pelikontekstin ja oman käden vahvuuden perusteella. Kuvassa 1 on korkean hierarkiatason näkymä Pokin arkkitehtuurista. Kuvassa esitellyistä komponenteista käydään tarkasti läpi käden vahvuuden arvioija (hand evaluator), toimintojen valinta (action selector) ja vastustajan mallinnus (opponent modeler). Muut komponentit selvitetään näiden lomassa tarvittavalla tarkkuudella. Kuva 2: Pokin arkkitehtuuri [Bil02]. 2.1 Käden vahvuuden arvioija Kuten aiemmin mainittiin, Poki arvioi oman pokerikäden vahvuutta perustuen käden nykyiseen vahvuuteen ja sen potentiaaliin. Nykyinen vahvuus lasketaan vertaamalla omia kortteja kaikkiin mahdollisiin eri korttiyhdistelmiin [Bil02]. Tähän käytetään kuvan 2 kaltaista algoritmia. Kuvan algoritmi on yksinkertaistettu versio Pokin käyttämästä versiota. 26

Kuva 3: Algoritmi käden vahvuuden laskemiseksi [Bil02]. Algoritmin toimintalogiikka on seuraava: 1 Algoritmi saa arvokseen kaksi parametria; omat taskukortit (ourcards) ja yhteiset kortit (boardcards). 2 Algoritmi kutsuu funktiota Rank, joka palauttaa arvonaan omista käsikorteista ja yhteisistä korteista lasketun arvon. 3 Algoritmi käy läpi kaikki mahdolliset korttiyhdistelmät ja vertaa näiden yhdistelmien arvoja omien korttien arvoon. 4 Lopuksi algoritmi laskee käden vahvuuden seuraavalla logiikalla: Käden vahvuus = niiden yhdistelmien lukumäärä, joiden arvo on pienempi + puolet niiden yhdistelmien lukumäärästä, joiden arvo on sama jaettuna kaikkien yhdistelmien lukumäärällä. Tästä saatu todennäköisyys on P(omat kortit ovat paremmat kuin satunnaiset kortit). Käden potentiaali on käden arvon mahdollisuus parantua tai heikentyä uusien yhteisten korttien paljastuessa [Bil02]. Potentiaali voidaan laskea käymällä läpi jokaista vastustajan korttiyhdistelmää kohti kaikki yhdistelmät vielä paljastamattomia yhteisiä kortteja. Käytännössä tämä on liian hidasta ja Poki laskee potentiaalille karkeamman arvion. Potentiaali on positiivinen, mikäli uusien korttien johdosta oma heikompi käsi päätyy vahvemmaksi ja vastaavasti negatiivinen mikäli oma vahvempi käsi päätyy heikommaksi. 27

Todellinen käden vahvuus lasketaan yhdistämällä käden potentiaali ja käden vahvuus. Pokissa tähän käytettävä kaava on muotoa [Bil06]: TKV = KV + (1-KV) x Ppot, (1) missä TKV tarkoittaa todellista käden vahvuutta, KV käden vahvuutta ja Ppot positiivista potentiaalia. Negatiivista potentiaalia ei oteta huomioon, sillä Pokin strategiassa vahvemmalla kädellä halutaan panostaa riippumatta huonosta potentiaalista [Bil06]. Laskenta täytyy tehdä jokaiselle vastustajalle erikseen, jolloin kaavoja voidaan myös muokata riippuen vastustajan pelityylistä. Tällöin kaava saadaan muotoon: TKV i = KV i + (1-KV i ) x Ppot i, (2) jossa i on vastustajan yksilöivä indeksi. Edellä esitelty menetelmä on puutteellinen siinä mielessä, että se olettaa vastapelaajilla olevan satunnaiset kortit flopin jälkeen. Käytännössä huonommat kädet kuitenkin kipataan jo kierroksen aikaisessa vaiheessa, jolloin vastustajalla on todennäköisesti paremmat kuin satunnaiset kortit. Tämä otetaan Pokissa huomioon luomalla jokaista vastustajaa kohti oma painotustaulukko, johon tallennetaan tämän eri taskukorttien todennäköisyydet [Bil06]. Taulukkoa päivitetään informaation lisääntyessä kuvan 3 algoritmin mukaisesti. Kuva 4: Algoritmi painotustaulukon päivitykseen [Bil06]. 28

Algoritmin toimintalogiikkaa on seuraava: 1 Algoritmille saa arvokseen neljä parametria: toiminnon A, joka on vastapelaajan havaittu toiminto, vastustajakohtaisen painotustaulukon WT, jota algoritmi päivittää, pelinkontekstin GC, jossa toiminto A havaitaan ja vastustajamallin OM, jolla vastapelaajan yksilöllinen pelityyli voidaan huomioida. 3 Jokaista painotustaulukon alkiota kohti (eli eri korttikombinaatiota) lasketaan alkiota vastaava oletusarvoinen todennäköisyyskolmikko [Kippaa, Katso, Korota]. 4 Kolmikon jakaumaa tarkennetaan kutsumalla funktiota PredictOpponentAction, joka saa parametreiksi vastustajamallin, käsittelyssä olevan painotustaulukon alkion ja pelikontekstin. 5 Lopuksi painotustaulukon alkiota vastaavan korttiyhdistelmän todennäköisyyttä päivitetään havaitun toiminnon perusteella. 2.2 Toimintojen valinta Pokin seuraava toiminto valitaan todennäköisyyskolmikosta {katso, korota, kippaa} [Bil02]. Todennäköisyydet määritetään siten, että eri vaihtoehtojen summa P(katso)+P(korota) +P(kippaa) = 1.0. Todennäköisyyskolmikkoa käytetään komponenttina myös vastapelaajien painotustaulukkojen päivittämisessä sekä simulaatioissa valitsemaan vastustajan toiminnot. Simulaatiota käsitellään tarkemmin seuraavassa aliluvussa. Todennäköisyysjakauman määrittämiseen käytetään edellisessä aliluvussa esiteltyä TKV:tta, sekä joukkoa muita algoritmeja [Bil02]. Nämä algoritmit muokkaavat jakaumaa erilaisten sääntöjen mukaan. Säännöt koskevat pelikontekstin tilaa, vastapelaajien mallinnuksesta saatuja tietoja ja asiantuntijatiedon pohjalta sekä ihmistuntemuksesta johdettuja valmiita ohjeita. Käytännössä kaikki nämä sotkuisiksi luonnehditut tiedot on abstrahoitu Pokin todennäköisyyskolmikkoon, jota käytetään ohjelman kannalta eräänlaisena mustana laatikkona (engl. black box) [Bil06]. 2.2.1 Simulaatiot Käytännössä Poki valitsee toimintonsa simulaatioiden avulla. Tämä tapahtuu seuraavasti [Bil02]: Valintatilanteessa Poki kutsuu simulaattoria laskemaan odotusarvon kullekin vaihtoehdolle. Simulaatiossa kierros pelataan toistuvasti loppuun asti koneistetusti, antaen 29

kullakin kierroksella vastustajille eri yhdistelmät taskukortteja. Jokaisesta kierroksesta kirjataan Pokin päätöksistä seuraavat voitot tai tappiot. Koko simulaatio käydään kahdesti läpi, kerran siten että Pokin toiminnoksi valitaan katsominen ja kerran siten, että toiminnoksi valitaan korotus. Molemmille simulaatiokerroille lasketaan oma odotusarvo, joka on keskiarvo kaikkien kierrosten voitoista tai tappioista. Näistä valitaan toiminnoksi se, jonka odotusarvo on suurempi. Tasapelin tapauksessa Poki valitsee aggressiivisemman vaihtoehdon. Kippausta ei ole tarpeen simuloida, sillä Pokin osalta kierros päättyy tähän ja odotusarvo voidaan laskea suoraan. Kaikkien tapausten kattaminen simulaatiossa on aikarajoitusten puitteissa liian hidasta [Bil06]. Simuloitavat tapaukset rajoitetaan todennäköisimpiin karsimalla vastapelaajan mahdollisia korttiyhdistelmiä painotustaulukon avulla. Simulaatiossa vastapelaajan päätökset valitaan todennäköisyyskolmikon avulla. Todenmukaisemman tuloksen saavuttamiseksi käytetään avuksi vastustajien mallinnusta. 2.3 Vastustajien mallinnus Hyvään pokeristrategiaan vaaditaan arviointikykyä vastustajan korteista sekä kykyä tunnistaa tämän pelityylistä erilaiset harhautukset [Bil02]. Pokissa tämä huomioidaan ennustamalla vastustajan käden vahvuutta sekä toimintaa todennäköisyyskolmikon {kippaa, katso, korota} pohjalta. 2.3.1 Statistiikkaan perustuva mallinnus Eräs tapa ennustaa todennäköisyyskolmikon arvoja on asettua vastapelaajan asemaan ja päätellä kolmikko joidenkin valmiiden sääntöjen, esimerkiksi Pokin omien, avulla. Tällainen geneerinen malli on identtinen kaikille vastustajille. Geneerisessä mallissa on se merkittävä puute, ettei se osaa hyödyntää vastustajien yksilöllisiä heikkouksia [Bil02]. Tähän tarkoitukseen on Spesifiset mallit, joissa koneoppimismenetelmiä käyttäen jokaisesta vastapelaajasta muodostetaan malli pelin aikana. Mallinnuksessa vastapelaajan toimintoja voidaan ennustetaan sen perusteella, kuinka tämä on toiminut aikaisemmin vastaavissa tilanteissa [Bil02]. Vastapelaajan käden vahvuutta arvioidaan vastaavasti sen mukaan, millaisilla korteilla tämä on aiemmin toiminut samoin. Tällaisessa mallinnuksessa on päätettävä miten tarkkaan pelikonteksti (erityisesti aktiivisten pelaajien määrä, yhteisten korttien koostumus ja Pokin sijainti panostuskierroksella) otetaan huomioon. Liian tarkka 30

mallinnus johtaa hitaaseen oppimiseen (ylisovittaminen), kun taas liian pieni tarkkuus johtaa tehottomaan mallinnukseen (alisovittaminen). Sopivan tarkkuuden valinta on vaikea ongelma ja tässä kohdataan useita koneoppimisen vaikeimmiksi luonnehdituista ominaisuuksista [Bil06]: hälyinen (engl noisy) ympäristö, epävarmuus, rajoittamaton määrä tutkittavia ulottuvuuksia, tarve oppia nopeasti pienestä määrästä heterogeenistä aineistoa, reaaliaikainen ympäristö. 2.3.2 Neuraaliverkkoihin perustuvat mallinnus Yhdeksi Pokin menestyksen syistä on mainittu sen käyttämä adaptiivinen, neuraaliverkkoihin perustuva vastustajien mallinnus [SaR05]. Verkko koostuu 19 solmun syötekerroksesta, jotka saavat syötteensä pelikontekstin eri ominaisuuksista, neljän solmun piilotetusta kerroksesta, jotka prosessoivat syötekerroksen tietoja, sekä kolmesta vastekerroksen solmusta [Bil06]. Vastekerroksen solmuja vastaavat toiminnot kippaa, korota ja katso. Käytännössä verkko siis johtaa pelikontekstista todennäköisyysjakauman vastustajan seuraavalle toiminnolle. Harjoittamalla verkkoa monien eri vastustajien kanssa pystytään selvittämään keskeisimmät vasteeseen vaikuttavat syötteet [Bil06]. Verkon tulkitsemiseksi siitä luodaan kuvan 4 kaltainen graafinen esitys. Kuvassa viivan punainen väri merkitsee negatiivista korrelaatiota ja musta positiivista korrelaatiota. Viivojen paksuudet korreloivat liitäntöjen vahvuuksien kanssa. Esimerkiksi kuvan 4 tapauksessa syötekerroksen solmu 12 (vastustaja on viimeksi korottanut) korreloi vahvasti vastustajan seuraavan toiminnon kanssa. Vastekerros osoittaa, että vastustajan seuraava toiminto on todennäköisesti kippaus. Pokin vastustajan mallinnus on saanut osakseen myös kritiikkiä. On osoitettu, että mikäli Pokin käyttämää neuraaliverkkoa ehdollistetaan tiettyyn pelityyliin pitkään, verkon muuntautumiskyky hidastuu [SaR05]. Tällöin vastustajan muuttaessa äkillisesti strategiaa Poki ei kykene reagoimaan riittävän nopeasti. 31

Kuva 5: Vastapelaajan toimintoja ennustava neuraaliverkko [Bil06]. 3 Yhteenveto Menestyvän peliälyn luominen pokeriin ja erityisesti raportissa esiteltyyn Texas Hold 'Em varianttiin on kiinnostava ongelma ja työllistää edelleen monia tutkijoita alalla. Poki ja sitä edeltänyt Loki olivat eräitä ensimmäisistä vakavasti otettavia peliälyjä tähän peliin. Nämä ohjelmat toivat uutena ominaisuutena adaptiivisen ja vastustajista oppimaan kykenevän peliälyn. Tämän saavuttamiseksi käytetään erilaisia statistisia menetelmiä, simulointia ja neuraaliverkkoja. Poki on toiminut tutkimusryhmän työvälineenä vuosien aikana ja sen kehitystyö on johtanut lopulta myös kaupallisiin sovelluksiin [Bil06]. Samalta saralta, Albertan yliopiston pelitutkimuksen osastolta, on sittemmin ilmestynyt useita uusia ja tehokkaampia Texas Hold 'Em:ia pelaavia ohjelmia. Tekoälyn luominen pokeriin on kuitenkin kaikesta tutkimuksesta huolimatta edelleen monimutkaista ja uusia lähestymistapoja ongelmaan tarvitaan. Albertan yliopiston tutkimus on osaltaan ratkonut useita peliin liittyvistä ongelmista, mutta uusia ongelmia on myös kohdattu [Kan07]. Tekijäryhmän tavoite maailmanluokan pelitaidosta on vielä saavuttamatta, mutta kehitystä on tapahtunut. Suurimpien puutteiden arvioidaan olevan vastustajien mallinnuksessa ja adaptiivisen, nopeasti reagoivat systeemin luomisessa [Bil06]. 32

Viitteet Bil02 Billings, D. et al., The Challenge of Poker, Artificial Intelligence Journal, 134,1(2002), sivut 201-240. Bil03 Billings, D. et al., Approximating game-theoretic optimal strategies for fullscale poker, Proc. Eighteenth International Joint Conference on Artificial Intelligence, Acapulco, Meksiko, elokuu 2003, sivut 661-668. Bil06 Billings, D., Algorithms and Assessment in Computer Poker, väitöskirja, Tietojenkäsittelytieteen osasto, Albertan yliopisto, Kanada, 2006. GiS06 Kan07 Gilpin, A., Sandholm, T., A competitive Texas Hold em poker player via automated abstraction and real-time equilibrium computation, Proc. fifth international joint conference on Autonomous agents and multiagent systems, Hakodate, Japani, 2006, sivut 1453 1454. Kan, M.H., Postgame Analysis of Poker Decisions, Pro Gradu -tutkielma, Tietojenkäsittelytieteen osasto, Albertan yliopisto, Kanada, 2007. SaR05 Salim, M., Rohwer, P., Poker Opponent Modeling, Indianan yliopisto, tietojenkäsittelytieteen laitos, 2005. She02 Sheppard, B., World-championship-caliber Scrabble, Articial Intelligence journal, 134,1(2002), sivut 241-275. SKL04 Sklansky, D., The Theory of Poker, two plus two publishing, 6.painos, lokakuu, 2004. WIK01 Wikipedia, Texas Hold Em, 13.08.2008, http://fi.wikipedia.org/wiki/texas_hold_ %27em, [5.10.2008] 33