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