Вы находитесь на странице: 1из 5

Jugador Ganador de Poker Basado en Inteligencia Artificial

Hugo Gascn, Miguel Bordallo, Eduardo Torres


Universidad Carlos III de Madrid Avda. de la Universidad 30, Legans Madrid, Espaa 100029560, 100029516, 100032796@alumnos.uc3m.es

Abstract En el estudio y desarrollo de sistemas basados en inteligencia artificial, la aplicacin de estos conceptos a la competicin en juegos siempre ha tenido una gran relevancia como modelo de pruebas y entrenamiento del sistema. La adecuacin del comportamiento de un programa ante unas circunstancias especficas y la capacidad de aprendizaje del sistema le permiten, trs la experiencia, alcanzar la solucin a un problema o desenvolverse mejor en un entorno determinado. En este trabajo, se ha utilizado el juego del poker para modelar un sistema que posee caractersticas de inteligencia artificial con el objetivo de ganar el juego. Aunque se presenta un modelo simplificado, es sin duda, lo suficientemente claro para mostrar como el diseo del sistema inteligente consigue aprender con la experiencia y finalmente ganar el juego.

El hecho de que sea ms un juego de envite que de azar, donde influye ms la facilidad en engaar a los adversarios que en el verdadero valor de la jugada hecha, aunque sta, por supuesto, tenga su importancia, y muy decisiva, a la hora de apostar fuerte, salvo en los casos en que un jugador quiera marcarse un "farol ", requiere un ambiente que nunca es el propiamente familiar. Historia del Poker La historia del poker es un tema a debate. El nombre del juego parece descender del francs poque, que desciende a su vez del alemn pochen (= 'golpear'), pero no est claro si los juegos a los que se refieren estos nombres fueron los verdaderos orgenes del poker. Tiene una gran similitud con el juego persa as nas, y puede que los marineros persas se lo enseasen a los colonos franceses en Nueva Orleans. Se cree que comparte paternidad con el antiguo juego del renacimiento, llamado primero y el francs "blean". El juego ingls brag (del antiguo bragg), descenda claramente de brelan, e incorpor el bluffing engao, farol (aunque el concepto ya era conocido en otros juegos de aquella poca). Es bastante plausible que todos estos juegos antiguos influyeran en el desarrollo del pokuer tal y como existe en la actualidad. El actor ingls Joseph Crowell describa el juego tal y como se jugaba en Nueva Orleans en 1829 jugado con una baraja de 20 cartas, cuatro jugadores apostaban acerca de qu mano de cartas era la de mayor puntuacin. El libro de Jonathan H. Green: An Exposure of the Arts and Miseries of Gambling Una exposicin de las artes y miserias de las apuestas(G. B. Zieber, Philadelphia, 1843), describe la expansin de este juego por el resto del pas, a travs de las barcazas del ro Mississippi, donde las apuestas eran un entretenimiento comn. Poco despus de esta expansin, se utiliz la baraja inglesa completa de 52 cartas y se introdujo la jugada "color" (tener cinco cartas no consecutivas del mismo palo, por ejemplo cinco trboles). Durante la Guerra Civil Americana, se aadieron muchas cosas, inclusive el poker de descarte, poker descubierto y el poker de secuencia. A stos le siguieron ms aadidos, de tendencias estadounidenses, como wild card (alrededor de 1875), lowball y split-pot poker (alrededor de 1900), y los juegos de pquer de community card. La expansin del juego a otros pases, particularmente a Asia, se suele atribuir al ejrcito de los EE.UU.

I. INTRODUCCIN

El objetivo de este trabajo es el diseo de un bot jugador de poker (ganador) basado en conceptos de minera de datos, aprendizaje e inteligencia artificial. Se ha simulado una partida de poker con un nmero suficiente de manos para que el bot sea capaz de aprender los patrones de juego de otro jugador y, en funcin de estos patrones, utilizar una estrategia u otra a fin de ganar la mano e ir incrementando sus ganancias. Como hay varias estrategias para jugar al poker, se ha intentado establecer un sistema de juego especfico para cada jugador basado en el nivel de riesgo, el valor de las jugadas y la apuesta correspondiente. El objetivo del bot ser aprender el nivel de riesgo que asume el otro jugador y, en funcin de la apuesta del rival y de sus propias cartas, tomar la decisin ms adecuada para ganar la mano.

