Métodos básicos de Búsqueda

Slides:



Advertisements
Presentaciones similares
INGENIERIA INFORMATICA Y BUSQUEDAS CON ADVERSARIOS
Advertisements

Branch-and-bound Search
Tania Guzmán García Luis González Varela Alexandre González Rivas
INTELIGENCIA ARTIFICIAL
Damas Chinas Condori Mollehuara Miguel Montenegro Rubio Willy
Inteligencia Artificial
Inteligenica Artificial I Alejandro Permingeat Inteligencia Artificial de Russell y Norving 1° edición 1996 Parte II Capítulo V.
REDES SEMANTICAS Y BUSQUEDAS
GRAFOS Presentado por: Oscar Leonardo Ramírez John Freddy Sandoval
ESTRUCTURA DE DATOS Unidad 04 Árboles BINARIOS DE BUSQUEDA.
Algoritmo GENETICO.
Búsqueda con retroceso
Investigación de Operaciones
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA
Grupo 4 Matías Melgar Pablo Carbonell
Inteligencia Artificial Búsqueda informada y exploración
Investigación Algorítmica
Tema 4 Árboles. Conceptos Generales..
ESTRUCTURAS DE DATOS AVANZADAS
Búsqueda Informada Heurísticas.
Inteligencia Artificial Búsqueda informada y exploración
Inteligencia Artificial Búsqueda entre adversarios
Problema: Viajante de Comercio
Solución de problemas por búsqueda inteligente

Métodos óptimos de búsqueda El costo de RECORRIDO del camino debe ser minimizado (aún a expensas de mec. de BÚSQUEDA más complicados) : Costo Uniforme.
METODO DE BUSQUEDA ALGORITMO DE COSTO UNIFORME
Inteligencia Artificial Resolver problemas mediante búsqueda
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
ESTRATEGIAS DE BUSQUEDA A CIEGAS
Fundamentos de Inteligencia Artificial Búsqueda
Inteligencia Artificial Resolver problemas mediante búsqueda
Inteligencia Artificial Gonzalo Villarreal Farah
Teoría de Grafos.
Cecilia Laborde González
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
1 Algoritmos Elementales de Grafos Agustín J. González ELO-320: Estructura de Datos Y Algoritmos 1er.Sem
Material de apoyo Unidad 4 Estructura de datos
Temas importantes para el desarrollo de la segunda parte del TPE
Trabajo presentado por: LUIS FERNANDO OBANDO ING
Capítulo 4 BUSQUEDA INFORMADA.
ARBOLES ESTRUCTURAS DE DATOS.
Solución de problemas por Búsqueda
Agentes de resoluciones d problemas Parte I. Un agente puede adoptar una meta o un propósito para satisfacer.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Métodos de Búsqueda Informada. Búsqueda de la mejor Ruta En esta sección no sólo nos interesa encontrar una posible ruta, sino obtener aquella ruta que.
A LGORITMO DE BÚSQUEDA POR COSTO UNIFORME Dorian López.
Diseño y análisis de algoritmos
Definición, propiedades, recorridos x a q yb w e vu fo.
Ramificación y acotación (Branch and Bound)
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
Árboles.
Árboles Binarios Estructuras de Datos.
Backtracking 1. Método general. 2. Análisis de tiempos de ejecución.
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
TPE 1 - Sistemas de Producción: Rolling Cubes Sistemas de Inteligencia Artifcial Bergez, Brasca y García.
PROBLEMAS DE SATISFACCIÓN DE RESTRICCIONES
Tema 13: Ramificación y poda
Búsqueda en profundidad Se elige la primera alternativa (por convención la de más a la izquierda) y se sigue hacia abajo hasta alcanzar la meta o hasta.
Investigación Algorítmica
Inteligencia artificial
UNIDAD 2 Grafos Árboles abarcadores mínimos Caminos más cortos.
ARBOLES GENERALIZADOS
DISEÑAR Y ELABORAR ALGORITMOS Nombre: anayeli hernandez peralta Grado y grupo: 1 “3” Materia: Informática y computación Maestro: Ángel Buendía Turno: Vespertino.
DISEÑAR Y ELABORAR ALGORITMOS NOMBRE: LAURA PAEZ GARCIA GRADO Y GRUPO: 1 “3” MATERIA: INFORMÁTICA Y COMPUTACIÓN MAESTRO: ÁNGEL BUENDÍA TURNO: VESPERTINO.
Toribio Sarmiento Miguel Sesarego Cruz Rosmery. BUSQUEDA DE LA SOLUCION EN UN ESPACIO ESTADO BUSQUEDA SISTEMATICA O CIEGA EN PROFUNDIDAD EN AMPLITUD NO.
Capítulo 8: Árboles Autor: José Alfredo Jiménez Murillo.
BUSQUEDA POR PROFUNDIDAD INTELIGENCIA ARTIFICIAL
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Transcripción de la presentación:

Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes de estados. Por el momento: - no se intenta encontrar la solución óptima - desarrollo de ‘árbol de búsqueda’

