Anda di halaman 1dari 27

Bsqueda Ciega Los mtodos ciegos son procedimiento sistemticos de bsqueda del estado meta en el rbol de estado.

Son llamados de mtodos ciegos, 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. Los mtodos de bsqueda ciega ms conocidos son:

Bsqueda en amplitud Bsqueda en profundidad Bsqueda no determinstica (aleatorio)

Procedimiento Inicie en el nodo raz del rbol de estado con el estado inicial. Si el nodo corresponde al estado meta entonces termine, caso contrario genere los nodos sucesores no redundante del presente nivel (use el sistema de produccin). Si alguno de los nodos del primer nivel corresponde al estado meta entonces termine, caso contrario genere los nodos sucesores no redundante del primer nivel, esto es los nodos del segundo nivel (use el sistema de produccin). El proceso se repite hasta encontrar el estado meta o cuando no sea posible generar nuevos sucesores.

Procedimiento

Procedimiento

Implementacin Listas LE:

Lista de nodos en espera de proceso (nodos no comparados con el estado meta)


LV:

Lista de nodos ya procesado (nodos ya comparados con el estado meta)

Implementacin Listas

Con el fin de construir la solucin (secuencia de estados desde el estado inicial hasta el estado meta) registraremos en LE y LV cada nodo (estado) con su antecesor.

Implementacin Listas LE:


PROCESAR
MP MQ NR
M N

LE:

REGISTRO HIJOS(P)

MQ

NR

PT

PU

Algoritmo - Listas

Test de Parada Condicin de xito El estado a procesar es meta (F,P):= Primer(LE) Si ( P es Meta ) entonces PARE; Condicin de Fracaso No es posible seguir buscando Si ( LE = () ) entonces Escribir(no hay solucin), PARE

Algoritmo - Listas
Inicio 1. LE := ((O,Estado_Inicial)); LV:=(); Test de Parada 2. Si ( LE = () ) entonces Escribir(no hay solucin), PARE; 3. (F,P):= Primer(LE) 4. Si ( P es Meta ) entonces Determinar_Solucion, PARE; Genera Sucesores: 5. Adiciona_ultimo((F,P), LV); 6. Elimina_primer(LE); 7. Para (Nodo (Hijos(P) - LV)) Adicionar_ultimo((P,Nodo), LE); 8. Ir a 2

Algoritmo - Listas Determinar_Solucion Para determinar la solucin, esto es el camino de estados que inicia en el estado inicial y termina en el estado meta, basta concatenar al estado meta su antecesor, y a este su antecesor y as sucesivamente hasta alcanzar el estado inicial. La bsqueda de los antecesores a los estados se debe hacer desde LE y LV cuando se ha encontrado el estado meta.

Algoritmo - Listas

Conceptos
Una hoja de un rbol es un nodo del rbol que no tiene sucesores.
Una rama de un rbol es un camino que inicia en el nodo raz y termina en un nodo hoja.

Conceptos: Ramas

Procedimiento
El mtodo consiste en una bsqueda por las ramas del rbol de estado. Si en una de las ramas se encuentra el estado meta entonces el procedimiento termina, de lo contrario se pasa a investigar sobre otra rama no redundante. El procedimiento se repite hasta encontrar el estado meta (xito) o hasta que no existan ms ramas a investigar (fracaso).

Procedimiento

Implementacin Listas LE:

Lista de nodos en espera de proceso (nodos no comparados con el estado meta)


LV:

Lista de nodos ya procesado (nodos comparados con el estado meta)

Implementacin Listas LE:


PROCESAR
MP MQ
M N

LE: REGISTRO
PT PU

HIJOS(P)

MQ

Algoritmo - Listas
Inicio 1. LE := ((O,Estado_Inicial)); LV:=(); Test de Parada 2. Si ( LE = () ) entonces Escribir(no hay solucin), PARE; 3. (F,P):= Primer(LE) 4. Si ( P es Meta ) entonces Determinar_Solucion, PARE; Genera Sucesores: 5. Adiciona_ultimo((F,P), LV); 6. Elimina_primer(LE); 7. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE); 8. Ir a 2

Ejemplo: Determine un camino c-i. Considere la lectura en sentido horario

Observaciones: Amplitud - Profundidad

El estado a ser procesado en ambos mtodos es el primero de la lista LE.

Las listas generadas en los mtodos de bsqueda en amplitud y en profundidad son registradas respectivamente al final e inicio de LE.

Observaciones: Amplitud - Profundidad LE:


PROCESO
P Q R

REGISTRO HIJOS(P) Profundidad HIJOS(P) Amplitud

Es el primer nodo el mejor para ser procesado?

Procedimiento
En este mtodo, el nodo a procesar es seleccionado aleatoriamente de la lista LE, los nodos sucesores son colocados al inicio o final de LE.

Implementacin Listas LE:


PROCESAR
MP MQ NR

Seleccin aleatoria

LE:
REGISTRO

Conveniencia
HIJOS(Q) MP NR

Algoritmo - Listas
Inicio 1. LE := ((O,Estado_Inicial)); LV:=(); Test de Parada 2. Si ( LE = () ) entonces Escribir(no hay solucin), PARE; 3. (F,P):= Aleatorio(LE) 4. Si ( P es Meta ) entonces Determinar_Solucion, PARE; Genera Sucesores: 5. Adiciona_ultimo((F,P), LV); 6. Elimina_aleatorio(LE); 7. Para (Nodo (Hijos(P) - LV)) Adicionar_primero((P,Nodo), LE); 8. Ir a 2

Ejemplo: Determine un camino c-i. Considere la lectura en sentido horario

- La complejidad de los mtodos ciegos es no polinomial. - Si se conoce a priori que el estado meta est prximo (muy distante) al estado inicial es adecuado usar el mtodo de bsqueda en amplitud (profundidad).

Anda mungkin juga menyukai