Examensarbete. 15 högskolepoäng. Pokerboten. Behandlar teorier för att ta fram algoritmer till en bot som spelar poker



Relevanta dokument
Mörkpoker Strategi Christian Eriksson och Mikael Knutsson Uppdaterad

Implicita odds och omvända implicita odds

Del 8. Taktiska åtgärder

EXAMENSARBETE. Poker-AI

Grunderna Fixed limit Översikt

Pottstorleksfilosofin ett exempel

Kortspel. Ett spel - tusen upplevelser

Ordlista. Aggressiv / Överaggressiv När en spelare satsar eller höjer en stor eller väldigt stor andel av gångerna. Motsats till passiv/svag-tajt.

Spelregler för restaurangkasinospel

Spelregler. Poker. Senast ändrade:

file://c:\hemsidor\xpokers\protokoll\freddas pokerskola mini.htm

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande!

Bilaga inrikesministeriets förordning SMDno/2011/2027. REGLER FÖR RAY:S PENNINGSPEL samt högsta insatser och vinster

REGLER CHICAGO, SM DISCIPLIN 2019 #maucertified #friskförklarat

UPPGIFT 1 V75 FIGUR 1.

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Allmänt om Pidro. Spelets uppbyggnad

Freddas turneringsskola

Regler för: getsmart Grön

Hold em Regler Mikael Knutsson och Christian Eriksson Uppdaterat

Lowball Regler Mikael Knutsson och Christian Eriksson Uppdaterat

Osynlig pokerbot Teorier för att undvika detektering vid online-spelande med pokerbot

Uppgift 1 ( Betyg 3 uppgift )

Spelregler. Poker. Senast ändrade:

Optimal abstraktion i heads up no-limit Texas hold em DAN ERIKSSON

Bridge. på 10 minuter

getsmart Gul Regler för:

Utförliga regler för TRAX

Genetisk programmering i Othello

Du kommer alltid att förlora!

kl Tentaupplägg

SJÄLVSTÄNDIGA ARBETEN I MATEMATIK

getsmart Grå Regler för:

L-Advantage Solutions AB. WinMore Systems Hippo PC & MAC Start

Del 3 Att läsa bordet

Kortspelande mjukvara för upplevelsebaserad inlärning

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

SANNOLIKHET OCH SPEL

Handbok Officersskat. Martin Heni Eugene Trounev Granskare: Mike McBride Översättare: Stefan Asserhäll

KALLE ANKA CUP Matchskola

Spelregler. 2-6 deltagare från 10 år. En svensk spelklassiker

5Chans och risk. Mål. Grunddel K 5. Ingressen

Smart insatsplan. Bifogat den här artikeln finns en enkel A4 där du kan bokföra insatsplanens spel. Använd den!

Laboration 2. Artificiell Intelligens, Ht Lärare: Christina Olsén Handledare: Therese Edvall Daniel Ölvebrink

Spelregler. Poker. Senast ändrade:

Grundläggande datavetenskap 4p

Optimal abstraktion i heads up no-limit texas hold em

Utdrag från Verklighetens Kvadratrötter: Sida 1 en bok om matematikens användningsområden skriven av Marcus Näslund. Mer info:

Husorgan för ungdomsbridgen

Artificial Intelligence

Kort Sammanfattning av Schack MAS

Vad behöver du för att kunna spela? Jo, du och din motståndare behöver varsin egen kortlek med 60 kort, ett mynt att singla slant med och några

Ungefär lika stora tal

Just another WordPress site

Taktikanalys i tennis

Det här avsnittet av guiden beskriver pokerregler för följande typer av cashgame:

Regler för: - Räkna med sedlar og mynt!

Mentorprogram Real diversity mentorskap Att ge adepten stöd och vägledning Adeptens personliga mål Att hantera utanförskap

Kungar och Skatter. 2. Ta sedan de fyra essen och blanda dem och lägg sedan slumpvis ut ett ess uppvänt i varje hörn (se fig 2).

Bråkspelkort. Spela dig till färdigheter och förståelse. Bråk procent decimaltal diagram

Förbättra kommunikationen mellan målvakt och backar. Torbjörn Johansson

Memory Det kombinatoriska spelet

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 20

Ishavsspelet är ett kort- och tärningsspel för 2-4 spelare som bygger på tur och lite strategi

Schack4an. - Vad händer sen? Författare: Peter Heidne. Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman. Lärande och samhälle

BROGGIN I ngen vet riktigt var kortspelet Broggin kommer ifrån. Vissa hävdar att det är ett spel från

kl Tentaupplägg

Skriv! Hur du enkelt skriver din uppsats

Slump och statistik med Scratch. Se video

Slump och statistik med Scratch

Projektdokumentation för Othello

Hands-On Math. Matematikverkstad. Förskolans nya läroplan 1 juli Matematik är en abstrakt och generell vetenskap

Artificiell intelligens, eller Kommer din dator att bli klokare än dig? (eller kanske är den redan det?)

Starta din försäljning med hjälp av sociala medier

Regelsammandrag på Svenska Yu-Gi-Oh!

7-2 Sammansatta händelser.

Barn och skärmtid inledning!

Titel: Undertitel: Författarens namn och e-postadress. Framsidans utseende kan variera mellan olika institutioner

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

Protokoll MiniBridge

Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng?

EXAMENSARBETE. Analys av produktionseffektiviteten inom byggservicen. Simon Lundstig Högskoleexamen Bygg och anläggning

Fem steg för bästa utvecklingssamtalet

Missade du en runda eller tappade anslutningen? Ingen fara, vi väljer grundalternativet åt dig så att du kan fortsätta spela.

Så spejlar diu. Allt du behöver veta för att sätta lite guldkant på vardagen.

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Utdrag från kapitel 1

Någonting står i vägen

Turneringsregler. Turneringens mal. Innan du borjar. Att spela en omgang.

Case-based resoning. och dess användning inom sjukvården. Linköpings universitet Artificiell intelligens II 729G11 HT 2011

KURSBESKRIVNING - MATEMATIK

Gymnasiearbetets titel (huvudrubrik)

Tummen upp! Matte ÅK 6

Ett spel skapat av Albin Wahlstrand

DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE

Handbok Kiriki. Albert Astals Cid Eugene Trounev Översättare: Stefan Asserhäll

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

2D 4D. Flaskracet. strävorna

Kombinationer och banor i agilityträningen

Användarmanual Wapspel

Transkript:

Malmö Högskola, Malmö den 10 februari 2011 Examensarbete 15 högskolepoäng Pokerboten Behandlar teorier för att ta fram algoritmer till en bot som spelar poker Stefan Borgström och Marcus Nilsson Högskoleingenjörutbildningen Data/Telekommunikation Malmö högskola Höstterminen 2010 Examinator och handledare: Bengt J Nilsson

Sammanfattning Syftet med följande examensarbete är att undersöka teorier och få fram idéer om hur man kan bygga en bot som spelar poker. Ett viktigt ämne som studeras är artificiell intelligens och hur ett AI kan utvecklas hos en bot som ska ersätta en mänsklig pokerspelare spelandes i ett nätverk. Studien ger en inblick om spelregler för Texas Hold em och går även in på teori om betydelsefull statistik, sannolikhet och odds. Resultatet av denna undersökning består av framtagna algoritmer som kan användas vid utveckling av en bot som spelar poker på ett bord med tio spelare. Abstract The aim of the following thesis is to explore and develop ideas on how to build a bot that plays poker. An important topic that is studied is artificial intelligence and how an AI is implemented for a bot that replaces a human poker player playing in a network. The study provides insight of the playing rules for Texas Hold em and theory of meaningful statistics, probability and odds will be used. The results of this study consist of algorithms that can be used in the development of a bot that plays poker on a table with ten players. - 2 -

