7. Estructuras de datos
● Lista ABIERTA. Nodos generados y no expandidos. Se gestiona de
forma distinta según los algoritmos:
– Primero en anchura. Funciona como una cola
– Primero en profundidad. Funciona como una pila
– Coste uniforme. Los estados se ordenan teniendo en cuenta el coste del
mejor camino desde el nodo inicial
● TABLA_A, subgrafo parcial que muestra el mejor camino encontrado
desde cada estado hasta el estado inicial. Se va ampliando al
expandir nuevos nodos. Es posible que se produzcan reorientaciones
de enlaces si se encuentra un camino mejor hacia un cierto nodo N:
– Si N estaba en ABIERTA, se anota el nuevo camino mejor en TABLA_A
– Si N había sido expandido el proceso se extiende recursivamente a sus hijos
11. Complejidad
Consideramos que n es el número medio de
sucesores de un nodo, y p la distancia del nodo
inicial a la meta.
Algoritmo Tiempo Espacio
Anchura O(np
) O(np
)
Profundidad O(np
) O(n·p)
Coste uniforme
(todas las reglas igual coste)
O(np
) O(np
)
Profundidad iterativa O(np
) O(p)
Anchura iterativa O(np
) O(np
)
Bidireccional
(dos búsquedas en anchura)
O(np/2
) O(np/2
)
12. Algoritmos completos y admisibles
● Un algoritmo de búsqueda es completo si siempre que existe una
solución la encuentra
● Un algoritmo de búsqueda es admisible (o exacto) si siempre
encuentra una solución óptima
● Métodos que estudiamos:
– Primero en anchura. Completo y admisible (si los operadores del mismo
nivel tienen igual coste)
– Primero en profundidad. No completo (y, por tanto, no admisible)
– Coste uniforme. Admisible (y, por tanto, completo)
– Búsqueda en profundidad iterativa. Admisible
– Búsqueda en anchura iterativa. Completo pero no admisible
– Búsqueda bidireccional. Completo si una de las búsquedas es en anchura
13. Comentarios
● Árboles y grafos. Si la búsqueda se realiza sobre un árbol,
nunca hay que reorientar enlaces en TABLA_A, cosa que sí
hay que hacer si se busca sobre un grafo, dado que puede
haber más de un camino desde nodo inicial a cualquier otro
nodo (problema del barquero)
● Complejidad. La complejidad temporal de estos métodos es
exponencial, lo que hace necesario desarrollar otras
estrategias para tratar problemas de tamaño medio o grande
(heurísticas).