Masarykova univerzita Fakulta informatiky

Automatický hráč pre hru

Bakalárska práca

Ladislav Rolník

Brno, jar 2016 Masarykova univerzita Fakulta informatiky

Automatický hráč pre hru poker

Bakalárska práca

Ladislav Rolník

Brno, jar 2016 Namiesto tejto stránky vložte kópiu oficiálneho podpísaného zadania práce a prehlásenie autora školského diela. Prehlásenie

Prehlasujem, že táto bakalárska práca je mojím pôvodným autorským dielom, ktoré som vypracoval samostatne. Všetky zdroje, pramene a literatúru, ktoré som pri vypracovaní používal alebo z nich čerpal, v práci riadne citujem s uvedením úplného odkazu na príslušný zdroj.

Ladislav Rolník

Vedúci práce: Marek Grác

i Poďakovanie

Rád by som sa na tomto mieste poďakoval svojmu vedúcemu práce Mgr. Markovi Grácovi, Ph.D. za všetky cenné rady, ochotu a pomoc pri tvorbe tejto práce.

ii Zhrnutie

Práca sa zaoberá počítačovími agentmi schopnými hrať komplexnú hru Texas Hold’em poker proti ľudom. Najprv sú predstavené pra- vidlá hry a typy hier. Ďalej sa pojednáva o téme z hľadiska teórie hier. Dôraz je kladený najmä na výsledky a metodiku univerzitného týmu z Alberty, ktorý je v tejto problematike svetovou špičkou. Následuje rozoberanie jednoduchších stratégií pre variantu 6-max cash game. Pre ich implementáciu bol zvolený slobodný softvér OpenHoldem, ktorý predstavuje širokú paletu nástrojov pre zjednodušenie práce s hrou.

iii Kľúčové slová poker, Texas Hold’em, OpenHoldem, automatický pokrový hráč, te- ória hier, Nashova rovnováha, Computer Research Group Alberta

iv Obsah

1 Úvod 1

2 Texas Hold’em Poker 3 2.1 Pravidlá ...... 3 2.2 Výherné kombinácie ...... 4 2.3 Typy hier ...... 5 2.4 Pozícia ...... 6

3 Akademický výskum 8 3.1 Nashova rovnováha ...... 8 3.2 Push/Fold stratégia ...... 9 3.3 Annual Computer Poker Competition ...... 9 3.4 Computer Poker Research Group (CPRG) ...... 10 3.5 Redukčné techniky ...... 11 3.6 Izomorfizmus farby kariet ...... 12 3.7 Počet akcií ...... 12 3.8 Bucketing ...... 12 3.9 Counterfactual regret minimalization ...... 13 3.10 Cepheus ...... 13

4 Cash 6 Max stratégie 14 4.1 Stratégie počítačových agentov ...... 14 4.2 Pravidlami riadené ...... 14 4.3 Optimálne podľa teórie hier ...... 14 4.4 Simulačné a výpočetné ...... 14 4.5 OpenHoldem ...... 15 4.6 Platforma ...... 16 4.7 Pracovné prostredie ...... 16 4.8 Šruktúra OpenPPL ...... 20 4.9 Handranking ...... 21 4.10 Navrhnutí automatickí hráči ...... 21 4.11 Preflop stratégie ...... 22 4.11.1 OpenRaise ...... 22 4.11.2 Kradnutie blindov ...... 23 4.11.3 Hra na blindoch ...... 24

v 4.11.4 OpenRaise - Omega ...... 24 4.11.5 OpenRaise - Nepster ...... 26 4.11.6 OpenRaise - OmegaAggresive ...... 27 4.11.7 Limping a jeho izolácia ...... 27 4.11.8 3-betting ...... 30 4.11.9 Squeezing ...... 31 4.11.10 Reakcia na all-in ...... 31 4.12 Postflop ...... 32 4.12.1 Blafové stávky - Flop, Turn ...... 32 4.12.2 Floating ...... 34 4.12.3 Vsadenie s hodnotou - Flop, Turn ...... 35 4.12.4 River ...... 35 4.13 Nasadenie hráča ...... 36

