reparten reglas póquer pokerstars online jugar jugadas fichas empate cuantas como color clasico aprender java lisp artificial-intelligence poker jatha

java - reglas - Construyendo un Texas Hold''em jugando AI... desde cero



pokerstars (9)

Estoy interesado en construir un motor Texas Hold ''Em AI en Java. Este es un proyecto a largo plazo, en el que planeo invertir al menos dos años. Todavía estoy en la universidad, no he construido nada ambicioso y quiero abordar un problema que me interesará a largo plazo. Soy nuevo en el campo de la IA. Desde mi clase de estructuras de datos en la universidad, conozco bloques de construcción básicos como BFS y DFS, retroceso, DP, árboles, gráficos, etc. Estoy aprendiendo regex, estudiando para el SCJP y el SCJD y en breve tomaré una (densa ) curso de estadísticas.

Preguntas:

- ¿Dónde empiezo? ¿Qué libros debo elegir? ¿En qué tipo de IA se ejecutan los programas de póquer? ¿De qué proyecto de código abierto puedo tomar una página? ¿Algún buen recurso de IA en Java? Estoy interesado en aprender Lisp también, ¿es bueno Jatha?


Escribí un Hold''Em AI en mi pregrado. No era particularmente avanzado, utilicé una máquina Q-Value que atravesaba varios estados y actualizaba los valores Q para cada estado.

El proyecto AI Poker de la Universidad de Alberta me pareció una fuente de información muy valiosa para evitar las trampas.

Como se indica en un cartel de arriba, el primer paso es establecer un par de reglas de póquer determinables: el póker individual se puede desarrollar programáticamente.

Un escollo en el que caí no fue la reconfiguración desde el principio. Por ejemplo, poder cambiar el grado de aprendizaje / juego.

Me interesaría saber cómo te va al enviarme un correo stevekeogh a gmail.com


Las IA de poker son notoriamente difíciles de acertar porque los humanos apuestan de manera impredecible. Por lo general, se divide en dos partes.

1) Calcule las probabilidades de que su mano sea la ganadora.

2) Formule una estrategia de apuestas basada en 1.

Recomiendo comenzar con muchas estadísticas que lean para la parte 1. Parece fácil a primera vista, pero en realidad es muy complicado (y equivocarse será fatal para tu IA). Luego pase a los algoritmos genéticos para la parte 2. Las estrategias de apuestas son en su mayoría algoritmos genéticos. Se ajustan a sí mismos en función de los éxitos y fracasos pasados ​​+ alguna aleatorización para no volverse predecibles.


Un resultado interesante que he escuchado es que si restringe las opciones de apuesta para retirarse, verificar y apostar, puede escribir una IA que gane uno contra uno con una probabilidad de al menos 49% y 49.5% si es (IIRC ) no ir primero.

No sé si esta inteligencia artificial es más fácil de escribir que la que sabe cuánto apostar, pero es una cuestión de reflexión: elegir cantidades para apostar solo representa el 1,5% de la probabilidad de ganar.


Además, dejar que el algoritmo genético ajuste los pesos de la red neuronal, lo que determina la lógica de decisión. Este enfoque es muy adecuado para la IA de póker.

Hice mi propia IA así. Al principio, creé ~ 1000 jugadores, que no sabían cómo jugar el juego en absoluto. En función de su suerte inicial durante las manos, su estado físico fue ponderado y se creó una nueva generación. Los nuevos "cerebros" estaban jugando mejor que la generación anterior.

Eventualmente, los mejores individuos jugaron muy bien.


Como ya se recomendó, el libro Theory of Poker es una fuente de información realmente valiosa para jugar, así como para construir una IA. Probablemente deberías comprarlo, ya que no cuesta tanto.

El grupo de investigación de la Universidad de Alberta tiene el estado del arte en este momento, aunque tienen una dura competencia que surge de vez en cuando. (No todos los bots de póquer y la investigación de IA en el campo son públicos debido a la tentación de usar los resultados de uno en el póker en Internet, aunque eso está prohibido).

Primero debes decidir qué tipo de póquer vas a enfrentar primero. El hold''em de dos jugadores está bastante resuelto, aunque los mejores humanos todavía se pelearon con la mejor IA disponible. La IA tiene las principales ventajas sobre los humanos al tener un ilimitado e impecable recuerdo de manos pasadas, un análisis perfecto de los patrones basados ​​en eso y, como son máquinas, no se inclinan como lo hacen casi todos los humanos ocasionalmente.

El Hold''em fijo es probablemente el más fácil de descifrar, por lo que es posible que desee comenzar con 1-1 hold''em fijo y luego decidir qué hacer a continuación.

Aquí hay algunos aspectos que cambian la estrategia correcta (y su IA):

  • Un juego de dinero en efectivo es diferente de un torneo: el número de jugadores hace que las decisiones sean diferentes.
  • Hold''em no es el único póker. Omaha, Stud y otros existen y se juegan ampliamente.
  • Fixed Limit es diferente de Pot Limit, que es diferente de Sin límite.
  • Para vencer lo mejor, necesitas cubrir un montón de cosas muy sutiles que los mejores jugadores piensan cuando juegan. Para vencer a un juego amateur de apuestas bajas, ninguna de estas cosas cuenta.

Si decides apostar por No Limit Hold''em, es posible que desees consultar la serie de tres libros Harrington en Hold''em y un libro No Limit Poker - Theory and Practice . Después de haber leído bastantes libros sobre el póker, puedo decir que estos libros combinados con Theory of Poker son suficientes.




Solo para agregar a los enlaces anteriores, una de las cosas importantes para implementar sería http://en.wikipedia.org/wiki/Kelly_criterion, que ayudará a determinar el tamaño óptimo de las apuestas dadas las probabilidades esperadas en una serie de apuestas. Con humanos podría haber errores en el juicio de probabilidades, pero si su programa de IA puede escupir las probabilidades normalizadas esperadas basadas en cualquier algoritmo, entonces esta técnica de apostar que equilibra tanto el riesgo como la recompensa para el jugador con ventaja sería una buena solución económica .


No estoy seguro de cuál es el juego exacto en el que está interesado, pero el enfoque típico es crear una versión abstracta mucho más pequeña del juego, resolver ese juego más pequeño y luego asignar situaciones reales del juego al juego abstracto para generar consejos. La mayoría de los trabajos académicos omiten los detalles de este proceso a favor de presentar resultados sobre la convergencia, la explotación y los resultados de la competencia.

Sin embargo, hay algunas bases de código disponibles públicamente que presentan una implementación completa. Uno de los mejores es Fell Omen:

http://www.deducer.org/pmwiki/pmwiki.php?n=Main.ArtificialIntelligencePoker

Este es un robot de estrategia completo básico que usa el juego ficticio para optimizar la estrategia del juego abstracto. Es un buen punto de partida porque es bastante directo, completo y representa una buena presentación del enfoque del juego abstracto.

Si estás interesado en desarrollar IA de póker, te sugiero que leas todo desde 2007 y en adelante desde el grupo de póquer UA y los estudiantes de Tuomas Sandholm:

http://www.cs.cmu.edu/~sandholm/

http://poker.cs.ualberta.ca/publications.html