Professional Documents
Culture Documents
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
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
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
Primero en profundidad Primero en amplitud Bsqueda No-determinstica Profundizacin Iterativa Bsqueda Bi-direccional
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
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
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?
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.
Completitud
(depth-first)
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)
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)
b
G
Memoria
(depth-first)
El nmero mximo de nodos en COLA se alcanza en el nodo del extremo izquierdo inferior. Ejemplo: d = 3, b = 3 :
...
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
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
Completitud
COMPLETA
(breadth-first)
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.
23
Memoria
(breadth-first)
m b
G
G . (Es decir: 4) .
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;
27
Depth-limited search:
1. DEPTH <-- <algun nmero natural> COLA <-- camino que solo contiene la raiz;
2. WHILE
DO
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;
28
29
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;
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)
34