500 likes | 708 Views
Capítulo 4 Búsqueda Heurística. Sección 4.1 Diapositivas de C H v d Becke parcialmente sobre ideas de los prof. Stuart Russell, Peter Norvig y Jeff Thomson. Marvin Minsky (AI Magazine - 1991).
E N D
Capítulo 4 Búsqueda Heurística Sección 4.1 Diapositivas de C H v d Becke parcialmente sobre ideas de los prof. Stuart Russell, Peter Norvig y Jeff Thomson FASTA - IA1 - Clase 8-1
Marvin Minsky (AI Magazine - 1991) • En pequeños dominios, podemos intentar aplicar todos nuestros métodos de mindless search...pero es impráctico porque la búsqueda se vuelve enorme...(CAP 3) • Para reducir la extensión de la búsqueda desinformada debemos incorporarle tipos adicionales de conocimiento - incorporando expertizaje en resolución de problemas durante la tarea de resolución de problemas (CAP 4) FASTA - IA1 - Clase 8-1
Atisbemos el Cap. 6 • El papel que se espera que pueda cumplir la teoría de la representación del conocimiento es el de poder reducir, con su ayuda, laacción inteligente a una simple búsqueda inteligente FASTA - IA1 - Clase 8-1
Repaso • Russell y Norvig han definido con elegancia un algoritmo general para resolver problemas de búsqueda. Este algoritmo puede ser usado para expresar diferentes estrategias específicas de búsquedas. • Un problema se representa como una estructura con componentes: • ESTADO • NODO PADRE • OPERADOR • PROFUNDIDAD • COSTO DE RUTA. FASTA - IA1 - Clase 8-1
Repaso - Algoritmo general de Búsqueda function General-Search(problem, strategy) returns a solution, or failure function General-Search (problem, QUEUING-FN) returns a solution, or a failure { nodes <-- MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop { if nodes is empty then return failure node <-- REMOVE-FRONT(nodes) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes <-- QUEUING-FN(nodes, EXPAND(node, OPERATORS[problem]))}} FASTA - IA1 - Clase 8-1
Conceptos Generales • Una estrategia se define como una forma de darle un orden de prioridades a la expansión de nodos. • Hacer uso de la información con respecto al espacio de estados • aplicar la función de ubicar en cola - cuál nodo de la lista de espera expandir primero • una FUNCION DE EVALUACION que describa la deseabilidad de expandir un nodo • usar conocimiento específico del problema • encontrar soluciones con mayor eficiencia FASTA - IA1 - Clase 8-1
Temas importantes • Búsqueda Primero lo Mejor • Búsqueda A* (A estrella) • Heurística • Escalada (Ascenso a la Cima) • Forjado Simulado FASTA - IA1 - Clase 8-1
SECCIÓN 4.1 Búsqueda Preferente por lo Mejor FASTA - IA1 - Clase 8-1
Algoritmos de búsqueda informada(Búsqueda inteligente) • Búsqueda Heurística • Estrategias de Búsqueda Avara • A* FASTA - IA1 - Clase 8-1
Búsqueda Heurística • Usar información “heuristica” para adivinar cuál nodo expandir • la heurística aparece bajo la forma de una función de evaluación basada en la información específica para el dominio o contexto relacionada con el problema • el problema de búsqueda se puede considerar como la maximización o minimización de una función, como es del todo general. • La función de evaluación nos proporciona una manera de evaluar un nodo “localmente” basado en una estimación del costo de llegar desde el nodo al nodo meta. • Problemas con la Heurística • la heurística suele ser poco certera - problema abierto • valor de la actividad a un meta-nivel - problema abierto • puede no encontrar la mejor respuesta - superado por algoritmo A* FASTA - IA1 - Clase 8-1
4.1 Búsqueda Primero lo Mejor La IDEA ===> usar una función de evaluación para cada nodo - estimar la deseabilidad ==> EXPANDIR EL NODO MÁS DESEABLE ENTRE LOS NO EXPANDIDOS IMPLEMENTACION ===> QUEUINGFN = insertar sucesores en orden decreciente de deseabilidad, quedando en el tope el mejor CASOS ESPECIALES Búsqueda avara A* FASTA - IA1 - Clase 8-1
Búsqueda Primero lo Mejor • Ordenar los nodos de tal forma que el nodo de mejor evaluación sea el primero en ser expandido • la función de evaluación no es omnisciente - provee una medida estimada de la deseabilidad de usar cierta ruta hacia el estado meta • la medida debe incorporar cierto estimado de costo de la ruta desde un estado hacia el estado meta más cercano a él. FASTA - IA1 - Clase 8-1
BPM - Búsqueda primero lo mejor • Idea básica expandir el nodo que maximiza o minimiza la función de evaluación f(n) • Estrategia Avara: f(n) = h(n), donde h(n) estima el costo de llegar desde el nodo n hacia la meta • ¿Qué sucede si a cada paso tratamos de acercarnos al nodo meta? En este caso el método seguirá la ruta más larga, al empezar a moverse hacia delante según la receta Escalada tiene este mismo defecto FASTA - IA1 - Clase 8-1
BPM • Objetivo de la Búsqueda Primero lo Mejor- encontrar velozmente la meta • expandimos el nodo más cercano al nodo meta • para merecer optimalidad, queremos encontrar rapidamente la meta más “chata” (esto es, más cercana al origen) • No ordenamos la lista en términos de distancia hacia la meta, sino que lo hacemos en términos de calidad (escasa profundidad esperada) del nodo más cercano al nodo bajo análisis FASTA - IA1 - Clase 8-1
Búsqueda Avara • La función de evaluación muestra la siguiente heurística: h(n) = costo estimado entre n y la meta • por ejemplo • hDLR(n) = distancia en línea recta desde n hasta Bucarest La búsqueda avara expande el nodo que pareciera estar más cerca de la meta. FASTA - IA1 - Clase 8-1
Búsqueda Avara • Una de las búsquedas Primero lo Mejor más sencillas - MIN costo estimado para llegar a la meta (2º sumando de f = g + h f = h) • ese costo se puede estimar pero no determinar con exactitud; la buena heurística ayuda. • la función heurística h es una función que calcula dichos estimados de costo • h(n) = costo estimado de la ruta más barata desde el estado en n hasta el estado meta. FASTA - IA1 - Clase 8-1
Búsqueda Avara • El nodo con valor h mínimo es el que se va a expandir: cola con privilegios • h puede ser cualquier función, siempre que valga cero en la meta, pero la calidad cambia mucho • las funciones heurísticas son problema -intensivas (son problema - específicas) • en problemas de búsqueda de ruta una buena h es hDLR , donde DLR es distancia en línea recta • una ruta de A a B suele ir en la dirección correcta FASTA - IA1 - Clase 8-1
Búsqueda Avara • Adoptar la primera selección con una visión inmediata, sin preocuparse si ha de ser la mejor con una perspectiva a largas vistas. • La búsqueda halla soluciones en forma rápida, que no siempre son las óptimas • susceptible a falsas largadas (Iasi Fagaras) • Neamt, una ruta muerta sin salida • hay que cuidarse de los estados repetidos • oscilaciones entre Neamt y Iasi FASTA - IA1 - Clase 8-1
Búsqueda Avara • Parecida a BPP, prefiriendo seguir una ruta singular hacia la meta, aunque recula al chocar con una ruta muerta • sufre del mismo defecto - ni es óptima, ni es completa (con una ruta posiblemente infinita) • su complejidad temporal en el peor de los casos es O(b^m), siendo m la profundidad máxima del espacio de búsqueda • complejidad espacial igual a la temporal (guarda todos los nodos en memoria) • una buena h reduce fuertemente la complejidad FASTA - IA1 - Clase 8-1
AVARA- Minimizar el Costo Estimado • Función de evaluación heurística: • h(n) = costo estimado de la ruta entre el nodo n al nodo meta • h(n) = 0, si n es el nodo meta • tabla de distancias lineales a Bucarest => FASTA - IA1 - Clase 8-1
Ejemplo de Búsqueda Avara • En el mapa ya visto anotamos Arad==>Bucarest = 366 km • , h(n) = distancia en línea recta • - Zerind 374 • -Sibiu 253 <== • -Timisoara 329 FASTA - IA1 - Clase 8-1
Ejemplo de Búsqueda Avara • Arad - 366 • Oradea - 380 Fagaras .. 178 • Rimnicu Vicea - 193 FASTA - IA1 - Clase 8-1
Ejemplo de Búsqueda Avara • Sibiiu 253 • Bucarest 0 <==== FASTA - IA1 - Clase 8-1
AVARA- Minimizar el Costo Estimado h(n) = 366 Arad Zerind Sibiu h(n) = 253 h(n) = 329 Timisoara h(n) = 374 193 178 366 380 Fagaras Oradea Rimnicu Arad 253 h(n) = 0 Sibiu Bucharest La verdadera ruta óptima es: Arad Sibiu Rimniu Pitesti Bucharest FASTA - IA1 - Clase 8-1
Propiedades de la búsqueda avara • Completa? • No - puede colgarse en algun bucle • p.ej., Iasi Neamt Iasi Neamt … • Pasa a ser completa en espacio finito si se sujeta a una verificación de estado repetido • Complejidad Temporal: • En el peor caso: O(bm) • pero una buena heurística provoca mejoras dramáticas • Complejidad Espacial: • En el peor caso: O(bm) • mantiene todos los nodos en memoria • Optima? • No FASTA - IA1 - Clase 8-1
Minimizar el costo de ruta total • La búsqueda avara minimiza el costo estimado hasta la meta h(n) • poda fuertemente el costo de búsqueda • ni óptima ni completa • la búsqueda de costo uniforme minimiza el costo hasta ese momento, g(n) • óptima y completa • podría ser muy ineficiente • f(n) = g(n) + h(n) = costo estimado de la solución más barata pasando por (n) FASTA - IA1 - Clase 8-1
Minimizar el costo de ruta total • Observaciones • Supongamos que tenemos un nodo n a una profundidad d en el árbol de búsqueda y que adivinamos que ese nodo se halla a una distancia h(n) de la meta más cercana a él. • La meta estaría entonces a la profundidad d + h(n) en el espacio de problema • En lugar de elegir para la expansión el nodo de mínimo h(n) (distancia esperada hacia la metal), elegimos el de MIN d + h(n) • La profundidad se mide con la función de costo de la ruta g(n) • Queda MIN g(n) + h(n) FASTA - IA1 - Clase 8-1
Búsqueda A* • Idea no expandir trayectos que ya se sabe que son caros • Función de evaluación • f(n) = g(n) + h(n) • g(n) = costo hasta llegar a n • h(n) = costo estimado hasta la meta desde n • f(n) = costo total de ruta pasando por n hasta la meta • A* usa una heurística admisible - no hay sobreestimación de distancia • Teorema - A* es óptimo • Aproximación léase h como “heurístico”, pues es funcíón fuerte de la heurística elegida FASTA - IA1 - Clase 8-1
Optimalidad de A* • Definir f* - el costo de la solución óptima para la ruta • A* expande todos los nodos con f(n)<f* • A* podría expandir algunos de los nodos a la derecha del “contorno de la meta”, para los cuales f(n) = f*, antes de seleccionar el estado meta. • La primera solución encontrada debe ser la óptima, dado que los nodos de todos los contornos subsiguientes tendrán un costo f más alto y con ello un costo g más alto (todos los estados meta tienen h(n) = 0) FASTA - IA1 - Clase 8-1
Forma útil de ver la optimalidad de A* • Lema A* expande nodos en el orden de valores crecientes de f. • Esto implica decir que así como Primero en Amplitud va agregando niveles o capas, A* va agregando contornos “iso-f”, siempre crecientes, todos incluyendo el nodo de inicio y a medida que se acercan a la meta, empiezan a incluir justo la meta y la superan. El contorno “iso-f” llamado i tiene todos los nodos con f=fi. FASTA - IA1 - Clase 8-1
A* - resumen gráfico • Ver figuras con círculos concéntricos deformados, ya no con CONTORNOS equirradiales • FASTA - IA1 - Clase 8-1
“Contornos” concéntricos FASTA - IA1 - Clase 8-1
“Contornos” concéntricos 380 FASTA - IA1 - Clase 8-1
* ------------------------ ------------------------ * n * G1 *G2 Sea una meta subóptima G2 que está en la cola de espera Sea n un nodo sin expandir en el camino más corto hacia una meta óptima G1 A* nunca va a elegir G2 para su expansión Prueba estandar de la optimalidad de A* FASTA - IA1 - Clase 8-1
Optimalidad de A* Teorema: Sea h*(n) el costo real desde n hasta la meta. Si h(n) < h*(n) para todo nodo n, entonces A* siempre va a encontrar un nodo meta óptimo. Prueba: Sea s el nodo meta de mínimo costo. Sea (tentativamente) que A* seleccione un nodo meta subóptimo s’, donde g(s)<g(s’). Sea n un nodo sin expandir en la ruta desde el nodo inicio y el nodo meta óptimo s. Notar que ese nodo sin expandir necesariamente existe, de acuerdo con la suposición previa (en el otro caso, s ya habría sido elegido como el nodo meta). => . FASTA - IA1 - Clase 8-1
Optimalidad de A* Puesto que n no ha sido elegido para su expansión en su ruta hacia s’, se sigue que: f(n) = g(n) + h(n) ³f(s') = g(s') + h(s') = g(s') Dado que h es admisible, g(n) + h*(n) ³ g(n) + h(n) = f(n), y entonces g(n) + h*(n) ³f(s') = g(s') lo cual implica que g(s) ³g(s'). Esto contradice la suposición (tentativa) previa, la que indica que s’ es una meta subóptima.. FASTA - IA1 - Clase 8-1
A* • Una heurística admisible nunca sobreestima el costo de llegar a la meta • un estimado de costo optimista en la solución de un problema es menor -más barato- que el real. • Si h es admisible, f(n) nunca sobreestima el costo real de la mejor solución pasando por n • La búsqueda A* - con f(n) y con h admisible • completa y óptima • hDLR es admisible FASTA - IA1 - Clase 8-1
Conducta de la búsqueda A* • A lo largo de cualquier ruta a partir del inicio, el costo de f nunca decae - esto es casi la regla general de las heurísticas admisibles • una heurística que cumple con esa regla se dice que exhibe MONOTONICIDAD • heurística no-monotónica, caso raro • f(n) = g(n) + h(n) = 3+4 siendo n nodo padre • f(n’)= g(n’)+h(n’) = 4+2 siendo n’ nodo hijo • 6 no tiene sentido ya que el costo de f(n’) debe ser por lo menos 7, ya que la ruta por n’ ha pasado por n. Esta no-monotonicidad debe ser corregida por inconsistente. • Nota sigue siendo una heurística admisible ya que no sobreestima el costo, al contrario, lo infraestima más. FASTA - IA1 - Clase 8-1
Conducta de la búsqueda A* • Realizar entonces una corrección menor que restituya la monotonicidad de una heurística no-monotónica • el costo f nunca decrece durante cualquiera de las rutas partiendo del inicio, suponiendo que h sea admisible • diverge desde el nodo inicial, sumando nodos en zonas anulares concéntricas de costos f, o sea los contornos de iso- f . FASTA - IA1 - Clase 8-1
Conducta de la búsqueda A* • Con una búsqueda de costo uniforme (esto es, A* usando h = 0), las zonas cubiertas entre dos contornos son anillos circulares alrededor del estado de inicio. • Con más heurística (h>0) incorporada, las zonas anulares o contornos se estirarán hacia el estado meta y poco a poco irán delimitando más la ruta óptima, enmarcandola más ajustadamente. • Esto recuerda los cambios de nivel de la BPA FASTA - IA1 - Clase 8-1
Completitud de A* • A* expande nodos en el orden de un creciente f, con lo cual eventualmente expandirá hasta llegar al estado meta • salvo que haya una cantidad infinita de nodos con f(n)< f* • un nodo con un factor de ramificación infinito • una ruta con costo de ruta finito pero con un número infinito de nodos a lo largo de ella FASTA - IA1 - Clase 8-1
Complejidad de A* • La búsqueda A* es OPTIMAMENTE EFICIENTE para cualquier función heurística al contrastarse con otros algoritmos óptimos que compiten con ella. • No hay otro algoritmo que expanda menos nodos que A* • Cualquier algoritmo que no expanda todos los nodos en los contornos entre el contorno del inicio y el de la meta corre el riesgo de no encontrar la solución óptima FASTA - IA1 - Clase 8-1
Complejidad de A* • Complejidad temporal - O(b^d) • Complejidad espacial - O(b^d) • el espacio de búsqueda de A* crece exponencialmente a no ser que sea • h(n)-h*(n) =< O(log h*(n)) • practicamente, el error es a lo menos proporcional al costo de la ruta • el crecimiento exponencial satura a cualquier computadora FASTA - IA1 - Clase 8-1
Complejidad de A* • el uso de una heurística buena provee ventajas enormes • usualmente A* se queda sin espacio antes de quedarse sin tiempo, puesto que mantiene a todos los nodos en memoria FASTA - IA1 - Clase 8-1
A* f(n) = 366 Arad 140 75 118 h(n) = 253 f(n) = 393 h(n) = 329 f(n) = 447 h(n) = 374 f(n) = 449 Zerind Sibiu Timisoara 140 99 151 80 Fagaras Oradea Arad f(n) = 413 Rimnicu f(n) = 417 f(n) = 646 f(n) = 661 146 97 80 Craiova Pitesti Sibiu f(n) = 526 f(n) = 415 f(n) = 553 FASTA - IA1 - Clase 8-1
Resumen de la búsqueda A* • A* usa una heurística admisible. • h(n) £ h*(n), donde h*(n) es el costo verdadero desde n • para rutas sobre terreno, la distancia en línea recta nunca sobreestimará la distancia real de una de ellas. • A* es óptima si h es admisible FASTA - IA1 - Clase 8-1
Resumen de la búsqueda A* • Idea No expandir estados que ya se sabe que son caros • Mejorar la búsqueda de costo uniforme y la búsqueda avara haciendo: f(n) = g(n) + h(n) • g(n) = costo de inicio a n • h(n) = costo estimado desde n hasta meta • f(n) = costo total estimado de la ruta desde inicio a meta pasando por n FASTA - IA1 - Clase 8-1
A* h(n) = 253 f(n) = 393 Sibiu 140 151 99 80 Fagaras Oradea f(n) = 417 Arad f(n) = 413 Rimnicu f(n) = 526 f(n) = 646 99 211 146 97 80 Sibiu Pitesti f(n) = 415 Bucharest Craiova Sibiu f(n) = 553 f(n) = 450 f(n) = 591 f(n) = 526 138 101 97 Bucharest Craiova Rimnicu f(n) = 418 f(n) = 607 f(n) = 615 FASTA - IA1 - Clase 8-1
A* h(n) = 253 f(n) = 393 Sibiu 140 151 99 80 Fagaras Oradea Arad f(n) = 413 Rimnicu f(n) = 417 f(n) = 661 f(n) = 646 146 97 80 Sibiu Pitesti f(n) = 415 Craiova f(n) = 553 f(n) = 526 138 101 97 Bucharest Craiova Rimnicu f(n) = 418 f(n) = 607 f(n) = 615 FASTA - IA1 - Clase 8-1
CONTINÚA • http://www.chez.com/vonvon/clase8_2.ppt • http://www.chez.com/vonvon/clase8_2.ppt • http://www.chez.com/vonvon/clase8_2.ppt • http://www.chez.com/vonvon/clase8_2.ppt • BIBLIOGRAFIA DEL TEMA: • http://www.chez.com/vonvon/ayuda44.html • http://www.chez.com/vonvon/ayuda44.html • http://www.chez.com/vonvon/ayuda44.html • http://www.chez.com/vonvon/ayuda44.html FASTA - IA1 - Clase 8-1