You are on page 1of 26

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

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

Días Horas Horas


Integrantes Auto evaluación
Trabajados Grupo Individuales

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

Página 1
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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

Página 2
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 3
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 4
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

 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

Página 5
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 6
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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?

Página 7
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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:

Página 8
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 9
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 10
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

- 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

Página 11
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 12
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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:

Página 13
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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);
}
}

Página 14
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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:

Página 15
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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

Página 16
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 17
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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

Página 18
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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


resolverlo con 10 y 15 bolas.

Página 19
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 20
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

Reglas

Página 21
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 22
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 23
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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

Página 24
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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.

Página 25
Inteligencia Artificial - Estados Repetidos U.A.G.R. M

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)

Página 26

You might also like