1 / 74

Pham Hoang Minh prof. dr hab. Jacek Mańdziuk

Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki. Pham Hoang Minh prof. dr hab. Jacek Mańdziuk. Odmiana Pokera „Texas Holdem”. Cztery fazy rozgrywki: Pre-flop Flop Turn River. Wprowadzenie. Wieloosobowa rywalizacja

rose-salas
Download Presentation

Pham Hoang Minh prof. dr hab. Jacek Mańdziuk

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Metody Sztucznej Inteligencji do budowania mocnego gracza w Pokerze: teoria, zastosowanie i wyniki Pham Hoang Minh prof. dr hab. Jacek Mańdziuk

  2. Odmiana Pokera „Texas Holdem” • Cztery fazy rozgrywki: • Pre-flop • Flop • Turn • River

  3. Wprowadzenie • Wieloosobowa rywalizacja • Gra o niepełnej informacji (prywatne karty) • Stochatyczna gra (losowe rozdanie kart) • Probabilistyczne wnioskowanie • Ocena ryzyka • Analiza gry przeciwników • Blefowanie

  4. Aktualny stan systemów AI • Poki (Univ. Alberta) : intermediate level for full-ring (10 players) limit Texas Hold’em • Hyperborean (Univ. Alberta) : advanced level for heads-up (2-players) limit Texas Hold’em (hold 7000 hands against world-class opponents) • First place in AAAI Computer Poker Competition • BluffBot (Teppo Salonen ) : advanced level in heads-up limit Texas Hold ’Em. Second place in AAAI • GS2 (Univ. Pittsburgh) : Third place in AAAI • Monash BPP (Univ. Monash) : Fourth place in AAAI

  5. Umiejętności niezbędne mocnego gracza w Pokerze • Cechy które mocny gracz musi posiadać : • Hand Evaluation : ocena siły swojej ręki • Unpredictability • Bluffing • Opponent Modeling

  6. Betting Strategy • Betting Strategy dzieli się na: • „Pre-flop” • „Post-flop” • Fazy te znacząco się od siebie różnią: • Pre-flop : 2 „hole cards”, wcześniejsze akcje graczy podczas 1-szej licytacji • Post-flop : pełniejszy kontekst gry, „2 hole cards” i „community cards”, historię wcześniejszych decyzji licytacji przeciwników

  7. Betting Strategies w „Pre-flop” • Wiedza eksperska: • Sklansky’s rankings (Rangi Sklanskiego) • Hutchison system (System Hutchisona) • Symulacje: • Pre-flop simulation • Te metody służą do wyliczenie wartości ręki (2 hole cards) podczas fazy „Pre-flop”

  8. Wiedza eksperska • Sklansky’s ranking • Hutchison system • Przypisanie każdej ręki pewnej ilości punktów wg. ustalonych reguł przez profesjonalistów gry Poker, na podstawie których podejmiemy decyzję licytacji

  9. Sklansky Ranking (full-ring Holdem)

  10. Pre-flop simulation • Polega na obliczenie kilka milionów partii, gdzie wszystcy gracze wybierają „call” podczas pierwszej licytacji (Big blind) • Po czym pozostałe karty zostają rozdane bez jakikolwiek dalszych zakładów • Nierealistyczna sytuacja • Jednak daje podstawowe przybliżoną ocenę ręki w fazie Pre-flop

  11. Wyniki Pre-flop simulation (HPoker)

  12. Betting Strategies w „Post-flop” • Fix Expert Betting Strategy • Simulation-Based Betting Strategy • Game Tree-Based Betting Strategy

  13. Ważne pojęcia w „Post-flop” • Crude Player Strength • Bias Matrix • Bias Player Strength • Multi-player Considerations • Player Potential • Pot Odds • Effective Player Strength • Probability Triples • Noise-Factors • Bluffing

  14. Crude Player Strength • Prawdopodobieństwo, że dana ręka jest lepsza od ręki aktywnych oponentów • Zakładamy, że przeciwnik posiada C(2,n) możliwych dwóch kart właśnych z tym samym prawdopodobieństwem • Gdzie : • C - kombinacja • n - liczba nierozdanych kart

  15. Crude Player Strength • Lepsza ręka : +1pkt • Remis : +1/2 pkt • Gorsza ręka : +0 pkt • Siła ręki = suma pkt/ilość możliwych rąk • Np. dla pewnej ręki CPS wynosi 58%, tzn. ona ma 58% więcej szansy niż losowa ręka • Lepsza metoda obliczenia siły ręki używa Bias Matrix

  16. Crude Player Strength (pseudo-kod)

  17. Bias Matrix • Zakładaliśmy podczas obliczanie „Crude Player Strength”, że wszystkie kombinacje 2 „hole cards” są tak samo prawdopodobne (dodaliśmy po 1) • W prawdziwej grze się znacznie od siebie różnią • Aby to uwzględnić używamy „Bias Matrix” (Tablicę Wag) do uwzględnienie prawdopodobieństwa tych kombinacji • Każdy przeciwnik posiada właśny „Bias Matrix” w każdej partii

  18. Bias Matrix po call, raise na początku fazy Flop (HPoker)

  19. Bias Matrix (pseudo-kod)

  20. Bias Player Strength (pseudo-kod)

  21. Multi-player Considerations • Uwzględnienie wielu graczy dla Player Strength • PS(n) = PS(p1) * PS(p2) * ... * PS(pn) • p1,p2,...,pn - przeciwnicy • Nie jest to dokładna wartość, ponieważ PS przeciwników nie są niezależne, np. Bias Matrix tego nie uwzględnia

  22. Multi-player Considerations (HPoker)

  23. Player Potential • Po „Flop” jeszcze następują fazy „turn” i „river” • 2 nieukazane karty mogą znacznie zmienić siłę naszej ręki • Player Potential dzieli się na: • Positive Potential (PPot) • Negative Potential (NPot)

  24. Player Potential • PPot : prawdopodobieństwo, że nasza aktualna, nie najlepsza ręka się polepszy i wygramy partię. • PPot = P(ahead|behind) + P(tied|behind)/2 + P(ahead|tied)/2 • NPot : prawdopodobieństwo, że nasza aktualna, najmocniejsza ręka przy stole się pogorszy i przegramy partię. • NPot = P(behind|ahead) + P(behind|tied)/2 + P(tied|ahead)/2

  25. Player Potential (pseudo-kod) • HandPotential(ourCards, boardCards) • { • ourRank = obliczenie_siły_naszej_ręki • foreach oppCards in allCases • { • // Obliczenie wszyskich przypadków wystąpienia kart w turn i river • foreach case in turn • foreach case in river • obliczenie_indeksów_dla_różnych_sytuacjach • } • obliczenie PPot i NPot na postawie wyliczonych indeksów • return(PPot, NPot); • }

  26. Pot Odds • Stosunek rozmiaru „pot_size” (sumy zakładu na stole) do minimalnej kwoty naszej licytacji • Mówi nam, czy z naszą aktualną ręką warto grać dalej (opłacalność inwestycji) • Immediate_pod_odds = amount_to_call / (pot_size + amount_to_call)

  27. Pot Odds (przykład) • Immediate_pod_odds = 10zł / (50zł + 10zł) 0.167 • Jeżeli postanowimy „call” w sytuacji, gdy mamy więcej niż 16.7% na osiągnięcie wygrywającej ręki, to oczekiwana opłacalność jest pozytywna • W przypadku gdy mamy 15% szansy wygranej, wówczas nie opłaca się „call” • Wartość oczekiwana inwestycji = (50zł*0.15) – (10zł*0.85) = -1zł

  28. Effective Player Strength • EPS łączy w sobie siły i potencjał ręki. Daje względną miarę siły naszej ręki w porównaniu z rękami przeciwników • EPS = P(ahead)*P(opponent do not improve) + P(behind)*P(we improve) EPS = PS*(1-NPot) + (1-PS)*PPot • PPot ważniejszy od NPot • EPS = PS + (1-PS)*PPot (dla NPot = 0) • Uwzględnienie wielu graczy • EPS(i) = PS(i) + (1-PS(i))*PPot(i)

  29. Effective Player Strength • W HPoker uzywany jest 3 rodzaje EPS: • biasEPS (używa Bias Player Strength) • uniEPS (używa Uniform Player Strength) • uniRandEPS (używa Uniform Player Strength przeciw jednego losowego gracza)

  30. Probability Triples • Uporządkowana trójka wartości: • PT = {fall,call,raise}, gdzie fall + call + raise = 1 • Reprezentuje dystrybucję prawdopodobieństwa ze następna akcja licytacji w zadanym kontekscie gry będzie odpowiednio: • „fold”, „call”, „raise”

  31. Użycie Probability Triples • Fix Expert Betting Strategy używa Probabilty Triples do wyboru akcji (fold, call, raise) • Opponent Modelling używa Probabilty Triples do modyfikacji „Bias Table” • Simulation-Based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika • Game Tree-Based Betting Strategy używa Probabilty Triples do wyboru akcji dla zasymulowanego przeciwnika

  32. Noise-Factors • Wartość z przedziału [0,1] • Reprezentuje niepewność naszej wiedzy, jak akcja wykonana przez przeciwnika odwierciedla posiadanych przez niego kart • Modyfikuje „Probability Triples” • (dystrybucja {Pr(fold), Pr(call), Pr(raise)}) • używana w „Bias Matrix”. • Każde zdarzenie a w dystrybucji jest zmienione • a = a – a*b + b/|D| • gdzie: b - noise-factor, D – probability distribution, |D| = 3

  33. Noise-Factors (przykład) • Probability Triples {0.0, 0.2, 0.8} • noise-factor = 0.5 • Obliczenie: • Pr(fold) = 0 – 0*0.5 + 0.5/3 = 1/6 = 0.167 • Pr(call) = 0.2 – 0.2*0.5 + 1/6 = 0.267 • Pr(raise) = 0.8 – 0.8*0.5 + 1/6 = 0.567 • Po uwzględnieniu noice-factor • Probability Triples {0.167, 0.267, 0.567}

  34. Bluffing • Umożliwia wygranie partii z słabą ręką • Powoduje niepokój przeciwników • Każdy gracz moze mieć stałą wartość blefu, lub zmienny w czasie (w zalezności od stanu gry) • System może tworzyć teoretycznie optymalną częstość blefowania w poszczególnych sytuacjach

  35. Pozostałe atrybuty licytacji • Względna pozycja licytacji • Historia licytacji aktualnej partii • Kieszeń przeciwnika • ...

  36. Fix Expert Betting Strategy • Sztwna formuła stworzona dzięki wiedzy eksperskiej i ekperymentalnie • Daje odpowiedz na rozsądną licytację • Używamy następujących kroków: 1) Obliczenie „Effective Player Strength” (EPS) 2) Zamiana EPS w Probability Triples {Pr(fold), Pr(call), Pr(raise)} (ekperymentalnie) 3) Generowanie losowej liczby [0,1] i użycie jej do wyboru jednej z akcji z dystrybucji

  37. Fix Expert Betting Strategy 4) W zalezności od stanu gry (bet ratio, stakes, ...) modyfikujemy współczynnik blefu 5) Użycie współczynnika blefu do zmiany decyzji 6) Użycie współczynnika inPot do zmiany decyzji • Wykonujemy akcję ‘raise’ jeżeli pot_odds < Player Strength • W wersji No limit : kwota zakładu jest zalezna od Player Strength

  38. Simulation-Based Betting Strategy • Próba zastosowania algorytmu podobnego do MiniMax w dziedzinie gry Poker • Selective Sampling wybiera do symulacji najbardziej prawdopodobne przypadki występowania kart (przeciwników), np. używając „Bias Matrix” • Przeprowadzimy symulacje do końca i zbieramy wyniki każdy z tych prób

  39. Simulation-Based Betting Strategy • Z odpowiednio dużą liczbę prób, symulacji daje wartość oczekiwaną akcji • Dla każdej próby, ręka jest zasymulowana 2 razy: • call (check) • raise (bet) • Nie używamy pełnych przeszukiwań • Używamy rzadkich, lecz głębokich symulacji wielokrotnie aż do liści

  40. Różnica między klasycznym drzewem gry a symulacją

  41. Simulation (pseudo-kod) • Simulation() • { • trials = callEV = raiseEV = 0; • while (trials < MAX_TRIALS) • { • przydzielKarty(); • callEV += simulate(call); • raiseEV += simulate(raise); • trials++; • } • callEV = callEV / trials; • raiseEV = raiseEV / trials; • return(callEV, raiseEV); • }

  42. Simulation-Based Betting Strategy • Dla każdej decyzji używamy 200-300 symulacji, ze względu na ograniczenie czasowe gry • Po kilkuset symulacji średnia ilość zwycięstw lub przegranych po akcji „call”, „raise” zbiega sie do • oczekiwanych wartości akcji (Expected Value EV) • EV dla „fold” może być obliczony bez symulacji, ponieważ nie wpływa na przyszłych zysków czy strat

  43. Zalety i Wady Simulation-Based Betting Strategy • W przeciwieństwie do Fix Expert Betting Strategy, nie jest on sztywną strategią • Może drastycznie się zmienić w zalezności od „opponent models” • Dostosowuje się do różnych oponentów • Silna relacja jakości symulacji do funkcji oceny akcji przeciwników (Opponent Modeling) • Taktyka przeciwnika (bluffing, slowplaying, check-raising) jest odkryta podczas symulacji

  44. Game Tree-Based Betting Strategy • ExpectiMax to bezpośrednia próba używania MiniMax w Pokerze. • Zamiast wybrania najlepszej akcji w każdym kroku, akcję wykonuje Opponent Model przeciwnika • Otrzymujemy teraz najlepszą strategię do gry przeciwko konkretnemu przeciwnikowi • Aktualnie użyty w wersji Texas Hold’em heads-up (2-players) w systemie Hyperborean (PsOpti) uniwerstytetu Alberta

  45. Game Tree-Based Betting Strategy

  46. Opponent Modeling • Nie istnieje system gry Pokera bez dobrego modelowania przeciwników (Opponent Modeling) • Każdy silny gracz Pokera musi zmieniac swój sposób gry, dostosowując się do sposobu gry przeciwników • Niektórzy przeciwnicy mogą często blefować, a niektórzy rzadko

  47. Opponent Modeling • Używa się Opponent Modeling do przynajmniej 2 celów : • wnioskowanie siły ręki przeciwnika, bazując się na jego wcześniejszych akcji • przewidywanie jego akcji w konkretnych sytuacjach • Główny cel „Opponent Modeling” to zgadnięcie akcji przeciwników (Predictor) • Praca Predictor’a to zamiana konkretnego stanu gry na dystrybuanty prawdopodobieństwa akcji • (Probability Triples)

  48. Predictor models • Expert Systems • Neural Networks • Backpropagation • Radial • Probabilistic • Generalized Regression • Decision Trees • Linear Discriminant Analysis • Quadratic Discriminant Analysis • Mixed Model

  49. Expert Systems • Używamy sztywnych reguł jako do przewidywania akcji przeciwnika (np. uzywając Fix Expert Betting Strategy) • Zakładamy, ze gracz bedzie się grał w rozsądny sposób w poszczególnych sytuacjach (generic opponent modeling) • Nie jest to skuteczna metoda, ale daje przyzwoity punkt odniesienia dla innych metod modelowania oponentów • Bardzo użyteczna metoda, gdy gramy z przeciwnikiem po raz pierwszy

  50. Inputs data for Predictors

More Related