E N D
1. Mg. Samuel Oporto Díaz Búsqueda no Informada
2. Mapa Conceptual del Curso
3. Tabla de Contenido Estrategias de Búsqueda
Búsqueda no Informada.
Búsqueda por Amplitud
Búsqueda por Costo Uniforme
Búsqueda en Profundidad
Búsqueda Limitada por Profundidad
Búsqueda por Profundidad Iterativa
Búsqueda Bidireccional
Bibliografía
4. Objetivos Presentar los conceptos acerca de las estrategías de búsqueda no informada.
5. ESTRATEGIAS DE BÚSQUEDA
6. Estrategias de Búsqueda Búsqueda No Informada
(Ciega)
7. Búsqueda en el Espacio de Estados La resolución de un problema con esta representación pasa por explorar el espacio de estados
Partimos del estado inicial evaluando cada paso hasta encontrar un estado final
En el caso peor exploraremos todos los posibles caminos entre el estado inicial del problema hasta llegar al estado final
Definiremos una representación del espacio de estados para poder implementar algoritmos que busquen soluciones
8. Estructura del espacio de estados Estructuras de datos: Árboles y Grafos
Estados = Nodos
Operadores = Arcos entre nodos (dirigidos)
Árboles: Solo un camino lleva a un nodo
Grafos: Varios caminos pueden llevar a un nodo
9. Algoritmo Básico Basado en búsqueda y recorrido en árboles y grafos
La estructura la construimos a medida que hacemos la búsqueda
Algoritmo para una solución:
Seleccionar el primer estado como el estado actual
mientras el estado actual no es el estado final hacer
Generar y guardar sucesores del estado actual (expansión)
Escoger el siguiente estado entre los pendientes (selección)
fin-mientras
La selección del siguiente nodo determinará el tipo de búsqueda (orden de selección o expansión)
Es necesario definir un orden entre los sucesores de un nodo (orden de generación)
10. Algoritmo Básico Nodos abiertos: Estados generados pero aún no visitados
Nodos cerrados: Estados visitados y que ya se han expandido
Tendremos una estructura para almacenar los nodos abiertos
Las diferentes políticas de inserción en la estructura determinarán el tipo de búsqueda
Si exploramos un grafo puede ser necesario tener en cuenta los estados repetidos (esto significa tener una estructura para los nodos cerrados). Merece la pena si el número de nodos diferentes es pequeño respecto al número de caminos
11. Evaluación de las Estrategias Las estrategias se evalúan de acuerdo a su:
Completez. ¿La estrategia garantiza encontrar una solución, si ésta existe?
Complejidad temporal. ¿Cuánto tiempo se necesitará para encontrar una solución?
Complejidad espacial. ¿Cuánta memoria se necesita para efectuar la búsqueda?
Optimalidad. ¿Con esta estrategia se encontrará una solución de la más alta calidad, si hay varias soluciones?
12. BUSQUEDA NO INFORMADA
13. Estrategias de búsqueda no informada No existe información sobre la cantidad de estados intermedios o el costo de ruta para pasar del estado actual a la meta.
Sólo se sabe distinguir si estamos en el estado meta o no
A esta búsqueda se le conoce también como búsqueda ciega
14. Estrategias de búsqueda no informada Búsqueda preferente por amplitud
Búsqueda de costo uniforme
Búsqueda preferente por profundidad
Búsqueda limitada por profundidad
Búsqueda por profundización iterativa
Búsqueda bidireccional
15. BUSQUEDA POR AMPLITUD(BFS)
16. 1. Búsqueda preferente por amplitud En este caso, primero se expande el nodo raíz y luego todos los nodos generados por éste, luego sus sucesores y así sucesivamente.
Todos los nodos que están a profundidad d se expanden antes que los nodos con profundidad d+1.
17. Búsqueda preferente por amplitud Abiertos?(n0); Cerrados?( )
Si Abiertos = ( ), fin devolviendo fallo
n?primer elemento de Abiertos; eliminar n de Abiertos y llevarlo a Cerrados; Suc?( )
Si n es meta, fin con éxito, devolviendo el camino
expandir n, colocando sus hijos en Suc, como hijos de n
eliminar de Suc cualquier nodo cuyo estado ya esté asociado a algún nodo de Abiertos o Cerrados
colocar los nodos de Suc al final de Abiertos
Ir a 2
25. Búsqueda preferente por amplitud Si hay solución, es seguro que se encontrará mediante la búsqueda preferente por amplitud.
Si son varias soluciones, siempre encontrará primero el estado de meta más próximo (menos profundidad, más a la izquierda).
La búsqueda preferente por amplitud es completa y óptima siempre y cuando el costo de ruta sea una función que no disminuya al aumentar la profundidad del nodo.
26. Complejidad Temporal Si b es el factor de ramificación de los estados, y la solución está a una profundidad d, entonces la cantidad máxima de nodos expandidos antes de encontrar la solución es:
1+ b + b2 + b3 + ... + bd + (bd+1 – b)
La complejidad de este algoritmo es O(bd+1).
27. Complejidad Espacial y Temporal Si b=10, se analizan 10,000 nodos por segundo y cada nodo requiere 1000 bytes de almacenamiento:
28. Resumen (BFS) Los nodos se visitan y generan por niveles
La estructura para los nodos abiertos es una cola (FIFO)
Un nodo es visitado cuando todos los nodos de los niveles superiores y sus hermanos precedentes han sido visitados
Características:
Completidud: El algoritmo siempre encuentra una solución
Complejidad temporal: Exponencial respecto al factor de ramificación y la profundidad de la solución O(bd+1).
Complejidad espacial: Exponencial respecto al factor de ramificación y la profundidad de la solución O(bd+1).
Optimalidad: La solución que se encuentra es óptima en número de niveles desde la raíz
29. Ejercicio 1 Determine el orden en que un agente basado en metas busca el objetivo (orden en que se visitan y orden en que se aperturan):
VISITA (nodos cerrados)
APERTURA (nodos abiertos)
30. Ejercicio 2 Diga para el siguiente árbol el orden en que se aperturan (nodos abiertos) y orden en que se visitan los nodos (nodos cerrados).
31. BUSQUEDA POR COSTO UNIFORMEUniform-Cost Search (UCS)
32. Búsqueda de costo uniforme Con la búsqueda anterior no siempre se encuentra la solución de costo de ruta mínimo.
La búsqueda de costo uniforme expande siempre el nodo de menor costo en el margen, medido por el costo de ruta g(n) en vez del nodo de menor profundidad.
Si se cumplen ciertas condiciones, es seguro que la primera solución encontrada será la más barata.
La búsqueda en amplitud es una búsqueda de costo uniforme donde g(n) = profundidad(n)
33. Búsqueda de costo uniforme
34. Búsqueda de costo uniforme
35. Búsqueda de costo uniforme
36. Búsqueda de costo uniforme
37. Búsqueda de costo uniforme Este método puede encontrar la solución más barata siempre y cuando se satisfaga un requisito sencillo.
El costo de ruta nunca debe ir disminuyendo conforme avanzamos por la ruta, es decir, g(Sucesor(n)) ? g(n) para todos los nodos n.
Para que el costo de la ruta no disminuya el costo de aplicar un operador no debe ser negativo.
¿Qué pasa si el costo de un operador de negativo?
38. Resumen (UCS) Se visitan y expanden los nodos del borde con menor costo.
La estructura para los nodos abiertos es una cola (FIFO)
Un nodo es visitado si su costo de ruta es el menor de todos.
Características:
Completitud: Se encuentra la ruta siempre y cuando el costo no disminuya conforme se avanza g(sucesor(n)) = g(n)
Complejidad temporal: Exponencial respecto al factor de ramificación y la profundidad de la solución O(bd+1).
Complejidad espacial: Exponencial respecto al factor de ramificación y la profundidad de la solución O(bd+1).
Optimalidad: La solución es óptima si el costo de un operador > 0, en caso contrario hay que buscar exhaustivamente
39. Ejercicio 3 Use la estrategia de costo uniforme para encontrar la ruta de menor costo para ir de:
A ? D.
Recuerde que para la estrategia de costo uniforme se usa la función:
f = g + h : donde h = 0.
Donde g es el costo de la ruta avanzada
Recomendaciones:
Sustente su respuesta presentando el árbol de búsqueda generado
No apertura nodos ya visitados en la misma ruta.
40. Ejercicio 3
41. Búsqueda preferente por profundidad (DFS)
42. Búsqueda preferente por profundidad En esta búsqueda siempre se expande uno de los nodos que se encuentre en lo más profundo del árbol.
Sólo si la búsqueda conduce a un callejón sin salida (un nodo que no es meta y que no tiene expansión), se revierte la búsqueda y se expanden los nodos de niveles menos profundos.
Lo anterior se logra mediante el algoritmo de Búsqueda-General, con una función de lista de espera que ponga los estados recién generados al principio de la lista.
43. Búsqueda preferente por profundidad
44. Búsqueda preferente por profundidad Sólo es necesario guardar la ruta que va del nodo raíz al nodo hoja, junto con los nodos restantes no expandidos, por cada nodo de la ruta.
Si un espacio de estados tiene factor de ramificación b y profundidad máxima m, se requieren almacenar bm nodos.
La complejidad temporal es de O(bm).
45. Búsqueda preferente por profundidad Si la cantidad de soluciones en un problema es grande, se recomienda esta búsqueda (BFS) sobre la búsqueda preferente por amplitud (DFS).
La desventaja de esta búsqueda es que se puede quedar estancada al avanzar por una ruta equivocada, ya que muchos árboles de búsqueda pueden ser muy profundos o infinitos. Por lo tanto, la BPPP no es ni la mas completa ni la más óptima.
46. Resumen (DFS) Los nodos se visitan y generan buscando los nodos a mayor profundidad y retrocediendo cuando no se encuentran nodos sucesores
La estructura para los nodos abiertos es una pila (LIFO)
Para garantizar que el algoritmo acaba debe imponerse un límite en la profundidad de exploración
Características
Completidud: El algoritmo encuentra una solución si se impone un límite de profundidad y existe una solución dentro de ese límite
Complejidad temporal: Exponencial respecto al factor de ramificación y la profundidad del límite de exploración O(bm).
Complejidad espacial: Si no se controlan los nodos repetidos el coste es lineal respecto al factor de ramificación y el límite de profundidad O(bm). Si tratamos repetidos el coste es igual que en anchura. Si la implementación es recursiva el coste es O(m).
Optimalidad: No se garantiza que la solución sea óptima
47. Ejercicio 4 Considere el siguiente gráfico. Los nodos sombreados ya fueron visitados y se han extendido.
Dibuje el árbol de la búsqueda que corresponde a este gráfico, dónde la búsqueda se inició en A y se expandió hasta R, y puede visitar un nodo en el gráfico más de una vez.
48. Ejercicio 5 Imagine un escenario con un robot que intenta navegar en el siguiente laberinto desde (S) hasta la meta (G). A cada paso, el robot puede seguir una de las cuatro direcciones del compas. El robot contempla las alternativas en el orden siguiente:
Moverse al Sur
Moverse al Este
Moverse al Norte
Moverse al Oeste
49. Búsqueda limitada por profundidad(DLS)
50. Búsqueda limitada por profundidad Con esta búsqueda se eliminan las dificultades de la búsqueda preferente por profundidad, al imponer un límite a la profundidad máxima de una ruta.
El establecer este límite es difícil, ya que no conocemos mucho sobre el espacio de estados.
La búsqueda limitada puede no ser completa ni óptima: un límite de profundidad muy pequeño puede que no contenga la solución, y uno muy grande puede que contenga soluciones no óptimas que son encontradas primero.
La complejidad espacio-temporal de la búsqueda limitada por profundidad es similar a la de la búsqueda preferente por profundidad: requiere un tiempo de O(bl) y un espacio O(bl), donde l es el límite de profundidad.
51. Búsqueda por profundización iterativa(IDS)
52. Búsqueda por profundización iterativa Elimina la dificultad de elegir un límite adecuado de profundidad en la búsqueda limitada por profundidad.
Lo anterior lo hace probando todos los límites de profundidad posibles, primero la profundidad 0, luego la 1, luego la 2, etc.
En la profundización iterativa se combinan las ventajas de las búsquedas preferente por profundidad y preferente por amplitud.
Es óptima y completa, como la búsqueda preferente por amplitud, pero la memoria que necesita es la de la búsqueda preferente por profundidad.
53. Búsqueda por profundización iterativa Función Búsqueda-por-profundización-iterativa(problema) responde con una secuencia de solución.
entradas: problema, un problema.
para profundidad ? 0 a ? hacer
si Búsqueda-limitada-por-profundidad(problema,
profundidad) tiene éxito, entregue el
resultado obtenido
fin-para
responda con falla
54. Búsqueda por profundización iterativa
55. Búsqueda por profundización iterativa La búsqueda por profundización iterativa puede parecer un desperdicio, por repetir expansiones de estados, pero en la mayoría de los problemas esta expansión múltiple es realmente pequeña.
La complejidad temporal sigue siendo O(bd) y la complejidad espacial es O(bd).
La profundización iterativa es el método idóneo para aquellos casos donde el espacio de búsqueda es grande y se ignora la profundidad de la solución.
56. Búsqueda Bidireccional(BS)
57. Búsqueda bidireccional Es básicamente una búsqueda simultánea que avanza a partir del estado inicial y que retrocede a partir de la meta y que se detiene cuando ambas búsquedas se encuentran en algún punto intermedio.
Si en un problema el factor de ramificación b es el mismo en ambas direcciones, la búsqueda bidireccional puede ser muy útil. Si la solución está a profundidad d, entonces la solución estará a O(2bd/2) = O(bd/2) pasos
58. Cuestiones a resolver La búsqueda hacia atrás implica la sucesiva generación de predecesores a partir del nodo meta.
Si todos los operadores son reversibles, los conjuntos de predecesor y sucesor son idénticos, pero en algunos problemas, el cálculo de los predecesores puede resultar muy difícil.
Si hay varios estados meta listados en forma explícita, se puede aplicar una función de predecesor al conjunto de estados como en el caso de la búsqueda de estado múltiple. Pero si sólo hay una descripción de los estados meta, es realmente difícil (¿qué estados son predecesores del jaque mate en ajedrez?)
Se requiere una manera eficiente de verificar cada uno de los nodos nuevos para ver si ya están en el otro árbol.
Se tiene que definir un tipo de búsqueda para cada mitad. Amplitud – amplitud, amplitud – profundidad, etc. La complejidad espacial es igual a la temporal para esta búsqueda.
59. Bibliografía AIMA. Capítulo 3, primera edición.
AIMA. Chapter 3, second edition.
60. PREGUNTAS