64
POLI/UFRJ COPPE/UFRJ SNOWMAN: UM JOGADOR COMPETITIVO DE POT-LIMIT OMAHA POKER BASEADO EM REDES DE BAYES Rafael Shinji Aoki Kikuchi Projeto de Gradua¸c˜ ao apresentado ao Curso deEngenhariadeComputa¸c˜aoeInforma¸c˜ao da Escola Polit´ ecnica e do Programa de os-gradua¸c˜ ao em Engenharia de Sistemas e Computa¸c˜ ao, COPPE, Universidade Federal do Rio de Janeiro, como parte dos requisitos necess´arios ` aobten¸c˜ ao do t´ ıtulo de Engenheiro de Computa¸c˜ ao e Informa¸c˜ ao. Orientador: Daniel Ratton Figueiredo Rio de Janeiro Fevereiro de 2012

Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

  • Upload
    hakhanh

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

POLI/UFRJ COPPE/UFRJ

SNOWMAN: UM JOGADOR COMPETITIVO DE POT-LIMIT OMAHA

POKER BASEADO EM REDES DE BAYES

Rafael Shinji Aoki Kikuchi

Projeto de Graduacao apresentado ao Curso

de Engenharia de Computacao e Informacao

da Escola Politecnica e do Programa de

Pos-graduacao em Engenharia de Sistemas e

Computacao, COPPE, Universidade Federal

do Rio de Janeiro, como parte dos

requisitos necessarios a obtencao do tıtulo de

Engenheiro de Computacao e Informacao.

Orientador: Daniel Ratton Figueiredo

Rio de Janeiro

Fevereiro de 2012

Page 2: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO

Escola Politecnica - Departamento de Eletronica e de Computacao

Centro de Tecnologia, bloco H, sala H-217, Cidade Universitaria

Rio de Janeiro - RJ CEP 21949-900

Este exemplar e de propriedade da Universidade Federal do Rio de Janeiro, que

podera incluı-lo em base de dados, armazenar em computador, microfilmar ou adotar

qualquer forma de arquivamento.

E permitida a mencao, reproducao parcial ou integral e a transmissao entre bibli-

otecas deste trabalho, sem modificacao de seu texto, em qualquer meio que esteja

ou venha a ser fixado, para pesquisa academica, comentarios e citacoes, desde que

sem finalidade comercial e que seja feita a referencia bibliografica completa.

Os conceitos expressos neste trabalho sao de responsabilidade do(s) autor(es) e

do(s) orientador(es).

Page 3: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Universidade Federal do Rio de Janeiro

Escola Politecnica / COPPE

Snowman: Um Jogador Competitivo de Pot-Limit Omaha

Poker Baseado em Redes de Bayes

Autor:

Rafael Shinji Aoki Kikuchi

Orientador:

Prof. Daniel Ratton Figueiredo, Ph.D.

Examinador:

Prof. Jose Ferreira de Rezende, Ph.D.

Examinador:

Prof. Ricardo Guerra Marroquim, Dr.

Poli/COPPE

Fevereiro de 2012

Page 4: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Kikuchi, Rafael Shinji Aoki

Snowman: Um Jogador Competitivo de Pot-Limit

Omaha Poker Baseado em Redes de Bayes/Rafael Shinji

Aoki Kikuchi. – Rio de Janeiro: UFRJ/POLI–COPPE,

2012.

XIII, 51 p.: il.; 29, 7cm.

Orientador: Daniel Ratton Figueiredo

Projeto de Graduacao – UFRJ/POLI/Curso

de Engenharia de Computacao e Informacao –

COPPE/Programa de Engenharia de Sistemas e

Computacao, 2012.

Referencias Bibliograficas: p. 49 – 51.

1. Redes bayesianas. 2. Poker. 3. Omaha. I.

Figueiredo, Daniel Ratton. II. Universidade Federal do Rio

de Janeiro, COPPE, Programa de Engenharia de Sistemas

e Computacao. III. Tıtulo.

iv

Page 5: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

“We are all a little weird and

life’s a little weird, and when we

find someone whose weirdness is

compatible with ours, we join up

with them and fall in mutual

weirdness and call it love.”

(Dr. Seuss)

v

Page 6: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Agradecimentos

A minha mae, Misako, que, mesmo com todos os desafios a ela impostos, me

ensinou os verdadeiros valores da vida. Ao meu pai, Ichita, e meus irmaos, Cıntia

e Sussumu, por sempre estarem ao meu lado e me ajudarem a tomar as decisoes

certas na vida.

A minha namorada, Talita, pelo apoio e conforto nos momentos de necessidade e

pelo carinho incondicional.

Aos meus amigos do colegio e da faculdade – Chi Bolo, Joao, Nano, Luıs, Tio,

Ana, Romeiro, Mendonca e demais –, sem os quais nao conheceria o verdadeiro

significado de amizade. Todos voces foram essenciais para definir quem sou hoje.

Aos professores que contribuıram para a minha formacao, tanto profissional quanto

academica, e que foram fundamentais para a criacao dos alicerces do conhecimento

que hoje possuo.

Ao professor Daniel, que lancou uma luz sobre os caminhos a serem trilhados

neste trabalho e me ajudou a superar os obstaculos encontrados durante o intenso

percurso.

vi

Page 7: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Resumo do Projeto de Graduacao apresentado a Escola Politecnica/COPPE/UFRJ

como parte dos requisitos necessrios para a obtencao do grau de Engenheiro de

Computacao e Informacao.

SNOWMAN: UM JOGADOR COMPETITIVO DE POT-LIMIT OMAHA

POKER BASEADO EM REDES DE BAYES

Rafael Shinji Aoki Kikuchi

Fevereiro/2012

Orientador: Daniel Ratton Figueiredo

Curso: Engenharia de Computacao e Informacao

A criacao de jogadores artificiais de poker vem recebendo atencao da co-

munidade academica nos ultimos anos. Por se tratar de um jogo com informacao

incompleta, nao e possıvel adotar abordagens comumente utilizadas em jogos como

xadrez ou damas, nos quais o estado do jogo e conhecido a todos os momentos. Os

agentes artificiais mais recentes da literatura sao baseados em conceitos de Teoria

dos Jogos, e os metodos de avaliacao sao baseados no desempenho contra outros

jogadores artificiais. Alem disso, as pesquisas nessa area tem se limitado a modali-

dade Texas Hold’Em para poucos jogadores. Este trabalho tem como objetivo criar

um jogador artificial de Pot-Limit Omaha Poker para jogos de ate seis jogadores,

que jogue de forma competitiva contra oponentes humanos. Para isso, propomos

um modelo baseado em uma rede bayesiana, usada para capturar as principais cor-

relacoes do jogo. O modelo usara a rede para fazer inferencias probabilısticas sobre

o estado do jogo e as possıveis acoes que cada jogador pode realizar. Com base nas

informacoes obtidas por estas inferencias, propomos um algoritmo de decisao que

considera a forca da mao e a probabilidade de desistencia de cada oponente.

Palavras-Chave: Redes bayesianas, poker, omaha

vii

Page 8: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Abstract of Undergraduate Project presented to POLI/COPPE/UFRJ as a partial

fulfillment of the requirements for the degree of Computer and Information Engineer.

SNOWMAN: A COMPETITIVE POT-LIMIT OMAHA POKER PLAYER

BASED ON BAYESIAN NETWORKS

Rafael Shinji Aoki Kikuchi

February/2012

Advisor: Daniel Ratton Figueiredo

Course: Computer and Information Engineering

Several researchers have studied the development of artificial poker players in

recent years. Poker is a game of incomplete information and, thus, cannot be solved

by using traditional approaches generally used in games like chess or checkers, where

the game state is known at all times. Most recent artificial agents shown in academic

literature are based on Game Theory principles, and are evaluated according to their

efficiency against other artificial players. Moreover, academic research in this area is

currently focusing on Texas Hold’Em games for few players (two or three). Our goal

with this work is to create an artificial Pot-Limit Omaha Poker player for games

with up to six players that plays competitively against human opponents. In order

to do that, we propose a model based on a Bayesian network, used to capture the

main correlations of the game. The model will use the Bayesian network to make

probabilistic inferences about the game state and the possible actions that each

player can take. Given the information obtained by these inferences, we propose

a decision algorithm that considers the player’s hand strength and the probability

that all the opponents fold their hands.

Keywords: Bayesian networks, poker, omaha

viii

Page 9: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Sumario

Lista de Figuras xi

Lista de Tabelas xii

1 Introducao 1

1.1 Regras do Hold’Em . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Regras do Pot-Limit Omaha . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Teoria do Poker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Desafios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.5 Contribuicoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.6 Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Trabalhos relacionados 11

2.1 Teoria dos jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Exploracao de oponentes . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Redes bayesianas 15

3.1 Construcao e Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Snowman 19

4.1 Categorizacao de Oponentes . . . . . . . . . . . . . . . . . . . . . . . 20

4.2 Acoes Pre-Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Classificacao de Flop . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.4 Classificacao de Turn e River . . . . . . . . . . . . . . . . . . . . . . 28

4.5 Forca das Maos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.5.1 Rank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.5.2 Draws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

ix

Page 10: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

4.5.3 Classificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.6 Tomada de Decisao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.6.1 Rede de Bayes . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4.6.2 Implementacao . . . . . . . . . . . . . . . . . . . . . . . . . . 33

5 Avaliacao 38

5.1 Validacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.2 Desempenho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Conclusao e trabalhos futuros 46

Referencias Bibliograficas 49

x

Page 11: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Lista de Figuras

1.1 Ganhos de “nanonoko” no PokerStars. . . . . . . . . . . . . . . . . . . . 2

3.1 Exemplo de rede bayesiana. . . . . . . . . . . . . . . . . . . . . . . . . 16

4.1 Comparacao entre distribuicoes de classificacao final de maos no River. . . 24

4.2 Estrutura da rede bayesiana proposta. . . . . . . . . . . . . . . . . . . . 37

5.1 Tela do software de simulacao. . . . . . . . . . . . . . . . . . . . . . . . 39

5.2 Posicoes relativas ao botao. . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3 Resultados obtidos pelo teste empırico com o modelo. . . . . . . . . . . . 44

xi

Page 12: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Lista de Tabelas

1.1 Classificacao de maos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.2 Exemplo de maos em Omaha Hold’Em. . . . . . . . . . . . . . . . . . . 5

1.3 Exemplo com possıveis acoes e calculo de EV. . . . . . . . . . . . . . . . 7

1.4 Exemplo com possıveis acoes e calculo de EV, assumindo equidades co-

nhecidas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.5 Exemplo de variacao de equidade por mudanca no board. . . . . . . . . . 7

4.1 Resumo dos conceitos das heurısticas utilizadas. . . . . . . . . . . . . . . 21

4.2 Categorizacao de oponentes. . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3 Exemplo de valores para nuttiness e playability. . . . . . . . . . . . . . . 25

4.4 Exemplo de distribuicao de forcas obtida pelo modelo. . . . . . . . . . . . 32

5.1 Compilacao dos resultados de validacao. . . . . . . . . . . . . . . . . . . 42

5.2 Estatısticas do teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

xii

Page 13: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Lista de Algoritmos

4.1 Algoritmo de decisao Pre-Flop. . . . . . . . . . . . . . . . . . . . . . . . 26

4.2 Algoritmo de calculo de heaviness. . . . . . . . . . . . . . . . . . . . . . . 27

4.3 Algoritmo de definicao de wetness. . . . . . . . . . . . . . . . . . . . . . 34

4.4 Algoritmo de classificacao de Turn e River. . . . . . . . . . . . . . . . . . 35

4.5 Algoritmo de classificacao de forca de mao. . . . . . . . . . . . . . . . . . 36

xiii

Page 14: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 1

Introducao

O poker boom, fenomeno que ocorreu entre 2003 e 2006[1], fez com que o

poker se popularizasse pelo mundo – em particular, no estilo Texas Hold’em. As

salas online de poker tambem foram afetadas neste perıodo, dobrando o numero de

jogadores a cada ano [1]. Estas salas funcionam de forma semelhante as de cassinos:

cria-se uma conta no site, deposita-se dinheiro e uma lista de mesas com diferentes

variacoes de poker sao disponıveis para o jogador. As principais diferencas dos

jogos online para os jogos ao vivo incluem a possibilidade de jogar varias mesas

simultaneamente e a impossibilidade de ver seus oponentes fisicamente.

Com a presenca de uma quantidade consideravel de jogadores inexperientes,

os jogos online se tornaram relativamente faceis de serem vencidos. Isto tornou

possıvel a profissionalizacao do poker online para virtualmente qualquer pessoa com

acesso a Internet [2].

Mesmo apos o poker boom, a atividade online nas mesas continuou alta: em

2011, o numero de jogadores residentes dos Estados Unidos era estimado entre 8

a 10 milhoes[3]. Mesmo com menos oponentes inexperientes, muitos profissionais

continuaram mostrando resultados e ganhos consistentes. Randy “nanonoko” Lew,

por exemplo, registrou lucros superiores a US$2 milhoes desde 2008 a um ritmo

incrivelmente consistente, como mostra a figura 1.1 [4].

1

Page 15: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Figura 1.1: Ganhos obtidos por Randy “nanonoko” Lew desde agosto de

2008 no site PokerStars, referentes a mais de cinco milhoes de maos jogadas

[4].

1.1 Regras do Hold’Em

O No-Limit Texas Hold’em e um estilo de poker praticado com duas cartas

fechadas para cada jogador (“hole cards”) e cinco cartas abertas e comunitarias

(“board”). Cada rodada e definida por um jogador que possui o button, usado

apenas como referencia posicional. Este jogador e denominado “button”, “botao”

ou “dealer”. O jogador a esquerda do botao deve iniciar a rodada fazendo uma

aposta forcada – o small blind (SB) – e o seguinte deve fazer outra aposta forcada

maior que a primeira – o big blind (BB). Estes jogadores sao denominados “small

blind” e “big blind”, respectivamente.

Cada rodada possui ate cinco etapas (tambem chamadas de streets): Pre-

Flop, Flop, Turn, River e Showdown. No Pre-Flop, os jogadores recebem suas

cartas, o small blind e o big blind sao postos em mesa e um ciclo de apostas e

iniciado a partir do jogador a esquerda do big blind, com aposta corrente no valor do

big blind – os conceitos de ciclo de apostas e aposta corrente serao discutidos mais

a frente. No Flop, tres cartas comunitarias sao reveladas e um novo ciclo de apostas

e iniciado a partir do small blind. Alem disso, a aposta corrente e zerada, mas as

fichas apostadas continuam em jogo (ou seja, o primeiro jogador a agir nao precisa

completar nenhuma aposta para se manter em jogo). Caso o small blind tenha

desistido da mao, o primeiro jogador a esquerda que ainda possuir suas cartas deve

iniciar o ciclo. No Turn, uma nova carta comunitaria e revelada e um terceiro ciclo de

apostas e iniciado a partir do small blind, com a aposta corrente zerada novamente.

2

Page 16: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

No River, a quinta e ultima carta comunitaria e revelada e o ultimo ciclo de apostas

e realizado, zerando-se a aposta corrente. Caso a rodada chegue ao Showdown, os

jogadores que ainda possuırem suas cartas devem revela-las. O jogador que possuir

a melhor combinacao de cinco cartas – dentre as sete disponıveis (duas privadas e

cinco comunitarias) – ganha as fichas da mesa. A forca das maos e seus criterios de

desempate sao definidos de acordo com a tabela 1.1. Se um empate persistir mesmo

apos a aplicacao destes criterios, as fichas em mesas sao divididas igualmente entre

os jogadores que empataram.

Cada ciclo de apostas possui uma aposta corrente, que, no caso inicial, e do

valor da aposta do big blind. O primeiro jogador a agir deve escolher entre: desistir

da mao (fold), pagar a aposta corrente (call) ou aumentar a aposta corrente (raise).

Caso o jogador opte pelo fold, as suas cartas sao descartadas sem serem reveladas.

Caso opte pelo call, o jogador deve colocar em mesa um numero de fichas equivalente

ao valor da aposta corrente. Por fim, se a opcao escolhida for raise, o jogador deve

anunciar um novo valor, superior ao da aposta corrente, e colocar o numero de fichas

anunciado na mesa. Neste caso, a aposta corrente passa a ser o valor anunciado.1

Depois de realizada a acao, o jogador a esquerda do anterior deve repetir o processo,

ate que se chegue ao jogador que definiu a ultima aposta corrente (“agressor”), que

nao deve mais agir. Ao termino do ciclo, caso o agressor seja o unico a permanecer

com as cartas, ele ganha as fichas em mesa (“pot” ou “pote”) e a rodada acaba.

Caso contrario, a etapa seguinte e iniciada.

O raise pode possuir limites superiores e inferiores em algumas modalidades.

O limite inferior geralmente e duas vezes o tamanho da aposta corrente ou um big

blind, caso a aposta corrente seja zero. No caso do No-Limit, como o nome indica,

nao ha limite superior para o valor do raise. O Fixed Limit (ou apenas Limit)

restringe o tamanho dos raises a um valor fixo, que pode variar de acordo com a

etapa da rodada – geralmente, o limite e de um big blind durante o Pre-Flop e Flop

e dois big blinds no Turn e no River.

1Quando a aposta corrente e zero, a acao call tambem e chamada de check e a acao raise

tambem e chamada de bet. Quando um jogador faz um raise ou call com todas as suas fichas,

diz-se que ele esta all-in. Estas acoes tambem sao chamadas de raise all-in e call all-in.

3

Page 17: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Nome Descricao Exemplo

Royal

Straight

Flush

Dez, valete, dama, rei e as do mesmo naipe. A♣ K♣ Q♣ J♣ 10♣

Straight

Flush

Sequencia de cinco cartas do mesmo naipe.

Quanto mais altas as cartas, mais forte e a mao.9♦ 8♦ 7♦ 6♦ 5♦

Quadra

Quatro cartas iguais. Caso haja empate, a maior

quadra e a mais forte. Se forem iguais, a quinta

carta (kicker) define a forca.

7♠ 7♦ 7♣ 7♥ 4♦

Full

House

Uma trinca e um par. Caso haja empate, a maior

trinca vence. Se forem iguais, a maior dupla

vence.

9♠ 9♦ 5♠ 5♣ 5♥

Flush

Cinco cartas do mesmo naipe que nao formam

uma sequencia. Caso haja empate, a maior carta

diferente define a forca.

3♠ 4♠ 5♠ 7♠ A♠

StraightCinco cartas em sequencia. Quanto mais alta a

sequencia, mais forte e a mao.A♣ 2♦ 3♦ 4♠ 5♥

Trinca

Tres cartas iguais. Quanto maior a trinca, mais

forte e a mao. A quarta carta e quinta cartas sao

usadas como criterio de desempate.

6♥ 6♦ 6♣ K♥ J♥

Dois

pares

Dois pares de cartas iguais. O primeiro criterio

de desempate e o maior par, seguido do segundo

par e, por fim, a quinta carta (kicker).

7♥ 7♣ 8♥ 8♣ K♥

Par

Duas cartas iguais e tres diferentes. O primeiro

criterio de desempate e o maior par, seguido da

terceira carta, quarta carta e quinta (kickers).

A♠ A♥ 7♣ 5♣ 3♦

Carta

alta

Nenhum das combinacoes acima. Vence o jo-

gador com maior carta, usando as demais como

criterio de desempate.

4♥ 8♣ 9♦ T♦ K♠

Tabela 1.1: Classificacao de maos.

4

Page 18: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

1.2 Regras do Pot-Limit Omaha

O Pot-Limit Omaha (PLO) e uma variacao do Texas Hold’Em. Todas as

regras sao as mesmas, exceto pela estrutura de apostas, pelo numero de cartas

privadas e pela formacao de mao final.

Como o nome sugere, o tamanho das apostas possui um limite superior, que

e o tamanho do pote atual depois do necessario para cobrir a aposta corrente. Por

exemplo, em um jogo com blinds de 1 e 2 fichas, o primeiro jogador a agir deve

colocar 2 fichas em mesa para cobrir a aposta, totalizando um pote com 5 fichas.

Portanto, o maior raise possıvel para este jogador e de, no maximo, 7 (2 + 5) fichas.

O numero de cartas privadas de cada jogador tambem e diferente: passa

a ser quatro ao inves de duas. Alem disso, ha uma nova restricao na formacao

de maos. Ao inves de considerar todas as quatro cartas privadas e todas as cinco

cartas comunitarias para formar a melhor mao possıvel, cada jogador deve considerar

apenas as combinacoes que usem exatamente duas cartas privadas e tres cartas

comunitarias. Mesmo com esta restricao, o numero de cartas iniciais faz com que

jogos melhores sejam mais frequentes – no River, existem 60 combinacoes possıveis

de cinco cartas no Omaha, contra apenas 21 no Texas Hold’Em.

Hole Cards Board Mao Formada

A♣ A♦ A♥ K♣ A♠ K♥ J♣ 5♣ 2♣ A♣ K♣ J♣ 5♣ 2♣

A♣ 7♦ 8♦ 9♦ 5♣ 6♣ A♥10♣ J♣ A♣ A♥ J♣ 10♣ 9♦

Tabela 1.2: Maos formadas em Omaha Hold’Em a partir das cartas privadas e do board.

1.3 Teoria do Poker

Se as cartas privadas de cada jogador fossem abertas a todos, as decisoes

matematicamente corretas seriam triviais, considerando que todos joguem de forma

otima. E possıvel calcular em tempo habil todas as combinacoes de board (cartas

5

Page 19: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

comunitarias) e saber qual a porcentagem de vezes que cada jogador venceria. Este

valor e definido como a equidade que cada jogador possui sobre o pote.

Considere um caso em que ha apenas dois jogadores em jogo, com as se-

guintes maos: K♣ K♠ e Q♦ J♥. Considere ainda que o jogo esta no Turn, com

as seguintes cartas comunitarias: 3♥ 5♠ 9♦ 10♣. Existem apenas seis cartas que

fazem o segundo jogador vencer, que sao 8♥, 8♦, 8♠, 8♣, K♥ e K♦. Assume-

se que o baralho esteja perfeitamente embaralhado e, portanto, a distribuicao das

possıveis cartas do River e uniforme. Como existem 44 cartas possıveis restantes,

a probabilidade de o segundo jogador ganhar e de 644

= 13.64% (sua equidade). O

mesmo conceito pode ser aplicado para o Pre-Flop, Flop e River.

Assim, basta calcular o valor esperado (EV) de cada decisao e escolher a que

o maximiza. Note que, uma vez as fichas ja estao no pote – caso dos blinds –, elas

nao devem ser mais considerados como valor perdido no calculo do EV.

Para ilustrar um caso, suponha uma rodada composta por dois jogadores: A

(botao/SB) e B (BB). Cada jogador possui 5 fichas e os blinds (apostas forcadas

iniciais) sao de 1 e 2 fichas. Portanto, o tamanho inicial do pote e de 3 fichas e os

jogadores A e B possuem 4 e 3 fichas restantes, respectivamente. Assume-se que o

jogador A possui equidade X e o jogador B possui equidade Y = 1 −X. Em caso

de raise, PBfold indica a probabilidade do jogador B realizar fold.

O valor esperado caso o jogador A realize um raise all-in e:

EVA,Aall-in = PBfold · (Pote Atual) + PBfold · EVA,Bcall (1.1)

onde

EVA,Bcall = X · (Pote Total− Fichas Restantes)−X · (Fichas Restantes) . (1.2)

Por outro lado, o valor esperado de um call do jogador B contra um raise

all-in do jogador A e:

EVB,Bcall = Y ·(Pote Total− Fichas a Completar)−Y ·(Fichas a Completar) . (1.3)

A tabela 1.4 mostra os valores esperados de algumas acoes possıveis. Repare

que os valores esperados das jogadas de ambos os jogadores podem ser positivos.

Contra um Raise All-in de A, basta que a equidade de B seja superior a 30% para

o EV do call ser positivo. Ao mesmo tempo, mesmo que PBfold seja nulo, se X

6

Page 20: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Acao A Acao B EVAcao A EVAcao B

Fold - 0 -

Raise All-In Fold 3PBfold + PBfold (10X − 4) 0

Raise All-In Call 3PBfold + PBfold (10X − 4) 7Y − 3Y

Tabela 1.3: Possıveis acoes tomadas pelos jogadores A e B e os respectivos calculos de

valor esperado.

for maior que 40%, o valor esperado de um Raise All-in de A e maior que zero.

Por exemplo, se X = 45%, ambos os jogadores estao matematicamente corretos em

apostar suas fichas, ja que o valor esperado de A seria de, no mınimo, +0.5 e o valor

esperado de B seria de +1.5.

Acao A Acao B EVAcao A EVAcao B

Fold - 0 -

Raise All-In Fold 3PBfold + 0.5PBfold 0

Raise All-In Call 3PBfold + 0.5PBfold 1.5

Tabela 1.4: Valores esperados de possıveis acoes tomadas pelos jogadores A e B, assu-

mindo uma equidade de 45% para A e de 55% para B.

E importante ressaltar que a equidade de cada jogador e bem dinamica. Toda

vez que um jogador sai de uma rodada, a equidade que este jogador possuıa sobre

o pote e dividida entre os demais que continuam em jogo (raramente igualmente).

Alem disso, cada carta comunitaria nova potencialmente altera as equidades de cada

jogador, como exemplificado na tabela 1.5.

Mao EquidadePre-Flop EquidadeFlop 3♣ 4♦ J♣

A♦A♥ 76.9% 43.7%

5♣ 6♣ 23.1% 56.3%

Tabela 1.5: Exemplo de variacao de equidade por mudanca no board.

Isto ocorre porque as cartas comunitarias tendem a combinar de formas dife-

rentes com as maos privadas, definindo classificacoes de maos diferentes ou aumen-

tando a chance de ocorrencia de classificacoes maiores. Por exemplo, K♣ K♦ possui

83% de equidade contra Q♣ Q♦ no Pre-Flop. Mas, em um Flop com Q♠ 3♦ 4♣, a

7

Page 21: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

equidade da primeira mao cai para 9% devido a mudanca de classificacao da segunda

mao (trinca). Alem disso, nao ha chance para straights ou flushes para nenhum jo-

gador. Por outro lado, se o Flop fosse Q♠ J♦ A♣, a equidade da primeira mao

cairia para apenas 21%, devido a possibilidade de straight.

1.4 Desafios

Como o poker e um jogo com informacao incompleta – durante o jogo, as

cartas fechadas dos oponentes sao desconhecidas –, a analise de equidades se torna

mais complexa. E possıvel estimar quais as possıveis maos que um oponente pode

ter (“range”) baseado em seu comportamento passado. Por exemplo, se um jogador

costuma realizar um raise no Pre-Flop com 8% das maos, pode-se supor que, ao

fazer isto, ele esteja com uma das 8% melhores maos de todo espectro possıvel de

cartas iniciais.

Para jogos de poker online, existem softwares que auxiliam na coleta de in-

formacoes sobre os jogadores, provendo estatısticas sobre as maos jogadas pelos

oponentes anteriormente. A porcentagem de raise no Pre-Flop e uma destas es-

tatısticas.

Entretanto, o comportamento pode nao seguir sempre o mesmo padrao. Bons

jogadores prezam pelo o que e chamado de “range balanceado”. Se um jogador so

demonstra agressividade (bets e raises altos) quando possui maos fortes, e facil notar

este padrao e explora-lo – realizando fold contra suas agressoes e o agredindo quando

esta passivo. Por outro lado, se um jogador faz os mesmos tipos de jogadas com

maos fortes e blefes, torna-se mais difıcil para seus oponentes conseguirem fazer uma

leitura clara de suas maos.

Alem disso, o comportamento dos jogadores costuma ser fortemente influen-

ciado pelos seus oponentes. Se ha um jogador inexperiente em mesa que joga muitas

maos, e comum que um bom jogador faca mais raises no Pre-Flop que o usual, a fim

de tentar jogar contra ele sozinho e eliminar outros jogadores da rodada. O jogador

mais experiente consegue ler melhor a mao de um oponente que e novo no jogo e,

assim, obter vantagem sobre ele no Post-Flop (Flop, Turn e River).

Mais ainda, existem muitas combinacoes de acoes e boards possıveis para

8

Page 22: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

que se possa analisar as jogadas de forma naive – raramente um estado de jogo com

condicoes identicas e repetido. Ou seja, mesmo com um historico grande de maos de

um jogador, dificilmente podemos prever suas acoes com base em estados identicos

observados anteriormente. Muitas decisoes sao tomadas com base na percepcao de

padroes pelos proprios jogadores, sem auxılio de estatısticas do software. Por fim, o

padrao de acoes de um jogador pode ser influenciado por motivos nao observaveis,

como influencias psicologicas ou emocionais.

Por estes motivos, mecanizar decisoes no poker nao e uma tarefa trivial. Mui-

tas variaveis precisam ser consideradas, com diversas correlacoes que podem nao ser

intuitivas. Em todo o caso, este problema vem recebendo a atencao da comunidade

academica ha decadas e diversos softwares baseados em diferentes abordagens vem

sendo desenvolvidos. Estes trabalhos serao discutidos no capıtulo 2.

1.5 Contribuicoes

Este trabalho visa criar um jogador artificial de Pot-Limit Omaha que jogue

de maneira competitiva contra jogadores reais, em mesas de ate seis jogadores. Para

isso, tentaremos capturar as principais correlacoes do jogo e dos jogadores usando

um modelo probabilıstico conhecido como rede de Bayes. Este tipo de modelo e

representado por um grafo direcionado em que cada no e associado a uma variavel

aleatoria e a estrutura do grafo define relacoes de dependencia entre elas – em geral,

as arestas podem ser vistas como indicadores de causa entre as variaveis aleatorias.

Mais detalhes sobre redes de Bayes serao abordados no capıtulo 3.

Com a rede definida, usaremos as informacoes probabilısticas nela obtidas

para decidir as jogadas. As variaveis aleatorias que consideraremos incluem os tipos

de acao dos oponentes (fold, call ou raise) e as forcas das maos de cada jogador. Com

base nas distribuicoes destas variaveis aleatorias, vamos definir um algoritmo que

realize jogadas com valor esperado positivo, dado um estado de jogo e as estimativas

do modelo.

Apos a implementacao e aprendizado da rede de Bayes, o algoritmo sera

validado atraves da comparacao entre decisoes do modelo e decisoes de um jogador

experiente. Para isso, cinco cenarios serao criados e as decisoes serao comparadas.

9

Page 23: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Apos a avaliacao, o modelo sera avaliado empiricamente em jogos reais, atraves de

uma serie de maos jogadas conforme o algoritmo. Para isso, uma mesa de um site

de poker online sera aberta simultaneamente com um software capaz de simular

estados do jogo e gerar as decisoes do algoritmo. Apos esta serie, o desempenho

do modelo sera avaliado em relacao aos seus ganhos ou suas perdas, alem de outras

estatısticas relevantes.

1.6 Documento

Este documento esta estruturado em 6 capıtulos. No capıtulo 2, faremos uma

revisao do estado da arte relacionado ao tema. O capıtulo 3 e destinado a uma breve

explicacao sobre redes de Bayes e modelagens a partir delas. No capıtulo 4, iremos

detalhar a construcao e implementacao do modelo proposto. O capıtulo 5 detalha o

metodo de avaliacao e os resultados obtidos com o algoritmo. Por ultimo, o capıtulo

6 trata das conclusoes obtidas e possibilidades de trabalhos futuros relacionados.

10

Page 24: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 2

Trabalhos relacionados

Jogos de informacao incompleta, em que os jogadores nao sabem o estado

completo do jogo a todos os instantes, possuem aspectos desafiadores sob um ponto

de vista estrategico. Neste tipo de jogo, nao se pode aplicar os mesmos metodos

usados para resolver jogos de informacao completa, como xadrez ou damas [5]. Por

um lado, um jogador deve observar as acoes realizadas pelos demais agentes e ra-

ciocinar no que elas dizem respeito em relacao aos seus respectivos conhecimentos

sobre o estado do jogo. Por outro lado, o jogador deve ter cuidado ao realizar suas

acoes, para que nao revele informacoes de forma excessiva sobre seu conhecimento

do estado.

Algumas modalidades de poker se tornaram base para estudos nesta area,

incluindo variacoes inventadas por pesquisadores para reduzir o espaco de busca

do problema[6, 7]. Como visto no capıtulo 1, o poker apresenta caracterısticas

interessantes relacionadas a estados futuros probabilısticos e variacoes de equidades.

Ao mesmo tempo, e necessario interpretar as acoes dos oponentes da melhor maneira

possıvel e, ainda, agir de forma que se garanta um range balanceado. Por estes e

outros motivos, o poker se tornou um dos principais jogos relacionados ao estudo de

jogos com informacao incompleta [5].

A Association for the Advancement of Artificial Intelligence (AAAI) promove

uma competicao anual entre jogadores artificiais de poker (bots) desde 2006 – a

Annual Computer Poker Competition (ACPC) [8]. O evento tem como objetivo

ajudar a evolucao da area de inteligencia artificial atraves do estımulo dado pela

natureza da competicao, mesmo sem conferir premios aos participantes. Em 2011,

11

Page 25: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

o evento contou com tres categorias de poker: Limit Texas Hold’Em para dois

jogadores (Heads-Up), No-Limit Texas Hold’Em para dois jogadores e Limit Texas

Hold’Em para tres jogadores. A primeira categoria contou com 21 participantes, a

segunda com 8 e a ultima com 10 participantes.

2.1 Teoria dos jogos

Hoje, os melhores programas que jogam poker sao baseados em algoritmos

que seguem princıpios de teoria dos jogos. E possıvel resolver jogos de soma-zero

com dois jogadores de ate 1012 nos-folha, de forma proxima ao otimo global [5].

Entretanto, jogos reais de poker podem ter um numero de folhas ordens de grandeza

superior a este valor – o Limit Texas Hold’Em para dois jogadores, por exemplo,

possui 1018 folhas [5]. Para tratar este problema, as abordagens mais recentes lidam

com abstracoes simplificadas dos jogos reais – que podem perder informacao (lossy)

ou nao (lossless) – e usam algoritmos de busca de equilıbrio nestas abstracoes [5].

Apesar dos avancos, jogadores artificiais de poker ainda sao incapazes de

vencer jogadores humanos experientes nas modalidades com big bets (No-Limit e

Pot-Limit) [5]. Para jogos com este tipo de estrutura, que possuem muitas acoes

possıveis por estado, abstracoes lossy foram sugeridas para simplificar as possıveis

acoes que cada jogador pode tomar. A ideia deste tipo de abstracao e limitar o espaco

de busca restringindo as possibilidades de apostas para cada jogador. Embora muitas

acoes sejam eliminadas, a arvore de jogo tende a fazer uma representacao proxima

do jogo completo, uma vez que as arestas escolhidas para permanecer idealmente

representam a maioria das acoes tomadas pelos jogadores. Com isso, o espaco de

busca e consideravelmente reduzido e algoritmos de busca de equilıbrio podem ser

executados de forma mais eficiente.

Embora a maior parte dos estudos se concentre em jogos com dois jogado-

res, pesquisas e algoritmos tambem foram feitos para casos com tres agentes, em

configuracoes especıficas (modalidade No-Limit Texas Hold’Em em formato de tor-

neio, com stacks e blinds variaveis) [9]. As estrategias adotadas nestes algoritmos

satisfazem um ε-equilıbrio com ε pequeno em relacao ao buy-in do torneio (preco

de inscricao do torneio). Ou seja, assumindo que um jogador adote uma destas

12

Page 26: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

estrategias, nenhum outro jogador consegue obter um payoff esperado superior a

ε [10]. Apesar de apresentar bons resultados, esses algoritmos sao baseados em

jam/fold, isto e, as unicas decisoes tomadas sao raise all-in ou fold.

Um lado negativo deste tipo de abordagem e a alta variancia, ou seja, os

resultados obtidos a cada jogada tendem a ficar distantes do valor esperado. Isto e

indesejado em casos com dinheiro real, ja que e necessario uma amostra muito grande

de jogos para obter um retorno proximo ao valor esperado com pouca incerteza

(caso uma pessoa tente reproduzir o modelo com dinheiro para apenas um buy-in,

o risco de perda e altıssimo). Assumindo que exista outra estrategia que consiga

obter o mesmo payoff esperado sobre seus oponentes, mas que jogue de forma mais

cautelosa (fazendo raises menores durante o Pre-Flop e jogando o Post-Flop), e

intuitivo imaginar que haja menos variancia – e mais provavel que cada rodada

acabe antes que todas as fichas sejam apostadas.

2.2 Exploracao de oponentes

Levando em consideracao que os oponentes possivelmente nao joguem con-

forme um equilıbrio estabelecido pela Teoria dos Jogos, outro tipo de abordagem

para o problema pode ser tomado. Se um jogador toma decisoes que podem ser ex-

ploradas, usar uma estrategia que garanta equilıbrio nem sempre garante o retorno

maximo [5]. Alguns estudos tambem foram feitos nessa direcao[11], mas este tipo

de abordagem esta menos em voga que os algoritmos baseados em teoria dos jogos.

Um dos problemas relacionados a esse metodo e a identificacao de falhas

nas estrategias dos adversarios. Antes de aplicar uma estrategia que explore um

oponente, e necessario aprender o que ele faz de forma nao otima e, so em seguida,

comecar a aplicar a estrategia. Alem disso, tambem e necessario que a estrategia se

adapte de acordo com as mudancas no comportamento do oponente – caso contrario,

a estrategia pode passar a ser explorada.

Tambem foi provado que nao e possıvel adotar metodos de exploracao e, ao

mesmo tempo, garantir um payoff esperado igual ou superior ao de uma estrategia

de equilıbrio [5]. Ou seja, nao ha uma estrategia de exploracao que tambem satisfaca

um equilıbrio da Teoria dos Jogos. Caso a estrategia de um oponente varie, nao ha

13

Page 27: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

certeza se o metodo de exploracao continue valendo e, com isso, nao ha garantias

sobre o payoff.

Por fim, abordagens que visam explorar oponentes vem sido superadas por

algoritmos que se baseiam em princıpios de equilıbrio da Teoria dos Jogos na Annual

Computer Poker Competition [5].

14

Page 28: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 3

Redes bayesianas

Redes bayesianas (ou redes de Bayes) sao representacoes graficas de modelos

probabilısticos na forma de grafos direcionados. Nestes grafos, os nos representam

variaveis aleatorias de interesse e as arestas indicam suas dependencias condicio-

nais. Muitas vezes, as arestas podem ser interpretadas como indicadores de causa.

Alem da estrutura do grafo, cada vertice da rede de Bayes tambem deve possuir a

distribuicao condicional do vertice em relacao aos seus pais.

Para exemplificar, considere o modelo da figura 3.1. Cada vertice da estrutura

representa uma variavel aleatoria discreta e, portanto, a distribuicao condicional de

cada no pode ser representada atraves de uma tabela de probabilidades. Note que

o evento “Grama Molhada” possui os eventos “Sprinkler” e “Chuva” como duas

causas provaveis. Observe ainda que distribuicao condicional indica a forca de cada

um desses relacionamentos – nota-se uma correlacao entre diversas variaveis, como

“Grama Molhada” e “Chuva”.

Com a rede bayesiana definida, ha uma e apenas uma distribuicao conjunta

de probabilidade que satisfaz todas as suas restricoes [12]. Mesmo com as distri-

buicoes condicionais para cada no da rede (em relacao aos pais), ainda nao e possıvel

definir uma distribuicao unica para o modelo. Entretanto, a estrutura da rede impoe

relacoes de dependencia entre as variaveis, de forma que so uma distribuicao con-

junta para todas as variaveis aleatorias seja possıvel para o modelo completo.

Em especial, caso os valores dos pais de um vertice sejam conhecidos, assume-

se que este no se torna independente dos demais vertices nao descendentes. Intuitiva-

mente, isto pode ser pensado da seguinte forma: cada variavel se torna independente

15

Page 29: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Grama Molhada

(GM)

Sprinkler (S)

Chuva(C)

Nublado (N)

P(N=V) P(N=F)

0.5 0.5

S C P(GM=F) P(GM=V)

F F 1.0 0.0

F V 0.1 0.9

V F 0.1 0.9

V V 0.01 0.99

N P(S=F) P(S=V)

F 0.5 0.5

V 0.9 0.1

N P(C=F) P(C=V)

F 0.8 0.2

V 0.2 0.8

Figura 3.1: Exemplo de uma rede de Bayes simples, com quatro vertices.

dos seus nao efeitos uma vez que suas causas diretas sao conhecidas. Por exemplo,

na rede da figura 3.1, “Nublado” e independente de “Grama Molhada” se os valores

de “Sprinkler” e “Chuva” sao conhecidos.

Alem disso, uma rede de Bayes possui tipicamente mais relacoes de inde-

pendencia entre variaveis do que o exemplo anterior. As independencias podem ser

verificadas atraves de testes de d-separacao – as variaveis X e Y sao independentes

dado um conjunto de variaveis Z se todos os caminhos nao direcionados entre X e

Y sao bloqueados por Z [13]. Sao conhecidos algoritmos para encontrar conjuntos

de nos que fazem dois vertices serem d-separados em tempo linear [14]. Com isso,

e possıvel saber de forma rapida se o conhecimento de algumas variaveis gera res-

tricoes sobre outros vertices. Isto torna mais eficiente a obtencao dos valores sobre

as variaveis (inferencias) e o treinamento da rede.

Com as distribuicoes definidas em um modelo, e possıvel fazer inferencias

poderosas sobre as variaveis de interesse. Considerando o exemplo anterior, pode-se

16

Page 30: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

calcular probabilidades condicionais como Pr (C | GM) ou Pr (C | ¬N, GM). Mais

ainda, existem algoritmos capazes de calcular estes tipos de probabilidades de forma

eficiente, sem ter que recorrer a construcao da distribuicao conjunta completa do

modelo [12] – o que pode ser computacionalmente inviavel, dependendo do tamanho

da rede.

3.1 Construcao e Aprendizado

Existem tres metodos principais para a criacao de redes bayesianas [15]. O

primeiro se baseia no conhecimento e percepcao da propria pessoa que constroi a

rede – usualmente, atraves de observacoes sobre influencias de causa e efeito nas

variaveis de interesse. Com isso, define-se uma estrutura para a rede e a distri-

buicao condicional de cada no baseando-se apenas na experiencia da pessoa que

esta modelando o sistema.

O segundo metodo de construcao se baseia no uso de algum tipo formal de

conhecimento ja existente. Aplicacoes que fazem analise e diagnosticos (de sistemas,

por exemplo) podem ser usualmente transformadas em redes de Bayes [15].

Por fim, o terceiro metodo se baseia em analises estatısticas sobre conjuntos

de dados. Com base em um conjunto de treinamento e a estrutura de uma rede, e

possıvel definir as distribuicoes que melhor encaixam os dados na estrutura dada.

Alternativamente, tambem existem formas de aprender tanto a estrutura da rede

quanto suas distribuicoes [15].

Os principais metodos de aprendizado para redes de Bayes se baseiam em

dois princıpios: maxima verossimilhanca ou abordagens bayesianas [15]. Ambos

utilizam uma massa de dados que foram observados empiricamente (conjunto de

treinamento). Metodos de maxima verossimilhanca favorecem redes que maximizam

a probabilidade de observar os dados do conjunto de treinamento. Por outro lado, as

chamadas abordagens bayesianas usam o princıpio de verossimilhanca em conjunto

com algum tipo de informacao previa. Por exemplo, caso o tipo de distribuicao para

uma variavel seja conhecido de antemao, pode-se treinar o modelo para ajustar seus

parametros (ao inves da distribuicao em si).

As construcoes de redes de Bayes deste trabalho sao baseadas no terceiro

17

Page 31: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

metodo, embora as estruturas sejam criadas de forma semelhante ao primeiro metodo

– com base em conhecimentos previos sobre o domınio. Ou seja, as distribuicoes con-

dicionais de cada no da rede serao definidas a partir de um conjunto de treinamento,

mas a estrutura da rede sera definida de antemao.

18

Page 32: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 4

Snowman

O objetivo deste trabalho e criar um jogador artificial de Pot-Limit Omaha

Poker capaz de jogar de maneira competitiva contra jogadores humanos. Repare que

a sutil premissa de que o sistema seja eficiente contra pessoas (e nao necessariamente

contra outros agentes artificiais) implica em diferencas significativas em relacao aos

trabalhos vistos no capıtulo 2. Enquanto jogadores artificiais tendem a jogar de

forma proxima a um equilıbrio de Nash, jogadores humanos dificilmente chegam

perto de manter todas suas jogadas proximas a um equilıbrio. No contexto de jogos

de informacao incompleta, as acoes de jogadores humanos geram menos ambiguidade

do que as de um jogador em perfeito equilıbrio e, portanto, apresenta correlacoes

mais evidentes entre suas acoes e seu conhecimento sobre o estado do jogo.

Alem disso, nao existe um tipo fixo de jogador humano. Pelo contrario, as

estrategias adotadas podem variar bruscamente de pessoa para pessoa. O com-

portamento individual tambem pode sofrer mudancas de acordo com variaveis que

podem nao ser observaveis, como o estado emocional da pessoa. Assim, e necessario

analisar um historico de maos consideravelmente grande para fazer um estudo esta-

tisticamente relevante sobre a estrategia de um jogador humano.

A modalidade de poker em questao tambem e consideravelmente mais com-

plexa do que as tradicionalmente abordadas na literatura academica. O Texas

Hold’Em possui duas cartas privadas por jogador, o que resulta em 1,326 maos ini-

ciais distintas, sendo apenas 169 nao equivalentes (desconsidera-se maos com naipes

distintos, mas equivalentes em forca, como A♣ K♣ e A♠ K♠). Em contrapartida,

o Omaha possui quatro cartas privadas por jogador, resultando em 270,725 maos

19

Page 33: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

iniciais distintas e 16,432 nao equivalentes.

A distribuicao de equidades tambem tende a ser muito mais suave no Omaha

do que no Texas Hold’Em, fazendo com que o entendimento do conceito de EV seja

essencial para realizar as jogadas corretas – embora muitas vezes um jogador esteja

com uma mao pior do que a de um oponente, sua equidade pode ser o suficiente

para realizar calls contra jogadas agressivas. Isto e intensificado na estrutura de

Pot-Limit, em que as apostas sao limitadas superiormente pelo tamanho do pote.

Mesmo contra a aposta maxima, basta um jogador possuir 33.4% de equidade para

realizar um call correto.

Por fim, este trabalho tem como foco jogos de ate seis jogadores (6-max ),

considerado o estilo mais popular entre os jogos online. Como visto no capıtulo 2,

o estudo feito para encontrar uma estrategia de equilıbrio em casos com multiplos

jogadores foi limitado a situacoes muito especıficas, onde o numero de acoes e bem

limitada.

O modelo proposto neste trabalho usa uma serie de heurısticas que serao

melhor detalhadas nas secoes a seguir. Um resumo sobre os conceitos que envolvem

cada uma delas e feito na tabela 4.1.

4.1 Categorizacao de Oponentes

Embora as estrategias variem de acordo com o jogador, e possıvel perceber

que certos jogadores adotam estilos de jogo semelhantes aos de outros jogadores.

Certos oponentes, por exemplo, jogam de forma extremamente agressiva, apostando

em quase todas as oportunidades. Outros, fazem o contrario: raramente apostam e

tendem a adotar uma postura passiva.

Este tipo de tendencia pode ser observado com um historico relativamente

pequeno de maos, analisando estatısticas como numero de apostas e numero de

maos jogadas. Em jogos online, uma estatıstica comumente usada e o fator de

agressao (aggression factor ou AF), que e calculado conforme a equacao 4.1, onde

NA representa o numero de vezes que o jogador realizou a acao A no Post-Flop.

AF =NBets + NRaises

NChecks + NCalls

(4.1)

20

Page 34: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Heurıstica Conceito

Nuttiness Tendencia que as cartas privadas possuem de

formar a melhor mao possıvel dado um board.

Playability Tendencia que as cartas privadas possuem

de formar maos dificilmente dominadas (com

equidade muito baixa) no Post-Flop.

Tipo de Jogador Classificacao de jogadores baseada no numero

de jogadas agressivas e na selecao de maos

iniciais.

Flop Heaviness Composicao de cartas altas e medias no Flop.

Flop Wetness Jogos fortes (ou potencialmente fortes) que o

Flop permite.

Tipo de Turn/River Como a carta do Turn e River alterou o wet-

ness do board.

Forca Potencial (Draws) Potencial que uma mao possui de formar jogos

melhores, dado um board incompleto.

Stack-to-Pot Ratio (SPR) Quantidade de fichas que um jogador possui

em relacao ao tamanho do pot.

Tabela 4.1: Resumo dos conceitos das heurısticas utilizadas.

Outra estatıstica amplamente utilizada e o voluntarily put money in the pot

(VPIP), definida conforme a equacao 4.2 – o numerador indica o numero de vezes que

o jogador colocou fichas em mesa durante o Pre-Flop e o denominador representa o

numero total de maos observadas deste jogador. Esta medida informa a porcentagem

de maos iniciais jogadas por um jogador. Em geral, este valor tambem e usado para

medir o nıvel do oponente: jogadores que jogam muitas maos iniciais tendem a ser

mais inexperientes no jogo e costumam entrar com muitas maos fracas nos jogos.

Por outro lado, oponentes que jogam pouquıssimas maos iniciais possuem maos mais

faceis de serem estimadas, ja que estes representam as maos iniciais mais fortes. Um

bom jogador idealmente possui um range de maos iniciais amplo o suficiente para

que seja difıcil estimar suas cartas, mas baixo o bastante para evitar maos fracas

21

Page 35: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

que costumam ter pouca equidade.

V PIP =NPFCalls + NPFRaises

NTotal

(4.2)

Estes tipos de informacao ajudam a categorizar os adversarios e indicam um

estilo de jogo mais provavel para eles. Outros dados estatısticos tambem podem ser

usados para definir melhor as tendencias dos oponentes, mas nao serao discutidos

neste trabalho.

Uma vez definidas as categorias possıveis para cada oponente, e possıvel

analisar o comportamento medio dos jogadores por cada categoria. Assim, tao

logo um oponente e classificado, suas tendencias podem ser previstas atraves da

analise feita anteriormente para sua categoria. Isto faz com que nao seja necessario

um historico muito grande de maos para entender a estrategia adotada por cada

oponente.

Para a modelagem deste trabalho, cinco categorias de jogador foram conside-

radas, conforme indica a tabela 4.2. Os criterios de cada categoria sao cumulativos

e estao em ordem de prioridade. Por exemplo, um jogador e classificado como Pas-

sive se ele possui pelo menos 20 maos jogadas, tem V PIP inferior ou igual a 40%

e possui AF abaixo de 2.0. Estas classificacoes sao amplamente conhecidas na co-

munidade do poker (inclusive, possuem subcategorias), mas nao ha criterios muito

bem definidos sobre como a classificacao e feita. Isto dito, os criterios indicados na

tabela 4.2 foram definidos a partir de concepcoes pessoais.

Categoria Criterio

Unknown Numero de maos < 20

Fish V PIP > 40%

Passive AF < 2.0

Loose Aggressive V PIP > 25%

Tight Aggressive Demais casos

Tabela 4.2: Categorizacao de oponentes.

22

Page 36: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

4.2 Acoes Pre-Flop

No Omaha, as equidades no Pre-Flop costumam ser muito proximas e rara-

mente sao maiores do que 60%. Isto faz com que muitos jogadores baseiem suas

jogadas iniciais exclusivamente nas suas cartas privadas – desconsiderando as acoes

dos oponentes.

Entretanto, as maos iniciais possuem caracterısticas importantes, como nut-

tiness e playability. O nuttiness indica qual a tendencia das cartas privadas gerarem

a melhor mao possıvel dado um board (nuts). Por exemplo, uma mao inicial com

as e outra carta do mesmo naipe (como A♣ 8♣ 7♥ 6♠) pode gerar o melhor flush

possıvel (nut flush). Embora um flush sem o as seja razoavelmente forte, e difıcil

saber se um oponente possui um flush melhor que o seu. Pior do que isso, suponha

que sua mao inicial e 4♥ 5♥ 6♦ 7♦ e imagine que um jogador agressivo aposte

no Flop (A♦ 9♥ 2♥). Nao e possıvel ter uma leitura clara se as cartas de copas

devem ser consideradas como positivas no calculo da equidade, ja que o oponente

pode ter cartas de copas maiores. Caso assuma que sim erroneamente, o jogador

potencialmente perde muitas fichas quando uma carta que completa o flush aparece

no board. Esta falsa premissa (de que algumas cartas ajudam o jogador, mas na

verdade nao ajudam) tambem e chamado de reverse implied odds.

O playability diz respeito a distribuicao da classificacao de uma mao de acordo

com os possıveis boards. Em geral, quanto mais suave esta distribuicao, menor

e a chance de uma leitura errada de equidades no Post-Flop. Uma mao inicial

com quatro cartas em sequencia, como 6♥ 7♣ 8♦ 9♣, muitas vezes possui um

straight draw (chamada para sequencia) no board. Outras vezes, possui tanto um

straight draw quanto um flush draw – para o exemplo de mao dado, um possıvel

Flop deste tipo seria A♣ 4♦ 5♣. E extremamente raro que um oponente domine a

equidade nestes casos e, por isso, caso haja um erro na interpretacao de equidades,

ele tende a ser menor. A figura 4.1 mostra um exemplo com as distribuicoes de

classificacoes para duas maos: A♦ A♥ Q♣ 6♠ (pouca playability), e 6♣ 7♥ 8♣ 9♥

(alta playability).

Como as acoes durante o Pre-Flop pouco afetam as acoes da maioria dos

oponentes no Omaha, as analises desta street nao serao muito aprofundadas neste

trabalho. Para auxiliar a decisao no Pre-Flop, heurısticas de nuttiness e playability

23

Page 37: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Figura 4.1: Comparacao entre as distribuicoes das classificacoes finais de

duas maos de Omaha: A♦ A♥ Q♣ 6♠ (acima) e 6♣ 7♥ 8♣ 9♥ (abaixo). As

imagens foram obtidas pelo software ProPokerTools Odds Oracle 1.95 [16].

(variando entre 0 e 1) sao geradas e uma acao apropriada e tomada de acordo com

os valores calculados.

Tanto no calculo do nuttiness quanto no do playability, verifica-se primeiro

se existem tres ou quatro cartas da mesma classe (como A♥ A♦ A♣ K♣). Em

caso positivo, ambos os valores sao considerados zero. Isto e feito porque tres (ou

quatro) cartas iguais diminuem fortemente a equidade de uma mao, pois apenas

duas poderao ser usadas para formar a mao final.

Em seguida, para o nuttiness, considera-se os pares que a mao inicial possui.

Quanto maiores os valores dos pares, maior e o valor acrescido a heurıstica. Caso

24

Page 38: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

nao haja pares, o potencial de straight e verificado: quanto mais proximas as cartas

estiverem, maior e o potencial. Por fim, considera-se as possibilidades de flush da

mao: para todos os naipes que possuırem duas ou mais cartas, verifica-se a maior

delas e um valor proporcional e somado a heurıstica. Em todos os casos, o valor de

face das cartas e verificado – caso sejam baixas, a probabilidade de formar a melhor

mao possıvel e reduzido.

No calculo do playability, verifica-se a conectividade das cartas de forma

semelhante ao modo como e feito no nuttiness : quanto mais proximas, maior e o

valor acrescido a heurıstica – entretanto, cartas repetidas sao desconsideradas. Em

seguida, o numero de potenciais para flush e checado: um valor proporcional a este

numero e somado ao valor da heurıstica.

A tabela 4.3 mostra alguns exemplos de maos com os respectivos valores de

nuttiness e playability estimados pelo algoritmo.

Mao Nuttiness Playability

A♦ A♠ 7♦ 2♥ 1.00 0.25

Q♣ 9♦ 8♣ 5♦ 0.40 0.80

9♣ 8♣ 7♦ 6♣ 0.50 1.00

Tabela 4.3: Exemplo de valores para nuttiness e playability estimados.

Para decidir qual acao tomar, iremos utilizar algoritmo 4.1. Limped Pot

indica que nenhum jogador realizou um raise; Raised Pot indica que um jogador fez

um raise e nenhum outro jogador fez mais um raise; e 3-Bet Pot indica que dois raises

foram feitos (mas nao mais que isso). Com maos fracas (baixo nuttiness), a melhor

opcao e evitar colocar muitas fichas em jogo e desistir da mao rapidamente. Com

maos de nıvel medio e potencial para nuts, idealmente queremos jogar uma mao com

muitos jogadores e evitar potes muito grandes – por isso, desistimos de 3-Bet Pots.

Com maos fortes, estamos dispostos a jogar potes maiores e podemos realizar call

nestes casos. Optamos por realizar as mesmas acoes em Limped Pots e Raised Pots

(raise e call, respectivamente) tanto com maos medias quanto com maos fortes, com

intuito de balancear nosso range inicial de maos. Desta forma, dificultamos possıveis

estimativas dos nossos oponentes sobre nossas cartas privadas.

25

Page 39: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Algoritmo 4.1: Algoritmo de decisao Pre-Flop.

if Nuttiness < 0.4 thenAction ← Fold

else if Nuttiness < 0.7 or Playability < 0.5 then

if Limped Pot thenAction ← Raise Big

else if Raised Pot thenAction ← Call

elseAction ← Fold

end

else

if Raised Pot or 3-Bet Pot thenAction ← Call

else if Limped Pot thenAction ← Raise Big

elseAction ← Fold

end

end

4.3 Classificacao de Flop

Existem 1,755 Flops nao equivalentes, mas, assim como as maos iniciais,

podem apresentar caracterısticas comuns entre si. Dois aspectos amplamente co-

nhecidos na comunidade do poker sao o heaviness e o wetness. O primeiro indica

o quanto as cartas sao altas – um Flop A♣ K♥ 9♦, por exemplo, e considerado

pesado. O wetness indica o quanto um board tende a dar draws ou maos fortes para

os jogadores. Um Flop 7♠ 8♠ 9♥ e considerado bem “molhado”.

Para numerificar estes conceitos, os algoritmos 4.2 e 4.3 foram propostos.

O calculo do heaviness e realizado inspecionando o valor de cada carta do board e

somando uma quantidade proporcional ao heaviness : enquanto um as aumenta o

heaviness em 0.5, cartas abaixo de 6 nao somam nada. O mapeamento entre cartas

e valores de heaviness foi feito baseado em nossas percepcoes sobre valores razoaveis,

26

Page 40: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

sem uso de tecnicas formais.

O algoritmo de wetness usa outras caracterısticas do Flop: Connectedness,

Suitedness, e IsPaired. O Connectedness indica o quanto as cartas do board estao

conectadas, considerando o espacamento existente entre as cartas (apos coloca-las

em ordem). O resultado e obtido atraves de uma algoritmo que pontua espacamentos

pequenos e nao pontua espacamentos grandes. Mais uma vez, a escolha dos valores

de pontuacao foram feitos sem o uso de tecnicas formais – uma prova de conceito.

O Suitedness indica se o numero de naipes diferentes no Flop e tres (Rainbow), dois

(Two-Tone) ou um (Monotone). Por fim, o IsPaired e apenas um valor booleano

indicando se ha pelo menos duas cartas de mesmo valor no board. Repare que,

ao inves de considerar o wetness como um aspecto unico, poderıamos considerar

as outras caracterısticas (Connectedness, Suitedness e IsPaired) separadamente. O

motivo desta decisao sera discutido mais a frente.

Algoritmo 4.2: Algoritmo de heaviness.

Heaviness ← 0

foreach Card c in Flop do

switch c.rank do

case AceHeaviness ← Heaviness + 0.5

case King or Queen or Jack or TenHeaviness ← Heaviness + 0.4

case NineHeaviness ← Heaviness + 0.3

case EightHeaviness ← Heaviness + 0.2

case Seven or SixHeaviness ← Heaviness + 0.1

endsw

end

Heaviness ← Min(Heaviness, 1.0)

27

Page 41: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

4.4 Classificacao de Turn e River

Embora as maos dos oponentes sejam desconhecidas, e possıvel identificar

quando uma nova carta comunitaria no Turn ou no River potencialmente altera as

equidades dos jogadores. Por exemplo, considere um Flop 7♥ 8♣ K♥. O possıvel

impacto sobre as equidades e completamente diferente se a carta comunitaria do

Turn for um 2♦ ou se ela for um 6♥ – especialmente se o Flop foi jogado de forma

agressiva, o que indica que os jogadores possivelmente tem maos que fazem jogo com

o board.

Quatro nıveis de classificacao serao considerados para a analise de novas

cartas comunitarias no Turn e no River : Blank, Almost Blank, Intermediate e Scary.

A classificacao e feita de acordo com o algoritmo 4.4. Para tanto, considera-se os

jogos possıveis de serem formados na street anterior e no board com a nova carta

comunitaria. Caso seja possıvel fazer uma mao com classificacao superior a melhor

mao possıvel no board anterior (o nuts mudou), a nova carta e considerada Scary.

Caso contrario, se a segunda melhor classificacao do board tiver mudado, a carta e

considerada Intermediate. Se so a terceira melhor classificacao possıvel mudou, a

nova carta e classificada como Almost Blank. Para os demais casos, a classificacao

da nova carta comunitaria e Blank. Em todos os casos, as classificacoes so sao

consideradas ate Full Houses, ja que a ocorrencia de maos melhores e muito baixa.

4.5 Forca das Maos

Uma forma de avaliar a forca que um jogador estima que sua propria mao

possui (isto e, em quanto ele estima sua equidade) e analisar dois aspectos da mao:

a classificacao corrente da mao dado o board (rank) e as possibilidades de melhora

nessa classificacao (draws).

4.5.1 Rank

Existem bibliotecas extremamente otimizadas para calcular classificacoes de

maos de Texas Hold’Em de forma eficiente. Em 2006, estas bibliotecas eram capa-

zes de realizar mais de 20 milhoes de classificacoes por segundo em computadores

pessoais [17].

28

Page 42: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Para definir o rank de uma mao de Omaha, basta definir todas as combinacoes

de cinco cartas escolhendo obrigatoriamente duas cartas privadas e tres cartas do

board. Com estas combinacoes, encontra-se a melhor classificacao de Texas Hold’Em

entre elas para definir o rank da mao de Omaha. Neste trabalho, esta abordagem

foi utilizada.

4.5.2 Draws

Existem diversos tipos de draws possıveis no Omaha, mas este trabalho so

considerara straight draws e flush draws. Para verificar se um jogador possui um

straight draw, itera-se sobre todas as cartas restantes do baralho e, para cada uma, e

verificado se a mao melhorou para um straight ou melhor. Se isso ocorrer para oito

ou mais cartas, considera-se que o jogador possui um straight draw (caso contrario,

nao se considera). Isto e feito porque straight draws com menos do que oito cartas

sao considerados fracos no Omaha. A verificacao de flush draws e feita de forma

analoga.

Repare que existem diversas forcas de draws. Em geral, quanto mais car-

tas restantes no baralho melhorarem uma mao, mais forte e o draw. Entretanto,

este trabalho so considerara um valor de forca para cada tipo de draw considerado

(straights e flushes).

Neste trabalho, tanto o calculo de rank quanto o de draws usam a biblioteca

apresentada em [17].

4.5.3 Classificacao

Uma vez definidos a classificacao da mao e os possıveis draws, usa-se uma

heurıstica para classificar a forca da mao de um jogador definida pelo algoritmo 4.5.

A heurıstica considera a forca da mao relativa ao board corrente. Straights em boards

com tres cartas do mesmo naipes, por exemplo, nao sao tao fortes quanto em boards

sem possibilidade de flush. Da mesma forma, flushes em boards com possibilidade

de full houses nao sao tao fortes quanto nos casos em que nao ha chance de fazer

um jogo melhor do que um flush. De forma semelhante, straight draws e flush draws

sao mais fortes quando nao ha chances de full houses na mesa, assim como straight

draws sao mais fortes quando nao ha chance de flushes no board.

29

Page 43: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

O algoritmo usa os conceitos de forca relativa apresentados acima, e classifica

as maos entre muito forte, forte, media e fraca. Caso a mao sendo analisada possua a

melhor classificacao possıvel no board, ela e considerada muito forte. Caso contrario,

verifica-se o tipo de board e, dependendo do caso, considera-se os draws da mao. Por

exemplo, em boards com flushes possıveis, straight draws nao sao levados em conta na

classificacao da forca da mao. Por outro lado, boards mais secos (sem possibilidade

de straights, flushes e full houses) sao mais influenciados por draws.

4.6 Tomada de Decisao

O processo de tomada de decisao escolhido neste trabalho se baseia em

princıpios simples e intuitivos. Caso o modelo estime que possui uma mao me-

lhor que os oponentes, se aposta alto. Caso contrario, verifica-se se a chance de os

oponentes desistirem da mao que eles possuem e alta o suficiente para justificar um

blefe e, em caso positivo, blefa-se. Senao, uma estimativa e feita sobre a equidade

da mao e a decisao matematicamente correta (segundo a estimativa) e tomada.

No entanto, como podemos estimar a mao do oponente para sabermos se

temos uma mao mais forte e como calcular sua chance de desistencia para sabermos

se um blefe seria justificado?

4.6.1 Rede de Bayes

Como visto no inıcio do capıtulo, jogadores humanos dificilmente jogam com

estrategias proximas a um equilıbrio. Com base nisso, e possıvel analisar as cor-

relacoes existentes entre as acoes realizadas por cada oponente e o desenvolvimento

do estado do jogo (incluindo a forca das maos e suas tendencias).

Para tanto, definimos uma estrutura de rede de Bayes usando os elementos

vistos neste capıtulo como variaveis de interesse, como mostra a figura 4.2.

Um elemento ainda nao discutido tambem e considerado na rede: o Stack-to-

Pot Ratio (SPR). Como o nome sugere, este valor mede a relacao entre o numero

restante de fichas que um jogador possui (stack) e o tamanho do pote. A medida e

feita atraves da divisao do stack pelo pot, e pode ser classificada como Zero (menor

que 0.5), Low (entre 0.5 e 3.0), Medium (entre 3.0 e 9.0) e High (maior que 9.0). De

30

Page 44: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

forma generica, o SPR e uma medida do risco (fichas restantes) que cada jogador

possui em relacao a recompensa (pot). Em geral, quanto mais baixo o SPR, mais

dispostos os jogadores tendem a apostar suas fichas, ja que o risco e menor em

relacao a recompensa. De forma semelhante, quanto maior o SPR, maior e a cautela

dos jogadores.

As relacoes estabelecidas na estrutura da rede proposta se baseiam em per-

cepcoes razoaveis sobre o domınio. Por exemplo, no Flop, as distribuicoes do rank

e dos draws de uma mao sao influenciadas pelo heaviness e wetness do board e pelo

tipo de jogador que esta com a mao – jogadores com VPIP mais baixo tendem a

possuir maos melhores em Flops com heaviness alto. No Turn, a distribuicao de

ranks e de draws sao definidos pela distribuicao de ranks e draws do Flop, alem

do tipo de carta do Turn. A distribuicao de ranks do River e analisado de forma

analoga.

Nesta rede, assumimos que a distribuicao de acoes que um jogador pode

tomar depende somente do tipo de jogador (vertice Tipo de Jogador), da forca da

sua mao e do seu SPR. Enquanto isso e verdade para alguns jogadores (especialmente

os menos experientes), outros fatores devem ser considerados em jogos de mais alto

nıvel, como a percepcao que um jogador tem sobre os demais jogadores. Para manter

a rede mais simples, optamos por considerar apenas estes tres fatores.

Uma vez que a rede tenha sido treinada (detalhes na subsecao 4.6.2), ela sera

usada realizando inferencias sobre algumas variaveis de interesse: Forca Flop, Forca

Turn, Forca River, Acao Flop, Acao River e Acao River. Estas inferencias serao

feitas considerando os valores ja observados, isto e, para cada vertice cujos valores

sao conhecidos, considera-se apenas as distribuicoes condicionadas dos valores ob-

servados. Desta forma, podemos conhecer as distribuicoes de forca e as distribuicoes

de acoes para cada jogador. Por exemplo, no River, conhecemos os valores de todos

os vertices, exceto River Rank e Acao River. Assim, podemos inferir qual a distri-

buicao das maos de cada jogador e a distribuicao das acoes de cada jogador e, com

base nisso, tomar uma decisao apropriada.

Considere uma mesa com blinds de 1 e 2 fichas e com quatro jogadores, A, B,

C e D, em que nosso modelo e o jogador A e esta na posicao do botao, com B, C e D

a esquerda nessa ordem (ou seja, B e o Small Blind e C e o Big Blind). Considere

31

Page 45: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

ainda que, de acordo com a categorizacao de jogador considerada, B, C e D sao

respectivamente classificados como Unknown, Fish e Tight Aggressive e possuam

stacks de 60, 40 e 100 fichas. Suponha que nossa mao seja A♠ K♣ Q♠ J♥ e que a

acao no Pre-Flop tenha sido: D fold, A raise para 7 fichas, B call e C call. Para um

Flop Q♥ 9♦ 7♣, e possıvel obter os valores das heurısticas de heaviness e wetness

do board. Assim, considerando os valores conhecidos sobre as variaveis aleatorias

da rede (Flop Heaviness, Flop Wetness, Tipo Jogador e SPR Flop), obtemos as

distribuicoes de forca indicados na tabela 4.4.

Forca B C

Weak 47.0% 52.3%

Fair 50.1% 43.6%

Strong 2.2% 3.1%

Very Strong 0.7% 1.0%

Tabela 4.4: Exemplo de distribuicao de forcas obtida pelo modelo.

A forca da mao de cada oponente e calculada atraves de uma media ponde-

rada pelos valores das distribuicoes, atribuindo um valor numerico para cada clas-

sificacao de forca – 0 para Weak, 1 para Fair, 2 para Strong e 3 para Very Strong.

Para a tomada de decisao, considera-se a maior das medias dos oponentes e este

valor e comparado com a forca da mao do jogador artificial. Se a maior media dos

oponentes for maior que o valor referente a forca da mao que possuımos, considera-se

que temos uma mao mais fraca que as dos oponentes. Caso contrario, considera-se

que nossa mao e a mais forte da mesa.

Para verificar se um blefe e justificavel, consideramos a distribuicao das acoes

de cada oponente ainda ativo – mais especificamente, consideramos a probabilidade

de fold de cada um. Com isso, consideramos a probabilidade de todos os jogadores

restantes realizarem fold (multiplicando a chance estimada de fold para cada opo-

nente). Assim, consideramos que um blefe e justificavel quando, mesmo com zero de

equidade sobre o pot, o valor esperado de uma aposta e positivo. Um conceito nao

explorado neste trabalho e o chamado semi-bluff, que, ao fazer um blefe, considera

a equidade que o jogador possui no calculo do valor esperado (assim, mais blefes

podem ser feitos).

32

Page 46: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

4.6.2 Implementacao

Para implementar a rede bayesiana, um framework desenvolvido pela Micro-

soft Research Cambridge – Infer.NET – foi usado. Ele fornece uma estrutura solida e

direta para representar modelos probabilısticos em codigo, e se baseia em algoritmos

que representam o estado da arte em troca de mensagens, grafos e algebra linear

[18]. O algoritmo de inferencia e aprendizado usado pelo Infer.NET e conhecido

como Expectation Propagation [19].

A definicao da estrutura da rede proposta foi feita com o uso deste framework

(atraves de codigo), assim como a especificacao das distribuicoes iniciais (priors ou

a priori) de cada variavel. Segundo [20], as distribuicoes a priori das variaveis

aleatorias usadas em metodos de aprendizado de redes de Bayes sao usualmente

distribuicoes de Dirichlet. Optou-se por manter este padrao na implementacao da

rede, atribuindo uma distribuicao simetrica de Dirichlet (parametros com mesmo

valor inicial) para cada variavel aleatoria.

Uma vez definida a estrutura e as distribuicoes priors, o modelo foi treinado

com uma massa de dados obtidas atraves de um historico de 100,000 maos jogadas

em um site poker online. Cada mao jogada pode gerar ate seis entradas no conjunto

de treinamento (uma para cada jogador que chegou ate o Flop), onde cada entrada

corresponde a um conjunto de observacoes sobre as variaveis da rede proposta. Desta

forma, se, por exemplo, muitas das entradas possuem valores observados de Tipo de

Jogador e Acao iguais, a distribuicao condicionada destas variaveis serao influencia-

das de forma que estes valores se correlacionem. Maos com tres ou menos jogadores

no Pre-Flop foram descartadas, pois consideramos que a dinamica de jogo muda

consideravelmente com um numero muito pequeno de participantes.

Apos o treinamento, podemos realizar inferencias sobre as variaveis de inte-

resse da rede. Estamos especialmente interessados em inferencias sobre a forca da

mao de um jogador e sobre as acoes realizadas em cada street. Por exemplo, pode-

mos obter a distribuicao da forca da mao de um jogador que e considerado Tight

Aggressive em um Flop com pouco heaviness e alto wetness.

33

Page 47: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Algoritmo 4.3: Algoritmo de definicao de wetness.

if IsPaired then

if Suitedness is TwoTone thenreturn PairedTwoTone

elsereturn PairedRainbow

end

end

if Connectedness ≥ 0.75 then

if Suitedness is Monotone thenreturn ConnectedMonotone

else if Suitedness is TwoTone thenreturn ConnectedTwoTone

elsereturn ConnectedRainbow

end

else if Connectedness ≥ 0.50 then

if Suitedness is Monotone thenreturn LightlyConnectedMonotone

else if Suitedness is TwoTone thenreturn LightlyConnectedTwoTone

elsereturn LightlyConnectedRainbow

end

else

if Suitedness is Monotone thenreturn UnconnectedMonotone

else if Suitedness is TwoTone thenreturn UnconnectedTwoTone

elsereturn UnconnectedRainbow

end

end

34

Page 48: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Algoritmo 4.4: Algoritmo de classificacao de Turn e River.

if PreviousBoard.IsPaired then

if PreviousBoard.IsFlushPossible thenif PreviousBoard.IsStraightPossible then return Blank

if NewBoard.IsStraightPossible then return AlmostBlank

elseif NewBoard.IsFlushPossible then return Intermediate

if PreviousBoard.IsStraightPossible then return Blank

if NewBoard.IsStraightPossible then return Intermediate

end

return Blank

end

if PreviousBoard.IsFlushPossible thenif NewBoard.IsPaired then return Scary

if PreviousBoard.IsStraightPossible then return Blank

if NewBoard.IsStraightPossible then return Intermediate

return Blank

end

if NewBoard.IsFlushPossible then return Scary

if PreviousBoard.IsStraightPossible then return AlmostBlank

if NewBoard.IsStraightPossible then return Scary

if PreviousBoard.HasFlushDraw then return Blank

if NewBoard.HasFlushDraw then return AlmostBlank

return Blank

35

Page 49: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Algoritmo 4.5: Algoritmo de classificacao de forca de mao.

if Board.IsPaired then

if Rank is Full House or better then return Very Strong

if Rank is Three-of-a-Kind or better then return Strong

if Rank is Two Pairs or better then return Fair

return Weak

if Board.IsFlushPossible then

if Rank is Flush or better then return Very Strong

if Rank is Three-of-a-Kind then return Strong

if Rank is Straight or better then return Fair

return Weak

if Board.IsStraightPossible then

if Rank is Straight or better then return Very Strong

if Rank is Three-of-a-Kind or better then

if Has Straight Draw or Has Flush Draw then return Very Strong

return Strong

if Rank is Two Pairs or better then

if Has Flush Draw then

if Has Straight Draw then return Very Strong

return Strong

return Fair

if Has Flush Draw then

if Has Straight Draw then return Strong

return Fair

return Weak

if Rank is Three-of-a-Kind or better then return Very Strong

if Rank is Two Pairs or better then

if Has Flush Draw or Has Straight Draw then return Very Strong

return Strong

if Rank is Pair or better then

if Has Flush Draw and Has Straight Draw then return Very Strong

if Has Flush Draw or Has Straight Draw then return Strong

return Fair

if Has Flush Draw and Has Straight Draw then return Strong

if Has Flush Draw or Has Straight Draw then return Fair

return Weak

36

Page 50: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

AçãoFlop

Flop Heaviness

Flop Wetness

Tipo de Jogador

AçãoTurn

AçãoRiver

Tipo Turn

Tipo River

FlopRank

ForçaFlop

FlopDraws

TurnRank

TurnDraws

ForçaTurn

RiverRank

SPRFlop

SPRTurn

SPRRiver

Figura 4.2: Estrutura da rede bayesiana proposta.

37

Page 51: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 5

Avaliacao

Para validar e testar o desempenho do modelo, um software auxiliar de si-

mulacao foi criado. O programa e capaz de simular um estado de jogo qualquer

atraves da entrada do usuario. Com isso, e possıvel fornecer o estado para o modelo

para que ele forneca uma decisao – a partir do estado do jogo, podemos definir quais

vertices da rede sao observados e quais nao sao e, com isso, conseguimos realizar

as inferencias sobre os vertices de interesse (forca da mao e acao de cada jogador).

Uma imagem do software de simulacao e mostrada no figura 5.1.

5.1 Validacao

A validacao das decisoes tomadas pelo modelo proposto foi feita pela analise

de cinco cenarios artificiais, mas representativos de situacoes reais. Para cada um,

a opiniao de um jogador experiente sobre a jogada ideal foi registrada. Em seguida,

cada situacao foi simulada e as decisoes que o modelo adotou foram comparadas

com as do jogador experiente.

Os cenarios sao descritos de forma sucinta, usando o termo “Hero” para iden-

tificar o jogador artificial e usando a posicao dos demais jogadores para identificar

os oponentes. Tres das posicoes dos jogadores na mesa nao foram descritas anteri-

ormente: o Under the Gun (UTG) – posicao a esquerda do Big Blind –, o Medium

Position (MP) – posicao a esquerda do UTG – e o Cutoff (CO) – posicao a esquerda

do MP.

Assume-se que cada situacao possui Small Blind de 1 ficha e Big Blind de 2

38

Page 52: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Figura 5.1: Tela do software de simulacao.

fichas. O inıcio de cada cenario e composto pela mao do jogador, pelos stacks de

cada oponente e pela categoria (tipo de jogador) em que cada um se encaixa. Em

seguida, as acoes de cada jogador sao descritas.

i) Hero (BTN): 3♣ 4♥ 5♣ 6♠

• SB ($50) – Fish

• BB ($50) – Fish

• UTG ($100) – Unknown

• MP ($75) – Unknown

• CO ($100) – Tight Aggressive

• Hero ($100)

Acoes: UTG fold – MP fold – CO raise para $6 – Hero ?

Decisao do jogador: Fold. Embora a mao seja bem conectada e estejamos

bem posicionados, os reverse implied odds sao grandes demais para jogar o

Post-Flop lucrativamente.

Decisao do modelo: Fold

39

Page 53: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Small Blind(SB)

Big Blind(BB)

Underthe Gun(UTG)

Medium Position(MP)

Cutoff(CO)

Button(BTN)

Figura 5.2: Representacao das posicoes relativas ao botao.

ii) Hero (BTN): K♦ J♥ 10♣ 7♥

• SB ($100) – Tight Aggressive

• BB ($40) – Fish

• CO ($100) – Tight Aggressive

• Hero ($100)

Acoes Pre-Flop: CO fold – Hero raise para $6 – SB fold – BB call

Flop: J♠ A♣ 4♣

Acoes Flop: BB check – Hero ?

Decisao do jogador: Bet medio. A mao tem valor de showdown e estamos

na frente do range do BB, que e amplo demais (por ser Fish). Nao queremos

apostar maior, uma vez que dificilmente ele entraria com uma mao mais

fraca que a nossa contra um bet alto.

Decisao do modelo: Bet alto.

40

Page 54: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

iii) Hero (SB): K♦ J♣ K♥ 7♣

• Hero ($100)

• BB ($20) – Tight Aggressive

• CO ($40) – Fish

• BTN ($100) – Fish

Acoes Pre-Flop: CO call – BTN call – Hero call – BB check

Flop: Q♥ 6♣ T♦

Acoes Flop: Hero ?

Decisao do jogador: Bet alto. O pot ainda esta pequeno ($4), temos

overpair (par maior do que a maior carta da mesa), straight draw forte e

backdoor flush draw (caso venha uma carta de paus no Turn, teremos um

flush draw). Todos os jogadores adotaram uma postura passiva Pre-Flop, o

que indica que suas maos tendem a ser mais fracas.

Decisao do modelo: Bet alto.

iv) Hero (CO): K♣ A♦ K♠ 7♠

• SB ($90) – Fish

• BB ($100) – Fish

• MP ($40) – Tight Aggressive

• Hero ($100)

• BTN ($100) – Loose Aggressive

Acoes Pre-Flop: MP raise para $6 – Hero call – BTN fold – SB call –

BB fold

Flop: K♦ 8♦ 6♠

Acoes Flop: SB check – MP check – Hero bet $9 – SB raise para $36 –

MP fold – Hero ?

Decisao do jogador: Raise All-In. Nao ha motivo para jogar devagar

com o nuts nesse board. O oponente possui uma mao forte – como trinca,

straight draw forte ou flush draw forte – e dificilmente realiza fold.

Decisao do modelo: Raise alto – equivalente a Raise All-In

41

Page 55: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

v) Hero (BB): 9♥ 10♠ J♠ 8♦

• SB ($45) – Unknown

• Hero ($100)

• MP ($100) – Unknown

• CO ($100) – Loose Aggresive

• BTN ($100) – Tight Aggressive

Acoes Pre-Flop: MP fold – CO fold – BTN fold – SB raise para $2 –

Hero raise para $6 – SB call

Flop: J♣ 4♥ 5♠

Acoes Flop: SB check – Hero bet $7 – SB raise para $31 – Hero ?

Decisao do jogador: Fold. O raise no Flop demonstra muita forca, mas

so e necessario um pouco mais do que 33% de equidade para fazer um

call correto. Um possıvel range para o oponente inclui dois pares, trincas

e straight draws fortes. Contra estas maos, temos por volta de 31% de

equidade, o que faz com que o fold seja a decisao mais apropriada.

Decisao do modelo: Call.

Cenario Decisao do jogador Decisao do modelo

i Fold Fold

ii Bet medio Bet alto

iii Bet alto Bet alto

iv Raise alto Raise alto

v Fold Call

Tabela 5.1: Compilacao dos resultados de validacao.

A tabela 5.1 mostra uma compilacao dos resultados obtidos na validacao.

Embora haja algumas discrepancias entre o modelo e o jogador, a maioria das de-

cisoes foram iguais ou similares. No poker, dado um estado de jogo, muitas vezes

nao ha um consenso em relacao a jogada correta, mas existe um conjunto de decisoes

aceitaveis. Nos cenarios em que houve discrepancia, o jogador experiente considerou

as decisoes do modelo razoaveis – embora tenha mantido a opiniao sobre as jogadas

que ele teria utilizado.

42

Page 56: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

5.2 Desempenho

O desempenho do modelo foi testado em um conhecido site de poker online,

contra jogadores reais, usando dinheiro real. A mesa escolhida para o teste foi uma

com os menores blinds disponıveis – por se tratar de uma prova de conceito arriscada,

queremos minimizar possıveis prejuızos financeiros.

Para o teste, o simulador e uma mesa de jogo de poker online foram abertos

simultaneamente. A cada mudanca de estado na mesa, fizemos as respectivas mu-

dancas no simulador. A cada tomada de decisao, o modelo era questionado quanto

qual acao tomar e realizavamos a acao correspondente no poker online. Durante a

sessao, o numero de jogadores na mesa variou entre quatro e seis, sendo a maioria

dos jogadores classificados como Fish, Passive e Unknown. Inicialmente, a mai-

oria era considerado Unknown (ja que possuıam menos de 20 maos observadas),

mas, a medida que as rodadas eram realizadas, a classificacao dos jogadores eram

atualizadas.

Note que este metodo exige um processo manual intenso e, com isso, joga-se

mais devagar que o usual. O numero total de maos que foram jogadas seguindo esse

padrao foi de 103. Devido a variancia do poker – e, em especial, do Omaha –, este

numero tem baixa relevancia estatıstica. Mesmo assim, e possıvel avaliar algumas

tendencias dos resultados obtidos pelo modelo. Um resumo de estatısticas sobre a

sessao realizada e apresentado na tabela 5.2.

Tambem existe outra questao que dificulta uma avaliacao empırica mais efi-

ciente: os principais sites de poker online proıbem o uso de ferramentas que joguem

de forma automatizada ou que fornecam conselhos diretos sobre as jogadas a serem

feitas. Isto impede que uma avaliacao eficiente (com um numero de maos estatisti-

camente relevante e de forma automatizada) seja feita de forma legal.

As evolucoes do saldo total, saldo sem Showdown (maos vencidas ou perdidas

antes do Showdown) e saldo com Showdown (maos vencidas ou perdidas no Show-

down) sao apresentados na figura 5.3. A evolucao do saldo total e uma forma de

avaliar se o modelo possui uma estrategia consistente (seja vencedora ou perdedora).

As evolucoes do saldo com e sem Showdown sao usadas por alguns jogadores para

entender em que tipo de situacao seus lucros e prejuızos estao concentrados. Jo-

gadores que possuem saldo sem Showdown consistentemente decrescente costumam

43

Page 57: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

fazer folds excessivos ou muitos poucos blefes. Jogadores com saldo com Showdown

consistentemente negativos tendem a fazer blefes excessivamente ou constantemente

subestimam a forca das maos dos oponentes. O modelo proposto apresentou bons

resultados para ambos os casos (saldo com Showdown e sem Showdown), embora

haja uma clara concentracao de lucros nas maos com Showdown. Isto pode ser ex-

plicado pela presenca de muitos oponentes do tipo Fish, que costumam ser menos

experientes e, em geral, avaliam mal a equidade e a forca relativa das maos que

possuem.

Estatıstica Valor

Numero de maos 103

Big Blinds/mao +8.2

VPIP 30%

Pre-Flop Raise 6%

AF 14.0

Vitorias no Showdown 80%

Tabela 5.2: Estatısticas do teste.

-200

0

200

400

600

800

1000

1 11 21 31 41 51 61 71 81 91 101

Big

Blin

ds

Mãos

Saldo Total Saldo sem Showdown Saldo com Showdown

Figura 5.3: Resultados obtidos pelo teste empırico com o modelo.

44

Page 58: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Um dado que se destaca nos resultados e o numero de big blinds ganhos por

mao (winrate). Esta medida usa o valor do big blind como parametro, pois ele ajuda

a definir os ganhos ou perdas de um jogador em termos relativos (considerando o

tamanho das apostas nas mesas). Em geral, analisa-se o saldo medio de big blinds a

cada 100 maos (ao inves do saldo medio por mao). Excelentes jogadores costumam

ter um winrate menor do que 5 big blinds/100 maos. Isto ressalta que, embora o

modelo possua uma tendencia vencedora, o numero de maos ainda e muito pequeno

para uma analise mais conclusiva.

Outra informacao relevante e o alto numero de vitorias no Showdown. Isto

indica que, em grande parte das maos, o modelo foi capaz de fazer estimativas

corretas sobre as forcas das maos dos oponentes.

Como o modelo foi usado em nıveis baixos de blinds, a ocorrencia de jogadores

mais fracos e inexperientes foi maior. Em geral, ha uma forte correlacao entre a

qualidade dos jogadores e o nıvel de blinds. Isto tambem pode ter influenciado o

winrate obtido pelo modelo.

45

Page 59: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Capıtulo 6

Conclusao e trabalhos futuros

Neste trabalho, propomos a criacao de um jogador artificial de Pot-Limit

Omaha Poker em jogos de ate seis jogadores que fosse capaz de jogar competiti-

vamente contra jogadores humanos. Para isso, propomos uma rede de Bayes que

captura algumas das principais correlacoes do jogo e dos jogadores. A partir disto,

definimos um algoritmo que usa as informacoes obtidas na rede (em especial, dis-

tribuicoes resultantes de inferencias). Por fim, validamos as tomadas de decisao

atraves de alguns cenarios artificiais e testamos o desempenho do modelo atraves de

um teste empırico realizado em jogos reais.

Conseguimos obter um resultado satisfatorio com o modelo proposto, gerando

decisoes razoaveis e fundamentadas em uma estrategia simples – se aposta o maximo

quando se estima que esteja com uma mao melhor e blefa-se quando a probabilidade

estimada dos oponentes desistirem e alta o suficiente para justificar o blefe. Vimos

que, embora o resultado da avaliacao tenha baixa relevancia estatıstica devido ao

baixo numero de maos, o desempenho do modelo parece ser promissor. Uma forma

de melhor avaliar o agente e automatizando a captura de estado dos jogos e suas

tomadas de decisao. Entretanto, como mencionado no capıtulo 5, isto vai contra as

regras dos principais sites de poker online, dificultando, legalmente, uma avaliacao

mais abrangente.

Muitos pontos do agente proposto ainda podem ser melhorados. O algoritmo

de decisao, por exemplo, possui aspectos estrategicos que podem ser explorados. A

estrategia proposta dita que, caso nossa mao estimada seja mais forte que a dos

oponentes, se aposta o maximo possıvel. Caso contrario, se o modelo estimar que

46

Page 60: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

blefar nao vale a pena, adota-se uma postura passiva. Isto permite que jogadores

atentos percebam esse padrao e blefem facilmente nas vezes que atitudes passivas

forem tomadas pelo modelo, fazendo com que ele desista. Uma forma de remediar

este ponto exploravel e adotar uma postura passiva com parte das maos fortes

tambem, balanceando nosso range. Por exemplo, ao inves de sempre apostar quando

o modelo estimar possuir uma mao mais forte, podemos apostar somente 80% das

vezes e realizar check nas demais.

A rede de Bayes proposta tambem nao considera alguns aspectos importantes

do jogo, como a percepcao que um jogador possui em relacao aos seus adversarios da

mesa – como explicado no inıcio do capıtulo 4, as decisoes tomadas no jogo podem ser

fortemente influenciadas pela presenca de outros jogadores na mesa. Uma possıvel

forma de lidar com este problema seria considerar uma rede unica por jogo (ao inves

de uma por jogador, como foi proposto neste trabalho): poderıamos considerar que

as acoes de cada jogador dependam das acoes que ele estima que os demais vao

tomar, por exemplo.

Outro aspecto nao considerado na rede e a existencia de diferentes forcas

de draws. Enquanto consideramos apenas duas categorias para cada tipo de draw,

poderıamos definir diferentes tipos de classificacao com base no numero de cartas

restantes que ajudam a formar jogos melhores. De forma semelhante, as heurısticas

apresentadas tambem poderiam ser aprimoradas com base em tecnicas mais formais

– a maioria dos algoritmos de categorizacao apresentados foram puramente baseados

em atribuicoes de valores que consideramos razoaveis.

Uma questao muito importante na teoria do poker tambem nao foi abordada

neste trabalho: o conceito de posicao. A cada rodada de apostas, o ultimo a agir cos-

tuma possuir uma vantagem estrategica, ja que pode ver como os demais jogadores

agem antes de tomar sua decisao. Assim, jogadores no posicao do botao geralmente

sao privilegiados com mais informacoes sobre o estado do jogo que os demais. O

modelo proposto nao explora este tipo de informacao.

Por fim, as possıveis acoes do Pre-Flop foram pouco exploradas no modelo.

O algoritmo atual para esta street nao considera nenhum aspecto dos demais opo-

nentes. Por exemplo, se um jogador com VPIP excessivamente alto esta em jogo,

provavelmente podemos relaxar algumas restricoes em relacao a escolha das maos

47

Page 61: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

iniciais – o range de maos do oponente e tao fraco que passa a ser lucrativo jogar

com maos um pouco mais fracas. Alem disso, o modelo jamais faz 3-bets, isto e,

ele nao realiza um segundo raise no Pre-Flop. Este tipo de jogada pode ser muito

lucrativa se aplicada nas situacoes corretas, mas exige uma analise mais detalhada

dos oponentes (como, por exemplo, a taxa de fold no Flop).

48

Page 62: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

Referencias Bibliograficas

[1] “After ‘Black Friday’, American Poker Faces Cloudy Future - NY-

Times.com”, http://fivethirtyeight.blogs.nytimes.com/2011/04/20/after-

black-friday-american-poker-faces-cloudy-future/, 2011, (Acesso em 20 de

janeiro de 2012).

[2] “Online Poker’s Big Winner - NYTimes.com”,

http://www.nytimes.com/2011/03/27/magazine/mag-27Poker-

t.html?pagewanted=all, 2011, (Acesso em 21 de janeiro de 2012).

[3] “Online gambling: FBI shuts down Internet poker sites - Los An-

geles Times”, http://articles.latimes.com/2011/apr/15/business/la-fi-

poker-busts-20110416, 2011, (Acesso em 20 de janeiro de 2012).

[4] “nanonoko Poker Player Ranking and Stats at PokerStars”,

http://www.pokertableratings.com/stars-player-search/nanonoko, 2012,

(Acesso em 22 de janeiro de 2012).

[5] SANDHOLM, T. W., “The State of Solving Large Incomplete-Information Ga-

mes, and Application to Poker”, AI Magazine, v. 31, n. 4, pp. 13–32,

2010.

[6] KHUN, H. W., “A Simplified Two-Person Poker”. In: Contributions to the The-

ory of Games, v. 1, Princeton, NJ, Princeton University Press, pp. 97–103,

1950.

[7] SHI, J., LITTMAN, M. L., “Abstraction Methods for Game Theoretic Poker”.

In: Revised Papers from the Second International Conference on Compu-

ters and Games, CG ’00, pp. 333–345, London, UK, 2002.

49

Page 63: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

[8] “Annual Computer Poker Competition”, http://www.computerpokercompetition.org/,

2012, (Acesso em 27 de janeiro de 2012).

[9] GANZFRIED, S., SANDHOLM, T., “Computing an approximate jam/fold equi-

librium for 3-player no-limit Texas Hold’em tournaments”. In: Proceedings

of the 7th international joint conference on Autonomous agents and mul-

tiagent systems - Volume 2, AAMAS ’08, pp. 919–925, Richland, SC,

2008.

[10] GANZFRIED, S., SANDHOLM, T., “Computing equilibria in multiplayer sto-

chastic games of imperfect information”. In: Proceedings of the 21st inter-

national jont conference on Artifical intelligence, IJCAI’09, pp. 140–146,

San Francisco, CA, USA, 2009.

[11] BARD, N., BOWLING, M., “Particle Filtering for Dynamic Agent Modelling

in Simplified Poker”, 2007.

[12] DARWICHE, A., “Bayesian Networks”, Communications of the ACM, v. 53,

n. 12, pp. 80–90, dec 2010.

[13] PEARL, J., Probabilistic reasoning in intelligent systems: networks of plausible

inference. San Francisco, CA, USA, Morgan Kaufmann Publishers Inc.,

1988.

[14] GEIGER, D., VERMA, T., PEARL, J., “d-Separation: From Theorems to Al-

gorithms”. In: Proceedings of the Fifth Conference Annual Conference on

Uncertainty in Artificial Intelligence (UAI-89), pp. 118–125, New York,

NY, 1989.

[15] DARWICHE, P. A., Modeling and Reasoning with Bayesian Networks. 1 ed.

New York, NY, USA, Cambridge University Press, 2009.

[16] “ProPokerTools.com - Serious tools for serious players”,

http://www.propokertools.com, 2012, (Acesso em 18 de fevereiro

de 2012).

50

Page 64: Snowman: Um Jogador Competitivo de Pot-Limit Omaha Poker Baseado em Redes de … · 2013-09-02 · Por se tratar de um jogo com ... Este trabalho tem como objetivo criar um jogador

[17] “Fast, Texas Holdem Hand Evaluation and Analysis - CodeProject”,

http://www.codeproject.com/Articles/12279/Fast-Texas-Holdem-Hand-

Evaluation-and-Analysis, 2006, (Acesso em 10 de fevereiro de 2012).

[18] MINKA, T., WINN, J., GUIVER, J., et al., “Infer.NET 2.4”, 2010, Microsoft

Research Cambridge. http://research.microsoft.com/infernet.

[19] MINKA, T., “Expectation Propagation for approximate Bayesian inference”.

In: Proceedings of the Seventeenth Conference Annual Conference on Un-

certainty in Artificial Intelligence (UAI-01), pp. 362–369, San Francisco,

CA, 2001.

[20] GEIGER, D., HECKERMAN, D., “A Characterization of the Dirichlet Distri-

bution with Application to Learning Bayesian Networks”. In: Besnard, P.,

Hanks, S. (eds.), UAI 95: Proceedings of the Eleventh Annual Conference

on Uncertainty in Artificial Intelligence, August 18-20, 1995, Montreal,

Quebec, Canada, pp. 196–207, 1995.

51