Búsqueda Heurística (1ª parte)

Documentos relacionados
Algoritmos de búsqueda informada

Inteligencia Artificial

3ra. Practica. Algoritmos de Búsqueda. Inteligencia Artificial Prácticas 2004/2005

Tema 2: Búsqueda. Formalización de la resolución de problemas Ejemplos Procedimiento general de búsqueda Estrategias de control Búsqueda heurística

Tema 2: Búsqueda. Resolución de problemas: formalización. Búsqueda en espacio de estados. Ejemplos. Búsqueda en espacio de estados.

Inteligencia Artificial

Búsqueda no-informada

Algoritmos de Búsqueda Informados. Tomas Arredondo Vidal 16/6/2010

Búsqueda Heurística III

Tema 2: Juegos unipersonales

Búsqueda en línea y Búsqueda multiagente

Estimar la adecuación de un nodo para ser expandido.

Búsqueda Informada. Heurísticas

Hoja de Problemas Tema 2 Búsqueda no-informada

Semana 4: Métodos de Búsqueda No informados. Prof. Oscar Benito Pacheco.

No se permiten libros ni apuntes. Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4 TOTAL NOTA

(b) Cuál es la desventaja principal de una heurística con aprendizaje? es más informada que otra función heurística optimista h 2 *?

Búsqueda con información, informada o heurística

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

Resolviendo Problemas Buscando Soluciones. Tomás Arredondo Vidal 16/6/2010

Solución de Problemas Mediante Búsqueda (2) Carlos Hurtado Depto de Ciencias de la Computación, Universidad de Chile

ALGORITMOS DE BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Inteligencia Artificial

Estado 3.2 (coste = 9)

Inteligencia Artificial Búsqueda informada y exploración

Búsqueda en espacio de estados

Hoja de Ejercicios. Temas 1 y 2

Inteligencia Artificial

25/09/2014 BÚSQUEDA INFORMADA BÚSQUEDA VORAZ PRIMERO EL MEJOR (BÚSQUEDA ÁVARA / BÚSQUEDA PRIMERO EL MEJOR) EJEMPLO BÚSQUEDA VORAZ

Inteligencia Artificial Búsqueda informada y exploración

Búsqueda en espacio de estados

Agentes que resuelven problemas

Búsqueda Informada. Algoritmos primero el mejor Algoritmos de búsqueda local

Inteligencia Artificial FCC-BUAP. Esaú Villatoro Tello Alfonso Garcés Báez

Universidad Nacional de Educación a Distancia Ingeniería Técnica en Informática de Sistemas Introducción a la Inteligencia Artificial (2º curso)

Inteligencia Artificial

Ejemplo. Ejemplo. 8-puzzle. Formulación de un Problema de Búsqueda. Inteligencia Artificial 2º cuatrimestre de Algoritmos de Búsqueda

RESOLUCIÓN DE PROBLEMAS, BÚSQUEDA. Ing. Ronald A. Rentería Ayquipa

Tema 4: Búsqueda informada mediante técnicas heurísticas

Solución de Problemas Mediante Búsqueda (1) Carlos Hurtado L. Depto de Ciencias de la Computación, Universidad de Chile

25/09/2014 BÚSQUEDA NO INFORMADA / BÚSQUEDA CIEGA INTRODUCCIÓN BÚSQUEDA SUPOSICIONES DEL ENTORNO FORMULAR-BUSCAR-EJECUTAR

Resolviendo Modelos de Mapas

Búsqueda en e.e. --> reglas para elegir entre las ramas que con más probabilidad lleven a la solución.

Tema 3: Técnicas básicas de búsqueda para la resolución de problemas

Inteligencia Artificial I 3ra. Práctica: Algoritmos de Búsqueda

Ejercicio 1: [20 puntos: respuesta acertada = +1, respuesta incorrecta = 1]

9. Técnicas Basadas en Búsquedas Heurísticas

