SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Práctica de Inteligencia Artificial en las Organizaciones
                             Propuesta Definitiva




Año Académico:     2009-2010
Convocatoria:      Febrero




    Grupo de prácticas: Grupo 4
    Alumnos:
       Díaz Ponce, Antonio              email: 100055301@alumnos.uc3m.es
       Martínez Fernández, Raúl         email: 100054986@alumnos.uc3m.es
       García-Cuerva Velasco, Javier    email: 100055253@alumnos.uc3m.es
Índice

1.   Introducción .................................................................................................... 3
 1.1.     Descripción del Problema ............................................................................3
 1.2.     Objetivos .................................................................................................. 3
 1.3.     Posibles Aplicaciones .................................................................................. 3
2.   Estado del Arte ................................................................................................ 3
3.   Datos de Trabajo .............................................................................................. 4
 3.1.     Datos de Entrada ....................................................................................... 5
 3.2.     Datos Adicionales ....................................................................................... 7
 3.3.     Datos de Salida .......................................................................................... 8
4.   Procesamiento inteligente de los datos ................................................................ 9
 4.1.     Esquema de procesamiento ......................................................................... 9
 4.2.     Preprocesado de los datos de entrada ........................................................... 9
 4.3.     Aplicación de técnicas de IA ....................................................................... 10
 4.4.     Post-procesado de los datos de entrada ...................................................... 10
5.   Evaluación de las soluciones obtenidas .............................................................. 11
 5.1.     Método de Evaluación ............................................................................... 11
6.   Análisis de Dificultades, Riesgos y Aplicabilidad .................................................. 12
 6.1.     Dificultades en la Obtención de la Solución .................................................. 12
 6.2.     Riesgos Previstos ..................................................................................... 12
 6.3.     Análisis de Implantación ............................................................................ 12




                                                          2
1. Introducción

   1.1. Descripción del Problema

       El problema principal es la toma de decisiones en el juego del Póker, las
principales acciones que se pueden realizar en este juego son:
        o    No ir: Lo que supone que el jugador deja de jugar.
        o    Pasar: El jugador decide no subir ninguna apuesta.
        o Subir N: El jugador sube la apuesta del juego una cantidad “N”, podrá subir
          tanto como la cantidad de dinero de la que disponga.
       Sin embargo, a pesar de que el conjunto de salida parece reducido, el conjunto de
variables a tomar en cuenta es mucho mayor, ya que, a la hora de tomar una decisión no
sólo dependerá de las cartas que se poseen, sino que también se tendrá en cuenta la
posición que se ocupa en la mesa y el modo de jugar de los contrincantes.
       Además el tiempo de respuesta también suele influir en el modo de juego de los
jugadores, por ejemplo, un jugador que no tiene segura su jugada tardará más en
decidirse que un jugador que tiene una buena mano.

       Actualmente, la modalidad de Póker a la que más se juega es Texas Hold 'em Sin
Límite, esta es la modalidad sobre la que realizaremos el estudio. En ella cada jugador
sólo posee dos cartas (cartas personales) y su jugada es la mejor combinación de cartas
que puede formar con las cartas que se van poniendo en la mesa (denominadas cartas
comunitarias).



   1.2. Objetivos

         El objetivo principal es obtener un jugador mediante una técnica de inteligencia
artificial que sea capaz de tomar las mejores decisiones posibles, en la primera ronda de
apuestas del juego (Preflop). Es cierto que es complejo de valorar finalmente si hemos
creado un buen jugador, o hemos conseguido aprender las mejores decisiones, ya que el
conjunto de posibilidades es muy grande.
       En nuestro caso sería positivo que con estas decisiones consiguiésemos ganar el
mayor dinero posible cuando realicemos apuestas, y de perder la menor cantidad de
dinero posible cuando la jugada sea mala.



   1.3. Posibles Aplicaciones

       El resultado sería valioso para las casas de apuestas que albergan partidas de
Póker Online, ya que, es necesario un mínimo de jugadores para participar y para que los
jugadores tengan un servicio de juego 24h podrían interactuar con estos jugadores
creados mediante IA. Además empresas o particulares podrían optar, ilícitamente, por
tener agentes en el juego que ganen dinero para ellos.


                                           3
2. Estado del Arte

       La Inteligencia Artificial ya se ha adentrado en el campo de la toma de decisiones
en el Póker. Actualmente se dice que es una de las principales amenazas del Póker
Online, y esto se debe a que los jugadores que han sido generados, a pesar de que no
son capaces de vencer a jugadores expertos, sí que son capaces de ganar a jugadores
amateur y estándar.
      Es por ello que actualmente se intentan introducir técnicas para poder expulsar a
jugadores automáticos. Técnicas como la resolución de los cada vez más inservibles
captchas o de problemas más específicos como preguntas, etc.
      Además de empresas dedicadas a este propósito también las universidades se
encargan de organizar concursos, uno de los más conocidos es el First Man-Machine
Poker Championship, promocionado por la universidad de Alberta (Edmonton, Canadá).
         Debido al secretismo que genera este terreno, por su directa productividad, es
