Вы находитесь на странице: 1из 12

INTELIGENCIA ARTIFICIAL Prof.. Ing.

Edecio Freitez

QU SON BSQUEDAS?
Las bsquedas son uno de los recursos ms bsicos e importantes dentro de las tcnicas de programacin. Realmente, resulta difcil hacer hincapi suficiente en la importancia que representan las tcnicas de bsqueda dentro del conjunto de herramientas diarias de un programador. Pero, A qu nos referimos con bsqueda? Qu es lo que se est buscando? Cundo utilizar una bsqueda?

Pasos para implementar una bsqueda

BSQUEDA EN PROFUNDIDAD
Esta bsqueda, como su nombre lo indica, trata de llegar siempre lo ms profundo que pueda, en cada paso, si an no ha encontrado la solucin, trata de bajar un nivel en el rbol, si no es posible bajar ms, entonces regresa un nivel y trata de bajar por la siguiente rama que todava no haya recorrido. Las bsquedas en profundidad por lo general se implementan por medio de una funcin recursiva aunque tambin puede realizarse mediante una pila.

Algoritmo de Ejecucin:
1. Si el estado inicial es un estado objetivo, terminar y devolver un xito.

2. En caso contrario, hacer lo siguiente hasta que se marque un xito o un fracaso:


a) Generar un sucesor, E, del estado inicial. Sino existen ms sucesores, marcar un fracaso. b) Llamar a la bsqueda primero en profundidad con E como estado inicial. c) Si se devuelve un xito, marcar un xito. En caso contrario, continuar con el ciclo.

VENTAJAS DE LA BSQUEDA EN PROFUNDIDAD


La bsqueda en profundidad necesita menos memoria ya que solo se almacenan los nodos del camino que se sigue en ese instante. Si se tiene suerte (o si se tiene cuidado en ordenar los estado alternativos sucesores), la bsqueda en profundidad puede encontrar una solucin sin tener que analizar gran parte del espacio de estado.

BSQUEDA EN ANCHURA O AMPLITUD


Esta bsqueda, recorre el rbol nivel por nivel, es decir, en el primer paso busca la solucin entre todos los nodos del primer nivel del rbol, si no encuentra la solucin, entonces baja un nivel y la busca entre todos los nodos del segundo nivel, y de esa manera recorre cada uno de los niveles hasta encontrar la solucin.

Algoritmo de Ejecucin:
1. Crear una variable llamada LISTA-NODOS y asignarle el estado inicial.

2. Hasta que se encuentre un estado objetivo o LISTANODOS este vaca, hacer:


a) Eliminar el primer elemento de LISTA-NODOS y llamarlo E. Si LISTA-NODOS esta vaca, terminar b) Para que cada regla se empareje con el estado descrito en E hacer:

i. Aplicar la regla para generar un nuevo estado. ii. Si el nuevo estado es un estado objetivo, terminar y devolver este estado. iii. En caso contrario, aadir el nuevo estado al final de LISTA-NODOS.

VENTAJAS DE LA BSQUEDA EN ANCHURA


La bsqueda en anchura no queda atrapada explorando callejones sin salida. Esto se contrapone con la bsqueda en profundidad en la que se puede seguir una ruta infructuosa durante mucho tiempo, y quizs para siempre, antes de acabar en un estado sin sucesores. Si existe una solucin, la bsqueda en anchura garantiza que se logre encontrarla. Adems, si existen mltiples soluciones, se encuentra la solucin mnima (es decir, la que requiera el mnimo nmero de pasos).

EJEMPLO
El problema de las jarras de agua: Se tiene dos jarras, una de cuatro litro de capacidad y otra de tres. Ninguna de ellas tiene marcas de medicin. Se tiene una bomba que permite llenar las jarras de agua. Cmo se puede lograr obtener exactamente dos litros de agua en la jarra de cuatro litro de capacidad?

1.Utilizando bsqueda en amplitud o anchura:

2. Utilizando bsqueda en profundidad:

(0,0)

(4,0)

(4,3)

Вам также может понравиться