informe de juegos de estados no repetidos
DESCRIPTION
Informe final presentado en Inteligencia Artificial sobre juegos de Estados No Repetidos.TRANSCRIPT
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
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
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.
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.
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
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.
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.
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.
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.
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.
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:
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
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.
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
Inteligencia Artificial - Estados No Repetidos U.A.G.R. M
Página 15
Inteligencia Artificial - Estados No Repetidos U.A.G.R. M
Página 16
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,
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:
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.
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.
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:
Inteligencia Artificial - Estados No Repetidos U.A.G.R. M
Página 22
Inteligencia Artificial - Estados No Repetidos U.A.G.R. M
Página 23
Variantes del Cuadrado Latino
Sudoku
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)