Un ejemplo: Red implícita A D B E C F G S 3 4 5 2 Dos tareas posibles: 1. ENCONTRAR un (el) camino. = costo computacional 2. RECORRER el camino. = costo de recorrido 2. Encontrar caminos óptimos (próximo capítulo).

El árbol asociado de caminos parciales -sin ciclos- F G S 3 4 5 El árbol asociado de caminos parciales -sin ciclos- 2 S A D B E C F G 3 2 4 5

Comentarios: Por el momento no estamos interesados en caminos óptimos, entonces podemos omitir los costos. Significa: SA S A D B E C F G Significa: SDA Signif.: SDEBA Los nodos representan el camino parcial desde la raíz a ellos!!

Terminología: S A D B E C F G Nodo, rama Progenitor, hijo, ancestro, descendiente Nodo raiz, nodo objetivo Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación

Métodos de búsqueda a ciegas Métodos que no usan ningún conocimiento específico acerca del problema: Primero en profundidad Primero en amplitud Búsqueda No-determinística Profundización Iterativa Búsqueda Bi-direccional

Búsqueda primero en profundidad Expandir el árbol tan profundamente como sea posible, retornando a niveles superiores cuando sea necesario.

Búsqueda primero en profundidad = seguim. Cronológ.hacia atrás Seleccionar un hijo convención: izq.-a-derecha Repetidamente ir al hijo siguiente, tanto como sea posible. Volver a las alternativas no visitadas (nivel más alto) solo cuando fuere necesario. A B C E F D G

Algoritmo búsqueda primero en profundidad: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar al frente de COLA los nuevos caminos; 3. IF objetivo alcanzado THEN éxito; ELSE falla;

A D B E C F G S 3 4 5 2 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar al frente de COLA los nuevos caminos; 3. IF objetivo alcanzado THEN éxito; ELSE falla;

Traza de depth-first para el ejemplo: (S) S removido, (SA,SD) computados y agregados (SA, SD) SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SAB,SAD,SD) SAB removido, (SABA,SABC,SABE) comput., (SABC,SABE) agregados (SABC,SABE,SAD,SD) SABC removido, (SABCB) computados, nada agragado (SABE,SAD,SD) SABE removido, (SABEB,SABED,SABEF) computados, (SABED,SABEF)agragados (SABED,SABEF,SAD,SD) SABED removido, (SABEDS,SABEDA.SABEDE) computados, nada agregado (SABEF,SAD,SD) SABEF removido, (SABEFE,SABEFG) computados, (SABEFG) agregado (SABEFG,SAD,SD) objetivo alcanzado: reportar éxito

Criterios de evaluación: Completitud: ¿El algoritmo siempre encuentra un camino? (para toda RED en que al menos un camino exista) Velocidad (complejidad de tiempo en las peores cond.) : ¿Cuál es el máximo número de nodos que puede ser necesario que sean creados? Memoria (complejidad de espacio en las peores cond.) : ¿Cuál es la máxima cantidad de nodos que puede ser necesario almacenar? Expresado en términos de: d = profundidad del árbol b = factor de ramific. (promedio) del árbol m = profundidad de la solución menos profunda

Nota: aproximaciones !! En nuestro análisis de complejidad, no tenemos en cuenta la detección de ciclos . Los resultados solo se aplican ‘formalmente’ a las variantes de nuestros algoritmos SIN verificación de ciclos. Estudiar el efecto de la detección de ciclos en la complejidad es dificultoso: la recarga que implica esta verificación PUEDE o NO ser compensada por la reducción de tamaño del árbol. Además: nuestro análisis NO toma en cuenta la longitud (espacio) de representación de caminos !!

Completitud (depth-first) Completo para REDES FINITAS. (= REDES con número finito de nodos) IMPORTANTE: Esto is debido a la integración de LOOP-checking en esta versión de Depth-First (y en todos los otros algoritmos que se presentarán) ! SI no removemos caminos con ciclos, entonces Depth-First no es completo (puede quedar atrapado en loops de una red finita) Nota: NO necesar. encuentra el camino más corto.

A D B E C F G S 3 4 5 2

Velocidad (depth-first) En el peor caso: el (único) nodo objet. puede estar en la rama del extremo derecho, d b Complej. de tiempo == bd + bd-1 + … + 1 = bd+1 -1 Luego: O(bd) b - 1 G

