informe de juegos de estados repeditos

26
Inteligencia Artificial - Estados Repetidos U.A.G.R. M Página 1 Universidad Autónoma Gabriel René Moreno Facultad: CS. Exactas y tecnología - Ingeniería Informática Inteligencia Artificial Juegos Unipersonales E. RepetidosGestión. I-2009 Integrantes Días Trabajados Horas Grupo Horas Individuales Auto evaluación WILLY BALDIVIESO LOPEZ 6 15 4 4 LUIS ANTONIO KAWAIDA V. 6 15 5 5 LUIS ALBERTO BAIGORRIA R. 6 15 5 5 Santa Cruz Bolivia

Upload: luis-alberto

Post on 29-Jun-2015

996 views

Category:

Documents


4 download

DESCRIPTION

Informe de Juegos de Estado Repetidos presentado en la materia Inteligencia Artificial.

TRANSCRIPT

Page 1: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 1

Universidad Autónoma Gabriel René Moreno

Facultad: CS. Exactas y tecnología - Ingeniería Informática

Inteligencia Artificial “Juegos Unipersonales – E. Repetidos”

Gestión. I-2009

Integrantes Días

Trabajados

Horas

Grupo

Horas

Individuales Auto evaluación

WILLY BALDIVIESO LOPEZ 6 15 4 4

LUIS ANTONIO KAWAIDA V. 6 15 5 5

LUIS ALBERTO BAIGORRIA R. 6 15 5 5

Santa Cruz – Bolivia

Page 2: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 2

Contenido

INTRODUCCIÓN…………………………………………………………….. 3

1.1 Inteligencia Artificial……………………………………………………... 3

1.2 Objetivos…………………………………………………………………... 5

ANTECEDENTES……………………………………………………………. 6

2.1 Técnica de BackTracking……………………………………………… 6

CONTENIDO DEL TRABAJO………………………………………………. 7

3.1 Juegos Unipersonales (Estados Repetidos)..……………………… 7

Coloreado de mapas………………………………………………………. 7

Las Torres de Hanói..……………………………………………………… 12

Salto del Caballo...…………………………………..…………………….. 15

Las Bolas de Billar………………………………………………………... 18

Casita Mágica……………………………………………………………… 20

Solitario de Abreu…….………………………………………………….. 22

Monjes y Caníbales...………………………..…………………………… 23

Salto de la Rana...………………………..………………………………. 24

CONCLUSIÓN………………………………………………………………… 11

BIBLIOGRAFÍA……………………………………………………………….. 12

Page 3: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 3

INTRODUCCIÓN

1.1 Inteligencia Artificial

La Inteligencia Artificial comenzó como el resultado de la investigación en

psicología cognitiva y lógica matemática. Se ha enfocado sobre la explicación

del trabajo mental y construcción de algoritmos de solución a problemas de

propósito general. Punto de vista que favorece la abstracción y la

generalidad.

La Inteligencia Artificial es una combinación de la ciencia del computador,

fisiología y filosofía, tan general y amplio como eso, es que reúne varios

campos (robótica, sistemas expertos, por ejemplo), todos los cuales tienen

en común la creación de máquinas que pueden "pensar".

Las tareas que han sido estudiadas desde este punto de vista incluyen

juegos, traducción de idiomas, comprensión de idiomas, diagnóstico de

fallas, robótica, suministro de asesoría experta en diversos temas.

Se denomina inteligencia artificial a la rama de la ciencia informática

dedicada al desarrollo de agentes racionales no vivos.

Por lo tanto, y de manera más específica la inteligencia artificial es la

disciplina que se encarga de construir procesos que al ser ejecutados sobre

una arquitectura física producen acciones o resultados que maximizan una

medida de rendimiento determinada, basándose en la secuencia de entradas

percibidas y en el conocimiento almacenado en tal arquitectura.

Desde sus comienzos hasta la actualidad, la Inteligencia Artificial ha tenido

que hacer frente a una serie de problemas:

Los computadores no pueden manejar (no contienen) verdaderos

significados.

Los computadores no tienen autoconciencia (emociones, sociabilidad,

etc.).

Un computador sólo puede hacer aquello para lo que está

programado.

Las máquinas no pueden pensar realmente.

Page 4: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 4

Heurística

Heurística (griego: heuriskein): “encontrar”, “descubrir”.

En computación, dos objetivos fundamentales son encontrar algoritmos para

