You are on page 1of 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 Tablero.java Clase que muestra la primera ventana de la aplicacin para elegir piezas blancas o negras. 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. Clase que muestra por pantalla el tablero del juego y las piezas en la posicin correspondiente en cada momento. 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. 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. Clase que contiene la informacin necesaria para cada movimiento, como casilla inicial, casilla final, nmero de piezas que quedan en el tablero...

Interfaz_tablero.java

Damas.java

Arbol_Mov.java

Movimiento.java

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.