Innehåll Sammanfattning... - 2 - Abstract... - 2-1. Inledning... - 5-1.1 Bakgrund... - 5-1.2 Syfte och frågeställning... - 5-1.3 Avgränsningar... - 6-1.4 Disposition... - 6-2. Metod... - 7-2.1 Val av metod... - 7-2.2 Arbetssätt... - 8-3. Texas Hold em... - 9-3.1 Allmänt om Texas Hold em... - 9-3.2 Spelformer Texas Hold em... - 9-3.3 Community cards... - 10-3.4 Betting rundor... - 10-3.5 Spelomgång och position... - 11-3.6 Rankning av händer... - 12-4 Teori... - 14-4.1 Teori för Pokerboten... - 14-4.2 Statistik... - 14-4.2.1 Odds och Sannolikhet... - 16-4.2.2 Pottodds... - 17-4.2.3 Implicerade odds... - 17-4.2.4 Regeln 20x betten... - 18-5 Strategi... - 18-5.1 Motståndares spelstilar... - 18-5.1.1 Hur vi bemöter de olika spelstilarna... - 19-5.2 Analys av motspelare med hjälp av Pokertracker... - 20-5.2.1 Voluntarily put money into the pot... - 21-5.2.2 Pre flop raise... - 21-5.2.3 Aggression factor... - 22 - - 3 -

5.2.4 Gränsvärde på spelstilar...- 23-6 Artificiell intelligens... - 24-6.1 Vad är artificiell intelligens?...- 24-6.2 Från Finate State Machine till AI...- 24-6.3 Genetisk algoritm...- 28-6.4 Maskininlärning...- 32-6.5 Förmedla beslut...- 33-7 Data...- 34-7.1 Ingångsattribut till boten...- 34-7.2 Utgångsattribut från boten...- 35-8 Resultat...- 36-8.1 Hur och var spelar boten?...- 36-8.2 Starthänder...- 36-8.2.1 Starthänder och spel innan flopp...- 37-8.3 Spel på flopp, turn och river...- 37-8.4 Höjning och aggressionsfaktor...- 40-9 Diskussion och slutsatser...- 41-9.1 Utredning av resultat...- 41 - Referenser...- 43 - Litteratur...- 43 - Internet...- 43 - Bilder...- 44 - - 4 -

1. Inledning 1.1 Bakgrund Med ett intresse av online poker och kunskaper inom programmering är det naturligt att skriva om detta. Ett examensarbete inom ett ämne som är spännande för framtiden och som kan komma att förändra våra roller i samhället. Artificiell intelligens är något som vi ser som ett hjälpmedel för människan att spara tid och energi. Det är för oss intressant att ta reda på om det med enkla metoder går att ersätta en människa mot en maskin i form av en pokerspelare på nätet. Eftersom vi är bekanta med spelet poker och även intresserade av att tjäna pengar med automatik, vill vi studera möjligheterna att byta ut en pokerspelare online mot en vinstgivande maskin. 1.2 Syfte och frågeställning Syftet med detta examensjobb är att utveckla metoder till en bot som spelar Texas Hold em poker. Med hjälp av utvärdering av statistik och en inbyggd artificiell intelligens ska den ta strategiska beslut likt en människa. Följande frågeställning är intressant för undersökningen: Hur kan man med lämpliga metoder, statistik och regler ta fram algoritmer för en poker bot? Frågeställningen ska analyseras utifrån de delar som utgör boten. Det vill säga statistik för Texas Hold em, existerande pokeranalysprogram, teorier om artificiell intelligens och våra egna kunskaper inom poker. - 5 -

1.3 Avgränsningar För att inte undersökningen ska bli för stor har vi valt att avgränsa arbetet i förhållande till en tidigare vision där boten skulle spela online och även utvecklas i en egen miljö. Fokus ligger istället på att få fram idéer och algoritmer som kan andvändas i existerande program eller som ett hjälpmedel för de som vill utveckla programmet själva. Vi har även valt att avgränsa så att vi endast undersöker kontantspel för tiomannabord. Detta för att vi tror oss kunna skapa bättre resultat för boten om vi fokuserar på ett specifikt spel. 1.4 Disposition Examensarbetets upplägg börjar i en redogörelse över vilka metoder som vi har använt och varför vi använt dessa. Efter metoden förklarar vi arbetssättet. Vi förklarar hur vi har gått till väga när vi har fört detta arbete framåt. Vi förklarar därefter kort reglerna och hur man spelar Pokerspelet Texas Hold em, följt av ranking av pokerhänder. Vi har sedan valt att ta med ett avsnitt som behandlar teorier som hjälper till att förstå ett vinnande spel i poker. Här tar vi bland annat upp statistik för vinnande händer i Texas Hold em. När vi gått igenom teorier beskriver vi strategier som finns när det gäller spelstilar och hur man kan spela för att bemästra dessa spelartyper. Detta avsnitt innehåller även en analys av motspelare gjort från programmet Pokertracker. Här tittar vi även på de attribut som används i Pokertrackers program. Efter kommer ett större avsnitt om Artificiell intelligens där metoder analyseras för att väcka idéer på hur man kan tänka när man ska bygga något intelligent. Vi går sen igenom vilka data vi har att göra med följt av ett resultatavsnitt som tar upp hur boten - 6 -

kan byggas. Examensarbetet avslutas med en diskussion och slutsatser där vi granskar resultatet och utreder om syftet blivit uppnått. 2. Metod 2.1 Val av metod Vi har huvudsakligen använt oss av en kvantitativ metod när vi har samlat in empirin. I ett tidigt stadium används källor sökta utifrån Google och Google Schoolar och uppföljs med vetenskapliga böcker från bibliotek, särskilt e-böcker. För att få statistik från exempelvis rankning av starthänder analyseras undersökningar gjorda från experiment där en mängd händer har spelats och informationen sammanställts. Existerande statistiska program för poker analyseras för att få fram information huruvida man kan bestämma spelstilar med mera. Pokertracker som samlar verklig information om hur spelare spelat är programmet som analyseras. Eftersom vi själv spelat på nätet och använt Pokertracker finns statistik på spelade händer. - 7 -

