ESTRATEGIAS DE BUSQUEDA A CIEGAS
Algoritmos de búsqueda ciega (desinformada) mindless search Búsqueda en amplitud Búsqueda en profundidad Profundización iterativa Búsqueda con costo uniforme
Búsqueda Primero en Amplitud Se basa en desarrollar completamente cada nivel del Arbol antes de pasar a desarrollar la siguiente Depth 0 Depth 1 Depth 2
Búsqueda Primero en Amplitud Depth 0 Depth 1 Depth 2
Búsqueda Primero en Amplitud Depth 0 Depth 1 Depth 2
Búsqueda Primero en Amplitud Expandir el más chato - menos profundo - “nodo sin expandir” Arad Arad Zerind Sibiu Timisoara
Búsqueda Primero en Amplitud Arad Zerind Sibiu Timisoara Arad Oradea
Búsqueda Primero en Amplitud Arad Zerind Sibiu Timisoara Rimnicu Vilcea Arad Oradea Arad Oradea Fagaras
Búsqueda Primero en Amplitud Arad Sibiu Zerind Timisoara Rimnicu Vilcea Arad Oradea Fagaras Arad Oradea Arad Lugoi
Búsqueda Primero en Amplitud 1 2 3 4 5 6 7 8 9 10 11 12 13 14 goal
Espacio de búsqueda “total” (BPA con supresor de repetidos) Juego de 8 fichas
Algoritmos de búsqueda básica(desinformada) mindless search Búsqueda en amplitud Búsqueda en profundidad Profundización iterativa Búsqueda con costo uniforme
Búsqueda Primero en Profundidad Se basa en elegir un camino en el árbol y seguirlo hasta el final. Si no se encuentra la solución se retrocede (“backtraking”) y se prueba por otro camino.
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad
Búsqueda Primero en Profundidad Expandir el”nodo sin expandir” más profundo QueuingFN = Insertar sucesor en tope de cola Arad Zerind Sibiu Timisoara Arad Oradea
Búsqueda Primero en Profundidad Arad Zerind Sibiu Timisoara Arad Oradea BPP puede incurrir en excursiones cíclicas infinitas. Necesita un espacio de búsqueda que sea * finito * no-cíclico, o bien * supresor de repetidos. Zerind Sibiu Timisoara
Algoritmos de búsqueda básica(desinformada) mindless search Búsqueda en amplitud Búsqueda en profundidad Profundización iterativa Búsqueda con costo uniforme
Ventajas de la búsqueda en extensión • No se “pierde” explorando caminos infructuosos que consumen mucho tiempo sin llegar a una solución o de los que no se vuelve nunca (bucles en profundidad). • Si hay una solución la encuentra. Es más, si hay varias encuentra la óptima. Ventajas de la búsqueda en profundidad • Requiere mucha menos memoria (sólo hay que guardar el camino actual). • Puede encontrar una solución sin examinar mucho el árbol, sobre todo si hay varios caminos a la solución.
Profundización Iterativa Búsqueda Primero en Profundidad con límite en profundidad l si no se encuentra la solución. Nodos a profundidad l sin sucesores
Profundización Iterativa
Profundización Iterativa
Profundización Iterativa
Profundización Iterativa
Profundización Iterativa l = 0 Arad l = 1 etapas 1 y 2 Arad Zerind Sibiu Timisoara
Profundización Iterativa Arad Zerind Sibiu Timisoara l = 2 etapas 1, 2 y 3 Arad Oradea
Profundización Iterativa l = 2 etapa 5 Arad Sibiu Zerind Timisoara Rimnicu Vilcea Arad Oradea Arad Oradea Fagaras Arad Lugoi
Algoritmos de búsqueda básica(desinformada) mindless search Búsqueda en amplitud Búsqueda en profundidad Profundización iterativa Búsqueda con costo uniforme <=
Búsqueda con costo uniforme
Búsqueda con costo uniforme Se basa en desarrollar el nodo con menor coste. Arad 75 140 118 Zerind Sibiu Timisoara <== Zerid, Timisoara, Sibiu <==
Búsqueda con costo uniforme Arad 75 140 118 Zerind Sibiu Timisoara 75+75 71+75 Arad Oradea <== Timisoara, Sibiu, Oradea, Arad <==
Búsqueda con costo uniforme Arad 75 140 118 Zerind Sibiu Timisoara 75+75 71+75 118+118 111+118 Arad Oradea Arad Lugoi <== Sibiu, Oradea, Arad, Lugoi, Arad <==
Propiedades de búsqueda con costo uniforme Completa? Sí, mientras b sea finita (similar a búsqueda Primero en Amplitud) Complejidad temporal? Numero de nodos con g(n) £ costo de la solución óptima Complejidad espacial? Optima? Sí, mientras el costo de ruta no disminuya siguiendo cualquier ruta o sea que g(Successor(n)) ³ g(n), para todo n Qué sucede con operadores con costo negativo?
Búsqueda bidireccional EstadoFinal Estado inicial
No vale para todos los problemas: Los operadores deben ser reversibles No vale para todos los problemas: Los operadores deben ser reversibles. • Problema si hay varias soluciones. • Debe haber comprobación eficiente de encuentro.
PREGUNTAS….