2. Los problemas de búsquedas, que generalmente encontramos en Ciencias
Computacionales, son de un estado determinístico. Por ejemplo, en los algoritmos
de búsqueda de anchura y de búsqueda de profundidad, uno sabe la secuencia de
los nodos visitados en un árbol. Sin embargo, los problemas de búsqueda, los
cuales siempre tendremos que tratar en Inteligencia artificial, son no
determinísticos y el orden de elementos visitados en el espacio de búsqueda
depende completamente en el conjunto de datos
3. Dependiendo de la metodología de expansión de un espacio de estado y
consecuentemente el orden de los estados visitados los problemas de búsqueda se
nombran diferentes:
Búsqueda de metas a profundidad
Búsqueda de metas en anchura
Búsqueda Optima
4. Búsqueda de metas a profundidad
El algoritmo de más utilizado es el de búsqueda de metas por profundidad. Es llamado
así porque sigue cada camino hasta su mayor profundidad antes de moverse al
siguiente camino.
Asumiendo que iniciamos desde el lado izquierdo y trabajamos hacia la derecha, la
búsqueda de metas por profundidad involucra trabajar todos los caminos debajo del
camino de árbol más a la izquierda hasta que un nodo hoja es alcanzado. Si esta es
una meta de estado, la búsqueda es completada y reportada como exitosa.
5. Si el nodo hoja no representa la meta de estado, la búsqueda se dirige atrás y arriba al
siguiente nodo más alto que tiene un camino no explorado.
La búsqueda de profundidad es un ejemplo de la búsqueda de fuerza bruta, o la
búsqueda exhaustiva. La búsqueda de profundidad es usada por computadoras a
menudo para los problemas de búsqueda como ubicar archivos en un disco.
6. Complejidad de espacio Se requiere mayor cantidad de memoria en la búsqueda
de profundidad, cuando alcanzamos la mayor profundidad a la primera vez.
Complejidad de tiempo Si encontramos la meta en la posición más a la izquierda
de profundidad (D), entonces el número de nodos examinados es (d+1). De otra
forma, si encontramos la meta en el extremo derecho a una profundidad (D),
entonces el número de nodos examinados incluyen todos los nodos en el árbol.
7. Búsqueda de metas en anchura
Una alternativa para la búsqueda de profundidad es la búsqueda de metas de
anchura (amplitud). Como su nombre indica, este enfoque supone atravesar un
árbol por anchura más que por profundidad. El algoritmo de anchura empieza
examinando todos los nodos de un nivel (a veces llamado hebra uno) abajo del
nodo raíz.
8. Si una meta de estado es alcanzada aquí, el éxito es reportado. De otra forma, la
búsqueda continúa ampliando caminos de todos los nodos del nivel en curso, para
posteriormente bajar al próximo nivel. De este modo, la búsqueda continúa
revisando nodos en un nivel especial, e informará sobre el éxito cuando un nodo
meta es encontrado, y reportar una falla si todos los nodos han sido revisados y
ningún nodo meta ha sido encontrado.
10. Búsqueda Optima
La búsqueda heurística, trata de resolver los problemas mediante una nueva técnica.
Podemos expandir nodos por selección juiciosa, seleccionado el nodo más
prometedor, donde estos nodos estarán identificados por el valor de su fuerza
comparada con sus competidores homólogos con la ayuda de funciones intuitivas
especializadas, llamadas funciones heurísticas. En algunos casos los algoritmos de
búsqueda heurística, son también llamados OR-graphs o “Best First Algorithms”
(Algoritmo de búsqueda óptima).
11. La mayoría de los problemas de razonamiento pueden ser representados por un OR-
graph, donde un nodo en el grafo denota un problema de estado y un arco representa
una aplicación o regla para el estado actual para causar transición de estados. Cuando
un número de reglas son aplicables a un estado actual, podemos seleccionar un mejor
estado entre el nodo hijo y el siguiente estado.
13. Inicio
1. Identificar los posibles estados iníciales y medir la distancia (f) del más cercano
con a la meta; ponerlos en una lista (L)
2. Mientas L no esté vacía has Inicia
a) Identificar el nodo n de L que tenga el mínimo f; Si existe más de un
nodo con un f mínimo, seleccionar uno de ellos, (tomar n, arbitrariamente)
b) Si n es la meta
Entonces regresar n a lo largo del camino desde el nodo inicial; salir con éxito.
Si no remover n de L y agregar todos los hijos de n a L, junto con su camino
etiquetado desde el nodo inicial
Fin del while;
FIN.