2.2 Arbetssätt Vi börjar med att samla in data om vad det finns för olika varianter av pokerbotar och hur de fungerar. Vi studerar en guide som handlar om hur man skulle kunna bygga en online pokerbot [1]. Den enklaste varianten av pokerbotar kallas Foldbot och är en bot som inte kan spela poker utan bara kastar korten när den får dem. Nästa bot i ledet kallas Trashbot och slänger dåliga starthänder, vilken också anses vara den första användbara boten. En bot som kan spela poker igenom hela spelrundan kallas i guiden för Deepbot. De första mötena är i form av ren diskussion. Vi pratar generellt om vilka funktioner som behövs för att göra en pokerbot och vi diskuterar beteendemodeller. Vi studerar en spelhand i en pokerrunda och arbetar fram ett flödesschema för att förstå en bots agerande i en hand. Flödesschemat presenterar vi i kapitel 6 som handlar om Artificiell intelligens. Examensarbetet delar vi tidigt upp i två huvuddelar som är statistik och artificiell intelligens. Vi beskriver statistik i början och AI senare i arbetet. Dessa ämnen har många anknytningar till varandra då vi skapar en pokerbot. I senare möte diskuterar vi arbetets uppbyggnad och fördelarna med att fokusera på artificiell intelligens. En fördjupning inom ämnet AI krävs och vi söker teorier i Malmö högskolas bibliotek där vi hittar en elektronisk bok om AI inriktad på spelprogrammering. Vi kommer även fram till att inledningsvis i arbetet bör vi förklara för läsarna hur spelet poker går till. När vi analyserar teorier, strategier och AI, använder vi materialet för att bolla med tankar och idéer. Detta resulterar i att vi utvecklar algoritmer som kan användas i en pokerbot. - 8 -

3. Texas Hold em 3.1 Allmänt om Texas Hold em Texas Hold em är den populäraste formen av poker i världen. Reglerna är enkla att lära sig men desto svårare att bemästra. I Texas Hold em tilldelas du två kort (hålkort) som är personliga. Därefter att läggs fem kort (community cards) på bordet som är gemensamma och utgör din bästa hand tillsammans med dina personliga kort [2]. Du får bara använda fem av korten för bästa hand, du behöver inte använda något av dina hålkort. Tabellen nedan visar hur man kan agera i en pokerhand. Syna Checka Satsa Höja Höja tillbaka Lägga sig All in Satsar lika mycket som aktuell nivå för att gå vidare i spelet När man väljer att inte satsa och ingen har höjt eller satsat innan. Spelmarker man satsar i potten Höjer en tidigare satsning Höjer en tidigare höjning Slänger korten Satsar alla marker 3.2 Spelformer Texas Hold em Texas Hold em spelas oftast i två olika former; turneringsspel eller kontantspel [3]. Turneringsspel skiljer sig från kontantspel på så sätt att du kan åka ut även om du har mer pengar och vill fortsätta spela. Första insatsen i turneringsspel är samma för alla men i kontantspel väljer du hur mycket du vill spela med beroende på nivån. Turneringsspel fortlöpor tills en spelare har alla marker och därmed vunnit. Kontantspel är ett så kallat rullande spel där ett bord kan vara igång hur länge som helst, bara spelare är villiga att spela eller har pengar att köpa in sig för. Det finns en del olika former av kontantspel och turneringsspel. En vanlig form av turneringsspel är Sit & go turneringar som är en mindre form av stora turneringsspel. Spelarantalet kan vara allt i från fem spelare till några fullsatta bord för tio spelare. - 9 -

Det finns många varianter som Freezout, Re-buy, Turbo med flera [2]. Med Freezout menas att du inte får köpa in dig i turneringen igen till skillnad från Rebuy där du har ett visst antal inköp eller oändliga under en viss period. Med Turbo menas att turneringen går fortare och det finns en del olika grader på hastighet. När det kommer till kontantspel finns det även olika sätt att spela på, du väljer insats själv beroende på tillgänglighet. Det spelas allt från två till tio spelare beroende på hur många motståndare du vill möta. 3.3 Community cards Community cards läggs upp i tre steg. Före varje steg kastas ett kort bort från leken som hamnar i en hög med kastade kort. Detta är för att förhindra fusk, då det översta kortet kan vara märkt eller på annat sätt ge en spelare fördelar. Detta problem finns naturligtvis inte i online poker, men regeln kvarstår. I första rundan läggs tre kort upp kallad floppen. Du kan nu se din första färdiga hand med hjälp av dina två hålkort och de tre community cards som lagts upp. Därefter läggs ett fjärde kort upp i en runda som kallas turn. Nu har du sex olika kort som utgör din bästa hand. Sista rundan kallas river. Då läggs ett femte kort upp vilket utgör din slutliga hand. 3.4 Satsningsrundor Texas Hold em består av fyra satsningsrundor där spelarna gör sina drag. Dessa inträffar innan floppen, på floppen, på turn och på river. Beroende på vilken typ av insatsstruktur du spelar kan du göra olika stora bet. De vanligaste är no-limit, fixed-limit och pot-limit. Med no-limit menas att du kan satsa hur mycket du vill på alla rundor. Fixed-limit har en bestämd insats för varje runda. I pot-limit kan man satsa så mycket man vill upp till pottens storlek. - 10 -

3.5 Spelomgång och position Spelaren som delar ut kort kallas dealer. Denne får en markör, en så kallad button, som markerar vilken position man har. Vid Internetpoker sköts det självklart automatiskt men du får en markör som visar att du sitter i dealerposition [2]. Spelaren till vänster om dealern lägger ut lilla mörken (small blind) och den andre spelaren till vänster lägger ut den stora mörken (big blind). Mörkarna används för att det alltid ska ligga pengar i potten att spela om. En satsningsrunda går alltid medurs. Spelaren vänster om dealern inleder alltid förutom vid första satsningsrundan innan floppen, då lilla respektive stora mörken agerar sist. Detta betyder att spelaren under the gun börjar första satsningsrundan. Cutoff används ofta inom spelet. Med det menas att man kan stjäla mörkerna för dem som har lagt ut stora och lilla mörken. Cutoff syftar på att du får chansen att höja innan den person som sitter på dealerposition. Cutoff D S B Under the gun Figur: Visar de olika positionerna Cutoff, D (dealer), S (small blind), B (big blind) och Under the gun. - 11 -

3.6 Rankning av händer De starkaste pokerhänderna i fallande ordning Royal Flush Straight Flush Fyrtal Kåk Färg - 12 -

Stege Triss Två Par Par Högt kort - 13 -

4 Teori 4.1 Teori för Pokerboten För att förstå ett vinnande spel i poker krävs både kunskap och teori. Statistik, sannolikhet och odds är de viktigaste delarna i en pokerbot då det inte finns några känslor inblandade. 4.2 Statistik För att ta reda på vilken starthand som är bäst med 10 spelare på bordet används statistik. Här beskrivs vilka händer som klarar sig bäst på ett 10 mannabord [4]. Statistiken bygger på 4 000 000 000 spelade händer, i riktiga pokernätrum. Vi valde att kontrollera denna statistik från olika källor och får fram att statistiken är enligt nedan. Rank Hole Wins % Ties % Total % Rank Hole Wins % Ties % Total % 1 AA 30.98 0.70 31.68 13 JQs 15.68 3.03 18.71 2 KK 25.82 0.67 26.49 14 TKs 15.28 3.24 18.52 3 QQ 21.89 0.83 22.72 15 99 15.19 0.92 16.11 4 KAs 19.27 2.74 22.01 16 TQs 14.98 3.25 18.23 5 JJ 18.91 1.00 19.91 17 TJs 14.97 3.32 18.29 6 QAs 17.74 3.00 20.74 18 88 14.11 0.92 15.03 7 QKs 17.12 2.77 19.89 19 QA 14.00 3.12 17.12 8 TT 16.66 1.17 17.83 20 9As 13.84 3.41 17.25 9 JAs 16.61 3.25 19.86 21 QK 13.55 2.87 16.42 10 JKs 16.07 3.01 19.08 22 9Ts 13.41 3.18 16.59 11 KA 15.76 2.83 18.59 23 9Ks 13.37 3.04 16.41 12 TAs 15.73 3.49 19.22 24 77 13.29 0.91 14.20-14 -