5 Záver 37

vi 1 Úvod

Texas Hold’em poker je populárna kartová hra s vyše 100 variantami. Najobľúbenejšia forma pokru je No Limit Hold’em s jednoduchými a zreteľne definovanými pravidlami, ale obrovským množstvom variácií. Vlnu zvýšeného záujmu o poker naštartoval účtovník Chris Money- maker, ktorý ako amatérsky pokrový hráč vyhral v roku 2003 WSOP Main Event1 [1]. Akademický výskum v oblasti teórie hier bol dlhú dobu zameraný prevážne na hry s úplnými informáciami ako šach, Otello [2]. Jeden z najnámejších úspechov umelej inteligencie nastal, keď niekoľkonásobný majster sveta v šachu Garry Kasparov prehral v dueli so superpočítačom DeepBlue od firmy IBM3 [ ]. Poker je ďalšou veľkou výzvou hlavne pre jeho kľúčové vlastnosti: hra s nulovým súč- tom (výhra jedného hráča je prehrou druhého), neúplné informácie (karty oponentov sú neznáme), hrať môžu viac ako dvaja hráči, riade- nie rizika (stávky a jeho dôsledky na hru), modelovanie oponentov (hľadanie chýb súperov a ich využitie), blafovanie a vysporiadanie sa s falošnými informáciami, ktoré nám podsúvajú oponenti.

Cieľom tejto práce bolo preskúmať aktuálny stav v oblasti umelej inteligencie, ktorá sa zameriava na kartovú hru poker. Ďalej práca obsahuje sadu automatických hráčov pre variantu 6-max cash hru Texas Hold’em bez limitov. Hráči využívajú jednoduchšie stratégie a to tak, že ich je možné využiť pri výuke hry. Používateľ môže hrať proti týmto hráčom v existujúcom prostredí.

Najprv bolo potrebné spracovať dosiahnuté úspechy akademického výskumu teórie hier, v ktorom má najväčšie zásluhy tým z Albertskej univerzity. Viedol som dialóg s vedúcim práce o tom, ktoré technoló- gie použiť pre zjednodušenie práce s hrou. Vzhľadom na to, že straté- gie sú riadené pravidlami a nepoužívajú žiadnu štatistickú históriu, bol na implementáciu vybraný slobodný softvér OpenHoldem. Ten je možné použiť priamo na nasadenie hráčov na internetovú herňu. Takéto hranie je však proti pravidlám internetového kasína. Vďaka tomu, že OpenHoldem sníma obrazovku, bude možné nasadiť hráča

1. Každoročne organizovaný najprestížnejší pokrový turnaj.

1 1. Úvod

na akúkoľvek internetovú herňu, alebo prostredie, pre ktoré sa vytvorí mapa, ale pre demonštratívne účely som využil PokerTH, multiplat- formovú herňu, dostupnú pre platformy BSD, Mac, Linux a Windows. OpenHoldem obsahuje aj vlastný pokrový programovací jazyk Poker Programming Language (ďalej PPL). PPL má jednoduchú štruktúru a celý výsledný kód pozostáva z veľkého počtu podmienok, ktoré sa skladajú do symbolov. Stratégie budú vnorené do predpísaných symbolov reprezentujúcich scénu udalostí, ktoré môžu v pokri nastať, ako napr. automatický hráč nie je prvý, kto stavil, ale staví na flope2. Každý automatický hráč má deterministicky určené a odôvodnené, ako v týchto situáciach hrať.

Nakoniec bude možné využiť popísané stratégie a ešte ich vylepšiť, alebo ich skúmať pri odohratí dostatočného počtu hier a vyvodiť rôzne štatistiky medzi nimi. OpenHoldem je veľmi dynamicky sa vyvíjajúci a špecifický framework s učitými úskaliami pri prechode medzi jednot- livými verziami, ale väčšinou sa jedná o kozmetické úpravy. Stratégie boli implementované v jeho najnovšej verzii, takže momentálne nie je nutné nič prepisovať, ak by sa niekto rozhodol nadviazať na túto prácu.

