Búsquedas basadas en Heurísticas Dr Jesús Antonio González Bernal Dr. Heurística í y Técnica que mejora la eficiencia de un proceso de búsqueda, búsqueda posiblemente sacrificando completez, pero ahorrando tiempo dee búsqueda. úsque a. y Ej. Guía de turistas. 2 Heurística í y Ayuda a evitar una explosión combinatoria. y Rara vez se necesita obtener la solución óptima (lugar de estacionamiento). y Aunque q las aproximaciones p obtenidas por p una heurística pueden no ser buenas en el peor caso, éste rara vez se presenta en el mundo real. y Comprender por qué funciona una heurística, o por qué no, ayuda a comprender el problema. 3 Búsquedas ú heurísticas í y Se utilizan básicamente en dos situaciones: y Un problema no tiene soluciones conocidas. y Un problema p tiene una solución precisa p ppero tiene un costo computacional prohibitivo. 4 Búsquedas ú heurísticas í • NO es infalible. • Consisten en dos partes: – La medida heurística. – Un algoritmo que usa la medida para buscar en el espacio de estados. estados Heurística f(n) = g(n), costo uniforme f(n) ( ) = h(n), ( ) búsqueda q heurística p pura f(n) = g(n) + h(n), algoritmo A* ¿qué camino seguir? Opciones ordenadas conforme f(n) 5 Técnicas é heurísticas í y Best-first search. search y A* y Hill climbing. li bi y Recocido simulado. y ACO 6 Búsqueda Mejor el Primero Best First Search y Búsqueda el primero mejor / “Búsqueda Preferentemente por lo mejor”” y Estrategia de Control Sistemática. y Combina ventajas de: y Depht First Search. y Breadht First Search 8 Best First Search y DESCRIPCIÓN Ó y Selecciona siempre el nodo más “prometedor” y Posición en el árbol: No es tomada en cuenta. y Uso de información -> Funciones de Evaluación 9 Best First Search y VENTAJA y Llega a la solución sin expandirse completamente. y DESVENTAJA y El camino no es necesariamente el más óptimo 10 Best First Search 11 ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D 12 E 8 G J 3 3 6 B K L F 12 0 ÁRBOL A EXPLORAR 20 H 13 Open: H (20) ÁRBOL A EXPLORAR 20 H 14 16 A 14 Open: A (14) C (16) C ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D 15 Open: E D (9) E(5) C(16) ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D 16 Open: E D(9) C(16) ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D E 3 6 K 17 Open: L K(3) L(6) C(16) ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D E 3 6 K 18 Open: L L(6) C(16) ÁRBOL A EXPLORAR 20 H 14 16 C A 9 5 D E 3 6 K L F 19 Open: F(0) C(16) 0 Best First Search: Algoritmo Open Å Estado Inicial 2. Si Open es vacio, retornar fracazo. En caso contrario 1 1. 1 1. 3. Si X es solución, retornar el camino desde la raíz hasta X. En caso contrario 1. 4 4. 20 X Å extraer t nodo d mínimo í i dde O Open usando d “ff ” Open Å Open ∪ {sucesores de X no expandidos} I a paso 2 Ir Función ó de Evaluación: ó BFS y BFS puede utilizar de forma básica dos funciones de evaluación y f(n) = g(n): suma de los costos desde la raíz hasta n y f(n) = h(n): estimación de costo mínimo desde n hasta una solución 21 BFS: Análisis á y f(n) = g(n) y Se expande un nodo considerando un valor de costo ya conocido ((no es una aproximación) p ) y El algoritmo es completo y óptimo, ya que encontrará la mejor solución en ggrafos finitos y f(n) = h(n) y No ggarantiza q que se encuentre la mejor j solución y Se comporta como un algoritmo no completo en grafos infinitos 22 A* y Algoritmo basado en BFS y Función de evaluación y f(n) = g(n) + h(n) 23 A* – Ejemplo j p #2 Resolver el problema del 8-puzzle mediante un algoritmo BFS genérico teniendo en cuenta los siguientes puntos Estado inicial 2 8 3 - 1 4 7 6 5 24 Estado Final 1 2 3 8 - 4 7 6 5 A* – Ejemplo 2 g(n) = 2 8 3 - 1 4 7 6 5 h(n) = 4 fichas 25 Reglas: •g(n) ( ) = 1 por arco recorrido id •h(n) = hsimple(n), es decir, el número de celdas que se encuentran mal colocadas incluyendo la posición vacía. •Orden de aplicación de operadores: Arriba, Abajo, I Izquierda, i d D Derecha h •En caso de empate, seleccionar el nodo más antiguo antiguo. A* – Ejemplo 2 2 8 3 1 ‐ 4 7 6 5 2 8 3 - 1 4 7 6 5 - h( ) = 4 fifichas h(n) h 8 3 2 1 4 7 6 5 h(n) = 4 fichas 2 8 3 7 1 4 26 - 6 5 h(n) = 5 fichas A* – Ejemplo 2 2 8 3 - 1 4 7 6 5 2 8 3 1 ‐ 4 7 6 5 2 8 3 1 6 4 7 - 5 2 ‐ 3 h( ) = 5 fifichas h(n) h 1 8 4 - 8 3 7 6 5 h(n) = 4 fichas 2 1 4 7 6 5 2 8 3 27 2 8 3 7 1 4 - 6 5 1 4 ‐ 7 6 5 h(n) = 5 fichas A* – Ejemplo#2 2 8 3 - 1 4 7 6 5 28 2 8 3 1 ‐ 4 7 6 5 - 8 3 2 1 4 7 6 5 2 8 3 7 1 4 - 6 5 2 8 3 2 ‐ 3 1 6 4 1 8 4 7 - 5 7 6 5 2 8 3 1 4 ‐ 7 6 5 8 ‐ 3 2 1 4 7 6 5 h(n) = 4 fichas A* – Ejemplo#2 2 7 29 2 8 3 1 ‐ 4 7 6 5 2 8 3 2 ‐ 3 1 6 4 1 8 4 7 - 5 7 6 5 2 8 3 1 4 ‐ 7 6 5 - 8 3 8 ‐ 3 8 3 2 1 4 2 1 4 1 4 7 6 5 7 6 5 6 5 2 8 3 7 1 4 - 6 5 2 8 3 7 1 4 6 - 5 h(n) = 6 fichas A* – Ejemplo#2 2 7 30 8 3 1 4 6 5 2 8 3 1 ‐ 4 7 6 5 2 8 3 1 6 4 7 - 5 2 ‐ 3 1 8 4 7 6 5 2 8 3 1 4 ‐ 7 6 5 - 8 3 8 ‐ 3 2 1 4 2 1 4 7 6 5 7 6 5 2 8 3 2 8 3 7 1 4 7 1 4 - 6 5 6 - 5 2 3 - 1 8 4 7 6 5 - 2 3 1 8 4 7 6 5 A* – Ejemplo#2 2 7 8 3 1 4 6 5 2 8 3 1 6 4 2 3 - 7 - 5 1 8 4 7 6 5 - 2 3 1 8 4 7 6 5 2 8 3 2 ‐ 3 1 ‐ 4 1 8 4 7 6 5 7 6 5 2 8 3 1 4 ‐ 7 6 5 - 8 3 2 1 4 7 6 5 8 ‐ 3 3 - 2 1 4 7 6 5 8 1 3 2 - 4 7 6 5 2 1 4 7 6 5 31 8 2 8 3 2 8 3 7 1 4 7 1 4 - 6 5 6 - 5 A* – Ejemplo#2 2 7 32 8 3 1 4 6 5 2 8 3 2 3 - 1 6 4 1 8 4 7 - 5 7 6 5 2 8 3 2 ‐ 3 1 ‐ 4 1 8 4 7 6 5 7 6 2 - 2 3 1 2 3 5 1 8 4 - 8 4 8 3 7 6 5 7 6 5 1 4 ‐ 7 6 5 8 3 - - 8 3 8 ‐ 3 2 1 4 2 1 4 2 1 4 7 6 5 7 6 5 7 6 5 8 1 3 2 - 4 7 6 5 2 8 3 2 8 3 7 1 4 7 1 4 - 6 5 6 - 5 A* – Ejemplo#2 2 7 33 8 3 1 4 6 5 2 8 3 2 3 - 1 6 4 1 8 4 7 - 5 7 6 5 2 8 3 2 ‐ 3 - 2 3 1 ‐ 4 1 8 4 1 8 4 7 6 5 7 6 5 7 6 5 2 8 3 1 4 ‐ 8 3 - 7 6 5 2 1 4 7 6 5 - 8 3 8 ‐ 3 2 1 4 2 1 4 7 6 5 7 6 5 2 8 3 2 8 3 7 1 4 7 1 4 - 6 5 6 - 5 1 2 3 - 8 4 7 6 5 8 1 3 - 2 4 7 6 5 8 1 3 8 1 3 2 4 - 2 - 4 7 6 5 7 6 5 8 1 3 2 6 4 7 - 5 A* – Ejemplo#2 2 7 34 8 3 1 4 6 5 2 8 3 2 3 - 1 6 4 1 8 4 7 - 5 7 6 5 2 8 3 2 ‐ 3 - 2 3 1 ‐ 4 1 8 4 1 8 4 7 6 5 7 6 5 7 6 5 2 8 3 1 4 ‐ 7 6 5 8 3 - 1 2 3 1 2 3 - 8 4 8 - 4 7 6 5 7 6 5 8 1 3 - 2 4 7 6 5 8 1 3 - 8 3 8 ‐ 3 2 1 4 2 1 4 2 1 4 7 6 5 7 6 5 7 6 5 8 1 3 2 4 - 2 - 4 7 6 5 7 6 5 8 1 3 2 6 4 7 - 5 2 8 3 2 8 3 7 1 4 7 1 4 - 6 5 6 - 5 A* – Ejemplo#2 2 7 35 8 3 1 4 6 5 2 8 3 2 ‐ 3 - 2 3 1 ‐ 4 1 8 4 1 8 4 7 6 5 7 6 5 7 6 5 1 2 3 1 2 3 - 8 4 8 - 4 7 6 5 7 6 5