la mayoría de casos buenos tiempos de ejecución y buenas soluciones,

usualmente las óptimas. Una heurística es un algoritmo que ofrece uno o

ambos objetivos.

La aplicación de la heurística reduce el problema

Se deja de analizar soluciones posibles pero improbables

Encuentra soluciones “buenas” (no necesariamente óptimas)

Mejorara el rendimiento de forma substancial a costa de perder

optimalizad y incluso completitud

Se aplica una heurística para guiar un método de resolución de

problemas

Se reduce el problema; se explora primero los caminos más

prometedores.

Se denomina heurística a la capacidad de un sistema para realizar de forma

inmediata innovaciones positivas para sus fines. La capacidad heurística es

un rasgo característico de los humanos, desde cuyo punto de vista puede

describirse como el arte y la ciencia del descubrimiento y de la invención o de

resolver problemas mediante la creatividad y el pensamiento lateral o

pensamiento divergente.

Cuatro ejemplos extraídos de él ilustran el concepto mejor que ninguna

definición:

Si no consigues entender un problema, dibuja un esquema.

Si no encuentras la solución, haz como si ya la tuvieras y mira qué

puedes deducir de ella (razonando hacia atrás a la inversa).

Si el problema es abstracto, prueba a examinar un ejemplo concreto.

Page 5: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 5

Intenta abordar primero un problema más general (es la “paradoja del

inventor”: el propósito más ambicioso es el que tiene más

posibilidades de éxito).

1.2 Objetivos Generales y Específicos

Objetivo General

Encontrar las soluciones eficientes e inteligentes a Juegos de inteligencia

propuestos.

Objetivos Específicos

Para alcanzar el objetivo general, es necesario alcanzar y/o lograr los

siguientes objetivos específicos:

• Análisis grupal e individual de los juegos.

• Buscar juegos

• Conocer los juegos

• Jugar los juegos.

• Comparar soluciones

• Debatir estrategias

• Elegir la mejor solución o el camino mas corto

Herramientas Utilizadas para el desarrollo de los mismos

En la codificación de los diferentes juegos propuestos se decidió hacer usos

de Herramientas de programación como ser:

Lenguaje Java.

IDE - NetBeans 6.5 Español

IDE – JDevelper

Page 6: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 6

ANTECEDENTES

2.1 Técnica de BackTraking

Los algoritmos de vuelta atrás (BACKTRACK) hacen una búsqueda

sistemática de todas las posibilidades, sin dejar ninguna por considerar.

Cuando intenta una solución parcial (ensayo), que no lleva a una solución,

retrocede deshaciendo el último paso, e intentando una nueva variante

desde esa posición (es normalmente de naturaleza recursiva).

Esta técnica ofrece un método para resolver problemas tratando de

completar una o varias soluciones por etapas. En cada paso se intenta

extender un ensayo de todos los modos posibles, y si ninguno resulta

satisfactorio se produce la vuelta atrás hasta el último punto donde quedaban

alternativas por explorar. Es una mejora de la búsqueda completa de

soluciones y una alternativa a los algoritmos voraces.

Mejoras en el esquema de BACKTRACK:

Poda del árbol de vuelta atrás: Consiste en la eliminación de posibilidades

(poda del árbol):

Exclusión previa: Tras un análisis previo, puede organizarse la búsqueda

para que ignore situaciones infructuosas (ejemplo: problema 8 reinas, cuando

ponemos cada dama en una fila diferente).

Fusión de ramas: Cuando la búsqueda a partir de diferentes ramas lleve a

la misma solución, podemos limitar la búsqueda (por ejemplo en problemas

con simetría como el de las 8 reinas o el del PAV).

Ramificación y acotamiento: Cuando lo que se busca es una solución

óptima, es posible reducir el árbol de búsqueda abandonando las ramas que

se sepa con certeza que no llevan hacia soluciones óptimas. (por ejemplo en

el problema del viajante podríamos tener una variable T que almacene el

valor más óptimo hasta el momento, y abortar un camino en el mismo

momento en que se rebase T).

Reordenación de la búsqueda: Consiste en reorganizar las ramas del árbol

de búsqueda de manera que se analicen primero las situaciones con mejores

expectativas. Permite por tanto resolver más rápidamente el problema.

Page 7: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 7

CONTENIDO DEL TRABAJO

3.1 Juegos Unipersonales – Estados Repetidos

Un jugador es un modo de videojuego en el que únicamente participa el

