Sei sulla pagina 1di 15

Universidad Autónoma Gabriel René Moreno

SALTO DE LA RANA

(BACKTRACKING)

Grupo 16
INTELIGENCIA ARTIFICIAL
Luis Alberto Baigorria Rodas Inf. 1
PUZZLE (ROMPECABEZAS)
-Un juego PUZZLE puede referirse a:
-Un ROMPECABEZAS, juego en el que hay que armar una figura.
-Un CRUCIGRAMA o juego de palabras cruzadas.
-Un ACERTIJO o especie de adivinanza.
-Un juego de Ingenio, como el SUDOKU o el CUBO DE RUBIK
-Un juego de INTERCAMBIO DE POSICIONES

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.

Luis Alberto Baigorria Rodas Inf. 2


El juego de Salto de la Rana, es un puzzle solitario de
movimientos secuenciales, es decir, una sucesión
ordenada de movimientos.

PROBLEMA
- Las Ranas (Fichas).
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.

Luis Alberto Baigorria Rodas Inf. 3


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:
•Deslizando, si es contigua.
•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.

Luis Alberto Baigorria Rodas Inf. 4


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

Luis Alberto Baigorria Rodas Inf. 5


MOVIMIENTOS POSIBLES
- Salto por encima de una rana.

Luis Alberto Baigorria Rodas Inf. 6


ESTADOS
- Estado Inicial

- Estado Final

Luis Alberto Baigorria Rodas Inf. 7


ESTRATEGIA DE SOLUCIÓN
HEURÍSTICAS

-Analizar los movimientos posibles que puede efectuar.


-Valorar cada movimiento (mentalmente) antes de
efectuarlos.

¿En base a qué criterio se debe elegir el movimiento


correcto?

El criterio para elegir el movimiento correcto


es que EL JUEGO PUEDA CONTINUAR, para
ello, el siguiente movimiento debe ser posible
sin ir en contra de las reglas del juego.

Luis Alberto Baigorria Rodas Inf. 8


ESTRATEGIA DE SOLUCIÓN
¿Cómo se alcanza tal propósito?

Se debe evitar, en el movimiento que se realice o en


el siguiente movimiento, la posibilidad de que dos
ranas del mismo color queden en casillas contiguas.

MAL
MOVIMIENTO

Luis Alberto Baigorria Rodas Inf. 9


ESTRATEGIA DE SOLUCIÓN

PATRON
Un patrón que nos permite acelerar el proceso de
los movimientos de las ranas es:

LA ALTERNACIÓN DE RANAS DE AMBOS


COLORES

Luis Alberto Baigorria Rodas Inf. 10


OTRAS POSIBLES ESTRATEGIAS DE SOLUCIÓN
HEURÍSTICAS

- Realizar todas las combinaciones de


movimientos posibles de las ranas
para encontrar soluciones.

- Realizar todas las combinaciones de


movimientos posibles siempre pensando
en tapar la piedra que se encuentre libre.

Luis Alberto Baigorria Rodas Inf. 11


ESQUEMA GENERAL
BACK (estado e, solucion *sol) \\ e: nodo del árbol de soluciones
{ \\sol: solución que retorna
if ( HOJA (e))
CalcularSolución (e, sol);
else
{
int nrohijo = 1;
estado siguiente;
while ( HIJOS (nrohijo, e, siguiente ) )
{ if ( !PODADO ( siguiente, sol) )
BACK ( siguiente, sol);
++nrohijo; }
}
}
Luis Alberto Baigorria Rodas Inf. 12
Algoritmo 1
boolean Ranas(Lista L1)
{
Estado Datos = UltimoEstado(L1);
si Terminación(Datos) return true;
si SeRepite(Datos, L1) return false;
si (L.Size > Limite) return false;
Lista LR = ReglaAplicables(Datos);

While (! Vacia(LR))
{
Regla R = ElegirMejorRegla(L1, Datos);
Estado Rdatos = AplicarRegla(R, Datos);
InsertUltimo(L1,RDatos);
if (Ranas(L1)) return True;
EliminarUltimo(L1);
}
return False;
}
Luis Alberto Baigorria Rodas Inf. 13
Algoritmo 2

void Ranas (estado e)


{
si e es una posible solucion entonces
Muestro la secuencia de movimientos guardados;
sino
{
por cada rana i
por cada movimiento j de la rana i
si es factible el movimiento
aplico el movimiento; almaceno el movimiento;
invoco a Ranas con el nuevo estado;
deshago el movimiento; elimino el movimiento;
}
}

Luis Alberto Baigorria Rodas Inf. 14


Algoritmo 3

void Ranas (estado e) {


si e es una posible solucion entonces
Muestro la secuencia de movimientos guardados;
sino
{
por cada rana i que se encuentra a menos de 2 piedras de
distancia
por cada movimiento j de la rana i
si es factible el movimiento
aplico el movimiento; almaceno el movimiento;
invoco a Ranas con el nuevo estado;
deshago el movimiento; elimino el movimiento;
}
}
Luis Alberto Baigorria Rodas Inf. 15

Potrebbero piacerti anche