II. EL JUEGO DEL POKER El juego de cartas poker es el ms popular del tipo de juegos llamado de apuesta, en el cual los jugadores con todas o parte de sus cartas ocultas hacen apuestas sobre una puja inicial, tras lo cual, la suma de apuestas es para el jugador o jugadores que tienen la mejor combinacin de cartas.

El juego y jerga del poker han llegado a ser parte importante de las culturas estadounidense e inglesa. Frases como ace in the hole = un as en la manga, beats me = ni idea, blue chip = de primera, call the bluff = ver un farol (darse cuenta de que alguien farolea), cash in = sacar partido, poker o poker face = poner cara de pquer (refirindose a no mostrar expresin alguna en el rostro), stack up = adelantarse, wild card = carta comodn y otras, son usadas en conversaciones cotidianas, incluso fuera de su contexto de la mesa de poker. El torneo moderno se hizo popular en los casinos estadounidense tras el comienzo de las Series Mundiales de Poker en 1970. Fue tambin durante esta dcada cuando aparecieron los primeros libros serios acerca de estrategia; en particular Theory of Poker" David Sklansky, o Super system" por Doyle Brunson. Las retransmisiones va satlite y cable de los torneos han aadido popularidad al juego. Reglas del Poker Las reglas del juego de poker son sencillas de comprender pero el juego es difcil de conquistar. Para jugar, se deben aprender, al menos, las reglas bsicas y procedimientos de este juego, los valores de las varias combinaciones de cartas, y las reglas acerca de los lmites de apuesta. Tambin es til familiarizarse con los objetos que se utilizan en el juego. Hay muchas variantes de pquer, entre las que caben sealar el pquer abierto, pquer cerrado, pquer cartas compartidas, y p quer surtido. Los ms comnmente jugados de las primeras tres categoras son cinco cerrado, siete abierto, y el Texas hold 'em, cada una de estas variante es un buen punto de partida para aprender los juegos de este tipo. Existen varios estilos de poker, pero las reglas del poker tradicional que aqu explicamos son las reglas bsicas de todos los tipos de poker: -Para jugar al poker, se necesita un mazo de cartas francesas (52 cartas), aunque en algunos tipos de poker, la cantidad de cartas vara e incluso se agregan comodines. -La escala de valores de las cartas es la siguiente: As (la mayor), Rey (K), Reina (Q), Sota (J), 10, 9, 8, 7, 6, 5, 4, 3 y 2 (la menor). -Existen 4 palos (picas, corazones, diamantes y trbol) y ningn palo es de mayor valor que otro. -El nmero de cartas a repartir depende de la variante del juego, pero el estndar del juego es que se repartan 5 cartas (tapadas) por jugador. -El objetivo del juego es formar una combinacin de cartas superior a la del resto de los jugadores. Por medio de las apuestas se van eliminando jugadores y posibilidades.

-Escalera de Color o Escalera de Palo o Flor: 5 cartas seguidas del mismo palo pero que no tienen al As como carta ms alta. Combinaciones posibles: 36. Ejemplo:

-Poker: 4 cartas iguales en su valor. Combinaciones posibles: 624. Ejemplo:

-Full: 3 cartas iguales, ms otras 2 iguales. Combinaciones posibles: 3744. Ejemplo:

-Color o Palo: 5 cartas del mismo palo sin ser seguidas. Combinaciones posibles: 5108. Ejemplo:

-Escalera o Corrida: 5 cartas seguidas de palos diferentes. Combinaciones posibles: 10200. Ejemplo:

-Tro o Tercia: 3 cartas iguales en su valor. Combinaciones posibles: 54912. Ejemplo:

-Doble Pareja o Dos Pares: 2 pares de cartas. Combinaciones posibles: 123552. Ejemplo:

-Pareja o Par: 2 cartas iguales y 3 diferentes. Combinaciones posibles: 1098240. Ejemplo: Clasificacin de las jugadas -Escalera Real o Flor Imperial: 5 cartas seguidas del mismo palo del 10 al As. Combinaciones posibles: 4. Ejemplo: -Carta ms elevada o Jardn: gana quien tiene la carta ms alta. Combinaciones posibles: 1302540. Ejemplo:

III. OBJETIVOS Est generalmente considerado que no es viable simular el juego del poker (o al menos la mayora de sus variantes) por ordenador. Sin embargo, se estn desarrollando mtodos para, al menos, aproximar una estrategia perfecta segn la perspectiva de la Teora del Juego para los duelos mano a mano, y se estn incrementando los sistemas de cierta calidad para los juegos contra varios jugadores. La estrategia perfecta tiene varios significados en este contexto. Desde un punto de vista puramente terico del juego, una estrategia perfecta (minimax) es la que no pueda perder frente a cualquier estrategia planteada por otro jugador; no obstante, la estrategia ptima puede variar con la presencia de jugadores sub-ptimos, los cuales tienen debilidades que pueden ser explotadas. En este caso, la estrategia perfecta sera una que sacara ventaja de estas debilidades y las aprovechara en su beneficio. Algunos de estos sistemas estn basados en el Teorema de Bayes, el equilibrio de Nash, el Mtodo de Monte Carlo y los sistemas de Redes Neurales. Una gran parte de esta investigacin se est llevando a cabo en la universidad de Alberta por el grupo de JUEGOS, liderado por Jonathan Schaeffer, quien dise Poki y PsOpt. En este trabajo se ha desarrollado un jugador de poker inteligente que es capaz de aprender de sus rivales, de modo que despus de un nmero de partidas suficientes, es capaz de ganar en funcin de las datos que ha obtenido en las partidas anteriores. El objetivo de este diseo es, por tanto, conseguir un sistema que sea capaz de observar la forma de jugar de sus rivales y, en funcin de esa informacin, sepa, en el caso de que se produzca la apuesta, la calidad de la jugada del adversario en funcin de su nivel de riesgo. De esta manera, el jugador inteligente es capaz de ganar a medida que aumenta el nmero de manos jugadas, ya que va determinando el nivel riesgo en funcin de la decisin o no de apostar del adversario y el nivel de su apuesta. decidir no seguir adelante con la apuesta. La eleccin afirmativa o negativa est determinada por un umbral sobre el que se comprueba el valor de puntuacin total. El siguiente paso del juego es la apuesta. Para simplificar la implementacin del modelo, el jugador inteligente carece de nivel de riesgo y en las primeras jugadas siempre va a afrontar la apuesta con la intencin de saber con que cartas esta apostando el jugador normal. A medida que el juego va avanzando, el objetivo del jugador inteligente es ir limitando el valor de riesgo del jugador normal e ir adecuando su nivel de riesgo a ste, de modo que cuando se produzca el envite, en funcin de sus propias cartas, el jugador inteligente sabr si tiene que aceptar o no la apuesta.

V. DESARROLLO Y PRUEBA DEL MODELO

La implementacin del proyecto se ha realizado en el lenguaje JAVA. Se han codificado las siguiente clases:

-Carta.java: El objeto Carta. Posee un valor y un tipo de palo. Cada jugador posee cinco objetos Carta en cada jugada.

-IAPoker.java: En esta clase est definido el main . Es la encargada de crear la baraja con las 52 cartas, al jugador virtual inteligente y a su adversario. Tambin es en esta clase donde se reparten las cartas a los jugadores y se averigua quien es el ganador de la mano en funcin de las mismas. Adems, es donde se llevan las cuentas de las ganancias y las prdidas de cada jugador.

IV. DISEO DEL MODELO DE JUEGO

Como se ha comentado en el punto III, el elevado nmero de combinaciones posibles y la dificultad para introducir parmetros como la agresividad o la capacidad de un jugador para engaar al contrario, difcultan el proceso de implementacin del juego en un sistema computacional. No obstante, partiendo del obejtivo fundamental que ocupa este diseo, es decir, la obtencin de un sistema con capacidades de aprendizaje, se ha desarrollado un modelo del juego donde se ha simplificado el comportamiento de los jugadores y se ha creado un modelo del juego con reglas que aunque son caractersticas del poker, tambien son ms simples. En este diseo del modelo de juego, intervendrn solo dos jugadores, un jugador normal y un jugador inteligente. Se ha considerado suficiente utilizar dos jugadores puesto que la situacin en la que intervienen ms de dos jugadores se puede entender como una ampliacin en paralelo de este modelo. El primer paso en el proceso de este modelo de juego es el reparto de las cartas. Se reparten cinco a cada uno de los dos jugadores y cada uno de ellos calcula el valor de su mano. El jugador normal genera un nivel de riesgo que puede ser establecido de manera manual (sobre todo para testeo del modelo) o de forma aleatoria y almacena una puntuacin total de su jugada como producto del valor de su mano y de su nivel de riesgo. La puntuacin total ser la que permita decidir al jugador normal si lleva a cabo la apuesta con dichas cartas. De este modo, un jugador con una mala mano pero con un nivel de riesgo alto decidir apostar, mientras que un jugador con una mano considerablemente buena pero un nivel de riesgo muy bajo, puede