2. Druhé kolo stávok, vyložené prvé tri spoločné karty.

2 2 Texas Hold’em Poker

Je v súčasnosti najhranejšou variantou pokru a považuje sa za naj- strategickejšiu. Preto vyžaduje viac zručnosti a je menej ovplyvnená faktorom šťastia. Hry sa môžu účastniť dvaja až desiati hráči podľa toho o akú formu Hold’emu sa jedná. Základný balíčok 52 kariet obsa- huje vzostupne od najslabšej karty po najsilnejšiu 2, 3, 4, 5, 6, 7, 8, 9, T, J (tiež prezývaná aj chlapec podľa vyobrazenia na karte), Q (kráľovná), K (kráľ), A (eso) v štyroch farbách. Kartám T až A prislúchajú hodnoty 10-14. Jednotlivé farby sú srdcia ♥, diamanty ♦, kríže ♣, piky ♠.

2.1 Pravidlá

Texas Hold’em je ako každý druh pokru hra stávková. Každý hráč dostane dve skryté karty a ďalších pät sa vykladá na stôl počas jed- notlivých stávkových kôl [4]. Prvé kolo sa nazýva preflop. Dvaja hráči musia zaplatiť povinné stávky big blind (BB) a small blind (SB), ktorý je polovicou BB. Niekedy sa pre urýchlenie hry zavádzajú ešte aj ante, v porovnaní s blindami sú to nižšie stávky, ktoré sa však vyberajú od každého hráča. V tomto kole sa rozhoduje, kto sa hry zúčastní. Karty sa rozdávajú od dealera, označovaného tiež ako button. Po svojej pravici má v rade za sebou SB a BB. Pozícia dealera sa posúva spolu s blindami v smere hodinových ručičiek po každom odohratí jednej súvislej hernej sekvencie (v kontexte sa odkazujem na pojem "jedna hra"), ktoré môže nastať, ak všetci hráči zahodia svoje karty už v pr- vom kole, alebo v následujúcich kolách v hre zostáva iba jeden hráč a jeho oponenti nie sú ochotní aspoň dorovnať jeho stávku. V prípade, že sa pokračuje až do posledného kola, hráči odkryjú svoje karty, tzv. showdown. Ten kto má najlepšiu kombináciu vyhráva bank zložených zo všetkých doterajších stávok. Počas preflopu uvádza prvú pokrovú akciu hráč vyskytujúci sa po pravici BB. Ak by všetci hráči až smerom k BB položili, tak sa mu BB vráti. Druhým kolom je flop. Vyložia sa tri spoločné karty na tzv. board. Zostávajúci hráči sa vyjadria podľa pozí- cie s výnimkou blindov, ktorí pre tentokrát a ďalšie kolá budú na ťahu prví a až po nich hráč po pravici BB. Na turne prichádza ďalšia karta a opäť sa hra obracia smerom k hráčom, ktorí zaujmú svoje stanoviská k novej situácii. River reprezentuje vyloženie poslednej spoločnej karty

3 2. Texas Hold’em Poker

a následné reakcie hráčov na ňu. Počas jednotlivých stávkových kôl sú uskutočniteľné následovné akcie:

∙ fold - hráč ukončuje hru a zbavuje sa šance na výhru banku.

∙ check - zdržanie sa stávky, ak to herná situácia dovoľuje, ini- ciatíva sa predáva ďalšiemu hráčovi.

∙ call - zvýšenie aktuálnej stávky, aby dosiahla výšku stávok súperov, čo je nevyhnutné pre pokračovanie v hre.

∙ bet - navýšenie stávky vedúce k zisku banku, ak niekto aspoň nedorovná. Raise je špecifický prípad pre navýšenie už raz navýšenej stávky.

∙ all-in - stávka o všetko, ktorá je realizovateľná v no-limit hre vysvetlenej neskôr.

