15
SALTO DE LA RANA (BACKTRACKING) INTELIGENCIA ARTIFICIAL Grupo 16 Universidad Autónoma Gabriel René Moreno 1 Luis Alberto Baigorria Rodas Inf.

Diapositivas Juego Rana Saltarina

Embed Size (px)

DESCRIPTION

Diapositivas del Juego Rana Saltarina. Presentado en la materia Inteligencia Artificial.

Citation preview

Page 1: Diapositivas Juego Rana Saltarina

SALTO DE LA RANA

(BACKTRACKING)

INTELIGENCIA ARTIFICIAL

Grupo 16

Universidad Autónoma Gabriel René Moreno

1Luis Alberto Baigorria Rodas Inf.

Page 2: Diapositivas Juego Rana Saltarina

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

2Luis Alberto Baigorria Rodas Inf.

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.

Page 3: Diapositivas Juego Rana Saltarina

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.

3Luis Alberto Baigorria Rodas Inf.

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

Page 4: Diapositivas Juego Rana Saltarina

REGLAS:

•Las fichas de la izquierda solo se pueden mover haciala derecha.

•Las fichas de la derecha solo se pueden mover hacia laizquierda.

•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 nisobre más de una ficha contraria.

4Luis Alberto Baigorria Rodas Inf.

Page 5: Diapositivas Juego Rana Saltarina

MOVIMIENTOS POSIBLES

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

5Luis Alberto Baigorria Rodas Inf.

Page 6: Diapositivas Juego Rana Saltarina

MOVIMIENTOS POSIBLES

- Salto por encima de una rana.

6Luis Alberto Baigorria Rodas Inf.

Page 7: Diapositivas Juego Rana Saltarina

ESTADOS

- Estado Inicial

- Estado Final

7Luis Alberto Baigorria Rodas Inf.

Page 8: Diapositivas Juego Rana Saltarina

ESTRATEGIA DE SOLUCIÓN

-Analizar los movimientos posibles que puede efectuar.-Valorar cada movimiento (mentalmente) antes deefectuarlos.

¿En base a qué criterio se debe elegir el movimientocorrecto?

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.

HEURÍSTICAS

8Luis Alberto Baigorria Rodas Inf.

Page 9: Diapositivas Juego Rana Saltarina

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.

9Luis Alberto Baigorria Rodas Inf.

MAL

MOVIMIENTO

Page 10: Diapositivas Juego Rana Saltarina

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

10Luis Alberto Baigorria Rodas Inf.

Page 11: Diapositivas Juego Rana Saltarina

OTRAS POSIBLES ESTRATEGIAS DE SOLUCIÓN

- 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.

HEURÍSTICAS

11Luis Alberto Baigorria Rodas Inf.

Page 12: Diapositivas Juego Rana Saltarina

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

}

}

ESQUEMA GENERAL

12Luis Alberto Baigorria Rodas Inf.

Page 13: Diapositivas Juego Rana Saltarina

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;

}

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

Algoritmo 1

13Luis Alberto Baigorria Rodas Inf.

Page 14: Diapositivas Juego Rana Saltarina

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;

}

}

void Ranas (estado e)

{si e es una posible solucion entonces

Muestro la secuencia de movimientos guardados;

Algoritmo 2

14Luis Alberto Baigorria Rodas Inf.

Page 15: Diapositivas Juego Rana Saltarina

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;

}

}

void Ranas (estado e) {

si e es una posible solucion entonces

Muestro la secuencia de movimientos guardados;

Algoritmo 3

15Luis Alberto Baigorria Rodas Inf.