Memoria (depth-first) El número máximo de nodos en COLA se alcanza en el nodo del extremo izquierdo inferior. Ejemplo: d = 3, b = 3 : ... COLA contiene nodos . Es decir: 7. En General: ((b-1) * d) + 1 Orden: O(d*b)

Búsqueda primero en amplitud Expande el árbol capa por capa, Avanzando en profundidad.

Breadth-first search: G Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado.

Algoritmo prim.en amplitud: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los caminos nuevos con ciclos; agregar los nuevos caminos al final de COLA; 3. SI objetivo alcanzado THEN éxito; ELSE falla; UNICA DIFERENCIA!

Traza de breadth-first en el ejemplo: (S) S removido, (SA,SD) computados y agregados (SA, SD) SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SD,SAB,SAD) SD removido, (SDA,SDE,SDS) computados, (SDA,SDE) agregados (SAB,SAD,SDA,SDE) SAB removido, (SABA,SABE,SABC) computados, (SABE,SABC) agregados (SAD,SDA,SDE,SABE,SABC) SAD removido, (SADS,SADA, SADE) computados, (SADE) agregados etc, hasta que COLA contiene: (SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) el objetivo es alcanzado: reportar éxito

Completitud (breadth-first) COMPLETA aún para REDES implícitamente infinitas! Permanecería completa aún sin nuestro loop-checking. Nota: SIEMPRE encuentra el camino más corto.

Velocidad (breadth-first) Si un nodo objetivo es encontrado a profundidad m del árbol, todos los nodos hasta esa profundidad son creados. G b m d Luego: O(bm) nota: depth-first podría haber visitado nodos más profundos.

Memoria (breadth-first) El mayor número de nodos en COLA se alcanza en el nivel m del nodo objetivo. G d b m G COLA contiene nodos y . (Es decir: 4) . En General: bm Esto es generalm. MUCHO peor que depth-first !!

Evaluación práctica: Depth-first: Breadth-first: ¿ Soluciones ? SI el espacio de búsqueda contiene ramas muy profundas sin solución, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas. Breadth-first: Demanda MUCHA memoria ! ¿ Soluciones ? Búsqueda No-determinística Profundización iterativa

Búsqueda No-determinística: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar los nuevos cam. en lug. al azar en COLA; 3. IF objetivo alcanzado THEN exito; ELSE falla;

Búsqueda por profundización iterativa Restringe una búsqueda depth-first a una profundidad fija. Si no se encontró ningún camino, incrementar la profundidad y recomenzar la búsqueda.

Depth-limited search: 1. DEPTH <-- <algun número natural> COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado DO remover el primer camino de la COLA; IF el camino tiene long.menor que DEPTH crear nuevos caminos(a todos los hijos); rechazar los nuevos caminos con ciclos; agregar los nuevos caminos al frente de COLA; 3. IF objetivo alcanzado THEN exito; ELSE falla;

Algoritmo de profundización iterativa: 1. DEPTH <-- 1 2. WHILE objetivo no alcanzado DO ejecutar Depth-limited search; incrementar en 1 DEPTH;

Profundización iterativa: la mejor búsqueda ‘a ciegas’. Completa: si - incluso encuentra el camino más corto (como primero en amplitud) . Memoria: b*m (combina ventajas de depth- y breadth-first) Velocidad: Si se halla el camino a Depth = m, ¿cuánto tiempo se desperdició en la construcc.de los árboles más pequeños? b - 1 bm-1 + bm-2 + … + 1 = bm -1 = O(bm-1) En general: MUY buen trade-off El trabajo realizado en DEPTH = m is O(bm)

Búsqueda bi-direccional Computa el árbol tanto desde el nodo de comienzo como desde el nodo objetivo, hasta que estos árboles se encuentran.

Búsqueda bi-direccional SI podemos describir EXPLíCITAMENTE el estado OBJETIVO, Y Contamos con reglas para razonamiento HACIA ADELANTE Y HACIA ATRAS: Inicio Objet.

Algoritmo bi-direccional: 1. COLA1 <-- camino que solo contiene la raiz; COLA2 <-- camino que solo contiene el objetivo; 2. WHILE ambas COLAi no estén vacías AND COLA1 y COLA2 NO compartan un estado DO remover sus primeros caminos; crear sus nuevos caminos (a todos los hijos); rechazar sus nuevos caminos con ciclos; agregar sus nuevos caminos al final; 3. IF COLA1 y COLA2 comparten un estado THEN éxito; ELSE falla;

Propiedades (Bi-direccional): Completa: Si. Velocidad: Si la verificación de estado común se puede realizar en tiempo constante (hashing): 2 * O(bm/2) = O(bm/2) Memoria: similar: O(bm/2)