Está en la página 1de 9

INGENIERA DE TELECOMUNICACIN

Inteligencia en redes de comunicaciones

Juego de las Damas

Arias Fernndez, Carlos


Garca del Amo, Isidro

Inteligencia en Redes de Comunicaciones


Juego de las Damas

Cmo se origin realmente el juego de las Damas


Los historiadores afirmaron hasta 1986 que el juego de las damas era un invento
francs. Otros decan incluso que era un invento de los egipcios. Y as hasta la fecha
nadie saba su origen. A pesar de que la mayora de los importantes libros fueron
escritos en Espaa desde el ao 1547 hasta 1901, Espaa no fue tomada en cuenta.
Despus de una investigacin de diez aos por parte de Govert Westerveld
(Monnickendam - Holanda, 1947) , la cosa ha cambiado en beneficio de los espaoles, y
es que ahora reconocen que efectivamente Espaa fue la madre creadora del juego de
las Damas, gracias a los rabes. Existen bsicamente dos formas de jugar. Una es el
juego espaol con 12 fichas, y otro es el juego con 20 fichas.
Fue Alfonso X, gran impulsor de la cultura y an de la amalgama de estas, quin
primero realiza un compendio de los juegos conocidos y practicados en su poca, que
dio lugar al celebre "Juegos de ajedrez, dados y tablas" publicado en Sevilla en el ao
1283.
En tan reconocida obra, nica en el mundo antiguo, no se da cuenta ni descripcin del
juego de Damas que conocemos, lo que nos indica claramente que ni siquiera muy
avanzado el siglo XIII se tena noticias de tal juego y por lo tanto es de invencin
posterior. Nada tienen que ver otros juegos descritos, el ms prximo de los cuales es el
alquerque, por lo que las suposiciones de si alguno de estos nombres (Tablas?)
corresponde a las Damas carecen de fundamento. Esto termina tambin con la falacia de
que el juego de Damas es de mayor antigedad que el Ajedrez.
El ajedrez, por ser muy conocido, no es preciso describirle y por supuesto tambin es
conocido por Alfonso X, que lo sita en primer lugar. El tipo de tablero y piezas es de
origen antiguo, probablemente oriental, llegando a Espaa a travs de los rabes, desde
donde se difundi al resto del mundo. Lo primero que hago notar es que el juego trado
por los rabes no es el ajedrez que conocemos, sino el antiguo ajedrez oriental, el cual
fue modificado sustancialmente en Espaa originando el ajedrez moderno que se juega
en todo el mundo. Tambin en el ajedrez las primeras obras escritas (aparte de Alfonso
X) son espaolas, como el clebre incunable de Lucena, punto de partida del ajedrez
actual. El antiguo ajedrez es anterior a las Damas, pero seguramente tambin el ajedrez
actual, aunque puede que no por mucho espacio de tiempo; el incunable de Lucena es
ms antiguo que el Torquemada, pero las fechas son prximas, aunque las aportaciones
de uno a otro juego (del Ajedrez a las Damas, ya que en sentido contrario no existen)
como es el mismo tablero de juego, indican claramente que el Ajedrez moderno se
origin en tiempo algo (aunque relativamente poco) anterior a las Damas.
En el estado que se encontraban los juegos despus de Alfonso X el Sabio, se tena por
un lado el Ajedrez, cada vez ms pujante, y por otro el Alquerque, bastante limitado en
su espacio de juego y con tablero en desuso, ya que adems era relativamente fcil de
jugar para expertos.
Esta es la situacin que hizo, en el siglo XV, que el tablero bicolor se impusiera
definitivamente y que alguien tuviese la idea de situar las doce piezas del alquerque
(para cada bando) en filas opuestas del tablero de ajedrez, cubriendo por tanto un solo
color y haciendo que de forma natural se conservase solamente el movimiento diagonal

Inteligencia en Redes de Comunicaciones


Juego de las Damas

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.

La forma de captura mediante salto del alquerque.

El tablero de ajedrez

La promocin de pieza en otra superior, idea proveniente del ajedrez.

Aadiendo los siguientes conceptos:

Disposicin inicial de los peones en el tablero.

Exclusin de todo movimiento no diagonal (utilizar casillas de un solo color).