propio usuario y una máquina (en caso de ser necesario). Por ejemplo: en un

juego de lucha para un único jugador se enfrentaría el jugador contra la

computadora o consola.

Los juegos de un solo jugador forman una amplia temática y existen muchos

en el mercado, normalmente suelen ser juegos de plataformas en las que

nos encargamos de dirigir un personaje a través de una historia. También

existen juegos de diversos jugadores, llamados multijugador en los cuales

varios participantes interactúan simultáneamente.

A continuación, se presenta ejemplos de juegos unipersonales con sus

respectivas descripciones, reglas, variantes y heurísticas de solución.

Coloreado de Mapas

Descripción

Tenemos un mapa que representa países y queremos colorear cada país, de

forma que no hay dos países fronterizos con el mismo color.

¿Cuáles son las formas de colorear el mapa usando cuatro colores?

Page 8: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 8

Estudio del problema

Para poder resolver este problema es necesario saber qué país es fronterizo

y con quién, así se evitará que se repitan colores. Se puede representar

mediante un grafo, cada nodo es un país y la arista es una frontera. Para

poder comprobar si dos países son fronterizos, se usará la matriz de

adyacencia.

Grafo de representación de las fronteras:

Matriz de adyacencia:

1: nodos adyacentes

0: nodos no adyacentes

Ensayo:

Page 9: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 9

El ensayo estará representado por una secuencia en el cual se indicará el

color con que se pinta cada país. Ésta recibirá el nombre de color y los

colores estarán representados por números del 1 al 4.

Color (1...n) -- color (i): Color dado al país, donde i Є {1, 2, 3,4}

Inicialmente el ensayo está vacío: []

Posibilidad de extender un ensayo:

Ensayo solución: Se considerará solución cuando la secuencia, color, tenga

n posiciones completas.

Page 10: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 10

Para que la solución sea aceptable, debe cumplir que los países fronterizos,

no tengan el mismo color.

Para comprobar esto se utiliza la matriz de adyacencia, que indica si hay

arista y si es así, hay frontera. Cuando se produzca la situación en que dos

países fronterizos tienen un mismo color, se procede a abandonar el estudio

de dicha rama, es decir, a la poda de ésta. No tiene sentido seguir buscando

la solución por ese camino, porque llevará a una solución errónea.

El uso de la matriz de adyacencia hace que sea más eficiente la búsqueda,

ya que se sabe cuándo un país es fronterizo con otro, de una forma rápida y

eficiente.

Algoritmo de los cuatro colores:

proc CUATRO_COLORES(k)

si k = n entonces

imprimir color (1..n)

sino para cada C in 1..4 hacer

color (k+1)← C

si es_aceptable (F(1..n, 1..n), color, k+1) entonces

CUATRO_COLORES (k+1)

fin_si

fin_para función es_aceptable (F, color, último) return boolean

acept← true

país← 1

mientras país < último y acept hacer

si F (país, último) y color (país)=color (último) entonces

acept← false

fin_si

país← país + 1

fin_mientras

return acept

Análisis del algoritmo:

- Contar el número de nodos:

- El coste de pasar al siguiente nodo siempre es constante

- El coste de construir la extensión es constante.

Page 11: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 11

- El coste de comprobar si un nodo es aceptable, depende del nivel del árbol,

además hay que hacerlo para cada nodo:

Si hay 2 elementos: 1 operación

Si hay n elementos: n-1 operaciones

Acotar la solución: Se debe contar el número de nodos. El mayor trabajo para cada nodo, como mucho será O(n).

n* Σ 4^i= n *((4^i -1)/4-1) Є O(n 4^n)

Cota Superior para este algoritmo: n 4^n

Page 12: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 12

Las Torres de Hanói

Descripción

El juego, en su forma más tradicional, consiste en tres varillas verticales. En

una de las varillas se apila un número indeterminado de discos (elaborados

de madera) que determinará la complejidad de la solución, por regla general

se consideran ocho discos. Los discos se apilan sobre una varilla en tamaño

decreciente. No hay dos discos iguales, y todos ellos están apilados de

mayor a menor radio en una de las varillas, quedando las otras dos varillas

vacantes. El juego consiste en pasar todos los discos de la varilla ocupada

(es decir la que posee la torre) a una de las otras varillas vacantes.

Condiciones de movimientos

Para realizar este objetivo, es necesario seguir tres simples reglas:

1. Sólo se puede mover un disco cada vez.

