Ejercicio resuelto sobre búsqueda no informada, búsqueda bidireccional cuya aplicación más extendida es la de la interligencia artificial.
Más ejercicios en: http://adf.ly/10007639/blog
3. DEFINICIONES
Nodo: estado del problema en un momento dado. Sobre él se pueden aplicar
operadores para generar sus nodos sucesores. Hay tres tipos: nodo inicial, nodo
objetivo y nodo de transición.
Nodo inicial es aquel en donde empieza la resolución del problema
Nodo final es aquel nodo que se persigue encontrar en la búsqueda
Nodo de transición son aquellos que se generan en el proceso de
búsqueda.
4. DEFINICIONES
• Árbol de expansión: estructura arbórea que se genera en la búsqueda del
nodo. Va desde el nodo inicial, que es raíz del mismo al nodo final. Y contiene
aquellos nodos de transición que se generan en el proceso.
5. PROBLEMA
Ir desde el nodo A hasta el nodo Z solo
pudiendo transitar por los arcos definidos en
la imagen e ir desde el nodo Z hasta el nodo
A solo pudiendo transitar de forma inversa
por los arcos definidos en la imagen hasta
encontrarse a mitad del camino de búsqueda.
6. BÚSQUEDA BIDIRECCIONAL:
ALGORITMO EN LENGUAJE NATURAL
Procedimiento bidireccional (Grafo,estrategia):
listaAbiertaI <- nodo inicial del grafo
listaAbiertaM <- nodo final del grafo
mientras NO EXITO o alguna lista esté vacía:
nodoActualI <- primer elemento de la listaAbiertaI
eliminar nodoActualI de listaAbiertaI
añadir los sucesores según estrategia a la listaAbiertaI
comparar listaAbiertaI con listaAbiertaM
si algún sucesor de listaAbiertaI está en listaAbiertaM: devolver EXITO
si no:
nodoActualM <- primer elemento de la listaAbiertaM
eliminar el nodoActualM de listaAbiertaM
añadir los predecesores según estrategia a la listaAbiertaM
comparar listaAbiertaM con listaAbiertaI
si algún predecesor de listaAbiertaM está en listaAbiertaI: devolver EXITO
si EXITO: devolver camino de búsqueda desde estado inicial hasta final
sino: devolver FRACASO
Nota: estrategia <- anchura, profundidad, etc.
7. EJEMPLO NODO
• El nodo es nombrado como la concatenación de todos los nodos previos más
el actual.
• Trayectoria desde el nodo inicial: A,B,C,D entonces el nodo se llama ABCD
• Trayectoria desde el nodo final: Z,H,F,B,A entonces el nodo se llama ZHFBA
• Esto sirve para conocer el camino de búsqueda de la solución.
9. PROPIEDADES DE LA BÚSQUEDA BIDIRECCIONAL
• La complejidad temporal es de O(2bd/2).
• No siempre se conoce el estado objetivo y particularmente, uno que
corresponda a situaciones óptimas.
• Precisa disponer de los operadores inversos para generar los estados
predecesores de uno dado.