Métodos de Búsqueda Informados Tema 4 c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 1 Tema 4 2 Esquema ♦ Introducción ♦ Búsqueda primero el mejor - búsqueda voraz - búsqueda A* ♦ Funciones heurı́sticas ♦ Algoritmos de mejora iterativa - ascenso de gradiente c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Introducción Las estrategias de búsqueda no informada resuelven problemas mediante generación sistemática de estados, pero son muy ineficientes Vamos a ver cómo las estrategias de búsqueda informada o heurı́stica, usando conocimiento especı́fico del problema, pueden resolver problemas más eficientemente c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 3 Búsqueda primero el mejor A partir del algoritmo de búsqueda general, introduciremos conocimiento especı́fico del problema al insertar los nodos sucesores en la cola mediante una función de evaluación: medida de lo “deseable” (o lo “indeseable”) de expandir un nodo Expande primero el nodo no expandido más “deseable” Implementación: function BEST-FIRST-SEARCH( problem, EVAL-FN) returns a solution sequence inputs: problem, a problem Eval-Fn, an evaluation function Queueing-Fn a function that orders nodes by EVAL-FN return GENERAL-SEARCH( problem, Queueing-Fn) notar que un nombre más adecuado serı́a “búsqueda primero el que aparentemente es mejor” c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 4 Variantes basadas en distintos tipos de funciones de evaluación: búsqueda voraz (greedy search) búsqueda A* Utilizan una estimación del coste del estado actual al objetivo más cercano y tratan de minimizarlo c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 5 ejemplo: mapa de Rumanı́a con costes de operador en km 71 75 Oradea Neamt Zerind 87 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 Vaslui 80 Rimnicu Vilcea Timisoara 111 Lugoj Pitesti 97 142 211 70 98 Mehadia 75 Dobreta 146 85 101 138 120 Hirsova Urziceni 86 Bucharest 90 Craiova Giurgiu c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Eforie Straight−line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374 Tema 4 6 búsqueda voraz La función de evaluación es h(n) (función heurı́stica): estimación del coste del nodo al objetivo Expande primero el nodo no expandido que supone acercarse más al objetivo (∼ supone un mayor “bocado” en el coste que resta hasta el objetivo) Implementación: Eval-Fn = h Ejemplo de función heurı́stica para el problema de hallar rutas en Rumanı́a: hDLR (n) = distancia en lı́nea recta de n a Bucarest h puede ser cualquier función siempre y cuando h(n) = 0 en los nodos que representan estados objetivo c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 7 ejemplo de búsqueda voraz Arad h=366 Arad Sibiu h=253 Timisoara h=329 Zerind h=374 Arad Sibiu Timisoara h=329 Arad Fagaras Oradea h=366 h=178 h=380 Zerind h=374 Arad Rimnicu h=193 Sibiu Timisoara h=329 Arad Fagaras h=366 Sibiu h=253 Zerind h=374 Oradea Rimnicu h=380 h=193 Bucharest c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides h=0 Tema 4 8 Para el problema de hallar una ruta entre Arad y Bucarest, la búsqueda voraz con el heurı́stico hDLR(n): encuentra una solución sin expandir ningún nodo que no esté incluı́do en la misma (coste de búsqueda mı́nimo), aunque la solución no es óptima notar que hDLR (n): necesita de las coordenadas de las ciudades del mapa es útil porque sabemos que las carreteras entre dos ciudades tienden a ser rectas (conocimiento especı́fico del problema) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 9 La búsqueda voraz: es propensa a comienzos erróneos como la búsqueda primero en profundidad, prefiere seguir un camino hasta el final, por lo que no es completa ni óptima Sus propiedades: Completa?? No: puede caer en caminos infinitos, con bucles, p.e. Iasi → Neamt → Iasi → Neamt → Completa en espacios finitos evitando estados repetidos Tiempo?? O(bm) (se deben recorrer todos los nodos) Espacio?? O(bm) (se deben almacenar todos los nodos) Optima?? No Las complejidades temporal y espacial pueden reducirse sustancialmente con un buen heurı́stico c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 10 búsqueda A* La idea es combinar: la búsqueda voraz, que minimiza el coste al objetivo h(n) la búsqueda de coste uniforme, que minimiza el coste acumulado g(n) La función de evaluación será f (n) = g(n) + h(n): estimación del coste total del camino más barato al objetivo a través del nodo n Expande primero el nodo no expandido que conlleva un camino con menor estimación de coste Implementación: Eval-Fn = g + h La búsqueda A* es completa y óptima siempre que h(n) sea un heurı́stico admisible: estimación del coste del nodo al objetivo que no supera el coste real c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 11 ejemplo de búsqueda A* Arad f=0+366 =366 Sibiu f=140+253 =393 Arad Timisoara f=118+329 =447 Zerind f=75+374 =449 Sibiu Arad Timisoara f=118+329 =447 Zerind f=75+374 =449 Arad Fagaras Oradea Rimnicu f=280+366 f=239+178 f=146+380 f=220+193 =646 =417 =526 =413 Arad Timisoara Zerind f=118+329 f=75+374 =447 =449 Arad Fagaras Oradea Rimnicu f=280+366 f=239+178 f=146+380 =646 =417 =526 Craiova Pitesti Sibiu f=366+160 f=317+98 f=300+253 =526 =415 =553 Sibiu c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 12 Si h es un heurı́stico admisible, f no decrecerá a lo largo de todo camino desde la raı́z, con lo que podremos dibujar contornos en el espacio de estados: O N Z I A S 380 F V 400 T R P L H M U B 420 D E C G A* expande nodos en bandas de valor de f creciente: es completa y óptima c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 13 Propiedades de la búsqueda A*: Completa?? Sı́, excepto si hay infinitos nodos con f ≤ f (G) Tiempo?? En general, exponencial con la longitud de la solución Espacio?? O(bd) (se deben almacenar todos los nodos) Optima?? Sı́, porque no expande la banda fi+1 hasta haber terminado con la fi Además: ningún otro algoritmo óptimo, para cualquier heurı́stico, expande menos nodos que la búsqueda A* Algunos algoritmos recientes resuelven el problema espacial de A* sin comprometer la completitud y la optimalidad: IDA* (de iterative deepening A*) SMA* (de simplified memory-based A*) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 14 Funciones heurı́sticas Ejemplos de heurı́sticos admisibles para el puzzle de las 8 piezas: h1(n) = número de piezas en posición incorrecta h2(n) = suma de las distancias de las piezas a sus posiciones finales, usando la distancia de Manhattan de la pieza: suma de las distancias horizontal y vertical a la posición final 5 4 6 1 88 6 8 7 3 22 7 5 1 Start State 4 2 3 84 6 25 Goal State h1(Start) =?? 7 h2(Start) =?? 2+3+3+2+4+2+0+2 = 18 c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 15 Se puede ver que h2(n) ≥ h1(n) para cualquier nodo ; h2 domina a h1 La dominación se traduce en eficiencia: un heurı́stico dominante expande menos nodos notar que se expanden los nodos tales que f (n) < f ∗ ≡ h(n) < f ∗ − g(n), siendo f ∗ el coste de la solución óptima Ejemplo: el coste de resolver el puzzle de las 8 piezas mediante las estrategias de búsqueda por profundización iterativa y A* con heurı́sticos h1 y h2 d = 14 profundización iterativa → 3.473.941 nodos A* con h1 → 539 nodos A* con h2 → 113 nodos d = 24 profundización iterativa → ¡demasiados nodos! A* con h1 → 39.135 nodos A* con h2 → 1.641 nodos Es preferible usar una función heurı́stica dominante siempre y cuando sea admisible c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 16 Un heurı́stico admisible puede obtenerse a partir de la solución exacta a una versión menos restringida del problema original (problema relajado) h1(n) y h2(n) pueden verse como soluciones a problemas relajados: h1(n), al problema en que las piezas pueden moverse directamente a cualquier posicion h2(n), al problema donde las piezas pueden moverse a cualquier posición horizontal o vertical adyacente A partir de una descripción formal del problema original se pueden generar automaticamente heurı́sticos: Absolver (Prieditis, 1993) Es necesario un compromiso entre el coste de la función heurı́stica y la mejora que supone en la búsqueda c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 17 Algoritmos de mejora iterativa En muchos problemas el estado objetivo es la solución, siendo irrelevante el camino por el que se ha obtenido, p.e. el problema de las 8 reinas La idea de los algoritmos de mejora iterativa es comenzar con una configuración completa e ir modificándola para mejorar su calidad, p.e. c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 18 Los algoritmos de mejora iterativa intentan encontrar “picos” en una “superficie” de estados donde la altura está definida por la función de evaluación: evaluation current state notar que sólo necesitan información del estado actual Dentro de los algoritmos de mejora iterativa: ascenso/descenso de gradiente (hill-climbing o gradient descent) c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 19 ascenso de gradiente La búsqueda por ascenso de gradiente intenta introducir modificaciones que mejoren la evaluación del estado actual: function HILL-CLIMBING( problem) returns a solution state inputs: problem, a problem static: current, a node next, a node current MAKE-NODE(INITIAL-STATE[problem]) loop do next a highest-valued successor of current if VALUE[next] < VALUE[current] then return current current next end Aunque parece como “escalar el Everest con niebla espesa y con amnesia”, a menudo es la estrategia adecuada en problemas complicados c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 20 Cuando hay varios sucesores posibles se puede escoger uno al azar. Inconvenientes de ésto: • máximos locales, picos más bajos que el pico más alto del espacio de estados • mesetas, áreas donde la función de evaluación es casi plana • crestas, con pendientes laterales pronunciadas pero con una pendiente hacia el pico muy suave En los casos anteriores el algoritmo no progresa ; una solución es realizar una serie de búsquedas desde distintos puntos iniciales elegidos aleatoriamente (ascenso de gradiente con reinicio aleatorio) El éxito de la búsqueda por ascenso de gradiente depende del perfil de la superficie que se recorre c S.Russell & P.Norvig, 1998) Transparencias IA (F29) – M.Marcos, 2002 (a partir de AIMA Slides Tema 4 21