El documento describe diferentes tipos de búsquedas utilizadas en inteligencia artificial, incluyendo búsquedas ciegas, heurísticas y en grafos. Explica búsquedas como la búsqueda preferente por amplitud, búsqueda A*, búsqueda por ascenso de cima y búsqueda con retroceso. El objetivo de estas técnicas es encontrar soluciones de manera eficiente a problemas mediante la exploración de un espacio de estados.
2. En inteligencia artificial el tema de búsquedas es central, dado
que, por ejemplo, realizar acciones mecanizadas o resolver
problemas, se reduce a buscar en un espacio de estados. En esa
disciplina se estudian búsquedas ciegas y búsquedas inteligentes
por nombrar solo algunas.
Relacionado con la búsqueda del óptimo está el problema del
control de la búsqueda, control planteado por Newell y Simon que
ha generado una abundancia de trabajos en el campo de la
inteligencia artificial. Se trata de elegir entre búsquedas
heurísticas lo suficientemente buenas (no perfectas) como para
que se pueda dar por concluida la búsqueda con una aceptable
respuesta al problema en un lapso aceptable de tiempo.
En Inteligencia Artificial los términos resolución de problemas y
búsqueda se refieren a un núcleo fundamental de técnicas que se
utilizan en dominios como la deducción, elaboración de planes de
actuación, razonamientos de sentido común, prueba automática
de teoremas, etc.
3. Búsqueda a Ciegas: Solo utiliza información acerca de si un
estado es o no objetivo para guiar su proceso de búsqueda.
Tipos de Búsqueda a Ciegas
• 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 direccional
4. Búsqueda preferente por amplitud: En esta búsqueda todos
los nodos que están en la profundidad d del árbol de búsqueda
se expanden antes de los nodos que estén en la profundidad
d+1.
Búsquedas de costo uniforme: En esta búsqueda se modifica la
estrategia preferente por amplitud en el sentido de expandir
siempre el nodo de menor costo en el margen (medido por el
costo de la ruta g(n)) en vez del nodo de menor profundidad.
Búsqueda preferente por profundidad: En esta búsqueda
siempre se expande uno de los nodos que se encuentren en los
mas profundo del árbol. Solo si la búsqueda conduce a un
callejón sin salida, ser revierte la búsqueda y se expanden los
nodos de niveles menos profundos.
5. Búsqueda limitada por profundidad: Esta búsqueda es similar
a la búsqueda preferente por profundidad con la diferencia que
se impone un límite a la profundidad máxima de una ruta.
Búsqueda por profundización iterativa: Esta búsqueda es
similar a la búsqueda limitada por profundidad con la diferencia
que se repiten las búsquedas dando en cada iteración un valor
distinto de profundiad para la misma.
Búsqueda bidireccional: Esta es una búsqueda 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.
6. Búsqueda Heurística: Se llama Búsqueda Heurística debido a que
usa conocimientos específicos del problema. Con esta búsqueda
podemos encontrar soluciones más eficientemente en el tiempo
mas rápido posible sin repetir ninguna ciudad. En Inteligencia
Artificial se emplea el calificativo heurístico, en un sentido muy
genérico, para aplicarlo a todos aquellos aspectos que tienen que
ver con el empleo de conocimiento en la realización dinámica de
tareas.
Se habla de heurística para referirse a una técnica, método o
procedimiento inteligente de realizar una tarea que no es
producto de un riguroso análisis formal, sino de conocimiento
experto sobre la tarea. En especial, se usa el término heurístico
para referirse a un procedimiento que trata de aportar soluciones
a un problema con un buen rendimiento, en lo referente a la
calidad de las soluciones y a los recursos empleados.
Sus tipos son:
Búsqueda preferente por lo mejor.
Búsqueda limitada por la capacidad de la memoria.
Búsquedas de mejoramiento iterativo.
7. Búsqueda preferente por lo mejor: Esta búsqueda consiste en
expandir primero aquél nodo con mejor evaluación. Dicha
evaluación es el resultado de aplicar la función de evaluación al
nodo, la cual devuelve un número que sirve para representar lo
deseable que sería la expansión de un nodo. En este tipo de
búsqueda se encuentran:
Búsqueda avara: Consiste en reducir al mínimo el costo
estimado para alcanzar una meta. Para ello se utiliza una
función llamada heurística, la cual estima el costo que implica
llegar a una meta desde un estado determinado, y elige cual es
el siguiente nodo que se va a expandir aplicando esta función a
cada nodo.
Búsqueda A*: Esta búsqueda es una búsqueda preferente por lo
mejor en la que se utiliza f como función de evaluación. La
función f calcula el costo estimado de la solución más barata,
pasando por n y se calcula de la siguiente manera:
f=g(n) + h(n) Siendo g(n) el costo de ruta y h(n) una heurística
admisible (que nunca sobreestima el costo que implica alcanzar
la meta).
8. Búsqueda limitada por la capacidad de la memoria: Cuando se
implementan las búsquedas vistas hasta el momento, hay
ciertos problemas muy difíciles de resolver y por lo tanto
siempre hay que dar algo a cambio para resolverlos, y lo
primero que se cede es la memoria disponible. Para conservar
la memoria existe:
La búsqueda A* por profundización iterativa: En este
algoritmo, cada iteración es una búsqueda preferente por
profundidad, la cual se modifica para utilizar un límite de
costo f en vez de un límite de profundidad.
La búsqueda A* acotada por memoria simplificada: Hace
uso de toda la memoria que puede disponer esta es óptima si
dispone de suficiente memoria para guardar la ruta de
solución óptima más cercana. De lo contrario produce la
mejor solución que sea posible obtener con la memoria
disponible.
9. Búsqueda de mejoramiento iterativo: La idea básica de los
algoritmos de estos tipos de búsqueda consiste en empezar con
una configuración completa y efectuar modificaciones para
mejorar su calidad. Entre estas búsquedas se pueden encontrar:
Búsqueda por ascenso de cima: Esta búsqueda se trata de un
bucle que constantemente se desplaza en la dirección de un
valor ascendente. Como el algoritmo no mantiene un árbol de
búsqueda, la estructura de datos del nodo sólo tiene que
registrar el estado y su evaluación, denominado VALOR.
Búsqueda con endurecimiento simulado: Esta búsqueda es
muy similar a la búsqueda por ascenso a la cima, pero con la
diferencia de que en vez de empezar otra vez al azar luego
de quedarse atorado en un máximo local, sería conveniente
descender unos cuantos pasos y así escapar del máximo local
en cuestión.
10. Búsqueda en Grafos: Consiste en usar grafos en lugar de arboles; en
este caso; esta estrategia de búsqueda usa lo que se denomina una
lista cerrada, en la que cada nodo recuerda a cada uno de los nodos
que los precedieron, de tal forma que en lugar de buscar en un árbol
podemos buscar en una rejilla en la que podemos identificar
caminos que nos llevan a la misma solución, y descartar uno de
ellos.
Búsqueda con retroceso: En esta técnica de búsqueda se
construyen soluciones parciales a medida que se avanza en la
búsqueda; esto significa que se marca un nodo en particular en el
cual se cumplen ciertas restricciones del problema para poder volver
a este nodo en caso de que al buscar mas profundamente en una de
sus ramas no lleguemos a una solución, el inconveniente es que para
ciertos problemas llega resultar igual que la búsqueda en
profundidad
Búsqueda con Adversario: o juego contra un oponente analiza los
problemas en los que existe mas de un adversario modificando el
estado del sistema. Tiene dos operadores:
El que lleva el problema a la mejor situación (jugada nuestra)
El que lleva el problema a la peor situación (jugada de nuestro
adversario)