Este documento describe diferentes tipos de búsqueda en inteligencia artificial, incluyendo búsqueda exhaustiva (a ciegas) y búsqueda heurística (informada). Describe varios métodos de búsqueda a ciegas como búsqueda en profundidad, búsqueda en amplitud, búsqueda de corte uniforme, búsqueda en profundidad limitada e iterativa, y búsqueda bidireccional. También introduce la idea de usar información sobre el dominio del problema para guiar la búsqueda de manera más eficiente
2. Tipos de búsqueda
• Algoritmo.- disponemos de información
segura de lo que podemos aplicar en donde a
continuación tenemos 2 tipos de búsqueda en
el sentido general.
• Búsqueda Exhaustiva (a ciegas)
• Búsqueda Heurística (informada)
3. Búsqueda ciega
• Exploración del árbol de búsqueda pero sin
información.
• Estrategia de búsqueda.- elección del orden de la
expansión de los nodos.
• Búsqueda en profundidad
• Búsqueda en amplitud
• Búsqueda de corte uniforme
• Búsqueda en profundidad limitada
• Búsqueda en profundidad iterativa
• Búsqueda bidireccional
4. Búsqueda 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.
• Se puede implementar mediante un algortimo
recursivo.
5. Ejemplo (Algortimo)
• Si estado_inicial = estado_objetivoENTONCES
salir con éxito.
• Mientras no éxito y no fracaso.
a. Generar los sucesores del caso inicial (si no
hay mas sucesores igual fracaso).
b. Llamar al algoritmo para cada uno de los
nodos generados como estado inicial.
c. Si se devuelve éxito, devolver éxito, si no
continuar el bucle.
6. Búsqueda en amplitud
• Se basa en desarrollar completamente cada
nivel del árbol antes de pasar a desarrollar el
siguiente.
7. Ejemplo (algoritmo)
• Lista: = estado_inicial
• MIENTRAS (lista 0) y no solución.
a. Eliminar primer elemento Lista y asignarlo a E.
b. Para cada regla aplicable a E
• Aplicar la regla
• Si el estado resultante el objetivo, salir
devolviéndolo.
• Si no añadir el nuevo estado a lista.
8. Búsqueda de coste uniforme
• Se basa en desarrollar el nodo con menor
coste.
9. Búsqueda en profundidad limitada.
• Tiene un limite de profundidad l.
• Implementación: los nodos a profundidad l no
tienen sucesores.
10. Ejemplo
• Problema
• Calcular l.
• En cierto problemas es fácil:
Viaje a Rumania: 20 unidades: con l=19
encontramos solución.
• En otros es posible.
11. Búsqueda en profundidad iterativa
• Se basa en elegir utilizar búsqueda en
profundidad limitada aumentando l si no se
encuentra la solución.
13. Condicionantes
• No vale para todos los problemas:
1. Los operadores deben ser reversibles.
2. Problemas si hay varias soluciones.
3. Debe haber comparación eficiente de
encuentro.