TrucoAnalytics
[DESAFIO] ¿Cómo hacer que una computadora ( inteligencia artificial ) juegue mejor que un humano al truco? El Truco es un juego de cartas Argentino popularmente jugado en el todo el país y el cono sur. Es un juego de estrategia competitivo basado en turnos, de estados finitos e información incompleta, lo cúal quiere decir que los jugadores basaran sus estrategias en base a especulaciones en cuanto a las cartas de los demas. En los últimos tiempos, han existido numerosos articulos cientificos implementando modelos de aprendizaje reforzado en juegos de dichas caracteristicas. No obstante, aun no hay ningun trabajo que haya analizado este particular juego Argentino y su estadistica (probabilidad). El próposito de este proyecto es analizar este juego desde un aspecto computacional para poder, luego, modelar un agente de aprendizaje reforzado. Para dicho fin, primero vamos a hacer una revisión de los trabajos cientificos en juegos similares (como el poker), luego conceptualizar algunos terminos clave en función del comportamiento y estilo cognitivo de jugadores de truco y finalmente, proponemos a la comunidad el involucramiento en el desarrollo de un agente de aprendizaje reforzado para resolver este problema.
Install / Use
/learn @IAARhub/TrucoAnalyticsREADME
<img src="https://github.com/IAARhub/NewsDSS-Argentina/raw/master/iaarblack.png" width="128" > HUB
Análisis computacional-cognitivo-conductual del juego de cartas Truco Argentino.

