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

Sign up to vote on this title
UsefulNot useful