Sie sind auf Seite 1von 13

2.

3 Mtodos de
bsqueda.
Integrantes:
Ayala Gonzlez Jos Armando
Lara Estrada Elva Lizeth
Maravilla Hernndez Jos Luis
Losmtodos a ciegas son procedimiento sistemticos de
bsqueda del estado meta en el rbol de estado.
Son llamados de mtodos a ciegas, porque usan estrategias
de bsqueda que solo consideran la relacin de precedencia
entre estados.
La informacin sobre el beneficio, utilidad, lucro de pasar de
un estado para otro estado no es considerado.
2.3.1 Primero en anchura (breadth-
first)
Crea una agenda de un elemento (el nodo raz) hasta que la
agenda este vaca o se alcance la meta si el primer elemento
es la meta entonces acaba si no elimina el primer elemento y
aade sus sucesores al final de la agenda.
Si el conjunto open se maneja como una lista FIFO, es decir, como una cola, siempre se estar
visitando primero los primeros estados en ser generados. El recorrido del espacio de estados se
hace por niveles de profundidad.
procedure Bsqueda_en_amplitud {
open ()[estado_inicial]
closed () {}
while (open no est vaca) {
remover el primer estado X de la lista open
if (X es un estado objetivo)
return xito
else {
generar el conjunto de sucesores del estado X
agregar el estado X al conjunto closed
eliminar sucesores que ya estn en open o en closed
agregar el resto de los sucesores al final de open
}
}
return fracaso
}
Si el factor de ramificacin es B y la profundidad a la cual se encuentra el estado objetivo ms
cercano es n, este algoritmo tiene una complejidad en tiempo y espacio de O(Bn).
Contrariamente a la bsqueda en profundidad, la bsqueda en amplitud garantiza encontrar el
camino ms corto.
2.3.2 Primero en profundidad (depth-
first)
Crea una agenda de un elemento (el nodo raz) hasta que la
agenda este vaca o se alcance la meta si el primer elemento
es la meta entonces acaba si no elimina el primer elemento y
aade sus sucesores al frente de la agenda.
Variaciones:
depth-bound (casi todos): limitar la bsqueda hasta cierto
lmite de profundidad
interative-deepening: explorar a profundidad
progresivamente
con algo de informacin: ordena los nodos expandidos
Si el conjunto open se maneja como una lista LIFO, es decir, como un stack, siempre se
estar visitando primero los ltimos estados en ser generados. Esto significa que si A
genera B y C, y B genera D, antes de visitar C se visita D, que est ms alejado de la raiz
A, o sea ms profundo en el rbol de bsqueda. El algoritmo tiene en este caso la
tendencia de profundizar la bsqueda en una rama antes de explorar ramas alternativas.
procedure Bsqueda_en_profundidad {
open () [estado_inicial]
closed () {}
while (open no est vaca) {
remover el primer estado X de la lista open
if (X es un estado objetivo) return xito
else {
generar el conjunto de sucesores del estado X
agregar el estado X al conjunto closed
eliminar sucesores que ya estn en open o en closed
agregar el resto de los sucesores al principio de open
}
}
return fracaso
}
Considerando que la cantidad promedio de sucesores de los
nodos visitados es B (llamado en ingls el branching factor y en
castellano el factor de ramificacin), y suponiendo que la
profundidad mxima alcanzada es n, este algoritmo tiene una
complejidad en tiempo de O(Bn) y, si no se considera el conjunto
closed, una complejidad en espacio de O(B n). En vez de usar
el conjunto closed, el control de ciclos se puede hacer
descartando aquellos estados que aparecen en el camino
generado hasta el momento (basta que cada estado generado
tenga un puntero a su padre).
El mayor problema de este algoritmo es que puede "perderse" en
una rama sin encontrar la solucin. Adems, si se encuentra una
solucin no se puede garantizar que sea el camino ms corto.

Das könnte Ihnen auch gefallen