Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Poker AI (I)
1. Poker AI
A Technical Approach to PokerBots
Rub´n Dugo Mart´
e ın
25 de Junio de 2010
Poker AI
1 / 35
2. Introducci´n
o
El mundo del poker online
Cifras (I)
Existen m´s de 100 salas de juego online repartidas por todo el
a
mundo.
Poker AI
2 / 35
3. Introducci´n
o
El mundo del poker online
Cifras (I)
Existen m´s de 100 salas de juego online repartidas por todo el
a
mundo.
Cifras (II)
Algo m´s de un mill´n de jugadores en total (cash y no cash).
a o
Poker AI
2 / 35
4. Introducci´n
o
El mundo del poker online
Cifras (I)
Existen m´s de 100 salas de juego online repartidas por todo el
a
mundo.
Cifras (II)
Algo m´s de un mill´n de jugadores en total (cash y no cash).
a o
Cifras (III)
Picos de hasta 100.000 jugadores jugando simultaneamente
(cash).
Poker AI
2 / 35
5. Introducci´n
o
El mundo del poker online
Cifras (I)
Existen m´s de 100 salas de juego online repartidas por todo el
a
mundo.
Cifras (II)
Algo m´s de un mill´n de jugadores en total (cash y no cash).
a o
Cifras (III)
Picos de hasta 100.000 jugadores jugando simultaneamente
(cash).
Cifras (y IV)
Es una moda y actualmente se encuentra en expansi´n.
o
Poker AI
2 / 35
6. Introducci´n
o
El mundo del poker online
Hablando de dinero...
Curiosamente no he encontrado nada de informaci´n sobre el
o
dinero que se mueve en dichos casinos... ¿por qu´?
e
Poker AI
3 / 35
7. Introducci´n
o
El mundo del poker online
Hablando de dinero...
Curiosamente no he encontrado nada de informaci´n sobre el
o
dinero que se mueve en dichos casinos... ¿por qu´?
e
Hablando de dinero... (y II)
Lo unico que he encontrado sobre dinero es que s´lo en USA
´ o
los jugadores hab´ perdido 2.8 billones de d´lares en casinos
ıan o
on-line y s´lo en 2003.
o
Y la historia s´lo acababa de empezar...
o
Poker AI
3 / 35
13. Introducci´n
o
Evaluaci´n de acciones
o
Cartas
El valor de las cartas es un factor importante, aunque no el
unico (jugar sin cartas).
´
Poker AI
9 / 35
14. Introducci´n
o
Evaluaci´n de acciones
o
Cartas
El valor de las cartas es un factor importante, aunque no el
unico (jugar sin cartas).
´
Posici´n
o
La posici´n con respecto al Dealer es muy importante y SIEM-
o
PRE la tendremos en cuenta.
Poker AI
9 / 35
15. Introducci´n
o
Evaluaci´n de acciones
o
Cartas
El valor de las cartas es un factor importante, aunque no el
unico (jugar sin cartas).
´
Posici´n
o
La posici´n con respecto al Dealer es muy importante y SIEM-
o
PRE la tendremos en cuenta.
Otros jugadores
Tambi´n se debe hacer un an´lisis del comportamiento de los
e a
otros jugadores durante la mano actual o durante toda la
partida.
Poker AI
9 / 35
16. Introducci´n
o
Evaluaci´n de acciones
o
Posibles acciones
Fold, Check, Call, Raise o Reraise.
Poker AI
10 / 35
17. Introducci´n
o
Evaluaci´n de acciones
o
Posibles acciones
Fold, Check, Call, Raise o Reraise.
Estrategia
Incluso es posible seguir una estrategia durante la partida.
Poker AI
10 / 35
18. Introducci´n
o
Evaluaci´n de acciones
o
Posibles acciones
Fold, Check, Call, Raise o Reraise.
Estrategia
Incluso es posible seguir una estrategia durante la partida.
Resumiendo
Tenemos gran cantidad de factores a tener en cuenta para la
toma de decisiones en cada momento.
Poker AI
10 / 35
19. ¿C´mo juega un jugador de p´ker?
o o
Introducci´n a los Odds
o
Odds
cartas que me favorecen (= outs)
odds =
cartas que quedan en el mazo
Poker AI
11 / 35
20. ¿C´mo juega un jugador de p´ker?
o o
Introducci´n a los Odds
o
Odds
cartas que me favorecen (= outs)
odds =
cartas que quedan en el mazo
Decisi´n
o
´
Si odds · bote > (1-odds) · apuesta ⇒ CONTINUO
En caso contrario ⇒ FOLD
Poker AI
11 / 35
21. ¿C´mo juega un jugador de p´ker?
o o
Introducci´n a los Odds
o
Odds
cartas que me favorecen (= outs)
odds =
cartas que quedan en el mazo
Decisi´n
o
´
Si odds · bote > (1-odds) · apuesta ⇒ CONTINUO
En caso contrario ⇒ FOLD
Pero... ¿c´mo calculan los Odds?
o
Normalmente un jugador de p´ker memoriza unas tablas de
o
odds precalculadas de memoria.
Y muchos valores son intuidos (experiencia).
Poker AI
11 / 35
22. ¿C´mo juega un jugador de p´ker?
o o
Tabla de Odds
Poker AI
12 / 35
23. ¿C´mo juega un jugador de p´ker?
o o
Un ejemplo
Poker AI
13 / 35
24. ¿C´mo juega un jugador de p´ker?
o o
Lo que la mayor´ de los jugadores de
ıa
p´ker ignoran
o
Esperanza Matem´tica
a
En realidad est´n aplicando el concepto de esperanza
a
matem´tica. Para un suceso binario (si o no):
a
E [X ] = p · recompensa + (1 − p) · perdida
Poker AI
14 / 35
25. ¿C´mo juega un jugador de p´ker?
o o
Lo que la mayor´ de los jugadores de
ıa
p´ker ignoran
o
Esperanza Matem´tica
a
En realidad est´n aplicando el concepto de esperanza
a
matem´tica. Para un suceso binario (si o no):
a
E [X ] = p · recompensa + (1 − p) · perdida
Inteligencia Artificial (I)
Con estos sencillos c´lculos ya ser´ posible realizar un bot
a ıa
aunque con una fr´gil l´gica.
a o
Se podr´ a˜adir m´s factores (c´mo los expuestos anterior-
ıan n a o
mente).
Poker AI
14 / 35
26. IA: Un enfoque b´sico
a
Poker Bots
Inteligencia Artificial (y II)
La estrategia b´sica del bot ser´ jugar muchas partidas con
a ıa
E[X] a su favor ganando poco dinero por mano.
De todas formas no se va a cansar ;)
Poker AI
15 / 35
27. IA: Un enfoque b´sico
a
Poker Bots
Inteligencia Artificial (y II)
La estrategia b´sica del bot ser´ jugar muchas partidas con
a ıa
E[X] a su favor ganando poco dinero por mano.
De todas formas no se va a cansar ;)
Poker Bots
La mayor´ de los Poker Bots basan su l´gica en c´lculos de
ıa o a
Odds, aunque tienen en cuenta otros factores.
Poker AI
15 / 35
28. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Poker AI
16 / 35
29. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Poker AI
16 / 35
30. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Frogbot
Poker AI
16 / 35
31. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Frogbot
PokerAndroid
Poker AI
16 / 35
32. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Frogbot
PokerAndroid
OpenHoldem
Poker AI
16 / 35
33. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Frogbot
PokerAndroid
OpenHoldem
Comerciales
Poker AI
16 / 35
34. IA: Un enfoque b´sico
a
Poker Bots
Existen multitud:
Winholdem
Pokerbot+
Frogbot
PokerAndroid
OpenHoldem
Comerciales
Propietarios
Poker AI
16 / 35
35. IA: Un enfoque b´sico
a
Introducci´n a OpenHoldem
o
¿Por qu´ OH?
e
Es Software
Libre
Poker AI
17 / 35
36. IA: Un enfoque b´sico
a
Introducci´n a OpenHoldem
o
¿Por qu´ OH?
e
Es Software
Libre
Muy completo
Poker AI
17 / 35
37. IA: Un enfoque b´sico
a
Introducci´n a OpenHoldem
o
¿Por qu´ OH?
e
Es Software
Libre
Muy completo
Permite
adaptarlo
Poker AI
17 / 35
38. IA: Un enfoque b´sico
a
Introducci´n a OpenHoldem
o
¿Por qu´ OH?
e
Es Software
Libre
Muy completo
Permite
adaptarlo
Gran cantidad
de material
Poker AI
17 / 35
39. IA: Un enfoque b´sico
a
Introducci´n a OpenHoldem
o
¿Por qu´ OH?
e
Es Software
Libre
Muy completo
Permite
adaptarlo
Gran cantidad
de material
Coste 0
Poker AI
17 / 35
42. IA: Un enfoque b´sico
a
Scraper
Elementos de texto
Aplica OCR a los elementos de texto
Poker AI
20 / 35
43. IA: Un enfoque b´sico
a
Scraper
Elementos de texto
Aplica OCR a los elementos de texto
Resto de elementos
El resto de elementos son convertidos seg´n una funci´n Hash
u o
que toma como entrada unos puntos denominados Hash Points.
As´ tendremos grupos de Hash Points para las regiones de fichas,
ı
botones y cartas.
Poker AI
20 / 35
44. IA: Un enfoque b´sico
a
Scraper
Elementos de texto
Aplica OCR a los elementos de texto
Resto de elementos
El resto de elementos son convertidos seg´n una funci´n Hash
u o
que toma como entrada unos puntos denominados Hash Points.
As´ tendremos grupos de Hash Points para las regiones de fichas,
ı
botones y cartas.
Salida
La salida es llevada al m´dulo principal que la interpreta y
o
tomar´ la decisi´n seg´n la l´gica.
a o u o
Poker AI
20 / 35
46. IA: Un enfoque b´sico
a
L´gica
o
Programaci´n (I)
o
Se almacena en ficheros externos y son programadas en Perl.
Tambien es posible programarla en C/C++ e importarla como
una DLL.
Poker AI
22 / 35
47. IA: Un enfoque b´sico
a
L´gica
o
Programaci´n (I)
o
Se almacena en ficheros externos y son programadas en Perl.
Tambien es posible programarla en C/C++ e importarla como
una DLL.
Programaci´n (y II)
o
Existe una serie de funciones principales que son las que ser´n
a
llamadas a la hora de jugar pero podemos crear otras auxiliares.
Poker AI
22 / 35
48. IA: Un enfoque b´sico
a
L´gica
o
Programaci´n (I)
o
Se almacena en ficheros externos y son programadas en Perl.
Tambien es posible programarla en C/C++ e importarla como
una DLL.
Programaci´n (y II)
o
Existe una serie de funciones principales que son las que ser´n
a
llamadas a la hora de jugar pero podemos crear otras auxiliares.
Chat
Es posible incluso escribir mensajes autom´ticos en el chat
a
(WTF??!?)
Poker AI
22 / 35
50. IA: Un enfoque b´sico
a
DLL’s
Mouse.DLL
Provee los movimientos de rat´n y los clicks, permite modificarla
o
facilmente.
Poker AI
24 / 35
51. IA: Un enfoque b´sico
a
DLL’s
Mouse.DLL
Provee los movimientos de rat´n y los clicks, permite modificarla
o
facilmente.
Keyboard.DLL
Igual que la anterior, pero para las pulsaciones de teclado. Se
usa cuando se tipea algo en el chat o alguna cantidad a apostar.
Poker AI
24 / 35
52. IA: Un enfoque b´sico
a
DLL’s
Mouse.DLL
Provee los movimientos de rat´n y los clicks, permite modificarla
o
facilmente.
Keyboard.DLL
Igual que la anterior, pero para las pulsaciones de teclado. Se
usa cuando se tipea algo en el chat o alguna cantidad a apostar.
User.DLL
Permite la implementaci´n de la l´gica en C/C++.
o o
Poker AI
24 / 35
53. IA: Un enfoque b´sico
a
Posibles mejoras
Predicci´n de acciones
o
Se podr´ introducir un m´dulo de predicci´n de acciones de los
ıa o o
oponentes.
Pudiendo utilizar para ello cualquier algoritmo que pueda
adaptarse.
Poker AI
25 / 35
54. IA: Un enfoque b´sico
a
Posibles mejoras
Predicci´n de acciones
o
Se podr´ introducir un m´dulo de predicci´n de acciones de los
ıa o o
oponentes.
Pudiendo utilizar para ello cualquier algoritmo que pueda
adaptarse.
Redes neuronales
¿Y por qu´ no?
e
Podr´
ıamos aplicar tanto para predicci´n de acciones como para
o
toma de decisiones redes neuronales pero... ¿c´mo?
o
Poker AI
25 / 35
55. IA: Un enfoque b´sico
a
Posibles mejoras
Predicci´n de acciones
o
Se podr´ introducir un m´dulo de predicci´n de acciones de los
ıa o o
oponentes.
Pudiendo utilizar para ello cualquier algoritmo que pueda
adaptarse.
Redes neuronales
¿Y por qu´ no?
e
Podr´
ıamos aplicar tanto para predicci´n de acciones como para
o
toma de decisiones redes neuronales pero... ¿c´mo?
o
Posibilidades
Existen un gran abanico de posibilidades, tantas como se pueda
llegar a imaginar.
Poker AI
25 / 35
56. IA: Un enfoque b´sico
a
Data minning
Registros
Los casinos ofrecen la opci´n de guardar todos los detalles de la
o
partida en ficheros (uno por mano) con un formato determinado.
Poker AI
26 / 35
57. IA: Un enfoque b´sico
a
Data minning
Registros
Los casinos ofrecen la opci´n de guardar todos los detalles de la
o
partida en ficheros (uno por mano) con un formato determinado.
Data minning
Una gran colecci´n de estos ficheros permitir´ hacer miner´
o a ıa
de datos y sacar todo tipo de conclusiones.
Poker AI
26 / 35
58. IA: Un enfoque b´sico
a
Data minning
Registros
Los casinos ofrecen la opci´n de guardar todos los detalles de la
o
partida en ficheros (uno por mano) con un formato determinado.
Data minning
Una gran colecci´n de estos ficheros permitir´ hacer miner´
o a ıa
de datos y sacar todo tipo de conclusiones.
PokerTracker
Existen multitud de programas que hacen uso de dicha informa-
ci´n.
o
PokerTracker es el m´s famoso, crea perfiles de jugadores
a
(entre otras cosas) y los almacena en una BD.
Poker AI
26 / 35
59. IA: Un enfoque b´sico
a
PokerTracker
BD Comerciales
Esa informaci´n es de vital importancia para cualquier jugador
o
profesional.
Existen incluso BD comerciales, algo que es totalmente ilegal.
Poker AI
27 / 35
60. IA: Un enfoque b´sico
a
PokerTracker
BD Comerciales
Esa informaci´n es de vital importancia para cualquier jugador
o
profesional.
Existen incluso BD comerciales, algo que es totalmente ilegal.
OpenHoldem
OpenHoldem permite la conexi´n de la l´gica con dicha base
o o
de datos.
Poker AI
27 / 35
61. IA: Un enfoque b´sico
a
PokerTracker
BD Comerciales
Esa informaci´n es de vital importancia para cualquier jugador
o
profesional.
Existen incluso BD comerciales, algo que es totalmente ilegal.
OpenHoldem
OpenHoldem permite la conexi´n de la l´gica con dicha base
o o
de datos.
Redes neuronales
Incluso podemos poner en pr´ctica redes neuronales que partan
a
de dicha informaci´n.
o
Poker AI
27 / 35
62. IA: Un enfoque b´sico
a
Redes neuronales
Trabajos previos (I)
Un interesante y completo trabajo es el de Patrick McCurley,
AN ARTIFICIAL INTELLIGENCE AGENT FOR TEXAS
HOLDEM POKER.
Poker AI
28 / 35
63. IA: Un enfoque b´sico
a
Redes neuronales
Trabajos previos (I)
Un interesante y completo trabajo es el de Patrick McCurley,
AN ARTIFICIAL INTELLIGENCE AGENT FOR TEXAS
HOLDEM POKER.
Trabajos previos (II)
En ´l utiliza los registros de miles manos anteriores para con-
e
struir una red neural con la cual preveer´ las acciones de los
a
oponentes.
Poker AI
28 / 35
64. IA: Un enfoque b´sico
a
Redes neuronales
Trabajos previos (I)
Un interesante y completo trabajo es el de Patrick McCurley,
AN ARTIFICIAL INTELLIGENCE AGENT FOR TEXAS
HOLDEM POKER.
Trabajos previos (II)
En ´l utiliza los registros de miles manos anteriores para con-
e
struir una red neural con la cual preveer´ las acciones de los
a
oponentes.
Trabajos previos (y III)
Estas predicciones ser´n llevadas un simulador d´nde se eval-
a o
uar´n los resultados de seg´n una estrategia y finalmente
a u
concluir´ una acci´n.
a o
Poker AI
28 / 35
65. IA: Un enfoque b´sico
a
Redes neuronales
Poker AI
29 / 35
66. IA: Un enfoque b´sico
a
Redes neuronales
Poker AI
30 / 35
67. IA: Un enfoque b´sico
a
Redes neuronales
Poker AI
31 / 35
68. Problemas
Problemas generales
An´lisis estad´
a ısticos
Los casinos podr´ıan implementar an´lisis estad´
a ısticos de
movimientos de rat´n, de estrategia (hacer siempre la
o
mismo), tiempo de respuesta, entre otros...
Poker AI
32 / 35
69. Problemas
Problemas generales
An´lisis estad´
a ısticos
Los casinos podr´ıan implementar an´lisis estad´
a ısticos de
movimientos de rat´n, de estrategia (hacer siempre la
o
mismo), tiempo de respuesta, entre otros...
Y m´s...
a
Pueden incluso hacer capturas de im´genes o v´
a ıdeos de pantalla
y ver que se cuece.
Tambi´n es posible hacer un an´lisis de procesos en ejecuci´n
e a o
(de hecho lo hacen).
Poker AI
32 / 35
70. Problemas
Problemas generales
An´lisis estad´
a ısticos
Los casinos podr´ıan implementar an´lisis estad´
a ısticos de
movimientos de rat´n, de estrategia (hacer siempre la
o
mismo), tiempo de respuesta, entre otros...
Y m´s...
a
Pueden incluso hacer capturas de im´genes o v´
a ıdeos de pantalla
y ver que se cuece.
Tambi´n es posible hacer un an´lisis de procesos en ejecuci´n
e a o
(de hecho lo hacen).
Soluciones
¿Qu´ se os ocurre? Recordad que trabajamos en MS Windows.
e
Poker AI
32 / 35
71. Competiciones
Annual Computer Poker Competition
Fecha y modalidades
El pasado 4 de julio se entragaban los PokerBots funcionales.
Existen tres modalidades en las que participar dos heads-up
limit, dos heads-up no limit y 3-player ring limit.
Poker AI
33 / 35
72. Competiciones
Annual Computer Poker Competition
Fecha y modalidades
El pasado 4 de julio se entragaban los PokerBots funcionales.
Existen tres modalidades en las que participar dos heads-up
limit, dos heads-up no limit y 3-player ring limit.
Implementaci´n
o
Nos dan un servidor con el cual actuamos pasando mensajes en
TCP.
Existe un plugin para Poker Academy.
Poker AI
33 / 35
73. Competiciones
Annual Computer Poker Competition
Fecha y modalidades
El pasado 4 de julio se entragaban los PokerBots funcionales.
Existen tres modalidades en las que participar dos heads-up
limit, dos heads-up no limit y 3-player ring limit.
Implementaci´n
o
Nos dan un servidor con el cual actuamos pasando mensajes en
TCP.
Existe un plugin para Poker Academy.
Resultados
Este a˜o los resultados se van a publicar en el AAAI-10 (Twenty-
n
Four Conference on Artificial Intelligence) el 11 de julio en
Atlanta.
Poker AI
33 / 35
74. Competiciones
World Poker Robot Championship
Fecha y modalidades
S´lo fue en el a˜o 2005 una pena.
o n
Las modalidades fueron Amateur Robot Poker Tournament,
Amateur Robot Champion vs. University of Alberta Robot
y Man vs. Machine Poker Challenge.
Poker AI
34 / 35
75. Competiciones
World Poker Robot Championship
Fecha y modalidades
S´lo fue en el a˜o 2005 una pena.
o n
Las modalidades fueron Amateur Robot Poker Tournament,
Amateur Robot Champion vs. University of Alberta Robot
y Man vs. Machine Poker Challenge.
Premio
Lo curioso de este evento es que dieron un premio de 100.000
d´lares al ganador de la primera modalidad.
o
Poker AI
34 / 35