Rank Hole Wins % Ties % Total % Rank Hole Wins % Ties % Total % 25 8As 13.19 3.56 16.75 38 8Ts 12.16 3.16 15.32 26 9Js 13.14 3.07 16.21 39 JQ 12.10 3.15 15.25 27 9Qs 13.10 3.02 16.12 40 8Ks 12.08 3.15 15.23 28 5As 12.88 3.87 16.75 41 55 12.04 0.91 12.95 29 4As 12.73 3.69 16.42 42 44 11.90 0.73 12.63 30 7As 12.69 3.68 16.37 43 22 11.88 0.41 12.29 31 JA 12.68 3.39 16.07 44 8Js 11.86 3.07 14.93 32 3As 12.64 3.50 16.14 45 33 11.84 0.55 12.39 33 2As 12.56 3.35 15.91 46 8Qs 11.80 3.04 14.84 34 66 12.51 0.65 13.16 47 TA 11.68 3.65 15.33 35 JK 12.32 3.12 15.44 48 7Ks 11.62 3.25 14.87 36 89s 12.18 2.81 14.99 49 78s 11.62 2.74 14.36 37 6As 12.17 3.31 15.48 50 TJ 11.43 3.45 14.88 Statistiken grundar sig på mänskliga faktorer, men vi får ändå ut en bra statistik på vilka händer som vinner i längden. Hade man istället satt in den perfekta spelare som spelat mot varandra hade resultat antagligen varit annorlunda men inte med stor skillnad. - 15 -

4.2.1 Odds och Sannolikhet För att få mer insikt av statistiken kan man börja med att titta på vad chansen är att få en viss starthand. Vi får två kort i en kortlek med totalt 52 kort. Det innebär att man kan få 1326 olika kombinationer. (52*51)/2. Det finns alltså 52 olika alternativ på första kortet vi får och 51 olika alternativ på det andra kortet. Om man bortser från valörerna så finns det 169 olika tvåkorts starthänder. Pat Dimar använder sig av ett sätt för att räkna ut hur sannolikt det är att man får ett visst kort eller en viss hand i sin bok Practical poker math [5]. Ess är det bästa kortet i en kortlek. Kortleken består av 52 kort varav fyra Ess, alltså 48 kort som inte är Ess. För att räkna ut oddsen för att få ett Ess tar man 48/4 = 12, som blir 12 mot 1 i odds. Vidare kan man få procent genom att ta summan av 1/13 som blir 7,6923%. Räknar man direkt med procent blir det 4/52 = 7,6923%. Vi kom fram till att det var 1/13 för att få det första Esset. Nu får vi istället använda oss av att vi har 51 kort kvar i leken och tre av dem är Ess. Alltså 3/51 som blir 1/17(5,8824%) chans för nästa Ess. För att få båda Ess räknar vi med (1/13) x (1/17) som ger oss 1/221(0,4525%). Detta ger oss att vi i snitt får två Ess på handen var 221:e starthand. Går även att beräkna genom 6/1326 = 1/221. Det finns 6 olika kombinationer med AA om man tittar på valören. {A, A }, {A, A }, {A, A }, {A, A }, {A, A }, och {A, A } [6]. Räknesättet gäller för alla par. - 16 -

Tabellen visar oddsen för olika starthänderna: Hand Probability Odds Any Pair 5.9% 16 : 1 Any Specific Pair (AA) 0.452% 220 : 1 Pair of Jacks or Better 1.8% 54.25 : 1 22 through TT 4.10% 23.6 : 1 Suited Connectors 2.10% 46.4 : 1 Suited Ace 3.62% 26.6 : 1 Any 2 Suited 23.53% 3.25 : 1 Any AK 1.2% 81.9 : 1 AKs 0.30% 330.5 : 1 2 Unpaired Big Cards 7.2% 12.8 : 1 Any Ace 14.50% 5.9 : 1 Rags 81% 0.23 : 1 Oddsen är tagen ur Dittmar [5]. 4.2.2 Pottodds Pottodds används för att ta reda på om det är värt att syna. Man tar hänsyn till hur stor potten är och hur stora satsningarna är. Om det ligger 10 i potten och någon bettar 20, kommer pottens storlek att vara 30. Det kostar alltså 20 att syna, i en pott som blir 50 med dina 20. Detta innebär att vår hand måste ha ett pottodds på 20/50, 40 % eller också skrivet 2:3 för att det ska vara lönsamt att syna i längden. Av fem spelade händer vinner vi två. När det gäller beslut som ska tas kan man använda en metod som grundar sig i beräkning av pottodds. 4.2.3 Implicerade odds Implicerade odds används för att förutse pottens slutvärde. Om du sitter på en hand som du vet kommer att vinna om den förbättras vid rätt kort och du tror din motspelare sitter på en stark hand och förmodligen kommer att betala dig när rätt kort kommer. Då har du bra implicerade odds. - 17 -

Om någon satsar 10 i en pott på 10, måste du betala 10 i en pott på 30, alltså 33 % chans för att spela vidare. Om du då har 20 % chans att träffa din hand har du en negativ utdelning. Med implicerade odds räknar du med att de 13 % du ligger efter kommer betala av sig senare då du tror dig kunna få bra betalt av din motståndare. Implicerade odds handlar om att förutse och lära känna din motståndares spel och handstyrka innan du kan använda det. 4.2.4 Regeln 20x betten I snitt kommer man att få JJ eller bättre var 55:e hand på ett tiomannabord. Var 17:e hand ges ett par som starthand. Det finns en regel som man kan ta hänsyn till om man till exempel sitter med ett lägre par. Regeln kallas 20X betten och används för att beräkna om det är värt att syna med ett pocket par på handen. Du multiplicerar motståndarens satsning med 20 och ser om det blir större än dennes storlek i marker, om inte bör du lägga dig. 5 Strategi 5.1 Motståndares spelstilar Det finns många olika spelstilar, men vi har valt att kategorisera spelarna i fem olika spelstilar, för att få boten att agera utifrån hur de andra spelarna spelar [3]. Loose passive I denna spelstil spelas många händer oavsett hur starka de är. Man höjer och satsar sällan i potterna men synar desto mer. Denna spelstil är ofta ingen vinnande spelstil då det ofta medför att du har oddsen mot dig, när du låter andra styra pottens storlek. Loose aggressive När man spelar loose aggressive spelar man också många händer - 18 -

