You are on page 1of 34

Mtodos bsicos de Bsqueda

Cmo resolver el problema de control en sistemas de reglas de produccin?


Tcnicas bsicas para encontrar caminos en redes de estados. Por el momento: - no se intenta encontrar la solucin ptima - desarrollo de rbol de bsqueda

Un ejemplo:
3 S 4 A 4 B 5 2 E 4 F 3 4 C G

5
D

Red implcita
Dos tareas posibles: 1. ENCONTRAR un (el) camino. 2. RECORRER el camino. = costo computacional = costo de recorrido

2. Encontrar caminos ptimos (prximo captulo).


2

El rbol asociado de caminos parciales -sin ciclos3 S 4 A 5 D 3 2 E


S

B 5 4

4 F 4
A

C 3 G

4
4
C B

2
5
E B F

2
D

4
F G

5
3
B C

4
C

5
E F

4 3

Comentarios:
Por el momento no estamos interesados en caminos ptimos, entonces podemos omitir los costos. Significa: S SA A D Significa:
B D

SDA

C
D

E
F G B C

E
F G C

B
E F G A

B
C

F
G

Signif.: SDEBA

Los nodos representan el camino parcial desde la raz a ellos!!

Terminologa:
A B C D E F G B C D E F G C B E F G
Nodo, rama Progenitor, hijo, ancestro, descendiente Nodo raiz, nodo objetivo Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificacin
5

S A

D E B A C F G

Mtodos de bsqueda a ciegas


Mtodos que no usan ningn conocimiento especfico acerca del problema:

Primero en profundidad Primero en amplitud Bsqueda No-determinstica Profundizacin Iterativa Bsqueda Bi-direccional

Bsqueda primero en profundidad


Expandir el rbol tan profundamente como sea posible, retornando a niveles superiores cuando sea necesario.

= seguim. Cronolg.hacia atrs


S A B C D E F G

Bsqueda primero en profundidad

Seleccionar un hijo

Repetidamente ir al hijo siguiente, tanto como sea posible. Volver a las alternativas no visitadas (nivel ms alto) solo cuando fuere necesario.

convencin: izq.-aderecha

1. COLA <-- camino que solo contiene la raiz;

Algoritmo bsqueda primero en profundidad:


COLA no vaca AND objetivo no alcanzado

2. WHILE
DO

remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar al frente de COLA los nuevos caminos; 3. IF objetivo alcanzado THEN xito; ELSE falla;
9

3 4

A 5 D

4 2 E

B 5 4

4 F

C 3

1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vaca AND objetivo no alcanzado DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar al frente de COLA los nuevos caminos; 3. IF objetivo alcanzado THEN xito; ELSE falla;

10

Traza de depth-first para el ejemplo:


(S) (SA, SD) S removido, (SA,SD) computados y agregados SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SAB,SAD,SD) SAB removido, (SABA,SABC,SABE) comput., (SABC,SABE) agregados (SABC,SABE,SAD,SD) SABC removido, (SABCB) computados, nada agragado (SABE,SAD,SD) SABE removido, (SABEB,SABED,SABEF) computados, (SABED,SABEF)agragados (SABED,SABEF,SAD,SD) SABED removido, (SABEDS,SABEDA.SABEDE) computados, nada agregado (SABEF,SAD,SD) SABEF removido, (SABEFE,SABEFG) computados, (SABEFG) agregado (SABEFG,SAD,SD) objetivo alcanzado: reportar xito
11

Criterios de evaluacin:
Completitud:
El algoritmo siempre encuentra un camino? (para toda RED en que al menos un camino exista) Cul es el mximo nmero de nodos que puede ser necesario que sean creados?

Velocidad (complejidad de tiempo en las peores cond.) : Memoria (complejidad de espacio en las peores cond.) :
Cul es la mxima cantidad de nodos que puede ser necesario almacenar?

Expresado en trminos de:


d = profundidad del rbol b = factor de ramific. (promedio) del rbol m = profundidad de la solucin menos profunda

12

Nota: aproximaciones !!
En nuestro anlisis de complejidad, no tenemos en cuenta la deteccin de ciclos . Los resultados solo se aplican formalmente a las variantes de nuestros algoritmos SIN verificacin de ciclos. Estudiar el efecto de la deteccin de ciclos en la complejidad es dificultoso:
la recarga que implica esta verificacin PUEDE o NO ser compensada por la reduccin de tamao del rbol.

Adems: nuestro anlisis NO toma en cuenta la longitud (espacio) de representacin de caminos !!


13

Completitud

(depth-first)

Completo para REDES FINITAS.

(= REDES con nmero finito de nodos)

IMPORTANTE:
Esto is debido a la integracin de LOOP-checking en esta versin de Depth-First (y en todos los otros algoritmos que se presentarn) ! SI no removemos caminos con ciclos, entonces Depth-First no es completo (puede quedar atrapado en loops de una red finita)

Nota: NO necesar. encuentra el camino ms corto.


14

3 S 4

A 5 D 3 5
D

4
2 E
S

4
F 4
A

C 3 G

4 4
C

2 5
E
B F

5 2
D E

4
F G

2 4
F

4 4
C

4 3

B C

5
E F

4
3

15

Velocidad
En el peor caso:

(depth-first)

el (nico) nodo objet. puede estar en la rama del extremo derecho,

b
G