difícil que las empresas comenten su relación con este tipo de investigaciones, y por
tanto es difícil obtener datos de manos y jugadas, así con información relacionada con la
aplicación directa de este tipo de solución.
      Los principales usos de IA en el póker son:

       •   Programas que aprendan a jugar como una persona: como ya hemos
           mencionado.

       •   Clústering para agrupar tipos de jugadores: para intentar inferir posibles
           conjuntos de tipos de jugadores. Sus resultados no son buenos. Y
           estadísticamente ya existen otras soluciones bastantes buenas.

       •   Clústering para agrupar rangos de manos de los jugadores: para intentar
           delimitar las cartas con las que juegan otros jugadores, en función de la
           situación. Existen ya técnicas estadísticas que funcionan bien para hacer esto.

       •   Técnicas de aprendizaje para construir modelos estadísticos del oponente: La
           Universidad de Alberta ha desarrollado programas siguiendo estas técnicas.




                                            4
3. Datos de Trabajo
   3.1. Datos de Entrada

      Nuestros datos son manos de póker de un jugador profesional.
       Las salas de póker online, permiten guardar las manos que un jugador juega, para
posteriormente poder estudiar estas.
       Estas manos se almacenan en unos ficheros de texto, con un formato parecido al
siguiente:


PokerStars Mano n.º 32760618860: Torneo n.º 193734964, Freeroll Hold'em No Limit -
Nivel I (10/20) - 12-09-2009 21:00:54 CET [12-09-2009 15:00:54 ET]
Mesa '193734964 218' 9-max Asiento n.º 2 es el botón
Asiento 1: alvaroRobles (1500 en fichas)
                                                        Información de la mano que comienza
Asiento 2: Cepiblan (1490 en fichas)
Asiento 3: pitufo_verde (1500 en fichas) fuera de la mano (trasladado de otra mesa a
la ciega pequeña)
Asiento 4: diazpetit (1480 en fichas)
Asiento 5: sinchan607 (1500 en fichas)                   Información de los jugadores que
                                                         están en la mano
Asiento 6: aticap (4530 en fichas)
Asiento 7: worldblade (1500 en fichas) está ausente
Asiento 8: pokkerwinner (1500 en fichas) está ausente
Asiento 9: terelumi45 (1500 en fichas) está ausente
diazpetit: pone ciega pequeña 10
sinchan607: pone ciega grande 20                         Información de las apuestas
                                                         obligatorias
*** CARTAS PROPIAS ***
Repartidas a sinchan607 [8s 9d]
aticap: iguala 20
                                                         Información de las cartas de nuestro
worldblade: se retira                                    jugador
pokkerwinner: se retira
terelumi45: se retira
worldblade está conectado                                Información de la primera ronda de
worldblade ha vuelto                                     apuestas
alvaroRobles: iguala 20
Cepiblan: se retira
                                                         Información de la acción preflop de
diazpetit: iguala 10                                     nuestro jugador
sinchan607: pasa
*** FLOP *** [4d Kc Kh]
                                                         Información de las 3 primeras cartas
diazpetit: pasa
                                                         comunitarias (Flop)
sinchan607: pasa
aticap: pasa
alvaroRobles: pasa                                       Información de la segunda ronda de
                                                         apuestas

                                           5
*** TURN *** [4d Kc Kh] [9s]
diazpetit: pasa                                        Información de la cuarta carta
sinchan607: apuesta 60                                 comunitaria (Turn)
aticap: se retira
alvaroRobles: iguala 60
                                                       Información de la tercera ronda de
diazpetit: se retira                                   apuestas
*** RIVER *** [4d Kc Kh 9s] [Kd]
sinchan607: apuesta 60
                                                       Información de la quinta carta
alvaroRobles: iguala 60
                                                       comunitaria (River)
*** SHOW DOWN ***
sinchan607: muestra [8s 9d] (full house de Reyes y Nueves)
alvaroRobles: descarta su mano sin mostrar
sinchan607 recaudó 320 de bote                         Información de la cuarta ronda de
*** RESUMEN ***                                        apuestas
Bote total 320 | Comisión 0
Comunitarias [4d Kc Kh 9s Kd]                          Información de quien gana la mano
Asiento 1: alvaroRobles descartó sin mostrar [2h Ah]
Asiento 2: Cepiblan (botón) se retiró antes del Flop (no apostó)
Asiento 4: diazpetit (ciega pequeña) se retiró en el Turn
Asiento 5: sinchan607 (ciega grande) mostró [8s 9d] y ganó (320) con full house de
Reyes y Nueves
Asiento 6: aticap se retiró en el Turn
Asiento 7: worldblade se retiró antes del Flop (no apostó)
Asiento 8: pokkerwinner se retiró antes del Flop (no apostó)
Asiento 9: terelumi45 se retiró antes del Flop (no apostó)



La información que está en gris, no será necesaria para nosotros, ya que sólo nos
centramos en el preflop, y las rondas posteriores no nos importan.




                                         6
3.2. Datos Adicionales

        Información adicional podría ser otra información que tuviese el jugador, que no