och drag. Skillnaden är att när man har en hand, spelar man den aggressivt och får på så sätt bättre betalt. Detta eftersom de andra spelarna inte tror på dig lika mycket då man tenderar att bluffa i många potter. Tight aggressive Spelar väl valda händer hårt. Du försöker ha bäst starthand för att ha oddsen på din sida innan du går in i potten. Detta är en bra spelstil som många strävar efter att försöka lära sig i poker, eftersom det har visat sig att den fungerar bra för pokerproffs. Tight passive En ganska feg spelstil. Du spelar bara väl valda starthänder och spelar enbart vidare om det är något väldigt bra efter floppen. Är du uppmärksam är det enkel att läsa denna spelstil. Du kommer enbart att höja de absolut bästa händerna, även om med bra händer kommer du välja att syna. Icke-kategoriserad Denna spelstil kommer användas för de motspelare som inte har blivit identifierade till några av de andra spelstilarna. 5.1.1 Hur vi bemöter de olika spelstilarna Loose passive Här skall vi försöka att öka värdet på höjningarna när vi har en stark hand. Denna spelare tenderar till att spela ett stort urval med händer och synar med på det mesta han kan hitta. Alltså skall vi försöka få boten att ta bra betalt med de bra händerna. Loose aggressive Mot denna spelstil skall vi försöka att antingen lägga oss snabbt eller spela hårt som standard. Det kommer att bli svårt att läsa denna spelstil då den är väldigt mänsklig och spelar mycket på känsla och bluffning. Om det uppstår ett läge då vi har absolut bästa handen skall vi försöka få botten att syna för att få denna spelare att bluffa bort sina pengar. - 19 -

Tight aggressive Här bör vi försöka att enbart spela händer som vi har rankade högt efter floppen. Denna spelstil spelar få händer och spelar dem hårt. Det vi kan göra är att spela tillbaka hårt när vi väl har riktigt bra hand. Tight passive För att bemöta denna spelstil på bästa vis kommer vi att spela ganska försiktigt. När denna spelare är med kan denna ha en bra hand fast spelaren bara synar. Om denna spelar höjer måste vi ha den absolut bästa handen för att spela vidare. Icke-kategoriserad Mot dessa spelare kommer boten att spela i ett standardläge. 5.2 Analys av motspelare med hjälp av Pokertracker För att boten skall göra bra beslut beroende på vilken motspelare den möter finns det attribut att analysera hos motspelarna. En databas kan användas för att samla in statistik från de olika spelare som sedan hämtas in när botten gör sina beslut. Förslagsvis används en gräns på minst 50 spelade händer från motspelarna innan vi skickar statistiken från databasen till boten. Detta för att det behövs en del spelade händer innan man kan göra något bättre med statistiken från motspelarna. Risken är annars att boten får fel uppfattning av vilken typ av spelstil den möter då tillfälligheter i statistiken alltid uppstår. 50 spelade händer för historik är ganska lågt, men det behövs en uppfattning av hur spelare är ganska tidigt i spelet. Då spelare kan lämna bordet i kontantspel när de vill. Innan boten har fått in statistiken från motspelarna används ett standardläge som enbart baserar sig på styrkan av pokerhanden när den tar beslut. De tre attributen vi granskar är [7]: VP$IP - Voluntarily put money into the pot PFR% - Pre flop raise AF - Aggression factor - 20 -

5.2.1 Voluntarily put money into the pot VP$IP är statistik som räknas ut genom att använda sig av hur många händer en spelare har spelat. Om en spelare spelar tio rundor på ett tiomanna bord, blir det totalt 100 händer som räknas med i statistiken, oavsett om spelaren går med i potten eller inte. Om spelaren valt att spela 25 utav de 100 händerna fås ett värde på 25 % VP$IP. Detta gäller både om spelaren synar eller höjer. De gånger du är på stora mörken och lägger dig, inkluderas inte i statistiken. Väljer du att syna en höjning från stora mörken räknas det med i statistiken. Även om du skulle välja att syna före floppen för att sedan lägga dig kommer det fortfarande att räknas som att du spelat handen. Märk väl att detta attribut är till för att ta reda på hur ofta spelaren frivilligt väljer att lägga pengar i potten. Med denna uträkning får man ut hur pass lös eller tight en spelare är före floppen. Spelare med låg VP$IP kommer visa sig spela starkare starthänder. Detta för att de spelar tight. De har oftare ett lägre urval av händer och därför förmodligen bättre händer. Tvärtom gäller med ett högt VP$IP där spelaren har större urval av händer före floppen, alltså en lösare spelare ger högre VP$IP. 5.2.2 Pre flop raise PFR% är statistik som kontrollerar hur många höjningar som görs av alla givna händer. Spelaren får 100 händer, spelar 25 av dem och höjer 10 av dem, det kommer att ge en PFR% på 10 %. Detta attribut ger oss en viss kontroll över hur ofta spelaren höjer före floppen. - 21 -

Statistiken används för att ta reda på hur pass stark och aggressiv spelaren är. Många duktiga spelare väljer att ta initiativet i potten och styr potten dit de vill. En spelare som väljer att nästan bara inleda spelet med att höja kommer att ha likvärdigt värde på VP$IP och PFR%. Har en spelare större hopp mellan dessa två värden menas att spelaren synar mera höjningar än höjer själv. Spelare med större skillnad på dessa attribut kommer att ses som svagare spelare i spelet. 5.2.3 Aggression factor AF är statistik som beräknar hur aggressiv spelstil spelaren har. Den beräknas genom att räkna hur många gånger spelaren satsar eller höjer tillbaka dividerat med hur många gånger spelaren synar. Detta beräknas genom (Totala satsningar + totala höjningar) / (Totala syn). En spelare som höjer eller höjer tillbaka exakt lika mycket som han synar har ett värde på 1. Statistiken kommer visa hur aggressiv spelaren är, och kommer att ge en bild av hur ofta spelaren höjer jämfört med synar. En spelare som har väldigt högt AF-värde utgör en större chans att bluffa när den höjer. Spelaren som däremot har lågt AF värde förväntas ha bra hand när denna väl höjer. Den här statistiken beräknas över alla satsningsrundor. Den kommer att ge ett värde inte bara innan utan också fram till river på hur aggressiv spelaren är. Värdet på AF har större tyngd för efter floppen spel då det beräknas på fler satsningsrundor. - 22 -

5.2.4 Gränsvärde på spelstilar Dessa gränsvärde är riktvärde för de olika spelstilarna. Loose Passive Loose Aggressiv VP$IP >= 30 VP$IP >= 30 PFR% < 5 PFR% >= 5 AF < 2 AF >= 2 Tight Passive Tight Aggressiv VP$IP < 20 VP$IP < 30 PFR% < 5 PFR% < 5 AF < 2 AF = 2-3 De spelare som inte hamnar inom dessa värden ses som en icke kategoriserad spelare och bemöts med ett standardläge i boten - 23 -

6 Artificiell intelligens 6.1 Vad är artificiell intelligens? John McCarthy är den första människan som använde begreppet artificiell intelligens. 1956 beskrev han AI som vetenskapen och ingenjörskonsten att bygga intelligenta system [8]. I boken Artificial Intelligence - a modern approach skriver författarna om fyra olika alternativ att tänka på när man bygger Artificiella system. System som tänker som människor, system som tänker rationellt, system som beter sig som människor, och slutligen system som beter sig rationellt [9]. 6.2 Från Finite State Machine till AI Gamla spel är kända för att sakna ett väl utvecklat AI. Spelaren lär sig att om denna agerar på ett sätt så uppstår en viss situation. Springer spelaren exempelvis fram inom ett visst avstånd till en fiende i ett spel så anfaller denna. Var går egentligen gränsen för vad vi kan kalla artificiell intelligens? Det finns spel där det genom matematiska beräkningar helt och hållet går att beräkna nästa steg. Schack är ett bra exempel på detta. Det är betydligt svårare för en människa att slå en dator som spelar schack. Datorn kan hålla koll på ofantligt många fler drag och situationer än en människa. Mer likt poker är Black Jack som är ett spel där man kan öka sannolikheten att vinna genom att räkna kort. Detta gäller om man spelar det live och det endast finns begränsat antal kortlekar som används. När leken blir het så satsar man mer. Om vi pratar om en pokerspelare får vi en spelare som gör fasta beslut, beslut grundat på matematiska beräkningar och beslut som tas genom psykologi. - 24 -