-PokerPlayer.java: Representa al rival de nuestro jugador inteligente. Le definimos con un nivel de riesgo determinado, el cual variaremos en funcin del tipo de jugador que queramos que se enfrente a nuestro jugador virtual (segn este nivel de riesgo , el oponente del jugador virtual inteligente podr tener estrategias diferentes: desde apostar siempre a apostar slo cuando lleve una jugada muy buena). Para la decisin de si apuesta o no, se combina el riesgo con el valor de la mano, este nuevo valor deber superar un determinado umbral para que se haga la apuesta. Para igualar una apuesta, tambin ser necesario que supere otro cierto umbral.

-IAPokerPlayer: Es la clase que representa el objeto del jugador virtual inteligente. El jugador virtual inteligente tiene en cuenta el nivel de riesgo y el valor de la mano para tomar, tanto la decisin de si apuesta o no, como la cantidad que apuesta. La diferencia fundamental respecto al otro jugador, es que el jugador virtual inteligente es capaz de ir recolocando los umbrales a fin de alcanzar el punto ptimo; es decir, una vez que encuentra el valor medio de la mano con el que el rival suele apostar, encuentra el valor ptimo medio para ganar el mximo dinero posible (esto lo hace evaluando los beneficios en cada umbral, llegando al punto ptimo y jugando el mayor nmero posible de manos en ese nivel).

El diagrama de bloques del programa es el siguiente:

Un jugador intermedio tiene un riesgo menor al anterior y una puntuacin de 200, resultando ms costoso leer su juego y aunque necesitando ms manos, es finalmente batible. Y un jugador bueno est definido por un umbral de puntuacin ms elevado, y realmente difcil de leer llegando a necesitar un milln de manos y no garantizando la victoria. Por otra parte el jugador inteligente, para simplificar el juego, se dedica a aprender los movimientos del rival y a pagar sus apuestas o no en funcin de lo que vaya aprendiendo. Se ha escrito un mtodo para que nuestro jugador inteligente descubra el valor medio de las manos con las que el rival apuesta, este valor se puede conseguir con seguridad a las 1200 manos. A partir de este valor se fija el valor de mano medio para pagar apuestas un punto por encima de nuestro rival para comenzar a ganarle, aun sin llegar al punto optimo de ganancia. Llegados a este punto es interesante explotar la debilidad del rival y se busca el punto optimo medio que debera tener el valor medio de la mano del jugador inteligente para conseguir la mayor ganancia posible y para ello se ha implementado un mtodo que comprueba las ganancias cada 10000 manos verificando que nivel es el adecuado para ganar mas. Bsicamente se comprueba en cada umbral de nuestro valor medio de mano el beneficio obtenido y se finalmente se fijara un umbral que ser en el que mas ganancias se obtengan explotando de esta manera la debilidad del jugador rival.

Figura 1

Nuestro diseo, que intenta simplificar una partida de poker real, asume que no hay apuesta inicial, por lo que no tiene en cuenta que en todas las partidas se pierde dinero si comienza la partida y no se va. Si en vez de jugar contra un oponente jugsemos contra varios, cada uno con una estrategia diferente, slo tendramos que tener en cuenta al que tuviese el umbral ms alto de todos los que van a apostar, ya que sera el ms complicado de ganar.

V. DESARROLLO Y PRUEBA DEL MODELO