fuese sólo la mesa de juego, los oponentes, las fichas y las cartas, es decir, que no fuese
sólo la información que te da la sala de póker, que es la mínima para poder jugar.
       Existen programas que usan los datos de las manos para generar estadísticas de
tus contrincantes. Y estas estadísticas se pueden mostrar sobreimpresas en la mesa de la
sala de póker online. A esto se llama HUD (head up display).
       A continuación mostramos una mesa sin HUD y después una con HUD:




                                Figura 1: Mesa de Póker sin HUD




                                Figura 2: Mesa de Póker con HUD
                                                                        Estadísticas del HUD

     Esta información define a los jugadores, pudiéndose así saber si el jugador va a
muchas manos o a pocas, si es agresivo o pasivo, etc.
      La ventaja del póker online son estas herramientas que te dan información extra
de mucha utilidad durante el juego.
       Tener esta información podría servir como información adicional a nuestros datos.




                                            7
3.3. Datos de Salida

      Los datos de entrada necesitan un procesamiento que se explicará en el siguiente
apartado. De nuestro clasificador se espera que, dada una mano, sepa que decisión
tomar en cuanto a Retirarse (Fold), Igualar (Call), Subir (Raise), Resubir (Re-Raise).
       En cuanto a la mano se necesitará toda la información que hemos mencionado en
el apartado 3.1.




                                          8
4. Procesamiento inteligente de los datos

   4.1. Esquema de procesamiento

       Primero, haremos un programa que coja nuestros ficheros de datos en bruto,
extraiga la información que necesite y genere el fichero de datos que necesita la
herramienta a utilizar.
        Después, probaremos varias técnicas de IA, que permita la herramienta elegida.



   4.2. Preprocesado de los datos de entrada

       Para realizar el clasificador habíamos pensado utilizar WEKA, ya que es una
herramienta de Aprendizaje Automático muy completa ya que tiene multitud de
algoritmos.
        WEKA nos permite procesar los datos antes de usarlos con alguna técnica.
       También, permite ampliar el espacio de memoria que usa, por lo que la cantidad
de datos que usemos no es un problema.
      WEKA también nos deja hacer test con un conjunto de datos, para probar el
modelo, con lo que podríamos plantear una mano y ver qué solución toma.
        A los datos en bruto tenemos que procesarlos para poner el formato “arff” de
WEKA.
        Cada patrón tendrá, a priori, los siguientes atributos:
   •    Número de la primera Carta
   •    Palo de la primera Carta
   •    Número de la segunda Carta
   •    Palo de la segunda Carta
   •    Tipo de Partida (Torneo, Cash, Sit&Go)
   •    Ciega Pequeña
   •    Ciega Grande
   •    Posición en la mesa
   •    Stack propio
   •    Número de jugadores con los que se enfrenta
   •    Stack de cada jugador
   •    Acción de cada jugador


        Después analizaremos estos datos con           WEKA       para   ver si   hay atributos
        innecesarios o repetidos.




                                              9
4.3. Aplicación de técnicas de IA

       Como técnicas principales de IA utilizaríamos aprendizaje supervisado, ya que le
vamos a decir si su salida es o no correcta. Usaremos clasificadores, y no regresores, ya
que la salida toma valores discretos.
      Utilizaremos Redes de Neuronas, Perceptrón Multicapa (MLP), y jugaremos con sus
parámetros (Número de capas Ocultas y Neuronas de Estas, Tasa de Aprendizaje,…) para
ver cómo obtener el mejor clasificador.



   4.4. Post-procesado de los datos de entrada

       Como con WEKA podemos evaluar con unos nuevos datos de test, podríamos
procesar la información de salida para crear un fichero como el de datos en bruto. Y
finalmente, usar programas reproductores de manos de póker, para ver gráficamente
esta mano.




                                           10
5. Evaluación de las soluciones obtenidas

   5.1. Método de Evaluación

       En este apartado nos centraremos en explicar el método de evaluación para
nuestra práctica. Utilizaremos uno principalmente:


       -   Nos encargaremos de recoger las manos de los mejores jugadores.
       -   Posteriormente compararemos las jugadas de los jugadores con la salida de
           nuestro clasificador de manos preflop, atendiendo a los siguientes atributos:
              o   La mano inicial con la que juega el jugador.
              o   La acción realizada por ese jugador en la jugada.


   De esta forma, si a una entrada determinada por la dos cartas iniciales de la mano,
nos da una salida determinada a la salida del clasificador (Fold, Call, Raise, Re-Raise),
compararemos lo que habría hecho el jugador experto con esa misma mano.


    Con este método podríamos determinar si nuestro clasificador actúa adecuadamente,
aunque hay que tener en cuenta que el depende de muchos factores, y no siempre
coincidirán los resultados.


   Aún así, estaremos abiertos a otros posibles métodos de evolución.




                                            11
6. Análisis de Dificultades, Riesgos y Aplicabilidad

   6.1. Dificultades en la Obtención de la Solución

       Describir brevemente en este apartado las dificultades inherentes al problema y a
