Bsqueda heurstica
Bsqueda informada por la funcin heurstica f(n) Algoritmos: esquema primero el mejor (best-first)
Coste uniforme f(n) = g(n) Bsqueda heurstica pura f(n) = h(n) A* f(n) = g(n) + h(n) A* con heursticas admisibles
Evaluacin:
calidad solucin: ptimo? coste en tiempo: proporcional a los nodos generados coste en memoria: proporcional a los nodos almacenados
Bsqueda Heurstica 2
rboles y grafos
un solo camino para cada nodo varios caminos para cada nodo
BSQUEDA EN RBOL Algoritmo ms simple No detectan repetidos: si aparece un nodo ya expandido, se expande de nuevo (tiempo)
BSQUEDA EN GRAFO Algoritmo ms complejo Almacenan nodos ya expandidos, para detectar repetidos (gastan memoria)
3
Bsqueda Heurstica
Coste en arcos
Arcos:
en bsqueda ciega, suponemos cada arco cuesta 1 solucin ptima: ms cercana a la raz ahora arcos con costes arbitrarios (mnimo e > 0) camino ptimo: mnimo coste a una solucin
a 2 1
b
1 2 1
c
3
soluciones
4
4
Bsqueda Heurstica
Funciones de coste
g(n): suma de costes desde la raz hasta n h(n): estimacin de coste mnimo desde n hasta una solucin
f(n) = g(n) f(n) = h(n) g(n) f(n) = g(n) + h(n) h(n)
Bsqueda Heurstica
Bsqueda Heurstica
2. Si L vaco, fallo, stop. Sino, n extrae -mnimo-f(L) 3. Si n es solucin, retornar el camino desde la raz, stop. Sino, generar los sucesores de n. 4. Aadir a L los sucesores de n, etiquetando sus respectivos caminos desde la raz. Ir a 2. Test de solucin: no se No hay orden al hace al generar el nodo aadir sucesores sino al expandir el nodo
Bsqueda Heurstica 7
Test al expandir
f(n) = g(n) s: inicio g: objetivo
1
s
2
a
3
b g
1
como rbol
s
1 2
a 3 g
b
1
f(n) = h(n)
Bsqueda heurstica pura (pure heuristic search)
3
f(n)
coste arco = 1
4 1
2 1 1 1 1
infinita
f(n) = h(n)
Bsqueda heurstica pura (pure heuristic search)
3
f(n)
coste arco = 1
4 1
2 1 1 1 1
A*:
Problema: h(n) no incluye el coste del camino ya recorrido Solucin: f(n) = g(n) + h(n)
f(n)
coste arco = 1
1+2 2+1 3+1 4+1 5+1 1+4 2+1 3+0
infinita
A*:
f(n)
coste arco = 1
1+10 2+1 3+0
A*:
h admisible
h(n): estimacin de coste mnimo desde n hasta una solucin h*(n): coste mnimo desde n hasta una solucin h admisible ssi h(n) h*(n) n Si h admisible, A* encuentra la solucin ptima
Bsqueda Heurstica
14
A*:
f(n)
coste arco = 1
h admisible
si admisible h(n) 10
0+3
1+2
A* heursticas ms informadas
nodos (A*, h): nodos expandidos por A* con h
h1 y h2 admisibles, h2 es ms informada que h1 sii
Bsqueda Heurstica
16
A* casos lmite
Heurstica nula
h(n) = 0 n
f(n) = g(n) A* degenera en bsqueda en anchura
Heurstica perfecta
h(n) = h*(n) n
f(n) = coste ptimo puede desarrollar todos los caminos con coste mnimo basta con un camino desempatar con g mayor
espacio exponencial
Bsqueda Heurstica 17
A* sobre grafos
rbol: un solo camino para cada nodo (supuesto hasta ahora)
Grafo: varios caminos para cada nodo (situacin real) Pregunta: podemos adaptar A* de rboles a grafos?
La primera vez que se genera n, hay un nico camino c1, coste g(c1) Se puede volver a generar n por otro camino c2, coste g(c2) g(c1) A* cmo puede manejar dos caminos con distinto coste si n an no ha sido expandido? n ya ha sido expandido?
Bsqueda Heurstica
18
(sencillo) (tostn)
19
Consistencia y monotona
h consistente:
n, m,
k(n,m): mnima distancia entre n y m
h montona:
n, nsucc(n)
h montona f(n) f(n), no decrece en un camino consistencia monotona consistencia / monotona admisibilidad
Bsqueda Heurstica 20
Monotona y g(n)
Si h montona, g(n) = g*(n) (ptima) para nodos expandidos
c1 s m c2 n
Sea n open por c1, seleccionado para expansin, con g(n) > g*(n)
Existe c2 camino ptimo hasta n; sea m el ltimo nodo generado de c2 El camino c2 hasta m es ptimo: g(m)= g*(m). Cmo es f(m)?
f(m) = g*(m) + h(m) g*(m) + k(m,n) + h(n) = g*(n) + h(n) < g(n) + h(n) = f(n) consistencia
Contradiccin con que n sea el nodo con f mnima! Por lo tanto, g(n) = g*(n).
Bsqueda Heurstica 21
Monotona y A*
A* expande n: n pasa de OPEN a CLOSED h montona:
todo n expandido tiene g(n) = g*(n) (ptima) todo n CLOSED tiene g(n) = g*(n) (ptima)
A*: path-max
Es posible generar heursticas montonas? S. Supongamos h admisible pero no montona Redefinimos f como
f(n) = max ( f(n), g(n) + h(n) ) nsucc(n)
Bsqueda Heurstica
23
A* sobre grafos
1. OPEN nodo raz 2. Si OPEN vaca, fallo, stop. Sino, n extrae-mnimo-f(OPEN ) 3. Si n es objetivo, xito, stop. Sino, aadir n a CLOSED y generar los sucesores de n (expansin de n). 4. Para cada sucesor n hacer: 4.1 Si n OPEN, reetiquetar n con el camino ms corto desde la raz. 4.2 Si n CLOSED, ignorar n. 4.3 Si n OPEN y n CLOSED, aadir n a OPEN, etiquetndolo con su camino desde la raz. 4.4 Ir al paso 2.
Bsqueda Heurstica
24
A*: contornos
Si h montona, la secuencia de nodos expandidos tiene
0+2 (1)
f no decreciente
(2) 1+1 (3) 1+1 1+3 (8)
A*: contornos
Nodos estticamente ordenados por f
f2 f3 f1
Si h montona, A* expande todos los nodos en el nivel fi antes de expandir los de fi+1
f5
Bsqueda Heurstica 26
f4
A* resumen
A* = primero el mejor con f(n) = g(n) + h(n) Completo Si h admisible, A* encuentra solucin ptima
Heursticas ms informadas menos nodos Si h no es admisible por , A* se pasa en solucin ptima por
No hay otro algoritmo que lo haga mejor con la misma informacin Degenera en consumo exponencial de memoria
Bsqueda Heurstica 27