Para empezar con el desarrollo se define una partida de poker entre dos jugadores con una sola ronda de apuestas para simplificar el juego y poder implementarlo y demostrar los conceptos deseados de la asignatura. Se reparten las cartas aleatoriamente a los dos jugadores y siempre comenzar a jugar el jugador maquina y el inteligente hablar detrs decidiendo si retirarse o pagar la apuesta realizada o no por el rival. Ha sido definido un sistema de puntuacin de las manos posibles en las partidas de poker para parametrizar de alguna manera las manos y obtener datos numricos para desarrollar el robot de poker, ya que nos basamos en valores medios de manos para definir las estrategias ganadoras. Para desarrollar el sistema se han considerado tres tipos de jugador que se definen a partir de su nivel de riesgo y de su nivel de umbral de puntuacin para comenzar a apostar. El jugador malo est definido por un umbral de puntuacin de 100 y un riesgo de 9, de esta manera significa que prcticamente apostara en todas las manos y ser ms fcil leer su juego y aprenderlo.

Figura 2

En el caso de la figura 2 se observa que las ganancias contra un jugador malo se consiguen desde el primer momento sin llegar aun al punto ptimo. Se ha comprobado experimentalmente que al punto ptimo llegamos cuando llevamos 30000 manos, que son relativamente pocas ya que existen muchas combinaciones de jugadas de poker. El sistema ha comprobado que a pesar de ganar al jugador "malo" en los primeros niveles se intenta llegar al punto ptimo de ganancias. Esto se consigue una vez que se estabiliza la grafica y llegando al valor medio de nuestra mano que nos garantiza el mximo beneficio y ganando cada 10000 manos unos 14000 puntos de beneficio.

En cualquier caso y como conclusin final, se ha demostrado que se a alcanzado el objetivo de disear un sistema complejo, que segn el modelo desarrollado y bajo unas circunstancias especficas muestra su capacidad de aprendizaje y un comportamiento inteligente.

IX. REFERENCIAS [1]Java : how to program. Deitel, Harvey M. [2] Fundamentos de Java : [actualizado para J2SE 5] Schidt, Herbert [3] Programacin orientada a objetos con Java : una introduccin prctica usando BlueJ Barnes, David J Figura 3 [4]Apuntes de la asignatura Inteligencia en Redes de Comunicaciones, de la titulacin Ingeniera de Telecomunicacin. Universidad Carlos III de Madrid. [5] www.google.com

En la situacin de la figura 3, ya que hay definido un valor medio por defecto que es 17, hasta que no aprende la el valor medio del rival jugar con este dato y por consiguiente perdiendo si se enfrenta a un jugador que seleccione mejor sus manos, de hecho, contra este jugador empieza perdiendo y va aprendiendo su media y su nivel de juego hasta que de nuevo consigue llegar al umbral optimo y ganando lo mximo posible a este rival. Ganara cada 10000 manos unos 5200 puntos de beneficio con este umbral aprendido. Es interesante ver que el beneficio medio cada 10000 manos es menor que en el caso anterior ya que el jugador es mejor, es decir, que aunque se llegue al punto ptimo de beneficio siempre se le ganar mas al jugador mediocre en el punto optimo de beneficio.

[6] www.wikipedia.org

VI. CONCLUSIONES Se ha visto como despus de un nmero suficiente de manos, el jugador virtual acaba ganando. No obstante, este nmero suficiente de manos es tan alto, que no sera viable en las partidas de poker reales. Adems, no se han tenido en cuenta factores tan importantes en el poker como son los faroles , que haran que el umbral tuviese una varianza mucho mayor o, simplemente el estado de nimo del jugador, el cual podra hacer que arriesgase ms o menos al apostar, cambiando as su estrategia de juego y haciendo que todos los datos anteriormente obtenidos ya no fuesen tiles. Tambin se ha comprobado como es mucho ms fcil aprender a ganar al tipo de jugadores que siempre apuestan, lleven buena jugada o no, y en cambio, son necesarias muchas ms manos para aprender a derrotar a los jugadores que slo apuestan cuando llevan buenas jugadas. Esto es debido a que es mucho ms fcil localizar el umbral de decisin de apostar o no, y cuanto apostar, en el primer tipo de jugadores. Se podra esperar, al introducir ese grado de farolismo como una variable aleatoria, que al aumentar la varianza del umbral, sea necesarias an ms manos para conseguir ajustar el umbral y derrotar a los oponentes. Como se ha demostrado, un modelo no simplificado es inviable en la realidad por la cantidad de manos que tiene que jugar el jugador virtual inteligente para aprender a derrotar a los oponentes, por lo que la introduccin de un grado de engao, que hara que aumentasen ms el nmero de manos, no sera determinante.

Вам также может понравиться