2.2 Výherné kombinácie

Nelíšia sa od iných pokrových hier. Karty sa skladajú zo spoločných vyložených päť a dvoch kariet, ktoré držíme v ruke. Vyhráva hráč, ktorý drží najvyššiu možnú kombináciu podľa tabuľky 2.1. Ak majú dvaja hráči rovnakú kombináciu, vyhráva ten, kto ju má tvorenú vyš- šou kartou. Napr. Ar Kr Qr Jr 10r prezývaná Royal flush je najsilnejšia možná kombinácia. A tiež platí, že Kr Qr Jr 10r 9r > Qr Jr 10r 9r 8r . Existuje jeden špecifický prípad, kde má karta A hodnotu 1 namiesto pôvodnej 14, a to v prípade postupnosti kariet A-2-3-4-5.

4 2. Texas Hold’em Poker

Príklad Pôvodný názov Popis 8q 7q 6q 5q 4q Straight flush Pätica po sebe následujúcich kariet rovnakej farby Ar Aq A♠ A♣ Kq Four of kind Štvorica kariet s rovnakou hodnotou Ar Aq A♠ Kr Kq Full house Trojica a pár dohromady 2♠ 5♠ 10♠ J♠ Q♠ Flush Pätica kariet rovnakej farby Ar 2♠ 3♣ 4♣ 5q Straight Pätica po sebe následujúcich kariet Qr Qq Q♠ 7r 9♣ Three of kind Trojica kariet s rovnakou hodnotou Qr Q♠ Kr Kq 2r Two pair Dva páry kariet s rovnakou hodnotou Ar Aq Kr Qq 2♠ One pair Pár kariet s rovnakou hodnotou Ar 2♠ 6q 5q 9♣ High card Vysoká karta eso

Tabuľka 2.1: Poradie výherných kombinácií zoradených od najsilnejšej po najslabšiu

2.3 Typy hier

Poker sa delí z hľadiska maximálnej uskutočniteľnej stávky na [5]: ∙ limit - pevne určená výška stávky, v prvých dvoch kolách preflop, flop je stropom 1 bb a v posledných kolách turn, river sú to 2 bb. Obmedzuje sa aj počet navýšení na šdandardných 4 (počet sa môže líšiť podľa herne). ∙ -limit - hornú hranicu určuje výška banku (pot), teda všet- kých doteraz naakumulovaných stávok dokopy. Minimálna stávka je aspoň vo výške predchádzajúcej stávky, alebo navý- šenia. Ak je v pote napr. 15 (jednotiek meny) a niekto vsadí 7, je možné maximálne vsadiť veľkosť nového potu (predošlý pot + nová stávka + dorovnanie) + veľkosť dorovnania = (15 + 10 + 10) + 10 = 45. ∙ no-limit - v rozpätí od minimálnej stávky až po výšku nášho počtu žetónov (stacku). Mimo štruktúru limitov rozlišujeme cash hru a turnaje. V cash hre je množstvo žetónov ekvivalentné peniazom, ktoré sa do hry vlo- žia. Hráči môžu kedykoľvek odísť od stola s tým čo nahrajú. Povinné stávky zostávajú pevne danné a určujú úroveň vyjadrenú potrebnými vkladmi. Prevážne sa stanoví minimálny a maximálny vklad. Ak hrá- čovi nezostanú žiadne peniaze, môže si dokúpiť. Cash hra sa zvykne

5 2. Texas Hold’em Poker

