Top Banner
8 Puzzle Alberto Acevedo García
25

8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Oct 17, 2018

Download

Documents

NguyễnKhánh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

8 PuzzleAlberto Acevedo García

Page 2: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Indice

1. El juego del 8-Puzzle

2. El algoritmo A*

3. Heurísticas utilizadas

4. Implementación en Java

5. Implementación en Haskell

6. Resultados

7. Implementación alternativa en Haskell

2

Page 3: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

El juego del 8 Puzzle

El objetivo es llegar de un estado inicial cualquiera a el estado final:

3 3

Page 4: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

El juego de el 8 Puzzle

Para ello solo se podrán mover las fichas contiguas a el espacio:

4

Page 5: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

El algoritmo A*

Presentado por primera vez en 1968 por Peter E. Hart, Nils J. Nilsson y Bertram Raphael.

Es un algoritmo de búsqueda en grafos. A* Utiliza una función de evaluación para cada

nodo:

f n=g nhn

5

Page 6: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

El Algoritmo A*

Cuando h(n) es admisible, asegura que la solución encontrada es la optima.

Utiliza dos estructuras auxiliares: Abiertos : es una cola de prioridad para los nodos no

visitados. Cerrados : es el conjunto de los nodos visitados.

6

Page 7: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

El algoritmo A*

7

Page 8: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Heurística de Manhattan

Consiste en la suma de la distancia de Manhattan de todas las casillas.

La distancia de Manhattan viene definida :

∣x−x ' ∣∣ y− y ' ∣

8

Page 9: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Suma de Secuencias

Se basa en la secuencia que debe seguir el estado final.

Para cada ficha del tablero

si la ficha es distinta del 0 :

si esta en el centro → 1

si no esta en el centro y su sucesor en la secuencia no es el correspondiente → 2 9

Page 10: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Heurística de Nilsson's

Heuristica creada por Nilsson.

Combina las dos anteriores:

HeuristicaManhattan3∗sumaSequencias

10

Page 11: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación en Java

Representación del Tablero:

Ejemplo de movimientos :

11

Page 12: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación en Java

La interfaz Nodo:

12

Page 13: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación Java

13

Page 14: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación Haskell

14

Page 15: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación Haskell

15

Page 16: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Implementación Haskell

16

Page 17: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Resultados

● Comparativa por Heurísticas en Java:

Heurística de Manhattan = 0,009s seg Heurística de Nilsson's = 0,004 seg Suma de Secuencias = 0,220 min

Page 18: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Resultados

Comparativa por Heurísticas en Java:

Heurística de Manhattan = 0,770 seg

Heurística de Nilsson's = 0,620 seg

Suma de Secuencias = 15 min

18

Page 19: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Resultados en Haskell

Comparativa de Heurísticas en Haskell:

Heurística de Manhattan = 0,014 seg

Heurística de Nilsson's = 0,014 seg

Suma de Secuencias = 0,015 seg

Page 20: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Resultados

Comparativa de Heurísticas en Haskell:

Heurística de Manhattan = 0,442 seg

Heurística de Nilsson's = 0,030 seg

Suma de Secuencias = 10 min

20

Page 21: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Resultados

Haskell vs Java

Tablero 2 Haskell Java

Manhattan 0,442 seg 0,770 seg

Nilsson's 0,030 seg 0,620 seg

Secuencias 10 min 15 min

21

Tablero 1 Haskell Java

Manhattan 0,014 seg 0,009 seg

Nilsson's 0,014 seg 0,004 seg

Secuencias 0,015 min 0,220 min

Page 22: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Alternativa en Haskell

Representación

Heurística y movimientos

22

Page 23: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Alternativa en Haskell

23

Page 24: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Comparativa entre ambos programas en Haskell

Tiempo Haskell A* = 0.380 seg

Tiempo Haskell Grafos = 0.160 seg

Page 25: 8 Puzzle - Departamento Lenguajes y Ciencias de la ...blas/apuntes/PDAv/T2011-2012/G1AlbertoAcevedo... · El objetivo es llegar de un estado inicial cualquiera a el estado final:

Bibliografía y Referencias

Principles of Artificial Intelligence, Nils J. Nilsson,Ed. Morgan Kaufmann,1982

http://en.wikipedia.org/wiki/A*_search_algorithm http://heuristicswiki.wikispaces.com/N+-+Puzzle http://www.8puzzle.com/8_puzzle_problem.html

25