Exclusin de movimiento retrogrado para el pen (en Alquerque es posible).

Movimiento largo y en cualquier sentido diagonal de la pieza coronada, con


semejanza en el alfil del ajedrez

Capturas con pieza coronada mezcla de dos conceptos:

El movimiento largo tipo alfil

El salto tipo Alquerque

Libertad de salto de captura a cualquier casilla posterior libre, no contemplado


anteriormente en otro juego.

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.

Inteligencia en Redes de Comunicaciones


Juego de las Damas

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.

Inteligencia en Redes de Comunicaciones


Juego de las Damas

En juegos y otros dominios la solucin se encuentra mediante un proceso de bsqueda


que debe combinarse de ser posible con una tcnica directa. Por ejemplo en el ajedrez,
las aperturas y los finales estn ya estudiados y se almacenan en una base de datos.
Tambin sucede esto en las damas, en los que suele almacenarse en una base de datos
los finales de las partidas,
Cabe distinguir, ahora, para desarrollar los algoritmos o estrategias a utilizar, entre
juegos sin adversario y juegos con adversario:
Juegos sin adversario: estrategia A*
Para juegos simples unipersonales (por ejemplo puzzle-8) puede usarse el algoritmo A*
(Hart, 1968) que se describe en esta seccin. Este algoritmo implementa una bsqueda
primero el mejor.
Se utiliza una funcin de evaluacin esttica f formada por:
f=g+h
La funcin g es una funcin de coste de llegar del estado inicial al estado
evaluado.
La funcin h es una estimacin del coste de llegar desde el estado evaluado al
estado final u objetivo del juego.
En cada paso del algoritmo se selecciona el mejor nodo que no se ha expandido hasta el
momento, es decir, aquel que tiene menor valor de funcin f. Este nodo se agrega a una
lista de nodos explorados y sus nodos sucesores se agregan a la lista de nodos
pendientes de ser explorados...
Juegos con adversario: algoritmo Minimax
En juegos bipersonales el algoritmo ms usado es el denominado Minimax. El
procedimiento de bsqueda Minimax es una bsqueda en profundidad (DFS) de
profundidad limitada.
La idea consiste en comenzar en la posicin actual y usar el generador de movimientos
posibles para generar las posibles posiciones sucesivas hasta un cierto lmite de niveles.
A continuacin se aplica la funcin de evaluacin esttica a las posiciones obtenidas y
se elige la mejor posicin para el jugador correspondiente, llevando los valores un nivel
hacia atrs para continuar la evaluacin en todos los niveles anteriores. Se supone una
funcin de evaluacin esttica que devuelve valores elevados para indicar buenas
situaciones y valores negativos para indicar buenas situaciones para el oponente. Visto
de esta manera, la meta es maximizar el valor de la funcin esttica de la siguiente
posicin de tablero.
El nombre del algoritmo deriva de considerar que, dada una funcin esttica que
devuelve valores en relacin al jugador maximizante, ste procura maximizar su valor
mientras que su oponente procura minimizarlo. En un rbol de juego donde los valores
de la funcin esttica estn en relacin al jugador maximizante, se maximiza y
minimiza alternadamente de un nivel a otro.

Inteligencia en Redes de Comunicaciones


Juego de las Damas

Poda alfa-beta de la bsqueda Minimax


