1|Agente Inteligente Masterdrez Diseño del Agente Inteligente Masterdrez Leidy Espinoza, Jesús Gutiérrez, Francisco Díaz Departamento de Computación Inteligencia Artificial Universidad de Los Andes Mérida, Venezuela {ing.leidyespinoza, jesusgutierrez45, franjdv} @ gmail.com Resumen — En este trabajo se diseñó un agente inteligente, el cual, tiene como tarea principal modelar los movimientos de las máquinas para el videojuego masterdrez. El agente contiene las siguientes características que le permiten ser autónomo: a) Búsqueda: ubica la mejor jugada midiendo mediante el algoritmo clásico de minimax. b) Conocimiento: se crea una ontología para tener una mejor visión de las reglas y funciones del juego. c) Incertidumbre: se realiza la Máxima Utilidad Esperada (MUE) para el Algoritmo del Minimax d) Planificación: se codifica 21 aperturas de forma aleatoria, para tener un plan de juego inicial extenso. e) Aprendizaje: aprende tomando en cuenta las aperturas ganadoras y las vuelve a usar mediante redes neuronales. Como caso de estudio se realizó el videojuego masterdrez para humano vs tres (3) máquinas y las cuatro (4) máquinas en un todo contra todos o pacto aislado. Palabras claves: Agente Inteligente, Videojuego, Masterdrez, Inteligencia Artificial. I. INTRODUCCIÓN a Inteligencia Artificial comprende actualmente una gran variedad de áreas, que pueden ser de propósito general, como el aprendizaje y la percepción, a otras específicas como el ajedrez, la robótica, seguridad, medicina y más. Los agentes inteligentes son aquellos que actúa con la intención de alcanzar el mejor resultado o cuando hay incertidumbre, el mejor resultado esperado. La Deep Blue de la IBM fue la primera computadora en derrotar a un campeón mundial de ajedrez superando Garry Kasparov por un resultado de 3.5 a 2.5 en un match de exhibición [1]. Kasparov dijo que había percibido un “nuevo tipo de inteligencia” al otro lado del tablero. La revista Newsweek describió la partida como “La partida final”. El valor de las acciones de IBM se incrementó en 18 billones de dólares. Actualmente, existe campeonatos mundiales de computadoras de ajedrez donde los ingenieros, se L encargan de generar el mejor software para ponerlos a competir en mundiales, donde la campeona actual llamada Komodo tiene un ELO superior a 3.300 puntos, esto quiere decir que puede ser derrotada el 1% de la veces por el campeón actual Magnum Carlsen que en la lista de febrero de 2013 alcanzó los 2.872 puntos de ELO la cifra más alta de todos los tiempos superando los 2.851 que obtuvo Kasparov en julio de 1.999. El Masterdrez es un juego variante del ajedrez diseñado en Venezuela y se juega para cuatro (4) personas en un tablero en forma de cruz con 192 casillas. Posee muchos algoritmos que se utilizan desde hace más de 60 años para programar el ajedrez, por ello se realiza una adaptación de agente inteligente al minimax clásico para este juego, donde se asume que los cuatro (4) jugadores juegan óptimamente, se agrega una ontología donde se describe el concepto, definiciones, axiomas de las reglas y funciones de las interacciones que ocurren en el juego, se analiza cómo se puede calcular la Máxima Utilidad Esperada (MUE) para reducir la incertidumbre en el movimiento de defensa y ataque, se codifica veintiún (21) aperturas de forma aleatoria divididas en tres (3) partes: las que poseen enroque corto o largo y las que no, para tener un plan de juego inicial extenso. Además, se busca dividir dos conjuntos disjuntos: de entrenamiento y de prueba, en donde se logra realizar que los cuatro (4) adversarios (computador vs. computador) jueguen en un todo contra todos, para tres (3) agentes individuales contra un ser humano y la opción de que todos los rivales son humanos. Se recolecta la información y posteriormente se ubican los resultados en una base de datos que genera una tabla de valores que permite calcular el peso de las victorias o las tablas (empate), y con ello seleccionar las aperturas más victoriosas o la más seguras para no perder, el programa aprende analizando las aperturas, mediante la utilización de redes neuronales y las vuelve usar quedando almacenada en memoria. 2|Agente Inteligente Masterdrez II. MARCO TEÓRICO A. Masterdrez Juego variante del ajedrez con algunas reglas basadas en el dominó y las damas, que permite a los jugadores asumir un rol individual o de alianza, con el objeto de competir en equipos utilizando estrategias derivadas de los movimientos que se asignan a las piezas, designando convenios o modos para competir con los equipos en el tablero en forma de cruz, que está compuesto por ciento noventa y dos (192) escaques o casillas, logrando la victoria quien o quienes conserven el o los rey(es) que llegue hasta el final de la contienda. Cada uno de los cuatro (4) jugadores dispone de dieciséis (16) piezas, lo que significa un total de sesenta y cuatro (64) sobre el tablero, que obedecen a las siguientes características y equivalencias con el ajedrez; a continuación se muestran las especificaciones: Tabla 1. Especificaciones del Masterdrez Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Sus reglas son similares a la del ajedrez, pero cambian en cuanto a los movimientos de la pieza peón y la incorporación del zoplo, master, pase, pactos, convenios y turnos. En la figura (1) se da una visión de cómo deben colocarse las piezas en el inicio de una partida de Masterdrez, se puede observar que el Rey debe colocarse al principio en el cuadro claro central en cada sub tablero de la partida. Figura 1. Masterdrez Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Convenio o Modos del Masterdrez Los convenios o modos se deben anunciar y llegar a un acuerdo antes de comenzar la partida, se aplican a cualquiera de los jugadores que se le haya realizado master al rey, y se clasifican en: 1) Paz: las piezas no se mueven del tablero y no interfieren con ninguna actividad (no atacan, ni amenazan a las piezas contrarias). 2) Asimilación: el jugador que dio master al rey se hace dueño de las piezas y puede mover y capturar con ellas. 3) Remoción: todas las piezas del rey que recibió el master son sacadas del tablero. 4) De Facto: las piezas del rey que recibió el master las mueven cualquier jugador que continué en el juego y le toque el turno. Pactos o Estilos del Masterdrez Los pactos o estilos se deben anunciar antes de comenzar la partida, se dividen en dos (2): 1) Aislado: se juega individual, no hay compañero de equipo, se puede amenazar y capturar a cualquier oponente que esté jugando en el tablero, le proporciona la posibilidad de desarrollar un plan de juego en el cual se competirá con los tres (3) equipos simultáneamente, el turno siempre va ser en sentido contrario de las agujas del reloj. 2) Alianza: se juega en pareja con el jugador que se coloca al frente de su aliado, amarillo con rojo y verde con azul, en este acto no se pueden amenazar, ni se pueden capturar las piezas de su aliado, le proporciona la posibilidad de desarrollar un plan de juego en el cual cooperará con un (1) equipo aliado, enfrentando a dos (2) equipos rivales que se alían entre sí. Las Partidas Empatadas y Ganadas Si la partida ha finalizado, se denomina: mastertablas cuando hay cuatro (4) reyes, tritablas tres (3) reyes, tablas dos (2) reyes o victoria si hay un (1) solo rey en el tablero. Estas reglas se aplican en caso de ser pacto aislado, si el caso es pacto alianza se le da la victoria a la pareja que quede con uno (1) o dos (2) Reyes en el tablero y se le denomina mastertablas al resultado de tritablas o mastertablas en el pacto aislado. Para ver información más detallada de las reglas del masterdrez revisar [2]. 3|Agente Inteligente Masterdrez B. Inteligencia Artificial Existen numerosas definiciones de Inteligencia Artificial, dependiendo del autor o el campo de especialización. A continuación, se plantea varios modelos bastante representativos de esta área: o Es la ciencia atribuida a las máquinas capaces de hacer operaciones propias de seres inteligentes [3]. o Es el estudio de los computadores que permiten percibir, razonar y actuar [4]. Además, tiene dos aspectos, uno como ciencia cognitiva y otro como tecnología informática, y sus características esenciales son: o Información simbólica preferente a la numérica. o Métodos heurísticos preferentes a los algorítmicos. o Uso de conocimiento específico-declarativo. o Informaciones incompletas o con incertidumbre. o Multidisciplinaridad. C. Agentes Al igual que ocurre con la propia definición de la inteligencia artificial, se pueden encontrar propuestas en la literatura de un gran número de definiciones del concepto de agente, sin que ninguna de ellas haya sido plenamente aceptada por la comunidad científica, siendo quizás la más simple la de Russell [5], que considera un agente como una entidad que percibe y actúa sobre un entorno. Basándose en esta definición, se pueden caracterizar distintos agentes de acuerdo a los atributos que posean (y que van a definir su comportamiento) para resolver un determinado problema. Quizás esta definición es muy básica y puede producir un efecto contenedor en el sentido de que es una definición muy amplia y numerosos sistemas pueden ser etiquetados como agentes, cuando realmente no lo son o por lo menos no deberían haber sido enfocados desde este punto de vista. Es necesario remarcar el origen por el que se planteó esta tecnología y es el hecho de que debe ser aplicada a sistemas complejos, sistemas donde la aplicación de las técnicas existentes hoy en día ha fracasado o son sumamente difíciles de comprender y/o mantener. D. Agentes Inteligentes La inteligencia artificial puede ser enfocada desde la perspectiva del desarrollo de agentes inteligentes. Esta idea, la cual puede ser considerada como un nuevo reto a corto plazo, está siendo avalada y respaldada por numerosos investigadores en la materia; sirva a modo de ejemplo la siguiente frase: “Los agentes constituyen el próximo avance más significativo en el desarrollo de sistemas y pueden ser considerados como la nueva revolución en el software”. Esta frase fue pronunciada por el Dr. Nicholas Jennings en su discurso al recoger el premio al mejor investigador nobel del último Congreso Internacional de Inteligencia Artificial celebrado en Estocolmo. E. Ajedrez Computarizado, Trabajo de Shannon El 9 de Marzo de 1949 Claude E. Shannon, un investigador científico de los laboratorios Bell de New Jersey, presentó un paper en una convención en Nueva York. Su paper se llamaba “Programming a Computer for Playing Chess” [6] y su importancia recae en que muchas de sus ideas originales son utilizadas en los programas de ajedrez de la actualidad. Shannon [7] propuso varias consideraciones que deben ser tomadas en cuenta en la función de evaluación de posiciones de un programa de ajedrez: Ventaja Material Estructura de peones o Peones aislados y retrasados. o Control relativo del centro. o Peones en color opuesto al alfil propio. o Peones pasados Posición de las Piezas o Caballos avanzados, protegidas o atacadas. o Torres en columnas abiertas o semiabiertas. o Torres en séptima fila. o Torres dobladas. Posibilidades de Ataque o Piezas que protegen a otras piezas. o Ataques sobre otras piezas. o Ataques sobre casillas adyacentes al rey enemigo. o Clavadas. o Movilidad, medida por el número de movimientos legales posibles. 4|Agente Inteligente Masterdrez Shannon describió dos tipos de estrategias para el juego de ajedrez por máquinas. La más primitiva, llamada “tipo-A”, consistía en la búsqueda en profundidad con un límite a lo largo de 9 cada “rama” del árbol, para luego utilizar el algoritmo minimax. La estrategia “tipoB” introdujo un método de búsqueda selectiva en el cual ciertas líneas eran más profundizadas que otras. El mismo Shannon acotó que la estrategia “tipo-A‘” presenta al menos tres desventajas. En una posición de medio juego hay cerca de 30 posibles movimientos. Luego de una movida de cada bando las posibilidades crecen a 1.000 nodos terminales los cuales deben ser evaluados. Después de tres movimientos la proporción crece a 109 nodos terminales, lo cual implica que a una tasa de evaluación de 1 por cada microsegundo el programa tardaría al menos 16 minutos para cada movimiento. Segundo, un jugador de ajedrez examina algunas variantes con profundidad de pocos niveles y otras con cerca de 20 niveles de profundidad. Esto es lo que se llamo “búsqueda selectiva” en la estrategia “tipo-B”. La tercera desventaja es el problema derivado de las posiciones “inestables”, aquellas en donde hay cambios de piezas o bien secuencias de jaques. Referido a esto último, Shannon introdujo el concepto de “estabilidad”, la cual aplicó a su segundo tipo de estrategia, proponiendo lo siguiente: I. Examinar variantes forzadas lo más profundamente posible, evaluando solo posiciones estables. II. Seleccionar mediante un proceso externo las variantes importantes de ser analizadas, evitando perder tiempo analizando variantes inútiles. Estos dos criterios son claramente utilizados por jugadores humanos, siendo el segundo nada más que el algoritmo alfa-beta el cual fue utilizado en programas a partir de 1.960. III. a) Búsqueda: Algoritmo Minimax La idea de este algoritmo es que existen cuatro (4) jugadores y una función de evaluación de una posición determinada del tablero en forma de cruz con 192 de casillas divididos en 16 filas x 16 columnas. El computador en el pacto aislado va intentar maximizar esta función de evaluación, es decir, realizar su mejor movimiento posible en el turno que le toca según el color de las piezas (amarilla, negra o roja) y va observar el peor movimiento de las blanca (humano) e intentar minimizarla. Con esta idea en mente, se genera un árbol de búsqueda (se puede suponer que se empieza minimizando) donde los movimientos de la blanca que ha minimizado se llaman nodos minimizadores y los de los jugadores que maximiza (amarilla, negra o roja) nodos maximizadores. Figura 2. Algoritmo Minimax en el Masterdrez PROBLEMA Diseñar un agente inteligente que sea capaz de aprender cuales son las mejores aperturas en el Masterdrez. IV. cada una juega un papel fundamental en el funcionamiento de éste y le permiten ser autónomo. Las etapas son: o Búsqueda. o Conocimiento. o Incertidumbre. o Planificación. o Aprendizaje. DISEÑO DEL AGENTE INTELIGENTE El diseño del Agente Inteligente Masterdrez es estructurado en 5 etapas, donde Elaborado por: Díaz, Espinoza y Gutiérrez (2015). El jugador MIN va a realizar todos los movimientos posibles, después los jugadores MAX realizarán todos los movimientos posibles de aquellos generados anteriormente y así sucesivamente, esto se puede ver como un árbol. 5|Agente Inteligente Masterdrez La profundidad de este árbol, se elige anteriormente y es fija. En este árbol un nodo minimizador va a devolver a su padre el peor hijo, en este caso el de menor valor de la función de evaluación y el nodo maximizador va a devolver el movimiento que maximice esa función de evaluación. Así, empezando desde las hojas y subiendo en el árbol se acabará eligiendo la mejor jugada posible a realizar. cada bando, con métodos de función evaluación para bajar a mejores jugadas. Figura 3. Tabla de Medición de Plies (Capas) Ventajas Es un algoritmo muy sencillo de implementar y que con una buena función de evaluación siempre va a devolver el mejor movimiento a realizar. Inconvenientes Para juegos con pocos movimientos es una solución factible, pero para el masterdrez donde se encuentra nodos para realizar del orden de 50 posibles movimientos, el árbol es de tal tamaño que esta solución es inabordable Velocidad de Plies en el Agente Masterdrez El concepto de “plies” o “capas” en el ajedrez computacional significa la jugada de ambos bandos, o sea 2 movimientos de profundidad del árbol de Ajedrez, en el Masterdrez un plies sería la jugada de los 4 bandos (blanca, amarilla, negras y roja) o sea 4 movimientos de profundidad en el árbol del Masterdrez, es decir, como se ve en la tabla un plies en el Masterdrez gastaría 111.100 Nodos, con 106 Megabytes de Memoria, gastando 22 segundos en una computadora de 500 Mb, 5,5 segundos en un computador de 2 Gb y 2,65 segundos en una computadora de 4 Gb (que es la que estamos usando), esto ocurre si el método de búsqueda fuera de amplitud la cual es completa y no optima (por ello el método minimax que estamos programando es de profundidad limitada a 4), en el cuadro de abajo podemos observar que al llegar 1 Plies del Masterdrez, es decir una jugada para Blanca, Amarilla, Negras y Roja, todavía se cuenta en minutos y si completando medio Plies (6 de profundidad) con una segunda jugada para Blanca y Amarilla, todavía los tiempos en la computadora se cuentan en minutos, ya pasando a 2 Plies del Masterdrez, se cuenta horas por ejemplo en la computadora que estamos usando de 4 Gb serian 7,75 horas, por ello nuestro programa va llegar a observar una sola jugada de Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Interacciones de Rivalidad en el Minimax Se está programando el Pacto es Aislado tiene 3 Iteraciones donde Blanca que es el Humano siempre va ser Minimizado, porque los rivales son la PC amarilla, PC negra y PC roja. Tabla 2. Rivalidad contra Blancas Interacciones Máximo Mínimo Amarillo Blancas 1 Negras Blancas 2 Rojas Blancas 3 Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Esto es momentáneo a medida que se valla programando se va a depurar el código fuente donde si el Pacto es Aislado tiene 9 Interacciones donde Blanca que es el Humano siempre va ser Minimizado, porque es rival de la PC amarilla, PC negra y PC roja, podría quedar las Iteraciones, de la siguiente forma: Tabla 3. Rivalidad Humano – Agente (3) Interacciones Máximo Mínimo Amarillo Blancas 1 Amarilla Negra 2 Amarillas Rojas 3 Negras Blancas 4 Negras Amarillas 5 Negras Rojas 6 Rojas Blancas 7 Rojas Negra 8 Rojas Amarillas 9 Elaborado por: Díaz, Espinoza y Gutiérrez (2015). 6|Agente Inteligente Masterdrez Código Fuente del Método Minimax Masterdrez En la función movimientoMaquina del Masterdrez realizado en QT se puede observar cómo se inicializa en 0 comenzando con el turno de las blancas se hace un for buscando: p2 = a[i].x * 16 + a[i].z; Y luego se busca en el tablero con dos for de 16 x 16 c2 = j * 16 + k; Se invoca la función p2 = b[i].x * 16 + b[i].z; // mejorPieza Luego se busca en el tablero con dos for de 16 x 16: c2 = j * 16 + k; // mejorCasilla Se llama a la función: movimientoPrueba(des, p2, c2, b, n, a, r, t); Que compara cual es la mejor jugada en costeActual, seleccionando pieza mejor P = p2; mejor casilla mejorC = c2; y mejor Coste costeMejor = costeActual; minimizando Blancas se revisar si hay enroque como se muestra a continuación: int movimientoMaquina (int *p, int *c, pieza b[16], pieza n[16], pieza a[16], pieza r[16], pieza t[16][16], int turnoActual, int it) { int i, j, k; undo des[1]; int p2, c2, costeActual; int mejorP, mejorC; int costeMejor = -10000; int valor = INT_MIN; encontrado = 0; for (i = 0; i < 16; i++) { if ((turnoActual == 0) && (b[i].tipo > 0)) { p2 = b[i].x * 16 + b[i].z; // mejorPieza // 16x16 for (j = 0; j < 16; j++) for (k = 0; k < 16; k++) { c2 = j * 16 + k; // mejorCasilla if (casillaYTurnoValidos(p2, c2, b, n, a, r, t, turnoActual, true)) { movimientoPrueba(des, p2, c2, b, n, a, r, t); if (it > 0) costeActual = movimientoMaquina(a1, a2, b, n, a, r, t,(turnoActual + 1) % 4, it - 1); else costeActual = coste4wc(b, a, n, r); if ((encontrado == 0) || (costeActual > costeMejor)) { mejorP = p2; mejorC = c2; costeMejor = costeActual; encontrado = 1; } if (enroqueBlancas != -1) enroque = 1; else enroque = 0; enroqueBlancas = -1; deshacerMovimientoPrueba(des, t); } movimientoPrueba(des, p2, c2, b, n, a, r, t); Que compara cual es la mejor jugada en costeActual, seleccionando pieza mejor P = p2; mejor casilla mejorC = c2; y mejor Coste costeMejor = costeActual; maximando Amarillas y revisamos si hay enroque como se muestra a continuación: } else if ((turnoActual == 1) && (a[i].tipo > 0)) { p2 = a[i].x * 16 + a[i].z; for (j = 0; j < 16; j++) for (k = 0; k < 16; k++) { c2 = j * 16 + k; if (casillaYTurnoValidos(p2, c2, b, n, a, r, t, turnoActual, true)) { movimientoPrueba(des, p2, c2, b, n, a, r, t); if (it > 0) costeActual = movimientoMaquina(a1, a2, b, n, a, r, t,(turnoActual + 1) % 4, it - 1); else costeActual = coste4wc(b, a, n, r); if ((encontrado == 0) || (costeActual < costeMejor)) { mejorP = p2; mejorC = c2; costeMejor = costeActual; encontrado = 1; } if (enroqueAmarillas != -1) enroque = 1; else enroque = 0; enroqueAmarillas = -1; deshacerMovimientoPrueba(des, t); } } b) Conocimiento Se define la ontología utilizando el editor Protégé: Masterdrez Figura 4. Ontología Masterdrez Posteriormente juega a las amarillas, negra y roja, con el mismo algoritmo pero } Maximizando que se observa a continuación: En la función movimientoMaquina del Masterdrez realizado en QT se puede observar cómo se inicializa en 1 comenzando con el turno de las Amarillas se hace un for buscando: Elaborado por: Díaz, Espinoza y Gutiérrez (2015). 7|Agente Inteligente Masterdrez Movimiento Jugador Figura 5. Ontología Movimiento Figura 7. Ontología Jugador_Tipo Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Convenio Figura 6. Ontología Convenio Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Pieza Figura 8. Ontología Pieza Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Amenaza al Rey Figura 7. Ontología AmenazaAlRey Elaborado por: Díaz, Espinoza y Gutiérrez (2015) Tablero Figura 9. Ontología Tablero_Color Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Pacto Figura 8. Ontología Pacto Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Elaborado por: Díaz, Espinoza y Gutiérrez (2015). 8|Agente Inteligente Masterdrez La base de conocimiento contiene la ontología y un conjunto de individuos de las clases que conforman la misma. En realidad, existe un pequeño umbral donde la ontología termina y la base de conocimiento inicia. La ontología para el Agente Inteligente Masterdrez ha sido inicialmente definida en Protégé por medio del lenguaje OWL, tomando en consideración los siguientes aspectos: 3 3.1 Definición de Conceptos Los Rojos, Amarillos, Negros y Blancos son colores de las piezas. Los peones son parte del conjunto de figuras de las piezas. Existen piezas del Rojo que no son Peones. Una Torre debe capturar al menos horizontal o verticalmente. Un Alfil es una pieza solo debe capturar diagonalmente. Un Caballo es una pieza que solo puede capturar en forma de L. Las Dama pueden capturar horizontal, vertical o diagonalmente. o Restricciones Pieza es un conjunto disjunto de Tablero. o Propiedades Capturar es aplicado a los Peones y su inverso es capturado_por o Individuos 1. Peón. 2. Dama es Blanca. 3. Rey es Negro y es una Pieza del Reino. 4. Caballo es Rojo. 5. Alfil es Amarillo 3.5 En síntesis, se establece lo siguiente: Tabla 4. Representación del Conocimiento 1 Color de las Piezas 1.1 (DL) 1.2 (OWL) (DL) 1.3 (OWL) (DL) 1.4 (OWL) (DL) 2 2.1 2.2 2.3 2.4 2.5 2.6 PC_Rojo ⊆ Pieza_Color rdf: subClassOf (PC_Rojo, Pieza_Color) PC_Amarillo ⊆ Pieza_Color rdf: subClassOf (PC_Amarillo, Pieza_Color) PC_Negro ⊆ Pieza_Color rdf: subClassOf (PC_Negro, Pieza_Color) PC_Blanco ⊆ Pieza_Color (OWL) rdf: subClassOf (PC_Blanco, Pieza_Color) Figura de las Piezas (DL) PF_Peón ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Peón, Pieza_Figura) (DL) PF_Torre ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Torre, Pieza_Figura) (DL) PF_Caballo ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Caballo, Pieza_Figura) (DL) PF_Alfil ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Alfil, Pieza_Figura) (DL) PF_Dama ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Dama, Pieza_Figura) (DL) PF_Rey ⊆ Pieza_Figura (OWL) rdf: subClassOf (PF_Rey, Pieza_Figura) 3.2 3.3 3.4 4 4.1 Movimientos de las Piezas (DL) PF_Peón ⊆ Pieza_Figura ∩ Ǝ captura.diagonal (OWL) rdf:subClassOf(Peón(intersection(Piezas_Figura,so meValuesFrom(captura,diagonal)))) (DL) PF_Torre ⊆ Pieza_Figura ∩ Ǝ captura.horizontalmente (OWL) rdf:subClassOf(Torre(intersection(Piezas_Figura,so meValuesFrom(captura,horizontalmente)))) (DL) PF_Caballo ⊆ Pieza_Figura ∩ Ǝ captura.enformaL (OWL) rdf:subClassOf(Caballo(intersection(Piezas_Figura ,someValuesFrom(captura,enformaL)))) (DL) PF_Alfil ⊆ Pieza_Figura ∩ Ǝ captura.diagonalmente (OWL) rdf:subClassOf(Alfil(intersection(Piezas_Figura,so meValuesFrom(captura,diagonalmente)))) (DL) PF_Dama ⊆ Pieza_Figura ∩ Ǝ captura.diagonalmente (OWL) rdf:subClassOf(Dama(intersection(Piezas_Figura,s omeValuesFrom(captura,diagonalmente)))) Consideraciones Adicionales (DL) Pieza ¬ Tablero (OWL) rdf:disjointwith (Pieza, Tablero) Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Del mismo modo, se incorpora la rivalidad entre los jugadores partiendo de la diversidad de aperturas existentes en el juego. En primera instancia se tiene: En ajedrez se denomina apertura a la fase inicial del juego, en la que se procede a desarrollar las piezas desde sus posiciones iniciales. Las tres fases de una partida de ajedrez son: apertura, medio juego y final. Las secuencias de movimientos iniciales reconocidas se conocen como aperturas o defensas y se le han dado los siguientes nombres en el Agente Inteligente Masterdrez: Fianchetto Simple. Fianchetto Doble. Y Peones Centrales. En el ajedrez, Fianchetto es un término que indica una forma especial de desarrollar el alfil. Por ejemplo, el negro tiene su alfil de casillas negras, es decir, ha movido el peón de la columna de caballo y el alfil se ha colocado en ese escaque. Si se produce el enroque en el flanco donde se encuentra el alfil en fianchetto se complementan ambas posiciones, dando lugar a una estructura en la que el alfil y el rey se defienden entre sí. Otra posición relacionada es el fianchetto doble, en donde una vez adelantado el peón de caballo para realizar el fianchetto se ubica el alfil en la columna de torre correspondiente. c) Planificación Las aperturas en ajedrez se definen de la siguiente manera: o Apertura abierta Se mueve el peón de rey dos casillas y el adversario replica con el mismo movimiento. o Apertura semiabierta 9|Agente Inteligente Masterdrez Aquéllas donde el jugador avanza dos posiciones el peón de su rey y el adversario contestan con un movimiento distinto. o Apertura semicerrada Apertura en la que el jugador avanza dos casillas su peón de dama y el contrario responde de forma distinta. o Apertura cerrada El jugador avanza dos casillas su peón de dama y el contrincante responde con el mismo movimiento, avanzando dos casillas su peón de dama. 4. Las aperturas en el Masterdrez cambian con respecto al ajedrez y se definen de la siguiente manera: o Apertura abierta Se mueve el peón de rey y de dama dos casillas, para liberar los dos alfiles y la dama atacando más rápido. o Apertura semiabierta Aquéllas donde el jugador avanza dos posiciones el peón de su rey y el peón de dama un paso o viceversa el peón de dama un dos y el de rey uno. o Apertura semicerrada Apertura en la que se realiza un fianchetto para proteger el rey y se mueve los peones de casillas de centrales, para liberar la dama y los dos alfiles. o Apertura cerrada El jugador realiza dos fianchettos evitando atacar al inicio de la partida, buscando la defensa y evitando así, cualquier sorpresa al inicio de la partida. 4. Se programaron las siguientes veintiún (21) aperturas como base de conocimiento para tener una planeación extensa de juego: o Apertura abierta 1. De 2 peones centrales 2 pasos con enroque largo. 2. De 2 peones centrales 2 pasos con enroque corto. 3. De 2 peones centrales 2 pasos sin enroque. o Apertura semiabierta 1. De peón de dama 2 y rey 1 paso con enroque largo. 2. De peón de dama 1 y rey 2 pasó con enroque largo. 3. De peón de dama 2 y rey 1 paso con enroque corto. 5. 6. o 1. 2. 3. 5. 6. o 1. 2. 3. De peón de dama 1 y rey 2 pasó con enroque corto. De peón de dama 2 y rey 1 paso sin enroque. De peón de dama 1 y rey 2 pasó sin enroque. Apertura semicerrada De fianchetto y peón de dama 2 y rey 1 paso con enroque largo. De fianchetto y peón de dama 1 y rey 2 paso con enroque largo. De fianchetto y peón de dama 2 y rey 1 paso con enroque corto. De fianchetto y peón de dama 1 y rey 2 pasó con enroque corto. De fianchetto y peón de dama 2 y rey 1 paso sin enroque. De fianchetto y peón de dama 1 y rey 2 paso sin enroque Apertura cerrada De doble fianchetto con enroque largo. De doble fianchetto con enroque corto. De doble fianchetto sin enroque. d) Incertidumbre Se utiliza en los movimientos de ataque y defensa la Máxima Utilidad Esperada. Figura 10. Minimax - MUE Elaborado por: Díaz, Espinoza y Gutiérrez (2015). En el Masterdrez se busca la mejor jugada a través de MUE eliminando la incertidumbre, reforzando el algoritmo Minimax como se ve a continuación, mueve blanca y luego amarilla, va revisar los mejores movimientos o MUE de blanca mv1, amarilla mv2, negra mv3, y roja mv4 y selecciona, posicionando la mejor jugada para las amarillas que es 203823 y la peor para los rivales que es 10000 de esta forma: 10 | A g e n t e I n t e l i g e n t e M a s t e r d r e z entrena, utilizando todos los ejemplos disponibles, después se necesitará algunos ejemplos más para hacer el test, así que es más conveniente adoptar la siguiente metodología: Realizando algo parecido a la grafica que vemos en la figura (11). o o Figura 11. MUE o o o Elaborado por: Díaz, Espinoza y Gutiérrez (2015). e) Aprendizaje La idea fundamental, es poder implementar el algoritmo de aprendizaje, enfrentando el agente vs. agente hasta llegar a la final de la partida. Esto con la finalidad de generarle al mismo agente experiencia para conseguir mayor eficacia en su interacción con el medio. En tal sentido, se busca coleccionar una gran cantidad de datos donde las victorias equivalen a un punto (1), tablas 0.5 puntos y derrotas cero (0) puntos. Prácticamente, se busca dividir dos conjuntos disjuntos: de entrenamiento y de prueba, posteriormente usar redes neuronales, para mediante el peso de victoria y tablas seleccionar las aperturas más victoriosas. Algoritmo de Aprendizaje Un algoritmo de aprendizaje, es bueno si produce hipótesis que hacen un buen trabajo al predecir clasificaciones de ejemplos que no han sido observados. Obviamente, una predicción es buena si resulta cierta, por lo tanto, se puede calcular la calidad de una hipótesis contrastando sus predicciones con la clasificación correcta, una vez se conoce ésta. Esto se hace con un conjunto de ejemplos denominado conjunto de test. Si se Recolectar un número de experiencias (ejemplos) grande. Dividir este conjunto en dos conjuntos disjuntos: el conjunto de entrenamiento y el conjunto de test. Aplicar el algoritmo de aprendizaje al conjunto de entrenamiento, generando la hipótesis h. Medir el porcentaje de ejemplos del conjunto de test que h clasifica correctamente. Repetir los pasos anteriores para conjuntos de entrenamiento de diferentes tamaños y conjuntos de entrenamiento seleccionados aleatoriamente para cada tamaño. El resultado de este procedimiento es un nuevo conjunto de datos que puede ser procesado, para obtener la calidad media de predicción como una función del tamaño del conjunto de entrenamiento. Definición del Problema del Aprendizaje Básicamente, el Agente Masterdrez necesita generar un conjunto de experiencias con todas las victorias, tablas y derrotas. La idea fundamental, es que él sea capaz de aprender de ella, seleccionando la mejor apertura o secuencias de jugadas que probablemente lo llevarán a la victoria u obtener el mejor desarrollo de las piezas, a continuación, se muestra el modelo del proceso del problema de aprendizaje: En primer lugar, se debe evalúa cómo se puede hacer que el agente juegue el mismo, es decir, agente vs. los otros tres agentes y de esta manera lograr una partida completa. En este proceso, hubo varios detalles por ejemplo: el problema de coronación no se ejecutaba de manera correcta ya que no estaba implementado en su totalidad. Luego, se efectúa y se obtiene un conjunto de experiencias cuya forma y estructura es la siguiente: 11 | A g e n t e I n t e l i g e n t e M a s t e r d r e z Tabla 5. Representación de las Experiencias del Agente Figura 12. Interfaz Gráfica de Masterdrez Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Como se observa el algoritmo va aceptar la mayor puntuación y esa es la apertura que va a realizar más constantemente, de esa forma aprende y la elije mediante una red neuronal que va seleccionando el peso por ejemplo el Bando Blanco tiene 45 victorias 67 empates y 5 derrotas para tener una puntuación de (78,5), el Bando Amarillo tiene 67 victorias 89 empates y 9 derrotas para tener una puntuación de (111,5), el Bando Negras tiene 90 victorias 67 empates y 9 derrotas para tener una puntuación de (123,5), el Bando Rojas tiene 78 victorias 47 empates y 3 derrotas para tener una puntuación de (125,5), son esta las aperturas que se van a utilizar para cada Bando Blanco la apertura 17, Amarillas la apertura 14, Negras la apertura 12 y Rojas la apertura 10 de las 21 aperturas que se realizaron en la Iteración anterior Partiendo de lo anterior y aplicando la serie de pasos descritos, se puede lograr que el Agente Masterdrez aprenda de acuerdo con la experiencia, y así conseguir mayor eficacia en su interacción con el medio. De esta manera, se puede memorizar un conjunto de jugadas por exploración (a través de la práctica) con el principal objetivo que el mismo agente realice tareas más eficiente y eficazmente en las siguiente partidas, porque está incorporando un nuevo conocimiento y reorganizándolo para ser el mejor jugador. V. CASOS DE PRUEBA A continuación, se muestra el prototipo e interfaz gráfica del Agente Inteligente Masterdrez: En la siguiente figura, se aprecia que cada reino (a excepción del blanco) ha realizado un fianchetto como apertura: Figura 13. Fianchetto como apertura del Masterdrez Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Como se puede observar en la prueba realizada: el Agente Inteligente Masterdrez es capaz de ejecutar aperturas (fianchetto en este caso, aunque tiene implementada otras). Así se logra establecer niveles de defensas en cada reino, con el fin de generar la rivalidad entre todos los jugadores y luego hacer uso del algoritmo del Minimax para el desarrollo y finalización del juego. También, es importante destacar que los relojes (que llevan el conteo del tiempo utilizado por cada jugador durante la partida) funcionan y disminuyen respectivamente en Humano – Humano (3). Sin embargo, para los reinos: amarillos, negros y rojos que son controlados por el Agente Inteligente Masterdrez (la computadora) realiza las jugadas de una manera tan rápida y veloz que el tiempo no se ve afectado y por ello, cada reloj que forma parte de la interfaz gráfica muestran veinte minutos para los tres reinos citados; a diferencia del blanco que es manejado por el ser humano (17:24 minutos). 12 | A g e n t e I n t e l i g e n t e M a s t e r d r e z Se realiza un videoclip de presentación al inicio del programa. En el software se cambia de trabajar con Lenguaje C++ a QT, se implementa algoritmo del minimax se logra llegar a un plie o capa (En el lenguaje de juegos, decimos que este árbol es un movimiento en profundidad, que consiste en cuatro (4) de cuartos movimientos, cada uno de los cuales), ya que aumentando otra capas se gasta demasiada recursos. Se implementa 21 aperturas que se realizan de forma aleatoria, como se ve en la figura (14) se programa en jugar de la siguiente forma: Figura 15. Dificultad 1) Se programó las piezas Staunton son más gruesa, detalladas y depuradas: Elaborado por: Díaz, Espinoza y Gutiérrez (2015). 1) Humano - Maquina (3): quiere decir que el humano las piezas blancas se enfrenta en pacto aislado contra tres (3) maquinas en un todos contra todos, donde el que quede con el rey tiene la Victoria o hace Tablas, Tritablas o Mastertablas, para ello se crea tres (3) agentes inteligentes para los bandos que son Amarillos, Negras y Rojas. En la Figura (16) si el juego se mueve el tablero se puede centra con la tecla centrar arriba de los relojes Figura 16. Centrar 2) Humano - Humanos (3): se enfrenta solo humanos, en esta opción no existe ningún agente inteligente. 3) Maquina - Maquina (4): se enfrenta solo Maquinas, los cuatros (4) son agentes inteligentes, en un todos contra todos, donde el que quede con el rey tiene la Victoria o hace Tablas, Tritablas o Mastertablas. Figura 14. Jugar Elaborado por: Díaz, Espinoza y Gutiérrez (2015). En la Figura (17) Consola que muestra turno de los reinos y el minimax para los cuatro reinos a lo último. Figura 17. Consola Elaborado por: Díaz, Espinoza y Gutiérrez (2015). A continuación se muestra algunos avances gráficos sea realizado y algunos implementos: En la figura (15) se ve la dificultad: Fácil, Intermedio y Experto controlado por el ritmo del tiempo del reloj, que pueden ser extendida con inexperto, aficionado, maestro, máster, magister y magno. Elaborado por: Díaz, Espinoza y Gutiérrez (2015). En la Figura (18) pueden cambiar a piezas Egipcias y de color de tablero mientras estás jugando. 13 | A g e n t e I n t e l i g e n t e M a s t e r d r e z Figura 18. Piezas Elaborado por: Díaz, Espinoza y Gutiérrez (2015). En la Figura (19) y Figura (20) puedes cambiar de tamaños con la teclado menos – o más + y rotar con el clip derecho del ratón el tablero Figura 19. Tamaño pequeño VI. CONCLUSIONES En el presente proyecto se logra implementar el juego humano vs tres (3) agentes inteligentes y también se enfrenta los cuatro (4) agentes inteligentes entre sí. Se implementan algoritmos clásicos de ajedrez para diseñar un agente inteligente adaptado al masterdrez, como es el minimax a un plie. Se cambia de trabajar con lenguaje C++ a uno más moderno como el QT, además se genera un nuevo reloj digital para cuatro (4) jugadores, cambio de colores de tablero de azul, verde, marrón y gris, se genera las nuevas piezas egipcias, se crea los niveles tiempo: Fácil, Intermedio y Difícil, que pueden ser extendida con inexperto, aficionado, maestro, máster, magister y magno. Se implementa 21 aperturas que se realizan de forma aleatoria Se realiza extra un videoclip de presentación que se puede observar al inicio el programa. Este trabajo tiene que ser tomado como punto intermedio para futuras experiencias en este campo, y no como un resultado final. Como trabajo futuro, proponemos escalar a un sistema multiagente, el cual permitirá realizar el pacto alianza donde se juegue en equipo de pareja como se hace en el domino o tenis de mesa. VII. REFERENCIAS Elaborado por: Díaz, Espinoza y Gutiérrez (2015). Figura 20. Tamaño grande Elaborado por: Díaz, Espinoza y Gutiérrez (2015). [1] David Goodman, Raymond Keene “Man Versus Machine: Kasparov Versus Deep Blue” by Paperback, May 1997 [2] Díaz V., Francisco J., “Reglas del Masterdrez (Edición Ajedrez)” CENDITEL. Mérida. 2012 [3] Diccionario de la Real Academia Española, España, 2000 [4] Patrick, Winston, “La teoría del aprendizaje” 1970 [5] Rusell S., Norvig P. “Inteligencia Artificial: Un Enfoque Moderno”. Prentice Hall. Madrid 2004 [6] Shannon, Claude E, “Programming a computer for playing chess”, 1950 [7] Mancilla, Jorge E. “Desarrollo De La Maestría Ajedrecística Computacional Utilizando Recursos Restringidos”. Universidad de Chile, Santiago de Chile, 2003.