Heuristicas

Anuncio
Algoritmos de Búsqueda
Informados
Tomas Arredondo Vidal
16/6/2010
Algoritmos de Búsqueda Informados
Contenidos
• Best-first search
• Greedy best-first search
• A* search
• Heurísticas
• Búsqueda local
Best-first search (i.e. búsqueda del
mejor primero)
• Idea: usar una función de evaluación f(n) para cada nodo
– Estimación de la “deseabilidad"
Expandir el nodo no expandido mas deseable
• Implementación:
Ordenar los nodos en el fringe en orden decreciente de
deseabilidad
• Casos especiales:
– Greedy best-first search (i.e. búsqueda codiciosa del mejor primero)
– A* search
Rumania con costos de pasos en
km
Algoritmos de Búsqueda Informados
Contenidos
• Best-first search
• Greedy best-first search
• A* search
• Heurísticas
• Búsqueda local
Greedy best-first search
• Función de evaluación f(n) = h(n) (heuristic o
heuristica)
– estimación del costo desde n al objetivo
• e.g., hSLD(n) = distancia en línea recta (i.e.
straight line distance) desde n a Bucharest
• Greedy best-first search expande el nodo
que aparece estar mas cercano al objetivo
Ejemplo greedy best-first search
Ejemplo greedy best-first search
Ejemplo greedy best-first search
Ejemplo greedy best-first search
Propiedades de greedy bestfirst search
• Completo? No – se puede quedar pegado en
lazos, e.g., Lasi a Fagaras: Lasi Neamt Lasi Neamt ...
• Tiempo? O(bm), pero una buena heurística
puede dar muchas mejoras
• Espacio? O(bm) – mantiene todos los nodos en
memoria
• Optima? No. e.g., Rimnicu Vilcea Pitesti
es mejor que Arad Sibiu Fagaras
Algoritmos de Búsqueda Informados
Contenidos
• Best-first search
• Greedy best-first search
• A* search
• Heurísticas
• Búsqueda local
Búsqueda A*
• Idea: evitar expandir rutas que ya son
costosos
• Función de evaluación f(n) = g(n) + h(n)
• g(n) = costo hasta ahora para llegar a n
• h(n) = costo estimado desde n al objetivo
• f(n) = costo estimado total de la ruta desde
n al objetivo
Ejemplo búsqueda A*
Ejemplo búsqueda A*
Ejemplo búsqueda A*
Ejemplo búsqueda A*
Ejemplo búsqueda A*
Ejemplo búsqueda A*
Algoritmos de Búsqueda Informados
Contenidos
• Best-first search
• Greedy best-first search
• A* search
• Heurísticas
• Búsqueda local
Heurísticas Admisibles
• Una heurística h(n) es admisible si para cada
nodo n, h(n) ≤ h*(n), en el cual h*(n) es el costo
verdadero para llegar al estado objetivo n.
• Una heurística admisible nunca sobreestima el
costo para llegar al estado objetivo, i.e., es
optimista
• Ejemplo: hSLD(n) (nunca sobreestima la distancia
real en la carretera)
• Teorema: Si h(n) es admisible, A* usando TREESEARCH es optimo
Optimalidad de A*
• Suponga que algún objetivo subóptimo G2 ha sido generado y esta en
el fringe. Deje que n sea un nodo no expandido en el fringe en el cual
n esta en la ruta mas corta al objetivo óptimo G.
dado que h(G2) = 0
• f(G2) = g(G2)
• g(G2) > g(G)
dado que G2 es subóptimo
• f(G) = g(G)
dado que h(G) = 0
• f(G2)
> f(G)
de lo anterior
• h(n)
≤ h*(n)
dado que h es admisible
• g(n) + h(n) ≤ g(n) + h*(n)
• f(n)
≤ f(G)
dado que n esta en la ruta a G
Entonces f(G2) > f(n), y A* nunca va a elegir a G2 para expansion.
Heuristicas Consistentes
• Una heurística es consistente si para cada nodo n, cada
sucesor n' de n generado por una acción a,
h(n) ≤ c(n,a,n') + h(n')
• Si h es consistente, tenemos
f(n') = g(n') + h(n')
= g(n) + c(n,a,n') + h(n')
≥ g(n) + h(n) = f(n)
• i.e., f(n) es no-decreciente en cualquier ruta.
• Theorema: Si h(n) es consistente, A* usando GRAPHSEARCH es optimo.
Optimalidad de A*
• A* expande nodos en orden incemental de f value
• Gradualmente agrega "f-contornos" de nodos
• Contorno i tiene todos los nodos con f = fi, en el cual fi < fi+1
Propertidades de A*
• Completo? Si (a menos que hayan infinito
nodos con f ≤ f(G) )
• Tiempo? Exponencial
• Espacio? Mantiene todos los nodos en
memoria
• Optimo? Si
Heuristicas Admisibles
E.g., para el 8-puzzle:
• h1(n) = numero de cuadros mal puestos
• h2(n) = distancia total Manhattan
(i.e., no. de cuadrados de la ubicación deseada para cada cuadro)
• h1(S) = ?
• h2(S) = ?
Heuristicas Admisibles
E.g., para el 8-puzzle:
• h1(n) = numero de cuadros mal puestos
• h2(n) = distancia total Manhattan
(i.e., no. de cuadrados de la ubicación deseada para cada cuadro)
• h1(S) = ? 8
• h2(S) = ? 3+1+2+2+2+3+3+2 = 18
Dominación
• Si h2(n) ≥ h1(n) para todos los n (ambos admisibles)
• entonces h2 domina a h1
• h2 es mejor para buscar.
• Típicos costos de búsqueda (i.e. numero promedio de
nodos expandidos):
• d=12
IDS = 3,644,035 nodos
A*(h1) = 227 nodos
A*(h2) = 73 nodos
• d=24
IDS = demasiado numero de nodos
A*(h1) = 39,135 nodos
A*(h2) = 1,641 nodos
Problemas Relajados
• Un problema con menos restricciones en sus
acciones posibles se llama un problema relajado
• El costo de una solución optima para un
problema relajado es una heurística admisible
para el problema original
• Si las reglas del 8-puzzle son relajadas para que
un cuadro se pueda mover a cualquier posición,
entonces h1(n) da la solución mas corta
• Si las reglas se relajan para que un cuadro se
pueda mover a cualquier cuadro adyacente,
entonces h2(n) entrega la solución mas corta
Algoritmos de Búsqueda Informados
Contenidos
• Best-first search
• Greedy best-first search
• A* search
• Heurísticas
• Búsqueda local
Algoritmos de búsqueda local
• En muchos problemas de optimización, la ruta a
un objetivo es irrelevante
– el estado final es la solución
• Espacio de estados = conjunto de soluciones
posibles
• Hay que buscar configuraciones que satisfagan
sus restricciones
• Podemos probar distintos algoritmos:
– Búsqueda local: tienen un estado actual, lo tratan de
mejorar
– Búsqueda global: prueban múltiples estados al
mismo tiempo, tratan de encontrar el mejor
Algoritmos de búsqueda informados
Referencias:
[1] S Russell, P Norvig, "Artificial Intelligence A Modern
Approach", Prentice Hall, 2003
Descargar