Los procedimientos de bsqueda en profundidad (DFS) pueden mejorar su eficiencia
usando una tcnica de branch and bound (ramificacin y acotacin), con la cual una
solucin parcial se abandona cuando se comprueba que es peor que otra solucin
conocida o umbral. La estrategia de poda del algoritmo Minimax es llamada poda alfabeta, puesto que dado que existen dos jugadores (maximizador y minimizador), existen
dos valores umbrales alfa y beta para acotar la bsqueda de cada uno respectivamente:
el valor alfa representa la cota inferior del valor que puede asignarse en ltimo trmino
a un nodo maximizante y el valor beta representa la cota superior del valor que puede
asignarse en ltimo trmino a un nodo minimizante.
Otros algoritmos
El algoritmo Minimax, an con los refinamientos descriptos, contiene algunos aspectos
problemticos, como por ejemplo, no considera el tiempo y confa fuertemente en la
suposicin de que el oponente elija el camino ptimo. Por ello, otros algoritmos que
pueden utilizarse pueden ser:
Minimax dependiente de adversario
Segn realiza la exploracin del rbol de juego, el algoritmo Minimax supone que el
oponente siempre elige el camino ptimo. Si se est frente a un adversario muy
inteligente, ste podra llegar a explorar ms capas que las exploradas por el algoritmo y
por lo tanto tomar otra decisin que la supuesta. An suponiendo que el algoritmo
siempre explora a una mayor profundidad que el adversario, ste ltimo puede
equivocarse y no elegir el camino ptimo. La consecuencia es que el algoritmo elige el
movimiento basndose en una suposicin errada. Ante una situacin de derrota, segn
sugiere Berliner (1977), podra ser mejor asumir el riesgo de que el oponente puede
cometer un error. Por tanto, cuando se debe elegir entre dos movimientos buenos, uno
ligeramente mejor que el otro, podra resultar mejor elegir el menos mejor si al asumir
el riesgo de que el oponente se equivoque nos conduce a una situacin muchos ms
ventajosa. Pero para tomar esta clase de decisiones correctamente, el algoritmo debera
modelar el estilo de juego de cada oponente en particular. Esto permitira estimar la
probabilidad de que cometa distintos errores. Sin lugar a dudas, esto es muy difcil de
lograr y se necesita contar con tcnicas de aprendizaje para que el algoritmo obtenga
conocimiento sobre su oponente a lo largo del juego.
Profundizacin iterativa
La profundizacin iterativa es una idea que se utiliz por primera vez en un programa
llamado CHESS 4.5 (Slate y Atkin, 1977). El nombre profundizacin iterativa hace
referencia a que se realizan iteraciones de bsquedas cada vez ms profundas.
La principal razn para realizar iteraciones de bsquedas de diferentes profundidades
incrementales, en lugar de realizar una bsqueda a la profundidad deseada, es que los
programas de juegos pueden estar sujetos a restricciones de tiempo. Mediante esta
tcnica la primera iteracin realiza una bsqueda de profundidad uno, la segunda
iteracin realiza una bsqueda de profundidad dos, etc. hasta que el tiempo destinado al
movimiento se agote. El problema de la limitacin de tiempo debe considerarse en
juegos como el ajedrez, aunque no en el juego de las damas, por lo menos, en lo que a
las reglas del juego se refiere.

Inteligencia en Redes de Comunicaciones


Juego de las Damas

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

Inteligencia en Redes de Comunicaciones


Juego de las Damas

movimiento que es obligatorio y el actual no lo es), se muestra una ventana de dialogo


al usuario indicndole esta situacin e invitando a repetir el movimiento.
Los movimientos se almacenan en los nodos de un rbol n-ario (pues el nmero de
jugadas nunca es fijo) para lo que se han utilizado vectores. Para crear el rbol y
recorrerlo para determinar el mejor movimiento posible se utilizan mtodos recursivos
para permitir variar la profundidad del rbol.
El programa est formado por las siguientes clases:
DamasApp.java

Clase que muestra la primera ventana de la aplicacin


para elegir piezas blancas o negras.

Tablero.java

Clase que se encarga de inicializar el interfaz grfico y


de recoger los eventos del ratn y pasar la informacin
correspondiente al gestor del juego, la clase Damas.

Interfaz_tablero.java

Clase que muestra por pantalla el tablero del juego y


las piezas en la posicin correspondiente en cada
momento.

Damas.java

Clase que gestiona la partida. Contiene informacin


del estado actual de la partida, comprueba que el
movimiento realizado por el usuario sea correcto, y
contiene una referencia a Arbol_Mov, rbol con los
movimientos del juego.

Arbol_Mov.java

Clase con estructura de rbol n-ario con informacin


de todos los movimientos posibles. Permite elegir un
movimiento (considerado ptimo) para la mquina
mediante un algoritmo minimax. Cada nodo del rbol
es de la clase Movimiento.

Movimiento.java

Clase que contiene la informacin necesaria para cada


movimiento, como casilla inicial, casilla final, nmero
de piezas que quedan en el tablero...

Inteligencia en Redes de Comunicaciones


Juego de las Damas

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.

También podría gustarte