Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Mem
4 Mem
de las piezas, siguiendo con las capturas mediante salto. Es muy posible que en un
principio las fichas fuesen los peones del ajedrez, sustituyendo por pieza superior si se
coronaba; la primera descripcin grfica del tablero de juego (Timoneda) representa a
las fichas como peones de ajedrez.
En tal situacin el armazn del juego ya estaba consolidado, aunque las caractersticas
que le haran nico vinieron despus; en primer lugar se introdujo el concepto de
coronacin al llegar a primera fila contraria, sin duda proveniente del ajedrez moderno.
Posteriormente se dot a la pieza coronada de una fuerza inusual, haciendo que pudiese
mover en cualquier sentido diagonal y con cualquier desplazamiento o captura si esta
fuera posible. Estas dos ltimas y geniales aportaciones configuraron definitivamente el
juego de Damas. Por tanto el juego de Damas es el resultado de:
Los peones y movimiento diagonal (no los otros) del alquerque espaol.
El tablero de ajedrez
Por lo tanto el juego de Damas es la conjuncin del Ajedrez con el Alquerque espaol,
aumentado con nuevos y revolucionarios conceptos que haran de las Damas un juego
nico, nuevo y triunfante. Esta amalgama queda definitivamente establecida en el
ltimo tercio del siglo XV, algo posterior a la creacin definitiva del ajedrez actual.
Algoritmos de bsqueda
Algunos juegos como las damas o el ajedrez, por tener informacin completa de inicio
son idneos para la bsqueda de caminos en un sistema complejo, pudiendo despus
aplicar lo descubierto a otros campos de la computacin o de la ciencia en general.
El primer juego que se intento computarizar y para el que se desarroll un programa fue
precisamente el juego de las damas. Posteriormente otros juegos fueron tratados en este
aspecto, llegando al momento actual en que es el ajedrez el ms estudiado y al que
mayores esfuerzos se dedican en pos de la consecucin del jugador perfecto, como
sucedi con los programas Deep Blue y actualmente, 3DFritz.
Las tcnicas y algoritmos que se usan para todos estos juegos son bsicamente los
mismos, cambiando solo alguna particularidad del juego tratado, como la generacin de
jugadas, etc. Por todo ello, los algoritmos que se detallarn a continuacin son vlidos
para las damas, el ajedrez...
Ya en los aos 50, Shannon describi los mecanismos que podan usarse en un
programa jugara al ajedrez y Turing describi un programa para jugar al ajedrez pero
no lo construy. En los 60, Samuel construy el primer programa de juegos importante
y operativo, el cual jugaba a las damas y poda aprender de sus errores para mejorar su
comportamiento.
Los juegos proporcionan una tarea estructurada en la que es muy fcil medir el xito o
el fracaso. En comparacin con otras aplicaciones de inteligencia artificial, por ejemplo
comprensin del lenguaje, los juegos no necesitan grandes cantidades de conocimiento.
En un primer momento se pens que se podran resolver por bsqueda exhaustiva en el
rbol del juego, es decir, un rbol que contenga todos los movimientos posibles de
ambos jugadores. Considerando por ejemplo el juego de las damas, en el comienzo de la
partida un jugador puede realizar 7 movimientos, por lo que en el rbol de juego habra
49 nodos en el segundo nivel. Por el contrario, en el juego de ajedrez, en el comienzo de
la partida un jugador puede realizar 20 movimientos, por lo que en el rbol de juego
habra 400 nodos en el segundo nivel, as la complejidad aumentara exponencialmente
en cada nivel de profundidad del rbol Resulta evidente que una simple bsqueda
directa no es posible de realizar en la prctica, y por lo tanto es necesario algn tipo de
procedimiento de bsqueda heurstica.
Resulta evidente que la eleccin del camino a seguir ser ms acertada cuntas ms
capas se exploren antes de tomar la decisin. Se utiliza una funcin de evaluacin
esttica (heurstica) para elegir el movimiento ms prometedor. Por ejemplo, Turing us
la sencilla funcin B/N (piezas blancas / piezas negras) para evaluar una posicin dada
de un tablero de ajedrez. Shannon utiliz una funcin lineal de funciones de evaluacin
simples para evaluar un tablero de damas:
c1 * ventaja piezas + c2 * avance + c3 * amenazas dobles + ...
En la funcin anterior, con un mecanismo de aprendizaje, los pesos o ponderaciones ci
se incrementan o disminuyen siempre que sus componentes sugieran movimientos que
conducen a la victoria o al fracaso respectivamente.
Algoritmos utilizados
Para el desarrollo de este programa se ha utilizado un algoritmo Minimax, fijando un
nivel mximo de profundidad en el rbol de seis niveles, que corresponde a tres
movimientos de la mquina ms los movimientos de respuesta del adversario.
En cada nodo del rbol se almacena la informacin correspondiente al estado de la
partida si se llevase a cabo dicho movimiento. Por ello, recorriendo el rbol se busca el
movimiento que maximice la diferencia entre el nmero de piezas con las que juega la
mquina y el nmero de piezas con las que juega el adversario (el usuario). Debemos
tener en cuenta para determinar el nmero de piezas que pueden existir dos tipos de
fichas para cada jugador: peones (piezas de salida) y damas. Debido a las mayores
posibilidades de movimiento y accin de la dama, se le ha dado un peso a cada ficha: 1
punto por pen y 3 por dama. As, se maximiza, para todos los movimientos posibles
para la mquina y solamente para el mejor o los mejores para el adversario, la funcin
3*damasMaquina + peonesMaquina - 3*damasUsuario - peonesUsuaruio
Es decir, se considerarn todos los movimientos que puede realizar la mquina, pero
consideraremos que el usuario har el mejor de sus movimientos, para ello,
recorreremos el rbol de movimientos solamente para el mejor (o los mejores si el
camino no es nico) de los movimientos para cada caso del usuario.
Si el resultado de la bsqueda del mejor movimiento no es nico, entonces se ha
recurrido a la aleatoriedad para determinar el movimiento a realizar. A cada uno de
estos movimientos posibles se le asigna un peso dependiendo del nmero de nodos del
ltimo nivel de profundidad (que dependan de l) que permitan llegar a un mximo de
la funcin explicada anteriormente. Por tanto, cuantos ms caminos llevan a dicho
resultado, mayor ser la probabilidad de seguir ese camino. Esta aleatoriedad permite
que la mquina no sea tan determinista ante situaciones idnticas desde el punto de vista
del anlisis del rbol de movimientos.
El gestor de jugadas lleva una particularidad en este juego en relacin con el ajedrez, ya
que ciertos movimientos son obligatorios (en el juego de las Damas, es obligatorio el
comer piezas si se puede), y dentro de varios movimientos obligatorios habr que elegir
uno de ellos, motivo por el que se aplic el dar pesos a cada tipo de ficha, como se
indic anteriormente.
Implementacin
El programa fue desarrollado en Java, utilizando un entorno de desarrollo Java 2 SDK
1.3.1. El programa permite al usuario elegir con que fichas jugar, teniendo en cuenta
que de cara al interfaz grfico se han sustituido las piezas blancas por amarillas y las
negras por azules, siendo por tanto las amarillas las que mueven primero al comenzar la
partida.
Para que el usuario realice un movimiento, debe pulsar la casilla inicial y despus la
casilla final haciendo un click simple con el ratn. Si el movimiento no es posible
(porque no sea un movimiento posible del juego, o siendo posible, hay algn otro
Tablero.java
Interfaz_tablero.java
Damas.java
Arbol_Mov.java
Movimiento.java
Conclusiones
Con el fin de probar la inteligencia del programa desarrollado, se han realizado pruebas
con varios niveles de profundidad del rbol de movimientos, obtenindose mejores
resultados del juego de la mquina al aumentar este nivel.
Se ha fijado en 6 niveles de profundidad, ya que con 8 niveles no siempre puede crearse
el rbol de movimientos por falta de memoria. Por ello, se ha optado con utilizar 6
niveles en el programa. Inclusive con 6 niveles de profundidad, dependiendo de si el
nmero de damas de ambos jugadores es alto, no siempre ha sido posible crear el rbol,
saltando un java.lang.OutOfMemoryException, excepcin que solamente se produce
cuando ni el GarbageCollector puede liberar la cantidad de memoria requerida. En el
caso de que sea imposible crear el rbol de movimientos, se ha optado por intentar crear
el rbol con menor profundidad (4 niveles, 2 por cada jugador). De este modo, aunque
se barajen menos posibilidades, podr seguir siendo un buen movimiento por observar 4
movimientos hacia el futuro.
Cabe destacar que el tiempo de respuesta es prcticamente nulo siempre que el nmero
de damas en el tablero no sea significativo.
No se han desarrollado tcnicas para detectar empates, aunque la partida pueda seguir
llevndose a cabo, como por ejemplo, dos damas contra una dama, situacin que slo
tendra un ganador si se cometiese un gran e improbable error de algn jugador.
En una pequea comparativa del juego de las Damas con el Ajedrez, podemos sealar
que mientras que en el Ajedrez es mayor la complejidad y el tamao del rbol en
anchura (ms posibles movimientos en cada nivel del rbol), en las Damas es mayor la
complejidad en el desarrollo y creacin del rbol de movimientos, ya que una pieza
debe seguir comiendo piezas rivales mientras pueda, y en el Ajedrez una pieza
solamente comer una pieza contraria, no siendo adems este movimiento obligatorio.
La construccin del rbol ha sido una de las tareas ms complejas que se han
desarrollado en esta prctica.
Muchos programas encontrados que simulan un jugador de Damas (al igual que los
programas de Ajedrez), utilizan bases de datos para mejorar los ltimos movimientos de
las partidas, cuando ya quedan pocas piezas sobre el tablero. De esta forma, pueden
almacenarse finales de partidas ya jugadas y tomar un camino fijo hacia la victoria. Para
este programa no se ha seguido esta tcnica ya que se ha optado por un nico algoritmo
a utilizar durante toda la partida, que se ha intentado lo suficientemente genrico para
cualquier situacin que pueda darse en una partida.