Automatický Hráč Pre Hru Poker
Total Page:16
File Type:pdf, Size:1020Kb
Masarykova univerzita Fakulta informatiky Automatický hráč pre hru poker 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 IBM [3]. 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