Búsqueda Heurística. Branch and Bound, Best First Search A, A IDA Búsqueda local (Hill climbing, Simulated annealing, Alg.

SISTEMAS INTELIGENTES

IV. Métodos de Búsqueda Estudiaremos los métodos de búsqueda para resolver problema de la IA

Inteligencia Artificial

Inteligencia Artificial II Unidad Plan 2010-Ingeniería en Sistemas Computacionales

Práctica 2. Búsqueda I

Métodos de Inteligencia Artificial

Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:

Francisco J. Hernández López

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

1.1. Exponer la especificación PAMA de un agente software encargado de servir de asistente en una herramienta de desarrollo (Netbeans o VS)

BÚSQUEDA. Vicente Martínez Orga

Planeación y Búsqueda. IA Planeación de Trayectorias y Métodos de Búsqueda

Programación Lineal. Modelo de Redes. Alcance de las aplicaciones. Curso: Investigación de Operaciones Ing. Javier Villatoro

Dualidad. Dpto. Ingeniería Industrial, Universidad de Chile. 22 de abril de IN3701, Optimización

Parte de Algoritmos de la asignatura de Programación Master de Bioinformática. Grafos

1. Método general. 2. Análisis de tiempos de ejecución. 3. Ejemplos de aplicación Problema de las 8 reinas Problema de la mochila 0/1.

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Planeación de Trayectorias y Métodos de Búsqueda. Dr. Jesús Antonio González Bernal

Algoritmo de Kruskal

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Metaheurísticas y heurísticas. Algoritmos y Estructuras de Datos III

ARBOLES GENERADORES. Orlando Arboleda Molina. 16 de septiembre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Funciones continuas e inyectivas

Ejercicios Propuestos de Métodos de Búsqueda

9. Programación lineal entera.

Tema 2, 3 y 4 GRUPO 82 - INGENIERÍA INFORMÁTICA. Bernardo D Auria. 3 Diciembre Departamento de Estadística. Universidad Carlos III de Madrid

Modelos de Informática Teórica Capítulo 2 - Clases de Complejidad

PARTE II: ALGORÍTMICA

Algoritmos de búsqueda con espacio de memoria limitado

INGENIERÍA EN SISTEMAS Y COMUNICACIONES

Transcripción:

Búsqueda Heurística (1ª parte) Ingeniería Informática, 4º Curso académico: 2011/2012 Profesores: Ramón Hermoso y Matteo Vasirani 1

Tema 2: Agentes basados en Búsqueda Resumen: 2. Agentes basados en búsqueda 2.1. Búsqueda en espacios de estados 2.2 Búsqueda no-informada 2.3. Búsqueda heurística 2.4. Búsqueda multiagente 2.5. Búsqueda con espacios estructurados 2

Búsqueda en amplitud: análisis Ventajas: completo: siempre se encuentra un nodo meta si existe óptimo (para operadores de coste uno): siempre se encuentra el nodo meta menos profundo Problemas: Complejidad exponencial en espacio y en tiempo incluso en el mejor caso Optimalidad (para el problema general) No es óptimo para operadores cualesquiera 3

Problema de encontrar rutas Estado: estancia en una ciudad Coste de un operador: distancia por carretera a la ciudad vecina Operadores: ir a una ciudad vecina Coste de un plan: suma de distancias entre las ciudades visitadas Oradea Neamt Zerind 71 87 75 151 Iasi Arad 92 140 Sibiu 99 Fagaras 118 Vaslui 80 Rimnicu Timisoara 97 142 211 111 Pitesti Lugoj 98 Hirsova 70 146 101 85 Urziceni Mehadia Bucarest 86 75 138 Eforie Dobreta 120 90 Caiova Giurgiu 4

Problema de encontrar rutas: ejemplo O Z 71 75 151 A 140 S 118 80 R T 111 L 70 146 M 75 D 120 99 97 P 138 C F 101 211 G 90 B N 85 U 87 142 I 92 V 98 H 86 E Ejemplo: p 1 = A-S-F-B c(p 1 ) = 450 p 2 = A-S-R-P-B c(p 2 ) = 418 Problema: los métodos de búsqueda no informados encuentran el nodo meta de menor profundidad; éste puede no ser el nodo meta de coste mínimo prof.(b p1 ) = 3 < 4 = prof.(b p2 ) / c(p1) = 450 > 418=c(p2) 5

Búsqueda de coste uniforme Búsqueda de coste uniforme: Inglés: uniform cost search Idea: guiar la búsqueda por el coste de los operadores Método: g(n): coste mínimo para llegar del nodo inicial al nodo n expandir siempre el nodo de menor coste g primero Algoritmo: almacenar cada nodo con su valor g insertar los nuevos nodos en abierta en orden ascendente según su valor g {búsqueda de coste uniforme} abierta s 0 Repetir Si vacío?(abierta) entonces devolver(negativo) nodo primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores expandir(nodo) Para cada n sucesores hacer n.padre nodo ordinsertar(n,abierta,g) Fin {repetir} 6

Ejemplo: Búsqueda de coste uniforme g = 0 S g=140 g= 118 Z g =75 R g=220 A O F g=280 g=291 g =239 L A g=229 g=236 O g=146 A g=150 g=300 g=317 S P C g=366 T g = 340 M g= 299 Z g = 212 S g= 292 g=290 g=225 S Z T g=268 B O A g=283 g=287 O A g=296 g=300... 7

Lógica de la búsqueda de coste uniforme Z 75 71 O 151 N 87 I 118 A 140 T 111 70 75 D S 80 R L 146 M 120 99 97 P 138 C F 101 211 G 90 B 85 U 142 92 V 98 H 86 E g = 80 g = 120 g = 160 8

Características de la búsqueda de coste uniforme Análisis: La búsqueda de coste uniforme enumera sucesivamente todos los nodos del espacio de estados por costes (valores de g) crecientes La búsqueda de coste uniforme es completa: al ser los costes números enteros positivos, la sucesión de valores de g no es acotada por tanto, si un nodo meta existe en el espacio de estados, será expandido alguna vez La búsqueda de coste uniforme es óptima: Al expandir todos los nodos del espacio de estados por valores crecientes de g, cuando se expande el primer nodo meta, éste será el nodo meta de menor valor de g, es decir de menor coste 9

Características de la búsqueda de coste uniforme Nótese: El análisis de completitud y optimalidad de la búsqueda de coste uniforme se basa en que el hecho de que la sucesión de costes (valores de g) nunca disminuye Coste g No se da este caso! Problema: La búsqueda de coste uniforme degenera en la búsqueda en amplitud si g(n) = profundidad(n) para todos los nodos n Se heredan todas sus propiedades negativas de complejidad en el peor caso: Si δ es el coste medio de los operadores entonces: Complejidad en tiempo en el peor caso: f w O(b δ ) Complejidad en espacio en el peor caso: f w O(b δ ) n 1 n m1 n m2 10

Tema 2: Agentes basados en Búsqueda Resumen: 2. Agentes basados en búsqueda 2.1. Búsqueda en espacios de estados 2.2 Búsqueda no-informada 2.3. Búsqueda heurística 2.4. Búsqueda multiagente 2.5. Búsqueda con espacios estructurados 11

Heurísticas Heurística (griego: heuriskein): encontrar, descubrir : compila conocimiento empírico sobre un problema / un entorno Interpretación fuerte : una heurística suele facilitar la resolución de un problema, pero no garantiza que se resuelva una heurística es una regla de tres para un problema búsqueda: optimalidad o incluso completitud no garantizados Interpretación débil : método riguroso + información heurística información heurística puede mejorar el rendimiento medio de un método de resolución de problemas, pero no garantiza una mejora en el peor caso búsqueda: mejora de complejidad no garantizado 12

Funciones heurísticas Funciones heurísticas para búsqueda en el espacio de estados: estiman de adecuación de un nodo para ser expandido métodos de búsqueda el mejor primero eligen el nodo más prometedor para expandir Heurística usual: distancia hacia la meta h :N ℵ mide el coste real desde el nodo n hasta el nodo meta más cercano h * :N ℵ es una función heurística que estima el valor de h(n) una función heurística h * es optimista, si h * (n) h(n) para todo nodo n Ejemplos de funciones heurísticas optimistas: mundo de los bloques: número de bloques descolocados encontrar rutas: distancia en línea recta hasta un nodo meta 13

Función heurística para encontrar rutas O Z 71 75 151 A 140 S 118 80 R T 111 L 70 146 M 75 D 120 99 97 P 138 C F 101 211 G 90 B N 85 U 87 142 I 92 V 98 H 86 E h * A 366 B 0 C 160 D 242 E 161 F 178 G 77 H 151 I 226 L 244 M 241 N 234 O 380 P 98 R 193 S 253 T 329 U 80 V 199 Z 374 14

Búsqueda A * Idea: minimizar el coste estimado total de un camino en el árbol de búsqueda combinar el coste para llegar al nodo n (se conoce exactamente: g), y el coste aproximado para llegar a un nodo meta desde el nodo n (estimado por la función heurística h * ) Función heurística de A * : f (n) = g(n)+h(n): coste real del plan (camino) de mínimo coste que pasa por n f * (n) = g(n)+h * (n): estimación de f Estrategia A * : entre las hojas del árbol de búsqueda, elegir el nodo de valor f * mínimo 15

El Algoritmo A * Algoritmo A* : se basa en la búsqueda general almacenar el valor g de cada nodo expandido mantener la lista abierta ordenada por valores crecientes de f * insertar nuevos nodos en abierta según sus valores f * {A*} abierta s 0 Repetir Si vacío?(abierta) entonces devolver(negativo) nodo primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores expandir(nodo) Para cada n sucesores hacer n.padre nodo ordinsertar(n,abierta, f * ) Fin {repetir} 16

Ejemplo: Búsqueda A * f * = 0+366 = 366 S f * = 140+253 = 393 T f * = 118+329 = 447 Z f * = 75+374 = 449 A f * = 280+366 = 646 F O R f * = 239+178 = 417 f * = 146+380 = 526 f * = 220+193 = 413 S f * = 338+253 = 591 B f * = 450+0 = 450 C f * = 366+160 f f P * = 317+98 S * = 300+253 = 526 = 415 = 533 f * = 414+193 = 607 f * = 455+160 = 615 R C B f * = 418+0 = 418 17

Valores de f * en árboles de búsqueda A * Tipos de variación de los valores de f * a lo largo de un camino desde la raíz hasta un nodo n j f * f * f * h * consistente f * (n j ) f * (n j ) f * (n j ) n 1 n j n 1 n j n 1 n j (a) variable (b) acotado por f * (n j ) (c) monótono creciente 18

Definición: Funciones heurísticas consistentes Si para todo nodo n i y todo sucesor n j de n i se cumple que h * (n i ) h * (n j ) c(n i,n j ) entonces h * es consistente Interpretación intuitiva: h * estima también implícitamente el coste de cada operador h * es consistente si subestima el coste de todos los operadores h * (n i ) h * (n i )- h*(n j ) h * (n j ) n i n j c(n i,n j ) n g Nótese: Si h * es consistente, entonces también es optimista Pero existen funciones heurísticas h * optimistas que no son consistentes 19

Monotonía de f * con función heurística consistente Lema 1: Si h * es consistente, entonces f * crece de forma monótona en todos los caminos del árbol de búsqueda, es decir: si n j es sucesor de n i, entonces f * (n j ) f * (n i ) Prueba: h * (n j ) h * (n i ) c(n i,n j ) h * (n j ) + g(n j ) h * (n i ) + g(n j ) c(n i,n j ) h * (n j ) + g(n j ) h * (n i ) + g(n i ) + c(n i,n j ) c(n i,n j ) f * (n j ) f * (n i ) Corolario 1: Sea n m el mejor nodo meta. Si h * es consistente, entonces el algoritmo A * expande todos los nodos n i tal que f * (n i ) f * (n m ) 20

La estrategia de A * con función heurística consistente Si nos alejamos de la meta: g crece y h * crece, por lo que f * crece mucho Si nos acercamos de la meta: g crece y h * disminuye, por lo que f * crece poco 118 Z 75 A T 71 111 75 D O 140 70 L M 151 120 S 80 R 146 C 99 97 138 P F 101 211 G 90 B N 85 U 87 142 I 98 92 V H 86 E f * = 380 f * = 400 f * = 420 21

Cota de f * con función heurística optimista Lema 2: Sea camino_a(n m ) el conjunto de nodos en el camino desde la raíz a un un nodo meta n m cualquiera. Si h * es optimista, entonces para todos los Prueba: nodos n j camino_a (n m ) se verifica que f * (n j ) f * (n m ) f * (n m ) = g(n m )+h * (n m ) = g(n m ) (dado que h * es optimista) = c(n i,n 2 )+...+c(n j-1,n j )+c(n j,n j+1 )+...+c(n m-1,n m ) (definición de g) f * (n m ) c(n 1,n 2 )+...+c(n j-1,n j )+h(n j ) (definición de h) f * (n m ) c(n 1,n 2 )+...+c(n j-1,n j )+h * (n j ) (dado que h * es optimista) f * (n m ) g(n j )+h * (n j ) (definición de g y f * ) f * (n m ) f * (n j ). 22 4º Ing. Sup. Inf

Valores de f * en árboles de búsqueda A * f * f * (a) variable (b) acotado por f * (n m ) (c) monótono creciente f * f * (n j ) f * (n m ) f * (n j ) n 1 n j h * optimista (nodos cualesquiera) n 1 h * optimista (nodos meta) n j n 1 h * consistente n j Corolario 2: Sea n m el mejor nodo meta, y camino_a(n i ) el conjunto de nodos n j en el camino desde la raíz a un nodo n i cualquiera (n i incluido). Si h * es optimista, entonces el algoritmo A * expande todos los nodos n i tal que n j camino_a (n i ). f * (n j ) f * (n m ) 23 4º Ing. Sup. Inf

Optimalidad de A * Teorema 1: Si h * es optimista, entonces el método A * es óptimo Prueba: Sean n m1 y n m2 dos nodos meta cualesquiera distintos, y n m1 el nodo meta de menor coste (es decir: g(n m1 )<g(n m2 )). 1. f * (n m1 ) = g(n m1 )+h * (n m1 ) =g(n m1 )+0 y (por las definiciones de f * y g f * (n m2 ) = g(n m2 )+h * (n m2 ) =g(n m2 )+0 y dado que h * es optimista) Con la suposición se sigue que f * (n m1 ) < f * (n m2 ) 2. Supongamos que n m2 se encuentra antes que n m1. Puesto que el algoritmo A * expande los nodos del árbol por valores crecientes de f *, debe existir un nodo n i camino_a(n m1 ) tal que f * (n m2 ) f * (n i ). 3. Pero por el lema 2 y (1) sabemos que n j camino_a(n m1 ). f * (n j ) f * (n m1 ) < f * (n m2 ). Contradicción (no puede existir el nodo n i de (2)) 4. Por tanto, para cualesquiera dos nodos meta, A * encuentra el de menor coste antes, lo que implica que es óptimo. 24 4º Ing. Sup. Inf

Completitud de A * Teorema 2: El método A * es completo Prueba: sea n m un nodo meta y camino_a(n m ) el conjunto de nodos en el camino de la raíz a n m. Suponga que n m no es encontrado por el método A * ya que el número de sucesores de un nodo es finito, debe haber un camino infinito p, tal que se expanden todos los nodos n i de p antes de n m la secuencia de valores de g a lo largo de p aumenta estrictamente (el coste de los operadores es > 0) y dado que por definición h * (n) 0, existe algún n k en * * * p con f ( n k ) = g( n k ) + h ( n k ) > n j max camino _ a( n [ f ( n )] el algoritmo expande los nodos sucesivamente por valores de f * crecientes, por lo que todos los nodos en el camino a n m (incluido n m ) son expandidos antes que el nodo n k contradicción; en consecuencia, el método A * encuentra el nodo meta n g m ) j 25 4º Ing. Sup. Inf

Ejercicio 3.1 Búsqueda de coste uniforme: Aplique la búsqueda de coste uniforme para encontrar una ruta de Pitesti (P) a Fagaras (F). Desarrolle el árbol de búsqueda generado por dicho algoritmo, asumiendo que se evitan ciclos simples. Indique el valor g de cada nodo, así como el orden en el que se expanden los nodos. 26

Ejercicio 3.2 Algoritmo A * : Suponga el mundo de los bloques con el estado inicial y el estado meta que se muestran al lado. Se trata de aplicar algoritmo A* a este problema, suponiendo que se filtran ciclos simples. Como función heurística consistente, use el número de bloques descolocados. a) Desarrolle el árbol de búsqueda que genera el algoritmo A*, incluyendo los valores de g, h *, y f * de cada nodo. Indique el orden en que se expanden los nodos b) Ponga el estado de la lista abierta en cada paso del algoritmo Estado inicial C A B Estado meta A B C 27

Ejercicio 3.3 Optimalidad del algoritmo A * El grafo que se muestra al lado describe un problema de búsqueda. Suponga que A es el estado inicial y que F y E son estados meta. Los arcos están etiquetados con el coste real de los operadores. h * es una función heurística a) Desarrolle el árbol de búsqueda que genera el algoritmo A *. Indique el orden en que se expanden los nodos Cuál de los nodos meta se encuentra primero? b) La función heurística es consistente y/o optimista? Argumente su respuesta. 7 B A 4 3 C D E F 4 3 h * A 8 B 6 C 6 D 5 E 0 F 0 28