Att bara skriva en pokerbot som enbart agerar som en tillståndsmaskin skulle innebära att man efter ett tag lär sig de olika tillstånden och besluten som den tar. Därför måste pokerboten vara konstruerad med ett djupare utvecklat AI. Figuren beskriver en finate state machine där besluten tas vid olika tillstånd [10]. Det slutliga beteendet i pokerboten kommer vara som en tillståndsmaskin. Satsa, Höj, syna, lägga sig, höja tillbaka och hur mycket som ska in i potten. Men det slutliga beteendet grundar sig på hur AI:n sammanställer information. Information som AI:t behandlat kan vara sannolikheten att vinna handen genom statistik eller hur den spelar mot en viss spelare i en viss situation. Tillståndsmaskinen är vårt verktyg för att utföra det slutliga beslutet och berätta för vårt AI när ett nytt beslut måste tas. - 25 -

Kort utdelade Utvärdera hand Lägga sig Spela Satsa/Höj a Höj med X syna/check Matcha värde nej Rundan över ja Figuren beskriver processen i en satningsrunda. I tillstånden Utvärdera hand och Höj med x krävs matematiska beräkningar som utförs av AI:n - 26 -

Figuren beskriver en finate state machine där besluten tas beroende av flera faktorer [10]. Mark Dave jämför med att om en fiende i ett spel kommer inom ett visst avstånd agerar den enligt state B, state C eller state D Även om tillstånden i den senare figuren grundar sig på fler situationer kan spelaren ändå lära sig de olika tillstånden efter en tids spelande. Om det däremot används procentuella beräkningar, som till exempel sannolikheten att vinna en hand, och bäddar in det i beslutsprocessen blir pokerboten mer oberäknelig. Genom att beräkna hur stor sannolikheten är att motspelarna har en bra hand och agerar därefter så kan beteendemönstret bli ännu otydligare. Figuren visar att beslut kan tas grundat på när något uppnår en viss procent [10]. - 27 -

Mark Dave beskriver i boken Behavioral Mathematics for Game AI sidan 32 att utmaningen är att bygga tillstånd som är otydliga för en spelare att se [10]. Han beskriver pelleten hos en konstnär likt ett mönster utan slut och menar att oändliga mönster kan konstrueras genom matematiska modeller. Penseln är verktyget och kan inte i sig själv åstadkomma vad vi vill ha. Men genom matematiska modeller kan vi få fram bilden som vi vill förmedla. 6.3 Genetisk algoritm Genetiska algoritmer är ett område inom artificiell intelligens och handlar om utveckling av algoritmer som bygger på evolutionsteorin. Det kan förklaras som att program skrivs som slumpgeneratorer för att ta fram lösningar på ett problem. I processen används naturliga urval och innebär bland annat att bättre resultat sparas medan de sämre kastas bort. Det förekommer även mutationer för att närma sig problemet [11]. Nya lösningar skapas med hjälp av så kallat korsning av aktuella lösningar innan de på nytt rangordnas. Det innebär att man tar halvor från de bästa lösningarna och parar ihop dessa till nya och denna avkomma bearbetas åter på samma sätt [12]. Mutationen är en slumpgenererad förändring på en del av en redan befintlig lösning. Desto fler gånger algoritmen körs, desto närmare kommer man det slutliga målet Låt oss säga att boten byggs med en genetisk algoritm. I början vet inte boten vilka händer den ska föredra att spela. Den spelar alla händer som slumpas av pokerklienten. Se händerna som individer och att resultatet av vinst flyttar individen upp i hälsokedjan. Om målet är att spela de 25 bästa starthänderna, spelas i starten alla händer som pokerklienten slumpar, men efter ett visst antal händer kan boten programmeras så att den slänger händer som ligger utanför en rangordning av de just nu 25 bästa starthänderna. - 28 -

Början av inlärningen, som kan kallas inlärningsfas medför att slumpen avgör vilka händer som spelas, men efter att algoritmen körts om och om igen vet den till slut vilka starthänder som faktiskt är de bästa. Om man efter ett antal repetitioner ser att det inte sker fler förändringar i rangen har målet uppfyllts. Boten har lärt sig att statistiskt se över vilka starthänder som är bäst i poker. Att ta fram de bästa starthänderna kan göras enligt följande algoritm. Algoritmen blandar inte in korsning och mutation, men använder principer vid lösning av ett problem utifrån en genetisk algoritms perspektiv. 1. Boten tilldelas en slumpad hand av pokerklienten. 2. Finns handen i databasen? Om inte lägg till handen i databasen. 3. Syna eller checka hela rundan mot motspelarna. 4. Vann handen? Om den vann addera 1 i antal vunna händer för hand. 5. Öka totalt antal spelade händer i databasen med 1. Algoritmen visar hur inlärningsfasen kan se ut. När x antal händer är spelade kan starthänder rankas i förhållande till hur många gånger de unika händerna vunnit. På nästa sida visas flödesschemat för algoritmen. - 29 -

Kort utdelade CARDS DEALT Existerar handen i databasen nej Lägg till hand ja Syna/check nej Runda över? ja Gör ingenting Förlust Resultat? Lika Gör ingenting Vinst Öka vinst med +1 för handen Öka totalat spelade händer med +1-30 -

Ett försök till att ytterligare närma oss en genetisk algoritm skulle kunna vara en algoritm som gör att boten blir bättre för varje hand som spelas. 1. Boten tilldelas en slumpad hand av pokerklienten. 2. Finns handen i databasen? Om inte lägg till handen i databasen. 3. Ligger handen inom rangen? Om innanför rang, spela, annars kasta bort. 4. Vann handen? Om den vann addera 1 i antal vunna händer för hand. 5. Öka totalt antal spelade händer i databasen med 1. 6. Är rangen fylld med starthänder? Om den är fylld, mutera in X antal händer som ligger utanför rangen till positioner inom rangen. En närmare genomgång av den senaste algoritmen visar att det krävs ytterligare villkor för att det ska fungera. Det må vara intressant att tänka i dessa banor men statistiken över starthänder är redan känd vilket innebär att en genetisk algoritm för starthänder är onödigt. Statistik om vilka händer som är bäst för hela spelet är också känt. Efter miljontals spelade händer fås alltså samma odds på bäst starthänder och ranking av färdiga händer. Däremot skulle en genetisk algoritm gällandes spel mot motspelare inriktad mer på beteende och psykologi kunna medföra bättre prestanda för boten. Motspelaren läses av och placeras i en kategori som medför att boten spelar ett annat spel mot den kategoriserade motspelaren. Boten kommer då ifrån spelet som den utövar i standardläget och blir mer strategisk och mänsklig. Försöket till en genetisk algoritm tar oss således till ett annat ämne som kallas maskininlärning. - 31 -

