Búsquedas basadas en Heurísticas

Anuncio
Búsquedas basadas en Heurísticas
Dr Jesús Antonio González Bernal
Dr.
Heurística
í
y Técnica que mejora la eficiencia de un proceso de búsqueda,
búsqueda
posiblemente sacrificando completez, pero ahorrando tiempo
dee búsqueda.
úsque a.
y Ej. Guía de turistas.
2
Heurística
í
y Ayuda a evitar una explosión combinatoria.
y Rara vez se necesita obtener la solución óptima (lugar de
estacionamiento).
y Aunque
q las aproximaciones
p
obtenidas por
p una heurística
pueden no ser buenas en el peor caso, éste rara vez se
presenta en el mundo real.
y Comprender por qué funciona una heurística, o por qué no,
ayuda a comprender el problema.
3
Búsquedas
ú
heurísticas
í
y Se utilizan básicamente en dos situaciones:
y Un problema no tiene soluciones conocidas.
y Un problema
p
tiene una solución precisa
p
ppero tiene un costo
computacional prohibitivo.
4
Búsquedas
ú
heurísticas
í
• NO es infalible.
• Consisten en dos partes:
– La medida heurística.
– Un algoritmo que usa la medida para buscar en el espacio de
estados.
estados
Heurística
f(n) = g(n), costo uniforme
f(n)
( ) = h(n),
( ) búsqueda
q
heurística p
pura
f(n) = g(n) + h(n), algoritmo A*
¿qué camino seguir?
Opciones ordenadas conforme
f(n)
5
Técnicas
é
heurísticas
í
y Best-first search.
search
y A*
y Hill climbing.
li bi
y Recocido simulado.
y ACO
6
Búsqueda Mejor el Primero
Best First Search
y Búsqueda el primero mejor / “Búsqueda Preferentemente por lo
mejor””
y Estrategia de Control Sistemática.
y Combina ventajas de:
y Depht First Search.
y Breadht First Search
8
Best First Search
y DESCRIPCIÓN
Ó
y Selecciona siempre el nodo más “prometedor”
y Posición en el árbol: No es tomada en cuenta.
y Uso de información -> Funciones de Evaluación
9
Best First Search
y VENTAJA
y Llega a la solución sin expandirse completamente.
y DESVENTAJA
y El camino no es necesariamente el más óptimo
10
Best First Search
11
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
12
E
8
G
J
3
3
6
B
K
L
F
12
0
ÁRBOL A EXPLORAR
20
H
13
Open:
H (20)
ÁRBOL A EXPLORAR
20
H
14
16
A
14
Open:
A (14)
C (16)
C
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
15
Open:
E
D (9)
E(5)
C(16)
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
16
Open:
E
D(9)
C(16)
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
E
3
6
K
17
Open:
L
K(3)
L(6)
C(16)
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
E
3
6
K
18
Open:
L
L(6)
C(16)
ÁRBOL A EXPLORAR
20
H
14
16
C
A
9
5
D
E
3
6
K
L
F
19
Open:
F(0)
C(16)
0
Best First Search: Algoritmo
Open Å Estado Inicial
2. Si Open es vacio, retornar fracazo. En caso contrario
1
1.
1
1.
3.
Si X es solución, retornar el camino desde la raíz hasta X.
En caso contrario
1.
4
4.
20
X Å extraer
t
nodo
d mínimo
í i dde O
Open usando
d “ff ”
Open Å Open ∪ {sucesores de X no expandidos}
I a paso 2
Ir
Función
ó de Evaluación:
ó BFS
y BFS puede utilizar de forma básica dos funciones de
evaluación
y f(n) = g(n): suma de los costos desde la raíz hasta n
y f(n) = h(n): estimación de costo mínimo desde n hasta una
solución
21
BFS: Análisis
á
y f(n) = g(n)
y Se expande un nodo considerando un valor de costo ya
conocido ((no es una aproximación)
p
)
y El algoritmo es completo y óptimo, ya que encontrará la mejor
solución en ggrafos finitos
y f(n) = h(n)
y No ggarantiza q
que se encuentre la mejor
j solución
y Se comporta como un algoritmo no completo en grafos
infinitos
22
A*
y Algoritmo basado en BFS
y Función de evaluación
y f(n) = g(n) + h(n)
23
A* – Ejemplo
j p #2
Resolver el problema del 8-puzzle mediante un
algoritmo BFS genérico teniendo en cuenta los
siguientes puntos
Estado inicial
2 8 3
- 1 4
7 6 5
24
Estado Final
1 2 3
8 - 4
7 6 5
A* – Ejemplo 2
g(n) =
2 8 3
- 1 4
7 6 5
h(n) = 4 fichas
25
Reglas:
•g(n)
( ) = 1 por arco recorrido
id
•h(n) = hsimple(n), es decir, el número
de celdas que se encuentran mal
colocadas incluyendo la posición
vacía.
•Orden de aplicación de
operadores: Arriba, Abajo,
I
Izquierda,
i d D
Derecha
h
•En caso de empate, seleccionar el
nodo más antiguo
antiguo.
A* – Ejemplo 2
2 8 3
1 ‐
4
7 6 5
2 8 3
- 1 4
7 6 5
-
h( ) = 4 fifichas
h(n)
h
8 3
2 1 4
7 6 5
h(n) = 4 fichas
2 8 3
7 1 4
26
-
6 5
h(n) = 5 fichas
A* – Ejemplo 2
2
8
3
-
1
4
7
6
5
2 8 3
1 ‐ 4
7 6 5
2 8 3
1 6 4
7 -
5
2 ‐
3
h( ) = 5 fifichas
h(n)
h
1 8 4
-
8 3
7 6 5
h(n) = 4 fichas
2 1 4
7 6 5
2 8 3
27
2
8
3
7
1
4
-
6
5
1 4 ‐
7 6 5
h(n) = 5 fichas
A* – Ejemplo#2
2
8
3
-
1
4
7
6
5
28
2
8
3
1
‐
4
7
6
5
- 8 3
2 1 4
7 6 5
2
8
3
7
1
4
-
6
5
2
8
3
2
‐
3
1
6
4
1
8
4
7
-
5
7
6
5
2
8
3
1
4
‐
7
6
5
8 ‐
3
2 1 4
7 6 5
h(n) = 4 fichas
A* – Ejemplo#2
2
7
29
2
8
3
1
‐
4
7
6
5
2
8
3
2
‐
3
1
6
4
1
8
4
7
-
5
7
6
5
2
8
3
1
4
‐
7
6
5
-
8 3
8
‐
3
8
3
2
1 4
2
1
4
1
4
7
6 5
7
6
5
6
5
2 8 3
7 1 4
- 6 5
2
8
3
7
1
4
6
-
5
h(n) = 6 fichas
A* – Ejemplo#2
2
7
30
8
3
1
4
6
5
2
8
3
1
‐
4
7
6
5
2
8
3
1
6
4
7
-
5
2 ‐
3
1 8 4
7 6 5
2
8
3
1
4
‐
7
6
5
-
8 3
8
‐
3
2
1 4
2
1
4
7
6 5
7
6
5
2
8
3
2
8
3
7
1
4
7
1
4
-
6
5
6
-
5
2
3
-
1
8
4
7
6
5
-
2
3
1
8
4
7
6
5
A* – Ejemplo#2
2
7
8
3
1
4
6
5
2
8
3
1
6
4
2
3
-
7
-
5
1
8
4
7
6
5
-
2
3
1
8
4
7
6
5
2
8
3
2
‐
3
1
‐
4
1
8
4
7
6
5
7
6
5
2
8
3
1
4
‐
7
6
5
-
8 3
2
1 4
7
6 5
8 ‐
3
3
-
2
1
4
7
6
5
8
1
3
2
-
4
7
6
5
2 1 4
7 6 5
31
8
2
8
3
2
8
3
7
1
4
7
1
4
-
6
5
6
-
5
A* – Ejemplo#2
2
7
32
8
3
1
4
6
5
2
8
3
2
3
-
1
6
4
1
8
4
7
-
5
7
6
5
2
8
3
2
‐
3
1
‐
4
1
8
4
7
6
5
7
6
2
-
2
3
1
2
3
5
1
8
4
-
8
4
8
3
7
6
5
7
6
5
1
4
‐
7
6
5
8
3
-
-
8 3
8
‐
3
2
1
4
2
1 4
2
1
4
7
6
5
7
6 5
7
6
5
8
1
3
2
-
4
7
6
5
2
8
3
2
8
3
7
1
4
7
1
4
-
6
5
6
-
5
A* – Ejemplo#2
2
7
33
8
3
1
4
6
5
2
8
3
2
3
-
1
6
4
1
8
4
7
-
5
7
6
5
2
8
3
2
‐
3
-
2
3
1
‐
4
1
8
4
1
8
4
7
6
5
7
6
5
7
6
5
2
8
3
1
4
‐
8
3
-
7
6
5
2
1
4
7
6
5
-
8 3
8
‐
3
2
1 4
2
1
4
7
6 5
7
6
5
2
8
3
2
8
3
7
1
4
7
1
4
-
6
5
6
-
5
1
2
3
-
8
4
7
6
5
8
1
3
-
2
4
7
6
5
8
1
3
8
1
3
2
4
-
2
-
4
7
6
5
7
6
5
8
1
3
2
6
4
7
-
5
A* – Ejemplo#2
2
7
34
8
3
1
4
6
5
2
8
3
2
3
-
1
6
4
1
8
4
7
-
5
7
6
5
2
8
3
2
‐
3
-
2
3
1
‐
4
1
8
4
1
8
4
7
6
5
7
6
5
7
6
5
2
8
3
1
4
‐
7
6
5
8
3
-
1
2
3
1 2
3
-
8
4
8
-
4
7
6
5
7
6
5
8
1
3
-
2
4
7
6
5
8
1
3
-
8 3
8
‐
3
2
1
4
2
1 4
2
1
4
7
6
5
7
6 5
7
6
5
8
1
3
2
4
-
2
-
4
7
6
5
7
6
5
8
1
3
2
6
4
7
-
5
2
8
3
2
8
3
7
1
4
7
1
4
-
6
5
6
-
5
A* – Ejemplo#2
2
7
35
8
3
1
4
6
5
2
8
3
2
‐
3
-
2
3
1
‐
4
1
8
4
1
8
4
7
6
5
7
6
5
7
6
5
1
2
3
1 2
3
-
8
4
8
-
4
7
6
5
7
6
5
Descargar