2. Un disco de mayor tamaño no puede descansar sobre uno más pequeño

que él mismo.

3. Sólo puedes desplazar el disco que se encuentre arriba en cada varilla.

Existen diversas formas de realizar la solución final, todas ellas siguiendo

estrategias diversas.

Page 13: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 13

Algorítmo de Solución

Solución simple

Una forma de resolver la colocación de la torre es fundamentándose en el

disco más pequeño, en este caso el de hasta arriba. El movimiento inicial de

este es hacia la varilla auxiliar. El disco número dos por regla, se debe mover

a la varilla número tres. Luego el disco uno se mueve a la varilla tres para

que quede sobre el disco dos. A continuación se mueve el disco que sigue

de la varilla uno, en este caso el disco número tres, y se coloca en la varilla

dos. Finalmente el disco número uno regresa de la varilla tres a la uno (sin

pasar por la dos) y así sucesivamente. Es decir, el truco está en el disco más

pequeño.

Mediante recursividad

Este problema se suele plantear a menudo en ámbitos de programación,

especialmente para explicar la recursividad. Si numeramos los discos desde

1 hasta n, y llamamos X a la primera pila de discos (origen), Z a la tercera

(destino) e Y a la intermedia (auxiliar) y a la función le llamaríamos hanoi

(origen, auxiliar, destino), como parámetros, la función recibiría las pilas de

discos. El algoritmo de la función sería el siguiente:

Page 14: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 14

1. Si origen == {0}: mover el disco 1 de pila origen a la pila destino (insertarlo

arriba de la pila destino); terminar.

2. Si no: hanoi({0...n-1},destino, auxiliar) //mover todas las fichas menos la

más grande (n) a la varilla auxiliar

3. mover disco n a destino //mover la ficha grande hasta la varilla final

4. hanoi (auxiliar, origen, destino) //mover todas las fichas restantes,

{0...n-1}, encima de la ficha grande (n)

5. terminar

void hanoi(int discos) {

hanoi(discos, 'A', 'C', 'B');

}

void hanoi(int discos, char ini, char dest, char aux) {

if (discos == 1) cout << ini << " --> " << dest <<

endl;

else {

hanoi(discos - 1, ini, aux, dest);

cout << ini << " --> " << dest << endl;

hanoi(discos - 1, aux, dest, ini);

}

}

Page 15: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 15

Salto del Caballo

Descripción

Se dispone de un tablero rectangular de dimensión n x m como el tablero del

ajedrez, formado por casillas que se mueven según las reglas de este juego,

tenemos que buscar caminos posibles de este tablero teniendo en cuenta

que podemos encontrar obstáculos.

Realizamos un programa partiendo de la casilla inicial hasta la casilla final del

tablero para entendernos como se realiza, tenemos que seguir normas como:

1. Recorremos todas las casillas menos las que no pueden ser visitadas.

2. Cada casilla sólo puede visitarse una vez.

Para realizar el movimiento de salto de una casilla a otra se siguen las

normas del caballo de ajedrez, desde una casilla inicial sólo puede realizar

en línea recta una posición y otra en diagonal en la misma dirección.

Por ejemplo, para el caso n = 5 y m = 5, el tablero de ajedrez 5 x 5, en total 8

posibilidades para elegir una para saltar desde una casilla inicial, vamos a

mostrar un ejemplo del tablero, las posibilidades se marcan con X y la casilla

inicial se marca con A según la ejecución del programa.

Elijo un número de fila y de columna para situar el caballo, ejemplo, fila tres y

columna tres, hay ocho posibilidades para elegir el movimiento que

queramos.

Vamos a mostrar a continuación:

Page 16: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 16

Para realizar el primer movimiento, se inicializa un numero por ejemplo 1,

cuando realiza el segundo movimiento, se suma uno resulta 2, cuando haya

realizado el tercer movimiento, el resultado se suma uno, resulta 3, así

sucesivamente.

Para n (el número de columnas) y m (el número de filas), normalmente n y m

deben considerarse que van desde 1 a n y 1 a m.

Ahora vamos a poner ejemplos de cada paso partiendo de uno a 10 con 5 x

5, sólo hasta 10 porque no puede haber más posibilidades.

1. n = 3 m = 3

2. n = 2 m = 1

3. n = 1 m = 3

4. n = 3 m = 4

5. n = 1 m = 5

6. n = 2 m = 3

7. n = 3 m = 1

8. n = 5 m = 2