6.4 Maskininlärning Maskininlärning handlar om att lära sig och förändra sitt beteende och på så sätt agera på ett mer intelligent sätt en tidigare [13]. Som beskrivs tidigare i arbetet går det att lära sig vad motståndaren är för typ av spelare och på så vis spela annorlunda emot denna. Det går att titta på hur ofta en spelare höjer, synar eller lägger sig. Kontrollera gentemot hur motståndaren spelat sina totala händer. Om H=Höja, L=Lägga sig, S=Syna och vi vill beräkna hur många procent av spelade händer som en spelar höjt får vi H/(L+S+H). Exempel Efter 100 spelade händer kan vi beräkna spelartyp Spelare X har av 100 händer lagt sig 30, höjt 10 och synat 60. Vad är denna för typ av spelare? Hur spelar man mot en sådan spelare? 10/100=10 % höjningar 60/100=60 % syn 30/100=30 % lagda - 32 -

6.5 Förmedla beslut Pokerbotens AI måste slutligen förmedla ett beslut som ska tas genom att ta hänsyn till en mängd olika faktorer som har olika värde för spelet. Detta är ett enkelt sätt att visa hur vi kan räkna ut hälsan på handen för varje satsningsrunda. Styrka hand pokerbot 80 % Styrka hand motspelare 70 % Fler faktorer 70 % av beslut Ger 0.7 x 0, 80 = 0,56 30 % av beslut Ger 0.3 x 0,7 = 0,21 Totalt 0,56-0,21 = 0,35 Räkna ut de olika resultaten och väg in hur stor betydelse de olika resultaten ska ha. Låt säga att statistiken säger att vi ligger bra till med 80 % denna väger mest och får utgöra 70 % av vårt beslut. Statistiken säger även att våra motståndares händer är goda med 70 %. Motståndarnas händer väger 30 % av vårt beslut. - 33 -

Vår Hälsa på handen blir 80x0.7 + 70x0.3 = 35 % Hur agerar vi i förhållande till hälsan på vår hand. Låt säga att vi blir försiktigare när hälsan är sämre och modigare när hälsan är bättre. Kanske som en andel på hur vi satsar om vi har beslutat oss för att satsa. Om hälsan är större eller lika med 60 %, fortsätt vi att spela och satsar 60-50= 10 %. Genom att använda fler faktorer får vi ett annorlunda resultat på besluten. Motståndarnas händer borde kanske väga mer men då även ta hänsyn till antal spelare som är med i rundan. 7 Data 7.1 Ingångsattribut till boten Boten får information från spelbordet precis som en mänsklig pokerspelare får online. Ingångsvärdena till boten är enligt följande: Korten som den har på handen Antal spelare i som är med i handen Namn på spelarna Spelarnas stack Korten på bordet Pottens storlek Position Information om vad andra gör. Höjer, lägger sig, synar, checkar. Hur mycket en spelare lägger i potten - 34 -

7.2 Utgångsattribut från boten Boten levererar ett beslut till spelbordet. Utgångsattributen till spelbordet är enligt följande: Lägger sig Synar Höjer Checkar Går all in Pengar att lägga i potten vid höjning - 35 -

8 Resultat 8.1 Hur och var spelar boten? Om vi tittar på de olika spelstilarna ligger tight aggressive och tight passive närmast spelet som vi vill uppnå hos boten. Vår bot spelar främst förstaklasshänder vilket innebär att boten har oddsen på sin sida redan vid start. Boten spelar ett hårdare spel eftersom erfarenheten säger att det är svårare att spela mot en aggressiv spelare. Boten spelar på ett tiomannabord. Taktiken är att spela färre händer mot fler antal spelare. Boten spelar cirka 15-20 % av de tilldelade starthänderna för att efterlikna spelstilen tight aggressive, siffror som bland annat är granskade från Pokertracker. Valet att spela på tiomannabord baseras på att ju färre spelare det är på pokerbordet desto mer beroende blir pokerboten av att ha ett bra AI. Stora mörken kommer oftare när det är färre spelare på bordet vilket gör att du måste spela fler händer för att gå med vinst. Boten spelar normalt endast om spelarna är mer än sex stycken på bordet. 8.2 Starthänder På ett tiomannabord spelas det cirka 55 händer per timme [14]. Boten spelar alltid händerna i rank 1-15. Se statistik om starthänder tidigare i arbetet. Det finns 169 olika kombinationer av händer om man bortser från valörer. Av dessa är 20 %, cirka 33 händer i rangen som är värda att spela. Men för att väga upp att boten lägger sig i vissa situationer måste den spela fler händer för att hamna på 15-20 %. Normalt spelar boten även alla par från 22-88 och resterande händer spelar den med andra kriterier som det gås in på senare i arbetet. - 36 -

8.2.1 Starthänder och spel innan flopp Boten lägger sig i vissa situationer om det visar sig att någon höjt. Vid händer inom rank 1-15 höjer boten alltid med fyra gånger stora mörken. Om någon har höjt eller höjer tillbaka kommer boten oavsett att höja med fyra gånger höjningens storlek. Det är inte ovanligt att det inträffar all in i dessa situationer, fast klassen på händerna gör att boten ligger bra till. Aggressiviteten ökar för boten. När det gäller alla par 22-88 så synar boten bara om den har ett pottodds på 30 %. Vid spel mot en motspelare som har höjt med mindre än 5 % av sin kvarvarande stack kommer boten att syna, i annat fall lägger boten sig. De resterande 28 händer spelar boten om inte någon har höjt med mer än fyra gånger den stora mörken. Boten slänger dessa händer i de tre första positionerna efter stora mörken eller om det är färre än tre spelare i handen. Botten checkar alltid med alla händer på positionen för stora mörken, förutom vid händer av rank 1-15, då den höjer. 8.3 Spel på flopp, turn och river När väl floppen kommit är det inte lika enkelt att avgöra hur stark handen är. Boten får fler kort att ta hänsyn till. När boten bedömer hälsan på handen undersöks i första läget den egna handen och de kort som finns på bordet. Den räknar ut om någon kan ha bättre hand och rangordnar händerna som finns. Låt oss säga att boten har AK på handen och floppen är 3s Kh Jd. Pokerboten har två möjligheter att rangordna. Första är att titta generellt på vilken hand den har enligt rankning av händer avsnitt 3.6. Floppen ger oss i detta fall. - 37 -

1: a bästa hand: Triss 2: a bästa hand: Två par 3: e bästa hand: Par 4: e bästa hand: Högt kort Denna typ av rangordning saknar detaljrikedom, men beräkningar tar inte lång tid att göra. Med denna metod höjer boten alltid mer aggressivt när den har en hand i första rangen. Boten kan även spela i ett läge där den väljer att vara mer exakt men där beräkningar tar längre tid. Här går den istället igenom alla händer man kan ha och rangordnar. Vi får enligt floppen ovan. 1: a bästa hand: Triss i kungar 2: a bästa hand: Triss i knektar 3: e bästa hand: Triss i 3: or 4: e bästa hand: Två par KJ 5: e bästa hand: Två par K3 6: e bästa hand: Två par J3 7: e bästa hand: Par i kungar 8: e bästa hand. Par i knektar Om boten skulle ha haft triss i kungar skulle den ha absolut bästa handen vilket ger 100 % i hälsa. I vårt exempel ovan med AK som hålkort finns det 7-1=6 händer som kan - 38 -