las técnicas propuestas, analizando las posibles soluciones o mitigaciones.


       La principal dificultad a la hora de realizar el trabajo ha sido la obtención de los
datos preliminares. Debido a que estos datos suelen ser de carácter privado, o en su
defecto de carácter comercial, es muy complicado encontrarlos en la red. Para ello nos
hemos encargado de pedirlos a diversas páginas y particulares, esperando a su
contestación.


       Otra de las dificultades encontradas es la necesidad de tener un gran número de
datos, así como que estos sean de jugadores de un nivel medio-alto, labor bastante difícil
de realizar.
       La tercera dificultad aparecerá a la hora de eliminar datos innecesarios dentro de
los datos preliminares, los cuales pueden desvirtuar el resultado final de no detectarlos
con anterioridad. Esto se arreglará con el análisis con Weka, con el que nos encargarnos
de eliminar estos datos innecesarios.



   6.2. Riesgos Previstos

       La principal incertidumbre que se nos plantea viene determinada por la obtención
de los datos. Esto es debido a que, aparte de necesitar una buena cantidad de manos
para poder realizar la práctica con unos buenos resultados, sería interesante que estas
manos fuesen de buena calidad para que el aprendizaje fuese correcto.


       Otro de los riegos, como en cualquier proyecto de estas características, es que a la
hora de obtener los resultados, estos no sean todo lo buenos que se esperaba, y nos
obligue a replantearnos el procedimiento.



   6.3. Análisis de Implantación

       Para poder llevar a cabo este proyecto necesitaremos un ordenador de nivel medio
para poder llevarlo a cabo. Las especificaciones recomendadas serían:
       Procesador: Intel Pentium4 2,4 Ghz
       Disco duro: 200 Gb
       Memoría RAM: 2 Gb
     El principal problema que se nos planteaba era que Weka tenía un espacio de
memoria limitado, pero se puede ampliar sin problemas.


                                            12

Contenu connexe

En vedette

Guia ecuacion cuadratica
Guia ecuacion cuadraticaGuia ecuacion cuadratica
Guia ecuacion cuadraticaYanira Castro
 
El material impreso y la señalética
El material impreso y la señaléticaEl material impreso y la señalética
El material impreso y la señaléticaStella Pereyra
 
Presentacion intermedia
Presentacion intermediaPresentacion intermedia
Presentacion intermediasinchan607
 
Clase florencio noceti 09 11 resumen
Clase florencio noceti 09 11  resumenClase florencio noceti 09 11  resumen
Clase florencio noceti 09 11 resumenPablo
 
Godrej Dum Dum Kolkata
Godrej Dum Dum Kolkata Godrej Dum Dum Kolkata
Godrej Dum Dum Kolkata jayshiv
 
Distr. of aptian_sandstones_-_part_1[1]
Distr. of aptian_sandstones_-_part_1[1]Distr. of aptian_sandstones_-_part_1[1]
Distr. of aptian_sandstones_-_part_1[1]Stephen Crittenden
 
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉS
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉSMATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉS
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉSAntonio Jose Onate
 
Actividad II: Tecnicas para dimension de valores
Actividad II: Tecnicas para dimension de valoresActividad II: Tecnicas para dimension de valores
Actividad II: Tecnicas para dimension de valoresYesid Unimag
 

En vedette (14)

Caballos
CaballosCaballos
Caballos
 
Guia ecuacion cuadratica
Guia ecuacion cuadraticaGuia ecuacion cuadratica
Guia ecuacion cuadratica
 
El material impreso y la señalética
El material impreso y la señaléticaEl material impreso y la señalética
El material impreso y la señalética
 
Presentacion intermedia
Presentacion intermediaPresentacion intermedia
Presentacion intermedia
 
Clase florencio noceti 09 11 resumen
Clase florencio noceti 09 11  resumenClase florencio noceti 09 11  resumen
Clase florencio noceti 09 11 resumen
 
Godrej Dum Dum Kolkata
Godrej Dum Dum Kolkata Godrej Dum Dum Kolkata
Godrej Dum Dum Kolkata
 
Distr. of aptian_sandstones_-_part_1[1]
Distr. of aptian_sandstones_-_part_1[1]Distr. of aptian_sandstones_-_part_1[1]
Distr. of aptian_sandstones_-_part_1[1]
 
Control ficha123
Control ficha123Control ficha123
Control ficha123
 
Comunicación - Plan Lector - RyO
Comunicación - Plan Lector - RyOComunicación - Plan Lector - RyO
Comunicación - Plan Lector - RyO
 
Los Incas de Mauro Mariano
Los Incas de Mauro MarianoLos Incas de Mauro Mariano
Los Incas de Mauro Mariano
 
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉS
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉSMATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉS
MATERIALES EDUCATIVOS PARA ACNEAES EN MÚSICA E INGLÉS
 
Tiempo[1]
Tiempo[1]Tiempo[1]
Tiempo[1]
 
Lang Website Sample
Lang Website SampleLang Website Sample
Lang Website Sample
 