označovať aj ring, ale názory na voľné zamienanie týchto pojmov sa líšia v tom, že niekto za ring považuje, len ak je stôl plný, teda 9-10 hráčov. V turnajoch sa zaplatí vstupný poplatok, ktorý je nenávratný a jeho výška definuje výplatnú štruktúru. Počas hry sa blindy dynamicky zvyšujú a v posledných fázach sa pridávajú aj ante. Delia sa na jedno- stolové prezývané Sit and Go (SNG) a Multi-table tournaments (MTT). V MTT pri vypadnutí hráča dochádza k presúvaniu hráčov medzi stolmi, aby ich počet bol vyvážený ako na začiatku. Pokračuje sa až do utvorenia finálového stola. Tu hra preberá podobu SNG a končí až heads-upom, v ktorom sa určí celkový víťaz ak sa hráči nerozhodnú výhru rozdeliť, pretože im to príde výnostné. Napr. traja finalisti hrajú vyrovnanú partiu a preferujú si rozdeliť výhry rovným dielom ako riskovať menšiu výhru na treťom mieste. Heads-up je zároveň aj ďalším typom hry. Jedná sa o najjednoduchší Texas Hold’em, v ktorom sa účastnia iba dvaja súperi. Hra prebieha následovne. Hráči položia po- vinné stávky sb, bb a začínajú s určitým množstvom žetónov, ktoré si vymenili za peniaze. Hru otvára SB a môže zvoliť štandardné pokrové úkony fold, call, raise, all-in. Následuje rozhodnutie oponenta, ktorý má rovnaké možnosti a naviac v prípade, že SB iba dorovnal, môže ponechať stávku (check). Koniec hry predstavuje zisk všetkých žetó- nov oponenta, takže jeden z dvojice sa približne zdvojnásobí. Úplne korektne sa uvažuje ešte marža herne rake, ktorú si účtuje za sprostred- kovanie hry.

2.4 Pozícia

V tejto práci budem rozoberať stratégie pre cash no-limit hru, ktorá by mohla čitateľovi prísť intuitívnejšia a je pravdepodobnejšie, že s ňou prišiel do styku. Bude sa jednať o variantu so šiestimi hráčmi, čomu odpovedá aj pozične. Skratkami sa odkazujem na jednotlivé umiestnenia hráča na pokrovom stole. Skorými pozíciami budú pre účely práce EP - early , MP - middle position, neskorými pozí- ciami CO - cut-off, BUT - button/dealer a posledné miesta pripadajú na blindy SB, BB 2.1. Hrať v pozícii, alebo mať pozíciu znamená, že hráči ku ktorým toto tvrdenie vzťahujeme sa budú rozhodovať prví. V texte sa môže vyskytnúť skratka IP (In position). Všeobecne sa toto

6 2. Texas Hold’em Poker považuje za výhodu, pretože akcia súpera nám môže prezradiť silu jeho kombinácie, ale taktiež sa môže jednať o podsunutý blaf. Opakom je hrať mimo pozíciu, alebo pozíciu nemať - OOP (Out of position). BB a bb nie sú vzájomne zameniteľné skratky. Prvá vyjadruje pozíciu a druhá, že sa jedná o stávku prepočítanú na big blindy.

Obr. 2.1: Zobrazuje pozíciu ako bola predstavená.

7 3 Akademický výskum

Akademický prístup k pokru smeruje svoju pozornosť najmä k jeho matematickým aspektom a teórii hier. Kľúčovu rolu predstavuje očaká- vaná hodnota značená EV (Expected value). Takto vypadá jej rovnica. EV(akcia) = P(vyhra) ∗ vyhrana_suma + P(prehra) ∗ prehrana_suma Cieľom je maximalizovať EV každého rozhodnutia. Elementárnym príkladom je hod kockou, ktorého obidva javy nastávajú s rovnakou pravdepodobnosťou 1/2 a z rovnice je zrejmé, že keby rovnako za každé padnutie orla aj panny získame euro, tak naša EV bude 0. Po dostatočnom počte hodov budeme mať to isté množstvo eúr.

3.1 Nashova rovnováha