vara bättre än botens. Värdet av hälsan på handen minskar. Boten arbetar i första hand med fasta värden när den tittar på styrkan i handen. Tabellen nedan grundar sig på att 10 spelare inklusive boten kan vara med i handen och att värdet på handen sjunker med 1/10 eller 10 % för varje spelare som kan ha bättre rank på handen. Boten ligger här med 7 rankade bästa hand vilket ger att 6/10 eller 60 % av max antal spelare kan ha bättre. Detta ger oss 100 % - 60 % = 40 % i grundhälsa på handen. Se tabellen nedan: Rank Hälsa Beslut 1 100 % Satsar eller höjer 2 < 90 % Satsar eller höjer 3 < 80 % Satsar eller höjer 4 < 70 % Satsar eller synar 5 < 60 % Checkar eller synar 6 < 50 % Checkar, lägger sig 7 < 40 % Checkar, lägger sig 8 < 30 % Checkar, lägger sig 9 < 20 % Checkar, lägger sig 10 < 10 % Checkar, lägger sig Tabellen visar hur boten spelar i förhållande till rank I vårt fall med 7: e bästa hand lägger sig boten om någon höjer. Tabellen beskriver hur boten spelar utan hänsyn till antalet spelare. Ju fler spelare på bordet desto större är chansen att vår hand är slagen om vi hamnar längre ner i rankningen. Om vi har bästa handen så höjer den oavsett och handen förblir alltid 100 %. Däremot om rankningen av - 39 -

händerna hamnar mellan 2-10 så minskar hälsan beroende på antal spelare. Om boten har en hand med rank 5, kan alltså fyra stycken ha bättre hand om det är totalt fem spelare med i handen inklusive boten. Om totalt antal spelare är åtta stycken kan sju av dessa spelare ha någon av de fyra händerna som är bättre än botens vilket försämrar oddsen att vinna. Följande algoritm används. Hälsa ((totalt antal motspelare) x spelfaktor) procentenheter där spelfaktorn påverkar hur händerna spelas. Standardläget för spelfaktorn är 2.5 och innebär att boten exempelvis spelar vidare i mindre antal händer för att efterlikna en tight spelare. Låt säga att vi har en hand av 3: e rank och antal motspelare är nio stycken. Vår hälsa sjunker då från 80 % till 80 (9 x 2.5) = 57,5 % vilket innebär att boten synar eller checkar istället för att göra en höjning (se föregående tabell). Om det är uträknat vilken kategori som motspelare tillhör förändras faktorn. Faktorn får ett mindre värde då boten möter en lös aggressiv spelare. Detta innebär att Boten synar och höjer mer, den blir lösare och aggressivare. Motspelare Loose passive Loose aggresive Tight aggresive Tight passive Spelfaktor 1.5 2 2.5 3 Tabellen beskriver hur spelfaktorn används mot kategoriserade motspelare. En lägre faktor ger bättre hälsa på botens hand vilket i sin tur gör att boten exempelvis spelar fler händer (se föregående tabell). 8.4 Höjning och aggressionsfaktor Beroende på en motspelares spelstil höjer boten olika. Spelstilen som är framtagen enligt gränsvärdena i kapitel analys av motspelare läses av från databasen. Botens standardläge då spelare inte är kategoriserade motsvarar spel mot en tight spelare. Så här ser algoritmen ut för höjningar mot spelarna. - 40 -

Hälsa Loose passive Loose aggresive Tight aggresive Tight passive 100 % H = Ps x [1.1: 1.4] H = Ps x [0.8: 1.1] H = Ps x [0.9: 1.2] H = Ps x [0.7: 1.0] < 90 % H = Ps x [1.0: 1.3] H = Ps x [0.7: 1.0] H = Ps x [0.8: 1.1] H = Ps x [0.5: 0.8] < 80 % H = Ps x [0.9: 1.2] H = Ps x [0.6: 0.9] H = Ps x [0.7: 1.0] H = Ps x [0:3: 0.6] < 70 % H = Ps x [0.8: 1.1] H = Ps x [0.5: 0.8] H = Ps x [0.6: 0.8] H = Ps x [0.2: 0:4] Tabell som beskriver hur höjningar mot olika spelstilar på motspelare. Ps är pottens storlek och H är total höjning. Intervallen av talen som står mellan klamrarna slumpas så att inte spelare hittar mönster på höjningar från boten. Summan på höjningen avrundas till närmsta heltal. 9 Diskussion och slutsatser 9.1 Utredning av resultat Om vi tittar på frågeställningen i inledningen av arbetet så ser vi att vi har lyckats och presenterar i vårt resultat algoritmer som kan användas vid utveckling av en pokerbot. Resultatet innehåller intressanta synsätt för att göra beräkningar när det ska tas ett beslut. Till skillnad från andra pokerbotar som ofta är byggda att beräkna pottodds tycker vi att man bör lägga till en del som gör att boten beter sig unikt. Man kommer inte ifrån att statistiken är det viktigaste hos boten. Den är känd och man bör ha en bra grund där man sätter fasta regler. I början av detta arbete låg det också i vår vision att kunna testa resultaten i en egen spelmiljö. Detta har tyvärr inte blivit en del av detta arbete som resulterade i att fokusera på det teoretiska. En vidareutveckling av detta arbete skulle kunna innebära att man använder idéerna och algoritmerna i detta resultat och programmerar en bot i en miljö som kan läsa av - 41 -

informationen från exempelvis ett bord på nätet. Detta är idag mycket svårare än förr eftersom att man då kunde läsa av information om vad som hände ifrån meddelanderutan i pokerklienten. Idag är informationen mer dold vilket innebär att man antagligen måste läsa av pixlar och på så sätt få fram exempelvis vilka kort man har på handen. - 42 -

Referenser Litteratur [2] Ken warren, Ken warren teaches Texas Holdem - Simon & Schuster Inc, 2003 [3] Dan Glimne, Poker handboken 3:e upplagan, B.Wahlströms, 2005, Falun [5] Dittmar, Pat, Practical Poker Math, ECW Press, 2008 [9] Russell, Stuart och Norvig, Peter, Artificial Intelligence - a modern approach, andra upplagan, 2003, s. 1-2) [10] Mark, Dave. Behavioral Mathematics for Game AI, Charles River Media, 2009 Internet [1] Coding the Wheel http://www.codingthewheel.com/archives/how-i-built-a-working-poker-bot [4] Dartmouth Computer Science http://www.cs.dartmouth.edu/ [7] Poker - Online poker tracking and analysis software tool, Maj 22, 2010 www.pockertracker.com [8] John McCarthy's Home Page, Mars 8, 2010 http://www-formal.stanford.edu/jmc/frames.html [11] Computer Sweden, Oktober 7, 2010 http://cstjanster.idg.se/sprakwebben/ord.asp?ord=genetisk%20programmering [12] Warwick Tucker, Matematiska institut, Uppsala universitet, Oktober 7, 2010 http://www.math.uu.se/~warwick/main/papers/slideshow.pdf [13] Kungliga Tekniska högskolan, Mars 2, 2010 http://www.nada.kth.se/kurser/kth/2d1431/2005/index.html [14] Redbets boss-media klient, Maj 18, 2010 http://www.redbet.com - 43 -

Bilder [6] Poker probability (Texas hold em) Wikipedia), Maj 14, 2010 http://en.wikipedia.org/wiki/poker_probability_(texas_hold_%27em) - 44 -