informe juego ia-damas suicidas

20
UNMSM - FISI Juego: Damas suicidas -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, Decana de América FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA In!orme Juego de In"eligencia ar"i#cial Damas Suicidas $U%S& : Inteligencia Artifcial P%&F'S&% : Dr Mauricio Sanchez IN ')%AN 'S : Calixto Salazar, Juan Carlos Vargas Rodriguez, Carlos 0420020 Saa!edra "elinco, Santos 0#2000#$ Carrasco Vargas Ji%%& 0#2002# 2012-I -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ In"eligencia Ar"i#cial

Upload: saavedra-sp

Post on 03-Nov-2015

24 views

Category:

Documents


2 download

DESCRIPTION

Damas suicidas

TRANSCRIPT

UNMSM - FISI

Juego: Damas suicidas--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Universidad del Per, Decana de Amrica)

FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA

InformeJuego de Inteligencia artificialDamas SuicidasCURSO: Inteligencia ArtificialPROFESOR:Dr Mauricio SanchezINTEGRANTES:Calixto Salazar, Juan Carlos

Vargas Rodriguez, Carlos

04200210

Saavedra Pelinco, Santos

05200058

Carrasco Vargas Jimmy 05200125

2012-IINTRODUCCINEn el presente informe se desarrolla el juego Damas Suicidas. Para el desarrollo del juego inteligente se us la tcnica de bsqueda en un espacio de estados y se us algoritmo humano mquina con los niveles de Principiante, Normal y Master para los cuales se us las estrategias: no determinstico, primero el mejor y diferencia de utilidades respectivamente.

Para el anlisis, desarrollo e implementacin del juego se ha tenido en cuenta el aprendizaje sobre la definicin del problema y los mtodos de bsqueda. Para el juego, se ha definido su correspondiente problema en un espacio de estado, las reglas y el objetivo del juego. Se ha implementado el Software en 3 niveles de dificultad, como son: fcil, normal y difcil. Correspondiendo para cada nivel los mtodos de bsqueda no determinstico, primero el mejor y minmax con mejor diferencia de utilidades. Los objetivos del juego se cumplen y se desarrolla una interfaz amigable y entendible por el usuario (humano) que jugar con la mquina.

1. Introduccin

Es notable como hoy en da la tecnologa se ha desarrollado hasta puntos quizs inimaginables algunas dcadas atrs o tan solo aos atrs. La variedad y rapidez de las funciones de una PC nos llevan a pensar si sern nuestros cerebros inferiores a las mquinas.Hoy en da las maquinas realizan, por ejemplo, complicadsimos clculos matemticos en segundos, buscan informacin tambin en segundos. Esto podra provocar que la gente irreflexivamente conteste que las ms inteligentes son las mquinas esto es algo que an esta en debate y no se ha llegado a un consenso final.

Disposicin Inicial del TableroDEFINICIN DEL PROBLEMALas damas suicidas son jugadas por dos jugadores (maquina vs humano) en un tablero de 8 8 escaques (cada una de las casillas del tablero).

Cada jugador dispone de 12 piezas de un mismo color (el uno rojas, el otro negras) que a primeros de la partida se encuentran en las casillas negras de las tres filas ms prximas a l.

Se juega por turnos alternos. Empieza a jugar quien tiene las rojas. En su turno cada jugador mueve una pieza propia.

Las piezas se mueven (cuando no comen) una posicin adelante, hacia atrs y en diagonal a la derecha o a la izquierda, a una posicin adyacente vaca.

El juego se realiza en la casillas plomas, y estas son las coordenadas que se usaron para realizar las reglas del juego.

Comer:Para comer una pieza contraria debe estar justo delante de una de tus piezas. Se realiza en direccin diagonal tanto hacia adelante como hacia atrs, desplazndose a la ubicacin de la ficha comida.

Las capturas no se pueden encadenar. Por ejemplo si despus de haber desplazado nuestra ficha despus de haber comido una ficha del oponente y desde esta posicin existe una ficha que podramos comer y ya lo podemos hacer ya que solo podemos comer una ficha por turno.