Actividad II: Tecnicas para dimension de valores
Actividad II: Tecnicas para dimension de valoresActividad II: Tecnicas para dimension de valores
Actividad II: Tecnicas para dimension de valores
 

Similaire à Memoria inicial

Inteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONEInteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONESNPP
 
Evaluación de matemática tercer trimestre 4 to de primaria
Evaluación de matemática tercer trimestre 4 to de primariaEvaluación de matemática tercer trimestre 4 to de primaria
Evaluación de matemática tercer trimestre 4 to de primariaMarco Cconislla Martinez
 
Arma2 oa manual.spanish
Arma2 oa manual.spanishArma2 oa manual.spanish
Arma2 oa manual.spanishRafa Cruz
 
Hchc Archivo original Microsoft
Hchc Archivo original Microsoft Hchc Archivo original Microsoft
Hchc Archivo original Microsoft GrupoDetrabajo1
 
La enseñanza de las matemáticas en la escuela secundaria iii
La enseñanza de las matemáticas en la escuela secundaria iiiLa enseñanza de las matemáticas en la escuela secundaria iii
La enseñanza de las matemáticas en la escuela secundaria iiiGERARDO RODRIGUEZ VEGA
 
Teoría de juegos taller 4
Teoría de juegos taller 4Teoría de juegos taller 4
Teoría de juegos taller 4Al Cougar
 
Desarrollo de habilidades del pensamiento. leccion 1
Desarrollo de habilidades del pensamiento. leccion 1Desarrollo de habilidades del pensamiento. leccion 1
Desarrollo de habilidades del pensamiento. leccion 1merodaya
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...CIMAT
 
UT 5 Grandes Juegos
UT 5 Grandes JuegosUT 5 Grandes Juegos
UT 5 Grandes Juegososcarpesainz
 

Similaire à Memoria inicial (20)

Proyecto
ProyectoProyecto
Proyecto
 
Juego de damas
Juego de damasJuego de damas
Juego de damas
 
Inteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONEInteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONE
 
Reglamento infernity
Reglamento infernityReglamento infernity
Reglamento infernity
 
Evaluación de matemática tercer trimestre 4 to de primaria
Evaluación de matemática tercer trimestre 4 to de primariaEvaluación de matemática tercer trimestre 4 to de primaria
Evaluación de matemática tercer trimestre 4 to de primaria
 
Arma2 oa manual.spanish
Arma2 oa manual.spanishArma2 oa manual.spanish
Arma2 oa manual.spanish
 
Hchc Archivo original Microsoft
Hchc Archivo original Microsoft Hchc Archivo original Microsoft
Hchc Archivo original Microsoft
 
Manual swat4
Manual swat4Manual swat4
Manual swat4
 
Proceso 2 matematica
Proceso 2 matematicaProceso 2 matematica
Proceso 2 matematica
 
La enseñanza de las matemáticas en la escuela secundaria iii
La enseñanza de las matemáticas en la escuela secundaria iiiLa enseñanza de las matemáticas en la escuela secundaria iii
La enseñanza de las matemáticas en la escuela secundaria iii
 
Creptionary Gamification
Creptionary GamificationCreptionary Gamification
Creptionary Gamification
 
Teoría de juegos taller 4
Teoría de juegos taller 4Teoría de juegos taller 4
Teoría de juegos taller 4
 
Manual procedimientos
Manual procedimientosManual procedimientos
Manual procedimientos
 
Manual procedimientos
Manual procedimientosManual procedimientos
Manual procedimientos
 
PRACTICA OFFICE WORD
PRACTICA OFFICE WORD PRACTICA OFFICE WORD
PRACTICA OFFICE WORD
 
Desarrollo de habilidades del pensamiento. leccion 1
Desarrollo de habilidades del pensamiento. leccion 1Desarrollo de habilidades del pensamiento. leccion 1
Desarrollo de habilidades del pensamiento. leccion 1
 
Juego de la Oca
Juego de la OcaJuego de la Oca
Juego de la Oca
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
 
El sector de las apps y los videojuegos
El sector de las apps y los videojuegosEl sector de las apps y los videojuegos
El sector de las apps y los videojuegos
 
UT 5 Grandes Juegos
UT 5 Grandes JuegosUT 5 Grandes Juegos
UT 5 Grandes Juegos
 