Complej. de tiempo == bd + bd-1 + + 1 = bd+1 -1 b-1 Luego: O(bd)


16

Memoria

(depth-first)

El nmero mximo de nodos en COLA se alcanza en el nodo del extremo izquierdo inferior. Ejemplo: d = 3, b = 3 :

...

COLA contiene nodos . Es decir: 7. En General: ((b-1) * d) + 1 Orden: O(d*b)


17

Bsqueda primero en amplitud


Expande el rbol capa por capa, Avanzando en profundidad.

Breadth-first search:
S

A
B D E D F G B C E F G C A

D E

B
E F G A

B
C

F
G

Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado.

19

Algoritmo prim.en amplitud:


1. COLA <-- camino que solo contiene la raiz; 2. WHILE DO COLA no vaca AND objetivo no alcanzado

remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los caminos nuevos con ciclos; agregar los nuevos caminos al final de COLA;
UNICA DIFERENCIA!
20

3. SI objetivo alcanzado THEN xito; ELSE falla;

Traza de breadth-first en el ejemplo:


(S) (SA, SD) S removido, (SA,SD) computados y agregados SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SD,SAB,SAD) SD removido, (SDA,SDE,SDS) computados, (SDA,SDE) agregados (SAB,SAD,SDA,SDE) SAB removido, (SABA,SABE,SABC) computados, (SABE,SABC) agregados (SAD,SDA,SDE,SABE,SABC) SAD removido, (SADS,SADA, SADE) computados, (SADE) agregados etc, hasta que COLA contiene:

(SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) el objetivo es alcanzado: reportar xito


21

Completitud
COMPLETA

(breadth-first)

an para REDES implcitamente infinitas!

Permanecera completa an sin nuestro loopchecking. Nota: SIEMPRE encuentra el camino ms corto.

22

Velocidad

(breadth-first)

Si un nodo objetivo es encontrado a profundidad m del rbol, todos los nodos hasta esa profundidad son creados.

Luego: O(bm) nota: depth-first podra haber visitado nodos ms profundos.

23

Memoria

(breadth-first)

El mayor nmero de nodos en COLA se alcanza en el nivel m del nodo objetivo.

m b
G

COLA contiene nodos En General: bm

G . (Es decir: 4) .

Esto es generalm. MUCHO peor que depth-first !!

24

Evaluacin prctica:
Depth-first:
SI el espacio de bsqueda contiene ramas muy profundas sin solucin, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas.

Breadth-first:
Demanda MUCHA memoria !

Soluciones ?
Bsqueda No-determinstica Profundizacin iterativa
25

Bsqueda No-determinstica:
1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vaca AND objetivo no alcanzado

DO

remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos; agregar los nuevos cam. en lug. al azar en COLA;

3. IF objetivo alcanzado THEN exito; ELSE falla;


26

Bsqueda por profundizacin iterativa


Restringe una bsqueda depth-first a una profundidad fija.
Si no se encontr ningn camino, incrementar la profundidad y recomenzar la bsqueda.

27

Depth-limited search:
1. DEPTH <-- <algun nmero natural> COLA <-- camino que solo contiene la raiz;

2. WHILE
DO

COLA no vaca AND objetivo no alcanzado

remover el primer camino de la COLA; IF el camino tiene long.menor que DEPTH crear nuevos caminos(a todos los hijos); rechazar los nuevos caminos con ciclos; agregar los nuevos caminos al frente de COLA;

3. IF objetivo alcanzado THEN exito; ELSE falla;

28

Algoritmo de profundizacin iterativa:


1. DEPTH <-- 1 2. WHILE DO objetivo no alcanzado

ejecutar Depth-limited search; incrementar en 1 DEPTH;

29

Profundizacin iterativa: la mejor bsqueda a ciegas.


Completa: si - incluso encuentra el camino ms corto (como primero en amplitud) . Memoria: b*m (combina ventajas de depth- y breadthfirst)

Velocidad:
Si se halla el camino a Depth = m, cunto tiempo se desperdici en la construcc.de los rboles ms pequeos?

bm-1 + bm-2 + + 1 = bm -1 = O(bm-1) b-1 El trabajo realizado en DEPTH = m is O(bm) En general: MUY buen trade-off
30

Bsqueda bi-direccional
Computa el rbol tanto desde el nodo de comienzo como desde el nodo objetivo, hasta que estos rboles se encuentran.

31

Bsqueda bi-direccional
SI podemos describir EXPLCITAMENTE el estado OBJETIVO, Y Contamos con reglas para razonamiento HACIA ADELANTE Y HACIA ATRAS:

Inicio

Objet.

32

Algoritmo bi-direccional:
1. COLA1 <-- camino que solo contiene la raiz; COLA2 <-- camino que solo contiene el objetivo; 2. WHILE ambas COLAi no estn vacas AND COLA1 y COLA2 NO compartan un estado

DO

remover sus primeros caminos; crear sus nuevos caminos (a todos los hijos); rechazar sus nuevos caminos con ciclos; agregar sus nuevos caminos al final;

3. IF COLA1 y COLA2 comparten un estado THEN xito; ELSE falla;

33

Propiedades
Completa: Si.

(Bi-direccional):

Velocidad: Si la verificacin de estado comn se puede realizar en tiempo constante (hashing): 2 * O(bm/2) = O(bm/2)

Memoria: similar: O(bm/2)

34

You might also like