informe de juegos de estados no repetidos

24
Inteligencia Artificial - Estados No 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. No 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

725 views

Category:

Documents


3 download

DESCRIPTION

Informe final presentado en Inteligencia Artificial sobre juegos de Estados No Repetidos.

TRANSCRIPT

Page 1: Informe de Juegos de Estados No Repetidos

Inteligencia Artificial - Estados No 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. No 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 No Repetidos

Inteligencia Artificial - Estados No 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 No Repetidos)…………………… 7

El repollo, la oveja y el Lobo……………………………………………. 7

Buscaminas………...……………………………………………………… 9

Salto del Caballo...…………………………………..…………………….. 11

El problema de las n Reinas……………………………………………... 14

Cuadrado mágico..………………………………………………………… 17

Sudoku……………….….………………………………………………….. 20

Cuadrado latino……...………………………..…………………………… 21

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

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

Page 3: Informe de Juegos de Estados No Repetidos

Inteligencia Artificial - Estados No 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 No Repetidos

Inteligencia Artificial - Estados No 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 No Repetidos

Inteligencia Artificial - Estados No 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 No Repetidos

Inteligencia Artificial - Estados No 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 No Repetidos

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

Página 7

CONTENIDO DEL TRABAJO

3.1 Juegos Unipersonales – Estados No 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.

El repollo, la oveja y el lobo

Descripción

Objetivo

Ayudar al pastor a transportar a la oveja, el lobo y la caja con comida al otro

lado del río.

Page 8: Informe de Juegos de Estados No Repetidos

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

Página 8

Reglas

No dejar al lobo a sola con la oveja.

No dejar a la oveja a solas con la caja de comida

Estudio del problema

Primero llevar a la oveja

Segundo volver y llevar al lobo y traer a la oveja

Tercero llevar el repollo.

Ultimo llevar a la oveja.

Page 9: Informe de Juegos de Estados No Repetidos

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

Página 9

Buscaminas

Descripción

El objetivo del buscaminas es lograr descubrir la localización de los cuadros

con minas pero sin hacer clic en estos, es decir, localizarlos pero por

intuición, prestando atención a los cuadros numéricos que ayudan a revelar

la ubicación de las minas.

En la imagen superior se muestra claramente el concepto. Alrededor de ese

1 hay ocho casillas y en una de esas ocho casillas habrá una mina. Tal como

aparece en la imagen sería imposible decir donde está la mina, pero ahora

que el concepto ha quedado claro os enseñaré como encontrar las minas de

una forma fácil y/o como razonar donde está.

En este caso saber donde está la bomba es bastante obvio. El punto rojo

indica donde está la bomba y los verdes donde no hay bomba. Se puede

saber donde está la bomba ya que el uno que hace esquina en la parte

superior izquierda solo está en contacto con la casilla del punto rojo, y al ser

un 1 debe de tener una bomba a sus alrededores. Solo hay una opción por lo

que la bomba está hay.

Page 10: Informe de Juegos de Estados No Repetidos

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

Página 10

Estos casos son simples. Observen el 3, solo está en contacto con las

casillas en rojo, por lo tanto estas casillas son bomba.(no e puesto la parte

inferior del 3, pero no había nada).

Éstos casos son más complicados. El 3(color azul) está en contacto con dos

bombas y con dos casillas, el 2(color lila) está en contacto con tres casillas y

una bomba, pero tres de éstas casillas son las mismas que las del 3 (color

azul), por lo tanto, la bomba está en una de estas casillas y no en la otra.

Esta situación es muy fácil de resolver. Como veis ay un banderín que está

claro, y los 3 tocan solo con tres casillas también. Por lo tanto todas estas

casillas son bomba, el dos ya toca a dos bombas fijas del tres, por lo tanto

las restantes son casillas sin bomba, igual pasa al uno.

Page 11: Informe de Juegos de Estados No Repetidos

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

Página 11

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 12: Informe de Juegos de Estados No Repetidos

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

Página 12

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 13: Informe de Juegos de Estados No Repetidos

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

Página 13

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 14: Informe de Juegos de Estados No Repetidos

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

Página 14

El problema de las n Reinas

Descripción

Consiste en colocar n Reinas en un tablero de ajedrez de n X n, de tal

manera que ninguna de las Reinas quede atacando a otra.

Reglas

Cada reina que se encuentra en el tablero de dimensión n X n, puede

moverse libremente.

Ejemplo: Tablero: 8 X 8

Soluciones

Page 15: Informe de Juegos de Estados No Repetidos

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

Página 15

Page 16: Informe de Juegos de Estados No Repetidos

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

Página 16

Page 17: Informe de Juegos de Estados No Repetidos

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

Página 17

Cuadrado Mágico

Descripción

Un cuadrado mágico es la disposición de una serie de números enteros en

un cuadrado o matriz de forma tal que la suma de los números por columnas,

filas y diagonales principales sea la misma, la constante mágica. Usualmente

los números empleados para rellenar las casillas son consecutivos, de 1 a n²,

siendo n el número de columnas y filas del cuadrado mágico.

Historia del Cuadrado mágico

En la antigua China ya se conocían los cuadrados mágicos desde el III

milenio a. C., como atestigua el Lo Shu. Según la leyenda, un cierto día se

produjo el desbordamiento de un río; la gente, temerosa, intentó hacer una

ofrenda al dios del río Lo (uno de los desbordados) para calmar su ira. Sin

embargo, cada vez que lo hacían, aparecía una tortuga que rondaba la

ofrenda sin aceptarla, hasta que un chico se dio cuenta de las peculiares

marcas del caparazón de la tortuga, de este modo pudieron incluir en su

