Búsqueda Heurística VII Pedro Meseguer IIIA-CSIC Bellaterra, Spain [email protected] Búsqueda en tiempo real • Búsqueda clásica (off-line search): Búsqueda de una solución completa Ejecución de la solución • No sirve para tareas que • exigen respuestas en tiempo limitado: • robot no podemos esperar • puzzle de 35 • tienen información limitada: • robot explorador Bogotá, 17-19 octubre 2006 no podemos calcular Búsqueda Heurística 2 Búsqueda en tiempo real IDEA: • calcular un trocito de la solución / ejecutarlo • se alterna búsqueda y ejecución (on-line search) Búsqueda Ejecución Búsqueda Ejecución Búsqueda Ejecución • La solución óptima NO se encuentra la primera vez • Se espera que la calidad de la solución mejore al repetir la resolución de ese problema concreto Bogotá, 17-19 octubre 2006 Búsqueda Heurística 3 Problemas para búsqueda en tiempo real • Respuestas críticas en tiempo: rango de visibilidad objetivo observador humano mirando al robot x robot, sin mapa del entorno el robot ha de comenzar a moverse en un tiempo corto, si no el observador creerá que no funciona Bogotá, 17-19 octubre 2006 Búsqueda Heurística 4 Problemas para búsqueda en tiempo real Puzzle de 35 1 2 3 7 8 4 5 6 9 10 11 1 2 3 7 8 4 5 6 9 10 11 12 12 13 14 15 16 17 13 14 15 16 17 18 18 19 20 21 22 23 19 20 21 22 23 24 24 25 26 27 28 29 25 26 27 28 29 30 30 31 32 33 34 35 31 32 33 34 35 Espacio de estados: 36! Demasiado grande para pretender calcular la solución óptima (gran cantidad de tiempo) Alternativa: búsqueda en tiempo real Bogotá, 17-19 octubre 2006 Búsqueda Heurística 5 Movimiento • Dado un estado x: ¿cuál es el siguiente estado y? • IDEA: escoger el mejor de los sucesores y ← arg min { c(x,z) + h(z) }, z ∈succ(x) • IDEA: para calcular h(z), podemos hacer anticipación • Se busca a profundidad limitada • Función de evaluación en la frontera minimin • Los valores mínimos se propagan hacia arriba Bogotá, 17-19 octubre 2006 Búsqueda Heurística 6 Ejemplo d= 2 2 5 7 4 3 6 1 3 8 2 +1 2 +1 2 5 7 3 +1 4 Bogotá, 17-19 octubre 2006 3 1 +1 6 1 3 8 Búsqueda Heurística 7 De un estado a la secuencia • MiniMin: nos da la primera acción estado actual → un sucesor • ¿Cómo encontrar la secuencia solución? • Aplicar Minimin al nuevo estado: 5 1 1 5 • No funciona, se entra en ciclo • Se ha de modificar la h del estado actual Bogotá, 17-19 octubre 2006 Búsqueda Heurística 8 Dos formas de actualizar • RTA*: h(x) ← max{h(x), 2nd min c(x,y)+h(y)} 5 1 1 5 5 6 1 5 5 6 7 5 Bogotá, 17-19 octubre 2006 Búsqueda Heurística 9 Dos formas de actualizar • LRTA*: Bogotá, 17-19 octubre 2006 h(x) ← max{h(x), min c(x,y)+h(y)} 5 1 1 5 5 2 1 5 5 2 3 5 5 4 3 5 5 4 5 5 5 6 Búsqueda Heurística 5 5 10 RTA* • Función heurística: – f(n) = g(n) + h(n) – g(n): coste desde el nodo actual hasta n • RTA*: – Algoritmo del tipo primero el mejor – Heuristica diferente del A* – Actualiza la h del nodo actual, para evitar ciclos Bogotá, 17-19 octubre 2006 Búsqueda Heurística 11 Algoritmo RTA* / LRTA* • Tabla T: h de nodos ya expandidos • Bucle: – Generar sucesores del estado actual – Si un sucesor ya está en T, usar su h de T – Sino, calcular f de sucesores por Minimin – Almacenar estado actual en T con h = 2do min f / min f – Acción: ir al mejor sucesor (min f) Bogotá, 17-19 octubre 2006 Búsqueda Heurística (LRTA*) 12 Ejecución N E O Anticipación(1) h h S h‘ h’ Actualización h h Acción agente h cambia algoritmo registra nueva h’ Bogotá, 17-19 octubre 2006 Búsqueda Heurística 13 RTA*: ejemplo e 5 4 i b 1 l 9 a 2 d 3 m 8 Bogotá, 17-19 octubre 2006 Búsqueda Heurística 6 j 7 k c 14 RTA*: ejemplo e 5 4 i b 1 l 9 3 a 2 d 3 j 7 k c m 8 Bogotá, 17-19 octubre 2006 6 Búsqueda Heurística 15 RTA*: ejemplo e 5 4 i b 5 l 9 3 a 2 d 3 m 8 Bogotá, 17-19 octubre 2006 Búsqueda Heurística 6 j 7 k c 16 RTA*: ejemplo e 5 4 i b 5 l 9 4 a 2 d 3 j 7 k c m 8 Bogotá, 17-19 octubre 2006 6 Búsqueda Heurística 17 RTA*: ejemplo e 5 4 i b 5 l 9 4 a 7 d 3 m 8 Bogotá, 17-19 octubre 2006 Búsqueda Heurística 6 j 7 k c 18 RTA*: ejemplo e 5 4 i b 5 l 9 6 a 7 d 3 m 8 Bogotá, 17-19 octubre 2006 6 j 7 k c Búsqueda Heurística 19 Completitud • Completitud RTA*/LTRA*: ambos son completos en • espacios de estados finitos • valores heurísticos finitos • solución alcanzable desde cada estado • Primera ejecución: • RTA* es más rápido que LRTA* • Ejecuciones repetidas sobre el mismo ejemplar: • LRTA* converge a caminos óptimos si h admisible • RTA* no converge a caminos óptimos: h se puede volver no admisible Bogotá, 17-19 octubre 2006 Búsqueda Heurística 20 Convergencia • Al resolver un problema: H0 → H1, matriz de valores heurísticos de estados de la búsqueda • Al resolver repetidamente el mismo ejemplar: – resolución i-ésima – toma como entrada Hi-1, los valores heurísticos finales de la resolución i-1 • LRTA* converge a caminos óptimos (h admisible): – a partir de un punto, sólo recorre caminos óptimos Bogotá, 17-19 octubre 2006 Búsqueda Heurística 21 LRTA*(k) • LRTA(k) = LRTA* + propagación de cambios de la heurística hasta k estados • Diferencias: – RTA* / LRTA*: 1 actualización por acción – LRTA(k): k actualizaciones por acción – Más aprendizaje – Mejor calidad de la heurística pero mayor tiempo de búsqueda por nodo Bogotá, 17-19 octubre 2006 Búsqueda Heurística 22 Propagación de cambios N O E S h’’ h h’’ ’ h’ h’ h h’’ h ‘ h ‘ h’’’ h h’’ ‘ agente ..... h cambia Bogotá, 17-19 octubre 2006 Anticipación(1) Actualización Anticipación(1) Actualización Anticipación(1) Actualización Anticipación(1) Actualización Anticipación(1) Actualización Acción Búsqueda Heurística 23 En la práctica • LRTA*(k): – Pasos de búsqueda más largos – Mejora importante del rendimiento: • Primera ejecución • Convergencia • Estabilidad de la solución – Beneficios dependen del parámetro k: cuanto mayor es k, más beneficios, con el coste extra de tener pasos de búsqueda más largos Bogotá, 17-19 octubre 2006 Búsqueda Heurística 24 Problemas de prueba Laberinto Grid x x Movimiento: una casilla N, S, E. O Solución: secuencia de movimientos que llevan a x Bogotá, 17-19 octubre 2006 Búsqueda Heurística 25 Problemas de prueba • Grid35. Retículo de tamaño 301x301 con un 35% de obstáculos colocados al azar. • Grid70. Retículo de tamaño 301x301 con un 70% de obstáculos colocados al azar. • Maze. Laberíntos acíclicos de tamaño 181x181 cuya estructura de salida se generó por búsqueda en profundidad. Bogotá, 17-19 octubre 2006 Búsqueda Heurística 26 Primera ejecución Grid 35 Coste Tiempo/ Grid 70 Coste Paso Tiempo/ Maze Coste Tiempo/ Paso Paso LRTA* 100% 100% 100% 100% 100% 100% LRTA* 17% 237% 18% 222% 16% 231% 45% 91% 29% 97% 6% 96% (k=15) RTA* Bogotá, 17-19 octubre 2006 Búsqueda Heurística 27 Convergencia Grid 35 coste repeti tiemp/ ciones paso Grid 70 coste repeti tiemp/ ciones paso Maze coste repeti tiemp/ ciones paso LRTA 100% 100% 100% 100% 100% 100% 100% 100% 100% LRTA 36% 48% 189% 27% 37% 179% 23% 24% 232% k=15 Bogotá, 17-19 octubre 2006 Búsqueda Heurística 28 Resumen • Búsqueda clásica: (off-line search) no es adecuada para ciertos tipos de problemas • Búsqueda en tiempo real: (on-line search) • Buscar la siguiente acción • Ejecutarla • Siguiente estado: Minimin • Secuencia solución: incluir g(n), actualizar h(actual) • RTA*: completo pero no converge a solución óptima • LRTA*: completo, si h admisible converge sol óptima • LRTA*(k): como LRTA*, propaga cambios heurísticos Bogotá, 17-19 octubre 2006 Búsqueda Heurística 29 Aplicaciones de búsqueda en tiempo real Age of Empires Warcraft III Agentes: tiempo e información limitada han de mejorar el rendimiento con la experiencia Bogotá, 17-19 octubre 2006 Búsqueda Heurística 30