Matematik John Forbes Nash dokázal, že v akejkoľvek nekooperatívnej hre s nulovým súčtom (strata jedného sa rovná výhre druhého) pre n hráčov existuje rovnovážny stav, tzv. ekvilibrium [6]. Poker spĺňa túto definíciu. Hráči sú v rovnováhe za predpokladu, že hrajú optimálne a nemá zmysel hrať inú stratégiu, pretože z takejto zmeny by súper mohol len profitovať. Tento dôkaz podnietil hľadanie práve takéhoto optimálneho riešenia pre zjednodušené formy pokru. Hrať optimálne však neznamená hrať stratégiu maximalizačnú za účelom zvýšenia zisku. Optimálne riešenie podľa teórie hier má väčšiu efektivitu pri hraní proti súperom, o ktorých nie je nič známe, alebo proti veľmi silným súperom, kde pozorovanie chýb v súperovej hre neprináša dostatočnú výhodu. Zameriava sa na zníženie maximálnej EV perfekt- nej protistratégii. Opačným prístupom k pokrovej hre je snaha využiť chyby hráčov. V takom prípade akýkoľvek vykonaný ťah, môže byť obrátený a využitý. Týmto stratégiam sa hovorí aj expertné, pretože si vyžadujú znalosť posúdenia rozhodnutí, ktoré sú za dannej situácie EV+ (ziskové). Samozrejme je možné sa mýliť v odhade toho, ako pro- tihráč zareaguje, alebo akú range (trieda karetných kombinácií) má na ruke. Fatálne pre úspech či už človeka, alebo počítača je neznalosť toho, čo je dobrá hra a čo zlá, ak by videl do karát súperovi. Univerzitné snahy hľadajú teda prevážne také stratégie, ktoré dokážu aproximovať Nashovu rovnováhu.

8 3. Akademický výskum 3.2 Push/Fold stratégia

Pri hre heads-up no-limit a obmedzení hráčov na akcie fold, call, all-in je možné hrať optimálne Nashovu rovnováhu. Taký pokrový duel vy- padá potom následovne. SB začína, pozrie na svoje karty a buď vsadí všetko podľa tabuľky Pusher, alebo karty položí. Ak vsadil všetko, BB podľa tabuľy Caller buď dorovná, alebo karty položí. Tabuľky [7] používajú štandardné rozostavenie pokrových rúk. V pravom hornom trojuholníku sa nachádzajú karty v rovnakej farbe suited a v dolnom ľavom karty odlišných farieb offsuited. (Ak sa uvádza ruka A2s, myslí sa tým vo farbe. Analogicky prípona o znamená, že karty sú v od- lišných farbách. Bez prefixu A2 zahŕňa obidve možnosti. Prípona + napr. K9+ značí karty K9, KT, KJ, KQ, K) Na diagonále sú páry. Pri rozhodovaní či vsadiť/položiť, alebo dorovnať/položiť sa riadi hod- notou v buňke tabuľky, ktorá udáva k násobok blindov. Počet žetónov stack prepočítaný na blindy nesmie prekročiť hodnotu v tabuľke. Inak je nutné karty položiť.

3.3 Annual Computer Poker Competition

Každoročne organizovaná súťaž pokrových agentov. Do súťaže sa zapájajú univerzitné týmy, ale tiež aj individuálni výskumníci. Pre Texas Hold’em je každému zúčastnenému poskytnutý linuxový ser- ver Amazon EC2 s úložným priestorom 200 GB. Je možné si vybrať server z dvojice konfigurácií m3.medium, alebo m4.large. Disciplíny sa prispôsobujú každý rok podľa záujmu súťažiacich. Pre zníženie štatistického rozptylu výsledkov sa zaviedli duplikované zápasy z od- lišných pozícií a duplikované zápasy medzi jednotlivými súťažiacimi.

9 3. Akademický výskum

Priebeh je následovný. Dvaja agenti odohrajú k rúk medzi sebou. Ich pamäť sa premaže, pozície vymenia a odohrajú rovnakých k rúk. Pri každom náhodnom výbere kariet sa uloží kľúč, ktorým sa generoval a pre každú ruku platí, že karty rozdané v zápase oponentoch A - B budú rovnaké ako v zápasoch A - C, B - C. Je nežiadúce získať vzorku odohratých hier, kde jednému hráčovi budú prichádzať nepretržite lepš