ofrenda la cantidad pedida (15), quedando el dios satisfecho y volviendo las

aguas a su cauce. Igualmente conocieron combinaciones de esta clase los

indios, egipcios, árabes y griegos. A tales cuadrados, las diferentes culturas

les han atribuido propiedades astrológicas y adivinatorias portentosas

grabándose con frecuencia en talismanes. Así, como recoge Cornelius

Agrippa en De oculta philosophia libri tres (1533), el cuadrado de orden 3

(15) estaba consagrado a Saturno, el de 4 (34) a Júpiter, el de 5 (65) a Marte,

Page 18: Informe de Juegos de Estados No Repetidos

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

Página 18

el del 6 (111) al Sol, el del 7 (175) a Venus, el del 8 (260) a Mercurio y el de 9

(369) a la Luna; idéntica atribución puede encontrarse en la astrología hindú.

La introducción de los cuadrados mágicos en occidente se atribuye a

Emanuel Moschopoulos en torno al siglo XIV, autor de un manuscrito en el

que por vez primera se explican algunos métodos para construirlos. Con

posterioridad, el estudio de sus propiedades, ya con carácter científico, atrajo

la atención de grandes matemáticos que dedicaron al asunto obras diversas

a pesar de la manifiesta inutilidad práctica de los cuadrados mágicos. Entre

ellos cabe citar a Stifel, Fermat, Pascal, Leibnitz, Frenicle, Bachet, La Hire,

Saurin, Euler,... diríase que ningún matemático ilustre ha podido escapar a su

hechizo.

Construcción de cuadrados mágicos

Para la construcción de cuadrados mágicos tenemos varios procedimientos

cuyo uso depende del orden del cuadrado que queramos construir. Tenemos

reglas para construir cuadrados de orden impar, cuadrados de orden 4k y

cuadrados de orden 4k + 2. Es decir, podemos construir cuadrados de

cualquier orden pero con procedimientos distintos según el mismo.

Cuadrados mágicos de orden impar: Método de Loubere

El primer método para la construcción de cuadrados mágicos de orden impar

se debe a Loubere. Veamos en qué consiste construyendo un cuadrado

mágico de orden 5:

Colocamos el 1 en la posición central de la fila superior y vamos rellenando

en diagonal, es decir, el 2 se coloca en la posición (5,4) (fila 5, columna 4), el

3 en la posición (4,5), el 4 en la (3,1), y así sucesivamente. Cuando al

intentar colocar un número en la posición que debe ocupar nos la

encontramos ya ocupada colocamos ese número justo debajo del último que

hemos colocado y continuamos colocando en diagonal. El cuadrado mágico

de orden 5 obtenido con este procedimiento es el siguiente:

Page 19: Informe de Juegos de Estados No Repetidos

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

Página 19

Cuadrados mágicos de orden impar: Método de Bachet

Otro método para construir cuadrados mágicos de orden impar es el

denominado método de Bachet. Veamos en qué consiste construyendo

también un cuadrado mágico de orden 5:

Dibujamos en cuadrado de 5×5. A partir de ahí disponemos los números del

1 al 25 como muestra la siguiente figura:

Ahora colocamos los números que han quedado fuera del cuadrado en las

posiciones opuestas que quedaron libres. Queda el siguiente cuadrado:

Existen otros métodos de soluciones.

Page 20: Informe de Juegos de Estados No Repetidos

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

Página 20

Sudoku

Descripción

El objetivo es rellenar una cuadrícula de 9 × 9 celdas (81 casillas) dividida en

subcuadrículas de 3 × 3 (también llamadas "cajas" o "regiones") con las

cifras del 1 al 9 partiendo de algunos números ya dispuestos en algunas de

las celdas. Aunque se podrían usar colores, letras, figuras, se conviene en

usar números para mayor claridad. Lo que importa, en todo caso, es que

sean nueve elementos diferenciados.

Solución

Las reglas del juego son:

No se debe repetir ninguna cifra en una misma fila, columna o subcuadrícula.

Un sudoku está bien planteado si la solución es única.

El sudoku se presenta normalmente como una tabla de 9 × 9, compuesta por

subtablas de 3 × 3 denominadas "regiones" (también se le llaman "cajas" o

"bloques"). Algunas celdas ya contienen números, conocidos como "números

dados" (o a veces "pistas"): El objetivo es rellenar las celdas vacías, con un

número en cada una de ellas, de tal forma que cada columna, fila y región

contenga los números 1–9 sólo una vez. Además, cada número de la

solución aparece sólo una vez en cada una de las tres "direcciones", de ahí

el "los números deben estar solos" que evoca el nombre del juego.

Page 21: Informe de Juegos de Estados No Repetidos

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

Página 21

Cuadrado Latino

Descripción

Un cuadrado latino es una matriz de n X n elementos, en la que cada casilla

está ocupada por uno de los n símbolos de tal modo que cada uno de ellos

aparece exactamente una vez en cada columna y en cada fila.

El nombre de Cuadrados Latinos se origina con Leonhard Euler quién utilizó

caracteres Latinos como símbolos.

Un cuadrado latino se dice que está reducido (o normalizado o de forma

estandarizada) si la primera fila y la primera columna están en orden natural.

Es posible hacer un cuadrado latino permutando (reordenando) las filas y las

columnas.

Algunos ejemplos de cuadrados Latinos:

Page 22: Informe de Juegos de Estados No Repetidos

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

Página 22

Page 23: Informe de Juegos de Estados No Repetidos

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

Página 23

Variantes del Cuadrado Latino

Sudoku

Page 24: Informe de Juegos de Estados No Repetidos

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

Página 24

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)