Agente_ Inteligente_Masterdrez.pdf

Anuncio
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.
Documentos relacionados
Descargar