Si se da el caso de que el oponente nos da una de sus fichas para que esta sea comida y nosotros tenemos opcin a escaparnos, se nos esta obligado a comer la ficha del oponente.

Esta limitado a comer a las fichas que se encuentren adyacentes.

Ficha invisible:

Cuando una pieza acaba un movimiento en alguna casilla de la ltima renglera, esta ficha desaparece, esto quiere decir que la ficha del jugador sale del juego, favoreciendo al jugador ya que el juego consta que gana el que al final pierda sus fichas.

Final de partida:

Gana quien se queda sin piezas sobre el tablero.1.2. DAMAS: HISTORIA DEL JUEGOHoy en da todava no existe un consenso claro sobre el lugar exacto de origen, situndolo entre Espaa y Francia. Durante los ltimos aos se han llevado a cabo varios estudios para intentar aclarar de una vez cul fue el lugar de nacimiento de las Damas. La mayora de ellos coinciden en afirmar que naci en Espaa hacia el ao 1100 d.C. Se han hallado restos arqueolgicos de un juego similar a las Damas, y que lo situaran en la antigua Persia, pero son meras especulaciones.

Sobre su aparicin definitiva, la opinin generalizada es que surgi de la fusin de tres juegos: las fichas de las tablas, el tablero del ajedrez y los movimientos del alquerque.

En sus inicios el juego era llamado "ferses", el nombre por el que se conoca a la reina en el ajedrez. Conviene indicar que las piezas en las damas se mueven como lo haca la reina en el ajedrez de la poca. El nuevo movimiento que introdujo este juego fue la habilidad de saltar sobre las piezas del contrario y capturarlas. En ese momento el juego pas a ser conocido como "fierges". Fue en 1508 cuando se le empez a llamar por su nombre actual.

En sus orgenes, las reglas de juego eran muy diferentes; por ejemplo, capturar la pieza del contrario era opcional. Ms adelante, en 1535 se introdujo la obligatoriedad como regla y, antes de convertirla en estndar, se jugaba como una variante llamada "jeu forc" (juego forzado).

Durante algunas pocas, el juego de las damas se vio desprestigiado por considerarlo de mujeres, dado que el de hombres era el ajedrez. Sin embargo, jugarlo bien implica una buena estrategia; los grandes jugadores llegan a planificar entre 15 y 20 movimientos por adelantado.1.3 Variante: Damas Suicidas Se basa en el mismo principio de la variante Poddavki que es una variante de las damas rusas, utilizando las mismas reglas de las damas tradicionales, el objetivo se invierte: vence quien consigue quedarse sin piezas o tener bloqueadas las que tiene, generalmente estas versiones pierde/gana son practicadas en casi todos los juegos de damas, pero no se consideran ms que un simple divertimento.

Come desplazndose en el casillero de la ficha comida

Cuando la ficha llega al otro extremo desplazndose comer es obligatorio.

Se desplaza en cualquier direccin de manera diagonal tanto hacia adelante como hacia atrs.

Cuando la ficha de un jugador llega a la casilla de la ltima rengleta, esta ficha desaparece, beneficiando al jugador ya que lo que se busca es quedarse sin fichas.2. Problema de BsquedaUn Problema de bsqueda es definido como un problema de bsqueda en un espacio de estado cuando se definen por lo menos las siguientes caractersticas: estado, estado inicial, estado meta y las reglas. A continuacin se define Damas Suicidas como un problema de bsqueda en un espacio de estado.2.1. Objetos

Los Objetos considerados en este juego son el tablero, las fichas y el turno.2.2. EstadoEl estado para el problema de bsqueda en un espacio estado se define como el turno de un jugador y la ubicacin de las fichas en el tablero adems del nmero de fichas y damas de color rojo y negro.

T, t, n, r

0: Casillero vacio

1: Ficha de color rojo

-1: Ficha de color negro T: representa el tablero de juego

t {N,R}

n: nmero de fichas negras

r: nmero de fichas rojas

2.3. Estado Inicial

Figura 1: Estado Inicial2.4. Estado Meta:Condiciones del estado meta:

2.5. Reglas moverFR(x1,y1,x2,y2) : mover ficha roja de la posicin (x1,y1) a (x2,y2)

moverFN(x1,y1,x2,y2) : mover ficha negra de la posicin (x1,y1) a (x2,y2)

comerFR(x1,y1,x2,y2) : comer con la ficha roja de la posicin (x1,y1) a la ficha negra de la posicin (x2,y2)

comerFN(x1,y1,x2,y2) : comer con la ficha negra de la posicin (x1,y1) a la ficha roja de la posicin (x2,y2)

ReglaCondicinNuevo estado, sucesor, hijos

moverFR(x1,y1,x2,y2)t=R

T(x1, y1)=1

T(x2, y2)=0

1 x2 =x1+18

1 y2 =y118

T, t=N, r, nT(x1,y1)0

T(x2,y2)

moverFN(x1,y1,x2,y2)t=N

T(x1, y1)=-1T(x2, y2)=0

1 x2 =x1+18

1 y2 =y118

T, t=R, r, n

T(x1,y1)0

T(x2,y2) QUOTE

comerFR(x1,y1,x2,y2)t=R

T(x1,y1)=1

T(x2, y2)=-1

1x2=x1+18

1y2=y118

T, t=N, r, nn-1

T(x1,y1)0

EMBED Equation.DSMT4

comerFN(x1,y1,x2,y2)t=NT(x1,y1)=-1T(x2, y2)=1

1x2=x1+18

1y2=y118

T, t=R, n, rr-1

T(x1,y1) 0T(x2,y2)

3. Algoritmo Humano-MaquinaEn el presente trabajo utilizaremos el mtodo ciego (no determinstico) y los mtodos con informacin (Primero el mejor y Diferencia de utilidades). Cada tipo de mtodo corresponde a una estrategia de seleccin, las cuales corresponden a los niveles de dificultad del juego. A continuacin presentamos el algoritmo Humano-Maquina en el siguiente flujo grama:

El algoritmo comienza en un estado inicial descrito anteriormente en el cual se configura el nivel del juego (principiante, intermedio o experto), el color a utilizar por el humano y se inicializan los objetos (Tablero, Fichas y turno). Luego se verifica si el estado del juego se encuentra en el estado meta, si es igual al estado meta, se define quien gan la partida y termina el juego, de lo contrario se verifica si el humano le toca jugar. Si es turno del humano, se espera la jugada y cuando la realiza se genera el nuevo estado, de lo contrario se genera el estado para la mquina siguiendo el flujo mostrado en la Figura siguiente.

Para el desarrollo del algoritmo humano-mquina del juego Damas Suicidas, se han

considerado tres estrategias de seleccin de la jugada para la mquina, las cuales

corresponden a los niveles de dificultad del juego.

En la siguiente tabla se muestra las estrategias y niveles del juego Damas Suicidas. Nivel EstrategiaDescripcin

PrincipianteNo determinsticaLa mquina revisa las posibles jugadas y escoge una al azar.

NormalPrimero el mejor

(Glotn)

La mquina revisa todas las posibles

jugadas y, de acuerdo a la funcin

evaluadora, se elige la que tenga mayor

valor.

ExpertoMejor diferencia

de utilidades

La mquina revisa las posibles jugadas de la

mquina y las evala con la funcin

evaluadora. Luego, evala las posibles

jugadas del humano con la funcin

evaluadora. Finalmente, la mquina

selecciona la jugada que presenta mayor

diferencia de utilidades.

3.1. La funcin evaluadora

Para determinar la funcin objetivo o evaluadora de los estados en el problema, se definen:

La matriz de pesos:

Se define una primera aproximacin a la funcin objetivo f1 como:

Criterio: Hemos considerado que conforme avance la ficha al otro extremo se incrementaran los pesos ya que al llegar a la ltima fila, la ficha desaparece y hace que el jugador incremente sus posibilidades de ganar el juego; por tal motivo hemos considerado un peso mximo de 10 a las ultimas filas y conforme se vayan acercando al centro se van disminuyendo los pesos. Tambin se debe considerar la jugada que se realizo en ese estado, por lo que se define la segunda aproximacin de la funcin objetivo f2 como:

Criterio: Teniendo dos estados posibles (mover y comer ficha) y siguiendo la definicin del juego, comer una ficha disminuye nuestras posibilidades de ganar, por lo tanto esta opcin debe tener un peso menor en comparacin con la opcin mover ficha.

Adems consideramos la posibilidad de que la posicin final de la ficha jugada quede en disposicin de ser comida, en este juego esa disposicin es ventajosa. As se define f3 como:

Por ltimo la funcin objetivo estara definida como un conjunto de las 3 aproximaciones anteriores, definida por:

4. ImplementacinEl juego Damas Suicidas se implement usando el lenguaje Java con el IDE Netbeans 6.9.1.

Estrategias

4.2.1. Estrategia No Determinstico: private static Estado azar(Vector vec) {

Estado est = new Estado();

Random rand = new Random();

int x = rand.nextInt(vec.size());

for (int i = 0; i < vec.size(); i++) {

est = vec.elementAt(i);

est.imprimirEstado();

}

est = vec.elementAt(x); return est; }

4.2.2 Estrategia primero el mejor:

private static Estado primeroElMejor(Vector vec) {

if (vec.size() > 0) {

Estado est = new Estado();

double min = vec.elementAt(0).getFo();

int k = 0;

est = vec.elementAt(0);

for (int i = 1; i < vec.size(); i++) {

if (vec.elementAt(i).getFo() < min) {

est = vec.elementAt(i);

k = i;

}

}

System.out.println(" valor minimo : " + min);

System.out.println(" indice : " + k);

return est;

} else {

return null;

}

}

4.2.3. Estrategia Diferencia de Utilidades:

private static Estado diferenciaUtilidades(Vector vec) {

if (vec.size() > 0) {

SistemaProduccion sp = new SistemaProduccion();

Vector vecHumano;

Estado est = new Estado();

vecHumano = sp.sucesoresHumano(vec.elementAt(0));

double min = mayorFO(vecHumano);

int k = 0;

est = vec.elementAt(0);

double max = vec.elementAt(0).getFo();

double valor = max - min;

for (int i = 1; i < vec.size(); i++) {

vecHumano = sp.sucesoresHumano(vec.elementAt(i));

min = mayorFO(vecHumano);

max = vec.elementAt(i).getFo();

if (valor > (max - min)) {

est = vec.elementAt(i);

k = i;

}

}

System.out.println(" valor minimo : " + min);

System.out.println(" indice : " + k);

// est.imprimirEstado();

return est;

} else {

return null;

}

}

5. Pruebas

5.1. La mquina gana

5.2. EL humano gana

Configuracin del nivel de dificultad del juego:

6. Conclusiones Luego de jugar varias veces con el programa comprobamos que a medida que se avanza en la dificultad se hace ms complicado ganar a la mquina, con lo cual podemos afirmar que las estrategias seleccionadas para los diferentes niveles son las correctas y que los mtodos informados son mejores que los mtodos ciegos.

Mientras mayor es el nivel de ramificacin es factible encontrar una mejor solucin pero con el coste de tener un mayor tiempo de demora.7. Referencias

[1] DamasRusas : http://www.ludoteka.com/damas_rusas.html

[2]interfaz de las Damas:

http://www.gamesforthebrain.com/spanish/checkers/

[3]www.cs.us.es/cursos/iia-2008/temas/tema-01.pdf

Representacin de problemas como espacio de estados.

EMBED Equation.DSMT4

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Inteligencia Artificial3------------------------------------------------------------------------------------------------------------------------------

_1400699209.unknown

_1400699214.unknown

_1400699216.unknown

_1400699218.unknown

_1400699221.unknown

_1400699222.unknown

_1400699220.unknown

_1400699217.unknown

_1400699215.unknown

_1400699212.unknown

_1400699213.unknown

_1400699211.unknown

_1400699207.unknown

_1400699208.unknown

_1400699206.unknown