SISTEMA FUZZY DE APOIO À TOMADA DE DECISÃO NO JOGO DE POKER Felipe Ribas Forbeck Departamento de Ciência da Computação (DECOMP) Universidade Estadual do Centro-Oeste (UNICENTRO) – Guarapuava, PR – Brazil
[email protected]
Resumo. A dificuldade encontrada no aprendizado de alguns jogos de cartas é normal,
porém existem jogos que não exigem apenas que o jogador conheça as regras para jogar, mas tenha macetes que o auxiliem durante o jogo. É o que acontece no jogo de Poker, pois é um jogo que necessita de grande experiência do jogador e que nem sempre iniciantes conseguem entender. Para agilizar e facilitar o aprendizado de regras e macetes durante o jogo, este trabalho propõe uma ferramenta fuzzy de apoio à tomada de decisão no jogo de Poker. Palavras-Chave: Lógica Fuzzy, Sistema Fuzzy, Jogo de Poker Abstract. The difficulty in learning a few games of cards is normal, but there are games that
require not only the player knows the rules for play, but you tricks that help during the game. This is what happens in the game of poker, because it is a game that requires extensive experience of the player and that beginners can not always understand. To expedite and facilitate the learning of rules and tricks during the game, this paper proposes a fuzzy tool to support decision making in the game of poker. Key Words: Fuzzy Logic, Fuzzy System, Poker Game
1. Introdução
O termo “fuzzy” em língua inglesa pode ter diversos significados, depende do contexto de interesse, mas o conceito básico passa sempre pelos termos: vago, indi indist stin into to,, ince incert rto, o, ne nebu bulo loso so,, dif difus usoo [REZ [REZEN ENDE DE,, 20 2005 05]. ]. Trata Tratando ndo-s -see de alg algoo impreciso, tem-se a lógica fuzzy, dese desenvolv nvolvida ida por [ZADEH, [ZADEH, 1965] que concebeu concebeu também a teoria dos conjuntos fuzzy.
Este paradigma lógico, difere-se da lógica
clássica por trabalhar com uma grande variedade de informações vagas e incertas [CANUTO, 2008], e que estas podem ser traduzidas para expressões como “baixo”, “médio”, “alto”, “a maioria”, “mais ou menos”, dentre outros. Podendo também, este modelo lógico, ser combinado com outras técnicas como Redes Neurais Artificiais, Algoritmos Genéticos, Genéticos, dentre outros. Dessa forma, a lógica fuzzy permite que informações difíceis de quantificar e que fogem do conceito da lógica binária, sejam tratadas. Possui aplicação nas mais diversas áreas, como por exemplo: análise de dados, construção de Sistemas
Especialistas, reconhecimento de padrões, dentre outros [REZENDE, 2005]. Vários outros trabalhos são desenvolvidos baseados na Teoria dos Conjuntos Fuzzy como Diag Diagnó nóst stic icoo de Falh Falhas as em Linh Linhaa de Dist Distri ribu buiç ição ão de Ener Energi gia, a, Co Cont ntro role le Fuzzy Multiv Mul tivari ariáv ável el de um Sistem Sistemaa de Tanque Tanquess Int Intera erativ tivos, os, den dentre tre out outros ros.. Ambos Ambos os trabalhos podem ser encontrados em [REZENDE, 2005] na sessão de aplicações D e G, respectivamente. Apesar Apesar de ex exist istir ir inú inúmer meras as apl aplica icaçõe çõess para para a lóg lógica ica fuzzy, tem-se um obstáculo a ser superado, como representar os dados imprecisos fora do domínio convencional (lógica clássica). Dentre estas diversas aplicações e problemas que envolvem dados incertos, está o problema de aprendizado de jogos de cartas, como no jogo de Poker, mais especificamente o estilo Poker Five Card Draw. Por ser um jogo que envolve um número de combinações de cartas exorbitante e que por sua vez, difíceis de quantificar, e que também dificultam o aprendizado do jogador iniciante, a criação de um Sistema Fuzzy [CANUTO, 2008] que auxilie a tomada de decisão do jogador, facilita o entendimento do jogo, bem como o aprendizado. O jogo de Poker é um jogos de cartas mais jogados mundialmente e o anseio de muitas pessoas aprenderem como se joga é muito grande [POKER, 2008 20 08]. ]. Isto Isto se serv rvee co como mo mo motiv tivaç ação ão pa para ra se cria criarr tal tal ferra ferrame menta nta,, um umaa ve vezz qu quee disponibilizada em rede, Internet , poderá ser avaliada por diversos jogadores. Dessa forma este trabalho apresenta o desenvolvimento e o funcionamento de uma Sistema Fuzzy de apoio à tomada de decisão no jogo de Poker, que visa facilitar o aprendizado do jogo, bem como proporcionar ao jogador noções de jogo que só seriam adquiridas com experiência. Este Este artig artigoo es está tá orga organi niza zado do da se segu guin inte te form forma, a, a se sess ssão ão 2 de desc screv revee brevemente sobre Sistemas Fuzzy; a sessão 3 apresenta a aplicação; 4 demonstra a representação do problema do mundo real; a sessão 5 mostra alguns casos de te test stes es e resu resulta ltado dos; s; a 6 ap apre rese sent ntaa prop propos osta tass fut futur uras as;; e po porr fim fim,, a se sess ssão ão 7 conclusões do trabalho.
2. Sistemas Fuzzy
Como Co mo sist sistem emas as ca capa paze zess de proc proces essa sarr efic eficie ient ntem emen ente te info inform rmaç açõe õess imprec imp recisa isass e qu quali alitat tativa ivass de forma forma geral, geral, os mo model delos os de infe inferên rência cia fuzzy são especialmente adequados em processos que exigem tomadas de decisão por parte de op oper erad ador ores es e ge gere rent ntes es de op oper eraç ação ão.. Aplic Aplicaç açõe õess de dest stee tipo tipo repr repres esen enta tam m o conhecimento e a experiência existentes sobre um determinado estado do processo ou da situação e, a partir da entrada de dados sobre os seus estados atuais, podem inferir sua evolução temporal, as variações importantes que ocorreram ou mesmo gerar sugestões sobre as próximas ações a serem tomadas[REZENDE, 2005]. Sistemas Fuzzy, em geral, possuem a mesma estrutura lógica. Em outras palavras, todo o processo realizado para a obtenção do resultado em diferentes Sistemas Fuzzy, geralmente, são semelhantes. A Figura 1 ilustra uma arquitetura básica de um sistema. Esta arquitetura é composta por uma série de operações e métodos que são explicados no decorrer do trabalho com exemplos da própria aplicação.
Figura 1. Arquitetura básica. Sistemas de apoio à tomada de decisão, algoritmos para aproximação de funções e sistemas controladores baseado em lógica fuzzy [ZADEH, 1965] estão entre as formas mais populares de utilização deste conceito.
3. Aplicação
Poker é um jogo clássico de cartas, jogado mundialmente em diversas
variações. Normalmente o objetivo do jogador é formar a melhor mão de Poker com cinco cartas. Mas o Poker também é um jogo de apostas. Para conseguir as cartas que precisa, é necessário pagar um preço. O preço é decidido conforme as apostas que os jogadores depositam. As apostas são o pote, que no fim é ganho pelo jogador com a melhor mão / jogada jogada [POKER, [POKER, 2008]. O jogo possui diversas variações como Texas Hold'em, Omaha, Seven Card Stud , Five Card Draw . É difícil para iniciantes aprender o jogo e ao mesmo tempo
dominar os macetes que muitas vezes fazem com que o jogador vença. Por existir muitas variações do jogo, dificulta a criação de uma ferramenta de ajuda que seja genérica, ou seja, seja, que englobe todos os diferentes estilos. estilos. Então optou-se pelo estilo Five Card Draw, que é o estilo pioneiro do Poker . Esta modalidade é bem simples, sendo que o jogador adquire cinco cartas viradas para baixo. Podendo descartar algumas ou todas e receber uma mesma quantia de cartas novas. O jogador com a melhor mão alta ganha o pote (valor em jogo). O jogador também não consegue ver nenhuma das cartas de seus oponentes. A única informação que ele tem sobre as mãos dos adversários é como eles apostam e quantas cartas que eles trocam. Quanto Qua nto a dis distri tribui buição ção das cartas cartas,, qua quando ndo os blinds (aposta (aposta obrigatória obrigatória)) forem depositados, cada jogador recebe cinco cartas. Em seguida há a possibilidade de troca. Quando a primeira rodada de apostas terminar (todos têm direito de apostar), os jogadores que continuarem no jogo podem trocar cartas, até cinco cartas novas, ou não trocar (manter mão). A troca é realizada com o objetivo de melhorar o jogo em mãos, e para isto é necessário conhecimento dos jogos e uma boa experiência de jogo. Send Sendoo ne nece cess ssár ária ia es esta ta ex expe peri riên ênci cia, a, inic inicia iant ntes es ge gera ralm lmen ente te têm têm mu muititaa dificuldade em decidir a hora de apostar ou desistir de uma mão. Existem várias mãos, combinações de cartas, e cada uma delas possui um valor, a mão mais alta da mesa é a mão vencedora. A Figura 2 ilustra as possíveis
jog jogad adas as de se fa faze zerr na mo moda dalid lidad adee aq aqui ui ab abor orda dada da,, va vale le ress ressal alta tarr qu quee es estã tãoo organizadas de forma decrescente, a primeira jogada é a maior possível de se fazer. As regras podem ser encontradas em [POKER, 2008].
Card Draw. Figura 2. Jogadas Five Card Draw. 4. Representação do Problema
Devido o uso de diferentes plataformas para computadores pessoais, a ferram ferrament entaa aqu aquii propos proposta ta foi des desenv envolv olvida ida uti utiliz lizand andoo a tec tecnol nologi ogiaa Java1, para garantir a portabilidade do sistema. Produzida com o auxílio de uma ferramenta chamada de NetBeans2, o desenvolvimento foi baseado rigorosamente nos passos descritos nas sessões a seguir, 4.1 a 4.4. A sessão 4.1 descreve a transposição do problema para o mundo real, a 4.2 mostra a forma de representação do problema no domínio da lógica difusa, bem 1 http http:/ ://j /jav ava. a.su sun. n.co com m 2 http http:/ ://w /www ww.n .net etbe bean ans. s.or org g
como o processo processo de “fuzzyfic “fuzzyficação”, ação”, já a sessão sessão 4.3 relata sobre a comp composiçã osiçãoo das regras de produção, e por fim, a sessão 4.4 descreve sobre o sistema de inferência e o processo de “defuzzyficação”. 4.1. Abstração do problema Primeiramente é necessário conhecer quais são os parâmetros / variáveis fuzzy do problema, neste caso os dados incertos são identificados nos valores das
cartas. Sendo que as cartas variam de Dois a Às. Tal variação dificulta quantificar o jogo, ou seja, expressar de uma forma precisa quanto é o valor de uma jogada sobre sob re out outra. ra. De Dessa ssa forma, forma, atribu atribui-s i-see às info informa rmaçõe çõess inc incert ertas as (carta (cartas), s), variáv variáveis eis lingüísticas, que denotam como cada variável pode ser classificada, descritas na sessão 4.2. Assim, para distinguir as diferentes classes / conjuntos que estas variáveis imprecisas se enquadram, utiliza-se da representação de conjunto fuzzy. Segundo [PEDRYCS & GOMIDE, 1998], conjunto é uma tentativa de organizar, resumir e genera gen eraliz lizar ar con conhec hecime imento nto sob sobre re obj objeto etos. s. Neste Neste sen sentid tidoo trabal trabalhaha-se se com uma classificação sobre um objeto pertencer ou não a um determinado conjunto. Esta classificação pode ser representada por uma função característica: f A ( x) =
1, se x ∈ A 0, se x ∉ A
(1)
Um conjunto fuzzy A em um universo de discurso U é definido por uma função de pertinência µ ~ ( x) que assume valores em um intervalo [0,1]: a
µ a~ : U → [0,1]
(2)
A representação de conjunto fuzzy aqui abordada é do tipo trapezoidal denotado por a~ = ( m1 , m2 , δ , β ) , possui sua função de pertinência, seguinte forma:
µ a~ ( x) ,
definida da
0, x − ( m1 − δ ) , δ 1, µ a~ ( x ) = ( m2 + β ) − x , β 0,
se x ≤
m1 −
δ
se
m1
− δ < x <
se
m1
≤ x ≤
m2
se
m2
< x <
m2
se x ≥
µ x m1
1
+ β
+ β
m2
m -δ 1
tal que:
m
m
1
x
m +β
2
2
Figura 3. Exemplo de um número fuzzy trapezoidal
m1, m2 : extremos (inferior e superior) do intervalo modal; m1-s: espalhamento à esquerda; e m2+b: espalhamento à direita. Notação: Os valores m1-s e m2 + β (m1+β, para triangulares) são denominados
de limitante inferior e limitante superior, respectivamente. Uma outra abordagem de número fuzzy utilizada é da forma triangular e, ~
que pode ser definido como
a
= ( m1 , δ , β ) , tendo sua função de pertinência, µ ~ ( x) , a
definida pela expressão: 0, x − ( m1 − δ ) , δ µ a~ ( x ) = ( m + β ) − x , 1 β 0,
x
se
(m
se
m1
se
(m
<
se
1
1
x
>
− δ ) ≤ x ≤
1
m1
( m + β ) + β )
< x ≤
(m
µ
− δ )
1
tal que:
m -δ
m 1
m +β 1
x
Figura 4. Exemplo de um número fuzzy triangular
m1: valor modal (Definição 4);
m1-s : espalhamento à esquerda; e m1+b : espalhamento à direita.
4.2. Variáveis Lingüísticas Umaa va Um vari riáv ável el ling lingüí üíst stic icaa é de defifinid nidaa co como mo um umaa en entitida dade de util utiliz izad adaa pa para ra representar de modo impreciso um conceito ou uma variável de um dado problema [REZENDE, 2005]. Ela admite como valores apenas expressões lingüísticas como “baixo”, “médio”, “alto”, que são as expressões usadas para denotar os diferentes conjun con juntos tos ex exist istent entes es na apl aplica icação ção.. Estes Estes con conjun juntos tos são def defini inidos dos para para que sej sejaa
possível possível classifica classificarr a variável carta carta em relação a sua pertinência pertinência.. Os conjuntos conjuntos Baixo e Alto são definidos pela função de pertinência trapezoidal, e o conjunto Médio pela função de pertinência triangular, como demonstra a sessão 4.1. A Figura 5 ilustra os conjuntos, bem como seus limites e intersecções. Vale ressaltar que as cartas J, Q, K e A, são rep representadas pelos números 11, 12, 13 e 14, respectivamente. Já as demais cartas, pelos seus próprios valores.
Figura 5. Conjuntos Fuzzy
4.3. Regras de Produção Fuzzy A maneira mais comum de se armazenar informações em uma Base de Conhecimento Fuzzy é a representação através de regras de produção fuzzy. Uma regra de produção é formada, normalmente, por duas partes principais: if < antecedente > then < conseqüente >
O antecedente é composto por um conjunto de condições que, quando satisfeitas, mesmo parcialmente, determinam o processamento do conseqüente da regra [REZENDE, 2005]. As regras concebidas para a implementação da ferramenta aqui proposta, sãoo fo sã form rmad adas as po porr um an ante tece cede dent ntee e um co cons nseq eqüe üent nte. e. O Qu Quad adro ro 1 de desc scre reve ve
algumas das regras que formam a Base de Conhecimento do sistema, sendo que no total a base é composta por 29 por 29 regras. Quadro 1. Exemplos de Regras de Produção Fuzzy 1.
Se H = Médio Então Jogo = Muito Baixo;
2.
Se H = Alto Então Jogo = Muito Baixo;
3.
Se P = Baixo Então Jogo = Muito Baixo;
4.
Se TP = Baixo Então Jogo = Muito Baixo;
5.
Se TP = Médio Então Jogo = Baixo;
6.
Se S = Médio Então Jogo = Médio;
7.
Se S = Alto Então Jogo = Médio Alto;
8.
Se F = Baixo Então Jogo = Médio Alto;
9.
Se F = Médio Então Jogo = Médio Alto;
10. Se FK = Baixo Então Jogo = Alto; 11. Se FK = Médio Então Jogo = Alto; 12. Se FK = Alto Então Jogo = Muito Alto; 13. Se FS = Baixo Então Jogo = Muito Alto;
As regras foram criadas de acordo com as jogadas possíveis, Figura 2, e com base na opinião de jogadores experientes. experientes . Toda vez que é inserida uma entrada crisp
no sistem sistema, a, é de respon responsab sabilid ilidade ade do com compon ponent entee fuz fuzzy zyfica ficador dor
transformar esse dado em um dado incerto, ou sejam, fuzzyficar. Dessa forma, como a escolha escolha do mode modelo lo de inferência inferência depende da forma de armazename armazenamento nto da informação, ou seja, depende da estrutura da regra. Neste caso, o armazenamento das informações trabalha apenas com as variáveis lingüísticas, sem valores de pert pe rtin inên ênci cias as.. Entã Então, o, bu busc scou ou-s -see um mo mode delo lo de infe inferê rênc ncia ia qu quee co cond ndiz iz co com m as estruturas de regras aqui apresentadas. O método abordado é explicado na sessão a seguir, 4.5. 4.3. Avaliador Fuzzy O componente avaliador fuzzy tem como objetivo receber os parâmetros fuzzyficados, e compará-los com os casos da bases de dados, no caso regras. Toda vez que uma regra for disparada, ou seja, pelo menos um antecedente é ativado, ela
deve ser armazenada, pois o próximo passo é verificar com que valor esta regra foi ativada, para gerar uma saída. Isso é responsabilidade do modelo de Inferência. 4.5. Modelo de Inferência O modelo de inferência é responsável por definir como serão processados os antecedentes, porém ele só pode ser definido após ter bem claro como é a estrutura de uma regra, pois dela depende todo o processamento. Dessa forma, por utilizar apenass variáveis apena variáveis lingüísti lingüísticas cas nos antecedentes antecedentes das regras, optou-se optou-se pelo método de Sugeno [REZENDE, 2005]. 2005]. O modelo funciona basicamente gerando uma saída numérica, esta saída é obtida por meio do processamento sobre as regras ativadas. O processamento é apenas um cálculo, que é a soma das saídas das regras ponderada pelos valores de ativação (encontrados nos conseqüentes). Assim, a saída do processamento realizado, é chamada de saída crisp. Pois, o após realizar a inferência com o modelo supracitado, todos os parâmetros incertos são convertidos em um único valor, dito valor clássico. Este processo ocorre para gerar um resultado que possa ser entendido pelo usuário do sistema, no caso uma dica para auxiliar a tomada de decisão. Dessa forma, recebe o nome de processo de “defuzzyficação”. Que é apenas a conversão do número fuzzy em um número crisp (clássico). 5. Testes e Resultados
Para melhor entendimento do sistema proposto e validação do mesmo, fezse nec necess essári árioo alg alguns uns tes testes tes.. Estes, Estes, pod podem em ser visua visualiz lizado adoss na Tabela Tabela 1 que que,, apresenta as saídas ou dicas para o jogador, de acordo com as entradas do sistema, no caso a jogada à ser avaliada. Tabela 1. Testes Mão (5 cartas)
Jogada
Classificação do valor da
Saída
Carta
%
Par
(Alto, m(1.0))
20.0
Full Ho House
(Baixo,m(0.5)), (M (Médio,m(0.3))
80.0
Trinca
(Médio,m(1.0))
40.0
Straight
(Baixo,m(0.5)), (Médio,m(0.3))
40.0
Royal Straight F.
(Alto, m(1.0))
100.0
As saídas visualizadas na Tabela 1 correspondem à percentagem de quão grande é uma jogada em relação às demais. Elas são interpretadas e a partir disso geram-se as dicas para o jogador. A Tabela 2 apresenta as dicas fornecidas pelo sistema de acordo com às saídas dos testes na Tabela 1. Tabela 2. Dicas Saída % Dica 20.0
Recomendo que você não jogue esta mão. Pense mais um pouco. Ou você pode tentar um blefe apostando alto!!
80.0
Você pode apostar alto ou preparar uma armadilha. armadilha. Agora é você quem manda!!
40.0
Reco Recome mend ndo o que que você você jogu jogue! e! Anal Analis ise e sua sua posi posiçã ção o na mesa mesa.. Gera Geralm lmen ente te posições finais são boas para este tipo de mão.
40.0
Reco Recome mend ndo o que que você você jogu jogue! e! Anal Analis ise e sua sua posi posiçã ção o na mesa mesa.. Gera Geralm lmen ente te posições finais são boas para este tipo de mão.
100.0
Pode apostar sem medo. Cuidado para não assustar os adversários, senão eles fogem!!
Assim, Assim, pod pode-s e-see perceb perceber er qu quee as dic dicas as ge gerad radas as no sistem sistemaa dep depend endem em exclusivamente da entrada, no caso as cartas do jogador. A ferramenta não prevê jogadas, apenas analisa e classifica a jogada de entrada. A partir disso, gera como resposta uma dica para o jogador, que serve para orientá-lo e ensiná-lo o que pode ser feito com a combinação de cartas que ele tem em mãos. 6. Trabalhos Futuros
Como proposta para trabalhos futuros, pretende-se expandir a ferramenta de modo à atender e auxiliar tomadas de decisões em outros estilos do Poker como Texas Holde'm, Omaha . 7. Conclusões
Dessa forma, conclui-se que a ferramenta apresentada neste trabalho, está preparada para oferecer dicas que facilitem o aprendizado do jogador de Poker, na modalidade Five Card Draw, fazendo com que o jogador iniciante perceba situações e tome decisões que não seriam possíveis se o mesmo não possuísse experiência. Entende-se também, que a Teoria do Conjuntos Fuzzy [ZADEH, 1965], mais especificam especificamente ente Sistemas Sistemas Fuzzy [CANUT [CANUTO, O, 200 2008] 8] prop propor orci cion onam am es estu tudo doss e desenvolvimento de aplicações que envolvam incertezas, e que muitas vezes não são possíveis de se criar utilizando apenas a Lógica Clássica. 8. Referências Bibliográficas
CANUTO, Anne Mágaly de Paula. Notas de aula: Sistemas Fuzzy . Universidade Federal do Rio Grande do Norte. Disponível em:
. . Outubro. 2008. Introduct uction ion to Fuzzy Fuzzy Sets: Sets: Analys Analysis is and PEDRYCS, W. e GOMIDE, F., An Introd Design, London: MIT Press, 1998. Como jogar jogar Poker . Disponíve POKE POKER, R, L. Como Disponívell em: . br/howtoplaypoker/pokergam es.htm>. Outubro. 2008.
REZENDE, Solange Oliveira. Sistemas Inteligentes: Fundamentos e Aplicações . 1ª edição. São Paulo: Editora Manole, 2005. ZADEH, L.A. Fuzzy Sets. Information and Control, Vol 8. pp.338-353, 1965.