9. n = 4 m = 4

10. n = 2 m = 5

Page 17: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 17

Como podemos observar, una vez se encuentra en n = 2 y m = 5 no tiene

posibilidades de movimiento, con lo cual deberíamos ir dando pasos hacia

detrás y probar otra alternativa.

Limitaciones de la Solución

Las limitaciones de nuestro problema son dos:

1. Puede que no haya solución para que el salto del caballo recorra todas las

casillas sin obstáculos como ocurre en el ejemplo anterior, depende de sus

movimientos del tablero.

2. Si aumenta el tamaño del tablero, aumentan las posibilidades para realizar

el movimiento del salto del caballo, por consiguiente aumenta el consumo de

memoria.

Page 18: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 18

Las Bolas de Billar

Descripción

Se trata de renumerar las bolas de Billar de modo que cada bola sea la

diferencia de las dos bolas que tiene encima.

Estado Inicial Estado Final

Árbol de soluciones

Page 19: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 19

Se puede realizar este problema con números de bolas variables, es posible

resolverlo con 10 y 15 bolas.

Page 20: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 20

Casita mágica

Descripción

Este juego trata en que tienes que completar la figura sin pasar dos veces

por una línea ya trazada y sin levantar el lápiz de la figura.

Estado inicial Estado Final

El jugador tiene 6 posibilidades para comenzar el juego en 6 puntos.

Page 21: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 21

Reglas

Page 22: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 22

Solitario de Abreu

Descripción

El objetivo de este solitario es dejar una sola bola en el tablero.

Las reglas del juego son:

Una ficha puede comer a otra adyacente saltándola siempre que al otro lado

haya una casilla vacía.

Consideramos "adyacentes“, a dos fichas colocadas en casillas conectadas

mediante una línea.

Inicialmente en cada casilla hay una ficha, salvo en una de ellas, las fichas se

mueven mediante saltos, por ejemplo si la casilla 7 y 8 están ocupadas y el 9

esta libre podemos pasar la ficha de la casilla 7 hasta la casilla 9 eliminando

la casilla de la 8 esto es valido en cualquier dirección y siempre con casillas

contiguas saltando sobre una única ficha.

Page 23: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 23

Monjes y Caníbales

Descripción

Hay tres misioneros y tres caníbales a las orillas de un rió, el trabajo es lograr

pasarlos a la otra orilla del rió, pero no se pueden dejar un numero de

caníbales mayor a de los misioneros, y además en la barca para

transportarse solo caben 2 personas.

Page 24: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 24

Salto de la Rana

Descripción

El juego de Salto de la Rana, es un puzle solitario de movimientos

secuenciales, es decir, una sucesión ordenada de movimientos.

Un juego o puzzle de Intercambio de posiciones es aquel en el que, sobre un

tablero se encuentran posicionados dos grupos de fichas, y se presenta

como objetivo cambiar entre sí dichas posiciones.

Problema y Objetivo

Problema: Las Ranas ( o Fichas).

Objetivo: Intercambiar las ranas. Aquellas ranas que se encuentran en el

extremo izquierdo pasan al extremo derecho y viceversa.

Resolver este problema utilizando el menor número de movimientos posibles.

Estado Inicial

Estado Final

Page 25: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 25

Reglas

Las fichas de la izquierda solo se pueden mover hacia la derecha.

Las fichas de la derecha solo se pueden mover hacia la izquierda.

En cada movimiento solo se puede mover una ficha.

En cada casilla no puede haber más de una ficha.

Cada ficha se mueve hacia una casilla vacía:

o Deslizando, si es contigua.

o Saltando sobre una ficha contraria, si la siguiente es vacía.

No se puede saltar sobre una ficha del mismo color ni sobre más de

una ficha contraria.

Movimientos Posibles

- Espacio libre a lado de la rana en su misma dirección.

- Salto por encima de una rana.

Page 26: Informe de Juegos de Estados Repeditos

Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Página 26

BIBLIOGRAFÍA

Web:

http://es.wikipedia.org/wiki/Teoria_de_juego

http://es.wikipedia.org/wiki/Juego_de_mesa

http://es.wikipedia.org/wiki/Heurística

http://es.wikipedia.org/wiki/Heurística_computación

Cortes, U., Bejar, J. y Moreno, A. Inteligencia artificial (Ediciones UPC,

1994).

Aspectos básicos de la Inteligencia Artificial (Sanz y Torres, 1995)