[DESAFÍO] ¿Cómo podríamos que hacer que una computadora juegue mejor que un humano al truco? ¿Podríamos crear una IA para el truco?
Resumen: El Truco es un juego de cartas Argentino popularmente jugado en el todo el país y el cono sur. Es un juego de estrategia competitivo basado en turnos, de suma cero, estados finitos e información incompleta, lo cúal quiere decir que los jugadores basaran sus estrategias en base a especulaciones en cuanto a las cartas de los demas. En los últimos tiempos, han existido numerosos artículos científicos implementando modelos de aprendizaje reforzado en juegos de dichas características. No obstante, aún no hay ningún trabajo que haya analizado este particular juego Argentino. El próposito de este proyecto es analizar este juego desde un aspecto computacional para poder, luego, modelar un agente de aprendizaje reforzado. Para dicho fin, primero vamos a hacer una revisión de los trabajos científicos en juegos similares (como el poker), luego conceptualizar algunos términos clave para abordar dicho problema, proponemos en este trabajo un modelado del oponente en función del comportamiento y estilo cognitivo de jugadores de truco y finalmente, invitamos a la comunidad al involucramiento en el desarrollo de un agente de aprendizaje reforzado para resolver este problema. ¿Cuál creen qué es el mejor enfoque para abordar el problema? ¿Qué algoritmo usarías?
Nota: Estamos analizando el truco Argentino sin flor y de a dos jugadores.
¿Cómo contribuir?
- Si te interesa participar simplemente clona este repositorio y unite al slack haciendo clic a este link: http://iaar-slack.herokuapp.com/
- Si ya estas en slack podes ingresar con este link: http://iaar.slack.com
Facilitador
Patricio J. Gerpe
Preliminares
Revisión de literatura
En tanto no se han encontrado artículos científicos en respecto al juego de cartas 'Truco' sí existe artículos cientificos que abordan juegos de cartas de información imperfecta tal como el Poker. Ejemplos incluyen:
- Heinrich, J., & Silver, D. (2016). Deep reinforcement learning from self-play in imperfect-information games. arXiv preprint arXiv:1603.01121. https://arxiv.org/pdf/1603.01121.pdf
- Mealing, R., & Shapiro, J. L. (2017). Opponent Modeling by Expectation-Maximization and Sequence Prediction in Simplified Poker. IEEE Trans. Comput. Intellig. and AI in Games, 9(1), 11-24.
- Kitchen, A., & Benedetti, M. (2018). ExpIt-OOS: Towards Learning from Planning in Imperfect Information Games. arXiv preprint arXiv:1808.10120. https://arxiv.org/pdf/1808.10120.pdf
- Yakovenko, N., Cao, L., Raffel, C., & Fan, J. (2016, February). Poker-CNN: A Pattern Learning Strategy for Making Draws and Bets in Poker Games Using Convolutional Networks. In AAAI (pp. 360-368).
- Ganzfried, S., & Yusuf, F. (2017). Computing human-understandable strategies: Deducing fundamental rules of poker strategy. Games, 8(4), 49.
- Bowling, M., Burch, N., Johanson, M., & Tammelin, O. (2017). Heads-up limit hold'em poker is solved. Communications of the ACM, 60(11), 81-88.
- Li, X., & Miikkulainen, R. (2018, July). Opponent modeling and exploitation in poker using evolved recurrent neural networks. In Proceedings of the Genetic and Evolutionary Computation Conference (pp. 189-196). ACM.
- Dahl, F. A. (2001, September). A reinforcement learning algorithm applied to simplified two-player Texas Hold’em poker. In European Conference on Machine Learning (pp. 85-96). Springer, Berlin, Heidelberg.
- Teófilo, L. F., Passos, N., Reis, L. P., & Cardoso, H. L. (2012). Adapting strategies to opponent models in incomplete information games: a reinforcement learning approach for poker. In Autonomous and Intelligent Systems (pp. 220-227). Springer, Berlin, Heidelberg.
- Erev, I., & Barron, G. (2005). On adaptation, maximization, and reinforcement learning among cognitive strategies. Psychological review, 112(4), 912. https://www.researchgate.net/profile/Ido_Erev/publication/7505648_On_Adaptation_Maximization_and_Reinforcement_Learning_Among_Cognitive_Strategies/links/00b49524696d50e515000000.pdf
- Szita, I. (2012). Reinforcement learning in games. In Reinforcement Learning (pp. 539-577). Springer, Berlin, Heidelberg.
- Kovacic, M. (2015). Opponent Modelling in Games with Imperfect Information.
- Hernandez-Leal, P., Taylor, M. E., Rosman, B., Sucar, L. E., & Munoz de Cote, E. (2016). Identifying and tracking switching, non-stationary opponents: A Bayesian approach.
- Albrecht, S. V., & Stone, P. (2018). Autonomous agents modelling other agents: A comprehensive survey and open problems. Artificial Intelligence, 258, 66-95.
- Kawamura, K., Mizukami, N., & Tsuruoka, Y. (2017, August). Neural Fictitious Self-Play in Imperfect Information Games with Many Players. In Workshop on Computer Games (pp. 61-74). Springer, Cham.
- Ponsen, M. J., Gerritsen, G., & Chaslot, G. (2010). Integrating Opponent Models with Monte-Carlo Tree Search in Poker. Interactive Decision Theory and Game Theory, 82.
- Bard, N., & Bowling, M. (2007, July). Particle filtering for dynamic agent modelling in simplified poker. In Proceedings of the National Conference on Artificial Intelligence (Vol. 22, No. 1, p. 515). Menlo Park, CA; Cambridge, MA; London; AAAI Press; MIT Press; 1999.
- Hernandez-Leal, P., Zhan, Y., Taylor, M. E., Sucar, L. E., & de Cote, E. M. (2017). An exploration strategy for non-stationary opponents. Autonomous Agents and Multi-Agent Systems, 31(5), 971-1002.
Conceptos Clave
-
Modelado del oponente: Dado que no podemos saber qué cartas tiene nuestro oponente es necesario poder modelar el estilo del juego del mismo. El modelado del oponente busca clasificar a nuestro oponente en base a su estilo estilo cognitivo (Toma deciciones de manera racional VS toma decisiones de manera intuitiva) así como su comportamiento. ¿Con qué frecuencia el oponente cambia su estilo de juego? ¿Cuál es la frecuencia en la qué miente? ¿Tiene predominancia el comportamiento agresivo (Ejem.: Aumentar apuestas) o el comportamiento defensivo (Ejem.: Rechazar apuestas en contextos de malas cartas).
-
Equilibrio de Nash: Se llama equilibrio de Nash a situaciones en las que las decisiones que ambos jugadores tomaron no pudiesen haber maximizado la utilidad para ambos de otra mejor alternativa.
-
Valor esperado: El Valor Esperado (VE) o Expected Value (VE) en el truco se refiere a la expectativa promedio de puntos que un jugador o equipo puede ganar o perder como resultado de una acción específica, considerando todas las posibles situaciones y sus probabilidades asociadas.
EV=(p1×r1)+(p2×r2)+...+(pn×rn)
donde:
� p es la probabilidad de un resultado específico. � r es el resultado asociado con esa probabilidad (ganancia o pérdida de puntos). � n es el número total de resultados posibles.
-
Expectativa positiva: Una acción tiene expectativa positiva (VE+) o EV+ (Expected Value Positive) cuando el EV es positivo, es decir, cuando la expectativa promedio es ganar más puntos de los que se pierden. Tomar decisiones con EV+ a lo largo del juego ayuda a maximizar las ganancias a largo plazo.
-
**Expectativa negativa **:
En el truco argentino, el término EV- (Expected Value Negative) se refiere a una situación en la que el valor esperado (EV) de una acción o decisión es negativo. Esto significa que, en promedio y a largo plazo, esa acción resultará en una pérdida neta de puntos. Tomar decisiones con EV- tiende a ser perjudicial para el jugador o equipo, ya que conduce a pérdidas acumuladas con el tiempo.
- Teorema fundamental del Poker. (Aplica para el Truco) El Teorema Fundamental del Poker, formulado por David Sklansky, establece que cada vez que juegas una mano de manera diferente a como lo habrías hecho si pudieras ver las cartas de tu oponente, él gana; y cada vez que juegas tu mano de la misma manera que lo habrías hecho si pudieras ver sus cartas, tú ganas. Aunque el truco argentino y el poker son juegos diferentes, el teorema puede aplicarse de manera similar para mejorar la toma de decisiones estratégicas en el truco. En el truco, como en el poker, se toman decisiones basadas en información imperfecta. No puedes ver las cartas de tu oponente, pero puedes hacer inferencias basadas en sus acciones y en la información disponible (tus cartas, las cartas jugadas, las apuestas, etc.).
Componentes del Teorema en el Truco Lectura del Oponente:
Acciones del Oponente: Observar y analizar las acciones del oponente (por ejemplo, si canta envido, truco, o re truco) para inferir la fuerza de sus cartas. Patrones de Juego: Identificar patrones de juego que puedan indicar una mano fuerte o débil. Juego Óptimo Basado en Información:
Simular la Visión de las Cartas del Oponente: Intentar jugar tus manos como si pudieras ver las cartas del oponente, basándote en las inferencias de sus acciones y patrones. Responder a Apuestas: Tomar decisiones sobre aceptar, rechazar, o subir apuestas basándote en la evaluación de la probabilidad de tener una mano mejor que la del oponente. Maximización de Ganancias y Minimización de Pérdidas:
Aprovechar Oportunidades: Si tus inferencias sugieren que tienes una mano superior, realizar acciones que maximicen tus ganancias (cantar truco, re truco, etc.). Minimizar Pérdidas: Si las acciones del oponente sugieren que tiene una mano más fuerte, evitar apuestas altas o retirarse para minimizar pérdidas.
-
Pozo del juego (Game's Equity): El pozo del juego es la cantidad de puntos en juego durante la partida. (Ejemplo: Si se canta truco y re truco serán 3).
-
Pozo del jugador (Player's equity): El pozo del jugador es el pozo del juego multiplicado por la probabilidad del jugador de ganar sobre