Memoria inicial

  • 1. Práctica de Inteligencia Artificial en las Organizaciones Propuesta Definitiva Año Académico: 2009-2010 Convocatoria: Febrero Grupo de prácticas: Grupo 4 Alumnos: Díaz Ponce, Antonio email: 100055301@alumnos.uc3m.es Martínez Fernández, Raúl email: 100054986@alumnos.uc3m.es García-Cuerva Velasco, Javier email: 100055253@alumnos.uc3m.es
  • 2. Índice 1. Introducción .................................................................................................... 3 1.1. Descripción del Problema ............................................................................3 1.2. Objetivos .................................................................................................. 3 1.3. Posibles Aplicaciones .................................................................................. 3 2. Estado del Arte ................................................................................................ 3 3. Datos de Trabajo .............................................................................................. 4 3.1. Datos de Entrada ....................................................................................... 5 3.2. Datos Adicionales ....................................................................................... 7 3.3. Datos de Salida .......................................................................................... 8 4. Procesamiento inteligente de los datos ................................................................ 9 4.1. Esquema de procesamiento ......................................................................... 9 4.2. Preprocesado de los datos de entrada ........................................................... 9 4.3. Aplicación de técnicas de IA ....................................................................... 10 4.4. Post-procesado de los datos de entrada ...................................................... 10 5. Evaluación de las soluciones obtenidas .............................................................. 11 5.1. Método de Evaluación ............................................................................... 11 6. Análisis de Dificultades, Riesgos y Aplicabilidad .................................................. 12 6.1. Dificultades en la Obtención de la Solución .................................................. 12 6.2. Riesgos Previstos ..................................................................................... 12 6.3. Análisis de Implantación ............................................................................ 12 2
  • 3. 1. Introducción 1.1. Descripción del Problema El problema principal es la toma de decisiones en el juego del Póker, las principales acciones que se pueden realizar en este juego son: o No ir: Lo que supone que el jugador deja de jugar. o Pasar: El jugador decide no subir ninguna apuesta. o Subir N: El jugador sube la apuesta del juego una cantidad “N”, podrá subir tanto como la cantidad de dinero de la que disponga. Sin embargo, a pesar de que el conjunto de salida parece reducido, el conjunto de variables a tomar en cuenta es mucho mayor, ya que, a la hora de tomar una decisión no sólo dependerá de las cartas que se poseen, sino que también se tendrá en cuenta la posición que se ocupa en la mesa y el modo de jugar de los contrincantes. Además el tiempo de respuesta también suele influir en el modo de juego de los jugadores, por ejemplo, un jugador que no tiene segura su jugada tardará más en decidirse que un jugador que tiene una buena mano. Actualmente, la modalidad de Póker a la que más se juega es Texas Hold 'em Sin Límite, esta es la modalidad sobre la que realizaremos el estudio. En ella cada jugador sólo posee dos cartas (cartas personales) y su jugada es la mejor combinación de cartas que puede formar con las cartas que se van poniendo en la mesa (denominadas cartas comunitarias). 1.2. Objetivos El objetivo principal es obtener un jugador mediante una técnica de inteligencia artificial que sea capaz de tomar las mejores decisiones posibles, en la primera ronda de apuestas del juego (Preflop). Es cierto que es complejo de valorar finalmente si hemos creado un buen jugador, o hemos conseguido aprender las mejores decisiones, ya que el conjunto de posibilidades es muy grande. En nuestro caso sería positivo que con estas decisiones consiguiésemos ganar el mayor dinero posible cuando realicemos apuestas, y de perder la menor cantidad de dinero posible cuando la jugada sea mala. 1.3. Posibles Aplicaciones El resultado sería valioso para las casas de apuestas que albergan partidas de Póker Online, ya que, es necesario un mínimo de jugadores para participar y para que los jugadores tengan un servicio de juego 24h podrían interactuar con estos jugadores creados mediante IA. Además empresas o particulares podrían optar, ilícitamente, por tener agentes en el juego que ganen dinero para ellos. 3
  • 4. 2. Estado del Arte La Inteligencia Artificial ya se ha adentrado en el campo de la toma de decisiones en el Póker. Actualmente se dice que es una de las principales amenazas del Póker Online, y esto se debe a que los jugadores que han sido generados, a pesar de que no son capaces de vencer a jugadores expertos, sí que son capaces de ganar a jugadores amateur y estándar. Es por ello que actualmente se intentan introducir técnicas para poder expulsar a jugadores automáticos. Técnicas como la resolución de los cada vez más inservibles captchas o de problemas más específicos como preguntas, etc. Además de empresas dedicadas a este propósito también las universidades se encargan de organizar concursos, uno de los más conocidos es el First Man-Machine Poker Championship, promocionado por la universidad de Alberta (Edmonton, Canadá). Debido al secretismo que genera este terreno, por su directa productividad, es difícil que las empresas comenten su relación con este tipo de investigaciones, y por tanto es difícil obtener datos de manos y jugadas, así con información relacionada con la aplicación directa de este tipo de solución. Los principales usos de IA en el póker son: • Programas que aprendan a jugar como una persona: como ya hemos mencionado. • Clústering para agrupar tipos de jugadores: para intentar inferir posibles conjuntos de tipos de jugadores. Sus resultados no son buenos. Y estadísticamente ya existen otras soluciones bastantes buenas. • Clústering para agrupar rangos de manos de los jugadores: para intentar delimitar las cartas con las que juegan otros jugadores, en función de la situación. Existen ya técnicas estadísticas que funcionan bien para hacer esto. • Técnicas de aprendizaje para construir modelos estadísticos del oponente: La Universidad de Alberta ha desarrollado programas siguiendo estas técnicas. 4
  • 5. 3. Datos de Trabajo 3.1. Datos de Entrada Nuestros datos son manos de póker de un jugador profesional. Las salas de póker online, permiten guardar las manos que un jugador juega, para posteriormente poder estudiar estas. Estas manos se almacenan en unos ficheros de texto, con un formato parecido al siguiente: PokerStars Mano n.º 32760618860: Torneo n.º 193734964, Freeroll Hold'em No Limit - Nivel I (10/20) - 12-09-2009 21:00:54 CET [12-09-2009 15:00:54 ET] Mesa '193734964 218' 9-max Asiento n.º 2 es el botón Asiento 1: alvaroRobles (1500 en fichas) Información de la mano que comienza Asiento 2: Cepiblan (1490 en fichas) Asiento 3: pitufo_verde (1500 en fichas) fuera de la mano (trasladado de otra mesa a la ciega pequeña) Asiento 4: diazpetit (1480 en fichas) Asiento 5: sinchan607 (1500 en fichas) Información de los jugadores que están en la mano Asiento 6: aticap (4530 en fichas) Asiento 7: worldblade (1500 en fichas) está ausente Asiento 8: pokkerwinner (1500 en fichas) está ausente Asiento 9: terelumi45 (1500 en fichas) está ausente diazpetit: pone ciega pequeña 10 sinchan607: pone ciega grande 20 Información de las apuestas obligatorias *** CARTAS PROPIAS *** Repartidas a sinchan607 [8s 9d] aticap: iguala 20 Información de las cartas de nuestro worldblade: se retira jugador pokkerwinner: se retira terelumi45: se retira worldblade está conectado Información de la primera ronda de worldblade ha vuelto apuestas alvaroRobles: iguala 20 Cepiblan: se retira Información de la acción preflop de diazpetit: iguala 10 nuestro jugador sinchan607: pasa *** FLOP *** [4d Kc Kh] Información de las 3 primeras cartas diazpetit: pasa comunitarias (Flop) sinchan607: pasa aticap: pasa alvaroRobles: pasa Información de la segunda ronda de apuestas 5
  • 6. *** TURN *** [4d Kc Kh] [9s] diazpetit: pasa Información de la cuarta carta sinchan607: apuesta 60 comunitaria (Turn) aticap: se retira alvaroRobles: iguala 60 Información de la tercera ronda de diazpetit: se retira apuestas *** RIVER *** [4d Kc Kh 9s] [Kd] sinchan607: apuesta 60 Información de la quinta carta alvaroRobles: iguala 60 comunitaria (River) *** SHOW DOWN *** sinchan607: muestra [8s 9d] (full house de Reyes y Nueves) alvaroRobles: descarta su mano sin mostrar sinchan607 recaudó 320 de bote Información de la cuarta ronda de *** RESUMEN *** apuestas Bote total 320 | Comisión 0 Comunitarias [4d Kc Kh 9s Kd] Información de quien gana la mano Asiento 1: alvaroRobles descartó sin mostrar [2h Ah] Asiento 2: Cepiblan (botón) se retiró antes del Flop (no apostó) Asiento 4: diazpetit (ciega pequeña) se retiró en el Turn Asiento 5: sinchan607 (ciega grande) mostró [8s 9d] y ganó (320) con full house de Reyes y Nueves Asiento 6: aticap se retiró en el Turn Asiento 7: worldblade se retiró antes del Flop (no apostó) Asiento 8: pokkerwinner se retiró antes del Flop (no apostó) Asiento 9: terelumi45 se retiró antes del Flop (no apostó) La información que está en gris, no será necesaria para nosotros, ya que sólo nos centramos en el preflop, y las rondas posteriores no nos importan. 6
  • 7. 3.2. Datos Adicionales Información adicional podría ser otra información que tuviese el jugador, que no fuese sólo la mesa de juego, los oponentes, las fichas y las cartas, es decir, que no fuese sólo la información que te da la sala de póker, que es la mínima para poder jugar. Existen programas que usan los datos de las manos para generar estadísticas de tus contrincantes. Y estas estadísticas se pueden mostrar sobreimpresas en la mesa de la sala de póker online. A esto se llama HUD (head up display). A continuación mostramos una mesa sin HUD y después una con HUD: Figura 1: Mesa de Póker sin HUD Figura 2: Mesa de Póker con HUD Estadísticas del HUD Esta información define a los jugadores, pudiéndose así saber si el jugador va a muchas manos o a pocas, si es agresivo o pasivo, etc. La ventaja del póker online son estas herramientas que te dan información extra de mucha utilidad durante el juego. Tener esta información podría servir como información adicional a nuestros datos. 7
  • 8. 3.3. Datos de Salida Los datos de entrada necesitan un procesamiento que se explicará en el siguiente apartado. De nuestro clasificador se espera que, dada una mano, sepa que decisión tomar en cuanto a Retirarse (Fold), Igualar (Call), Subir (Raise), Resubir (Re-Raise). En cuanto a la mano se necesitará toda la información que hemos mencionado en el apartado 3.1. 8
  • 9. 4. Procesamiento inteligente de los datos 4.1. Esquema de procesamiento Primero, haremos un programa que coja nuestros ficheros de datos en bruto, extraiga la información que necesite y genere el fichero de datos que necesita la herramienta a utilizar. Después, probaremos varias técnicas de IA, que permita la herramienta elegida. 4.2. Preprocesado de los datos de entrada Para realizar el clasificador habíamos pensado utilizar WEKA, ya que es una herramienta de Aprendizaje Automático muy completa ya que tiene multitud de algoritmos. WEKA nos permite procesar los datos antes de usarlos con alguna técnica. También, permite ampliar el espacio de memoria que usa, por lo que la cantidad de datos que usemos no es un problema. WEKA también nos deja hacer test con un conjunto de datos, para probar el modelo, con lo que podríamos plantear una mano y ver qué solución toma. A los datos en bruto tenemos que procesarlos para poner el formato “arff” de WEKA. Cada patrón tendrá, a priori, los siguientes atributos: • Número de la primera Carta • Palo de la primera Carta • Número de la segunda Carta • Palo de la segunda Carta • Tipo de Partida (Torneo, Cash, Sit&Go) • Ciega Pequeña • Ciega Grande • Posición en la mesa • Stack propio • Número de jugadores con los que se enfrenta • Stack de cada jugador • Acción de cada jugador Después analizaremos estos datos con WEKA para ver si hay atributos innecesarios o repetidos. 9
  • 10. 4.3. Aplicación de técnicas de IA Como técnicas principales de IA utilizaríamos aprendizaje supervisado, ya que le vamos a decir si su salida es o no correcta. Usaremos clasificadores, y no regresores, ya que la salida toma valores discretos. Utilizaremos Redes de Neuronas, Perceptrón Multicapa (MLP), y jugaremos con sus parámetros (Número de capas Ocultas y Neuronas de Estas, Tasa de Aprendizaje,…) para ver cómo obtener el mejor clasificador. 4.4. Post-procesado de los datos de entrada Como con WEKA podemos evaluar con unos nuevos datos de test, podríamos procesar la información de salida para crear un fichero como el de datos en bruto. Y finalmente, usar programas reproductores de manos de póker, para ver gráficamente esta mano. 10
  • 11. 5. Evaluación de las soluciones obtenidas 5.1. Método de Evaluación En este apartado nos centraremos en explicar el método de evaluación para nuestra práctica. Utilizaremos uno principalmente: - Nos encargaremos de recoger las manos de los mejores jugadores. - Posteriormente compararemos las jugadas de los jugadores con la salida de nuestro clasificador de manos preflop, atendiendo a los siguientes atributos: o La mano inicial con la que juega el jugador. o La acción realizada por ese jugador en la jugada. De esta forma, si a una entrada determinada por la dos cartas iniciales de la mano, nos da una salida determinada a la salida del clasificador (Fold, Call, Raise, Re-Raise), compararemos lo que habría hecho el jugador experto con esa misma mano. Con este método podríamos determinar si nuestro clasificador actúa adecuadamente, aunque hay que tener en cuenta que el depende de muchos factores, y no siempre coincidirán los resultados. Aún así, estaremos abiertos a otros posibles métodos de evolución. 11
  • 12. 6. Análisis de Dificultades, Riesgos y Aplicabilidad 6.1. Dificultades en la Obtención de la Solución Describir brevemente en este apartado las dificultades inherentes al problema y a las técnicas propuestas, analizando las posibles soluciones o mitigaciones. La principal dificultad a la hora de realizar el trabajo ha sido la obtención de los datos preliminares. Debido a que estos datos suelen ser de carácter privado, o en su defecto de carácter comercial, es muy complicado encontrarlos en la red. Para ello nos hemos encargado de pedirlos a diversas páginas y particulares, esperando a su contestación. Otra de las dificultades encontradas es la necesidad de tener un gran número de datos, así como que estos sean de jugadores de un nivel medio-alto, labor bastante difícil de realizar. La tercera dificultad aparecerá a la hora de eliminar datos innecesarios dentro de los datos preliminares, los cuales pueden desvirtuar el resultado final de no detectarlos con anterioridad. Esto se arreglará con el análisis con Weka, con el que nos encargarnos de eliminar estos datos innecesarios. 6.2. Riesgos Previstos La principal incertidumbre que se nos plantea viene determinada por la obtención de los datos. Esto es debido a que, aparte de necesitar una buena cantidad de manos para poder realizar la práctica con unos buenos resultados, sería interesante que estas manos fuesen de buena calidad para que el aprendizaje fuese correcto. Otro de los riegos, como en cualquier proyecto de estas características, es que a la hora de obtener los resultados, estos no sean todo lo buenos que se esperaba, y nos obligue a replantearnos el procedimiento. 6.3. Análisis de Implantación Para poder llevar a cabo este proyecto necesitaremos un ordenador de nivel medio para poder llevarlo a cabo. Las especificaciones recomendadas serían: Procesador: Intel Pentium4 2,4 Ghz Disco duro: 200 Gb Memoría RAM: 2 Gb El principal problema que se nos planteaba era que Weka tenía un espacio de memoria limitado, pero se puede ampliar sin problemas. 12