métodos básicos de búsqueda ¿cómo resolver el problema de control en sistemas de reglas de...

34
Métodos básicos de Búsqueda Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en ¿Cómo resolver el problema de control en sistemas de reglas de producción? sistemas de reglas de producción? Técnicas básicas para encontrar Técnicas básicas para encontrar caminos en caminos en redes de estados redes de estados . . Por el momento: Por el momento: - no se intenta encontrar la solución - no se intenta encontrar la solución óptima óptima - desarrollo de ‘árbol de búsqueda’ - desarrollo de ‘árbol de búsqueda’

Upload: macaria-badia

Post on 07-Mar-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

Métodos básicos de BúsquedaMétodos básicos de Búsqueda

¿Cómo resolver el problema de control en ¿Cómo resolver el problema de control en sistemas de reglas de producción?sistemas de reglas de producción?

Técnicas básicas para encontrar caminos enTécnicas básicas para encontrar caminos en

redes de estadosredes de estados..

Por el momento:Por el momento:

- no se intenta encontrar la solución óptima- no se intenta encontrar la solución óptima

- desarrollo de ‘árbol de búsqueda’- desarrollo de ‘árbol de búsqueda’

Page 2: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

2

Un ejemplo:Un ejemplo:

Dos tareas posibles:Dos tareas posibles: 1. ENCONTRAR un (el) camino. 1. ENCONTRAR un (el) camino. = costo = costo

computacional computacional

2. RECORRER el camino. 2. RECORRER el camino. = costo de recorrido= costo de recorrido

2. Encontrar caminos óptimos (próximo capítulo). 2. Encontrar caminos óptimos (próximo capítulo).

Red implícitaRed implícita

AA

DD

BB

EE

CC

FFGG

SS

33

44

44

44

55 55

44

3322

Page 3: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

3

AA

DD

BB

EE

CC

FFGGSS

33

44

44

44

55 55

44

33

El árbol asociado de El árbol asociado de caminos parciales caminos parciales -sin ciclos--sin ciclos-

22

SSAA DD

BB DD EEAA

CC EE EE BB BB FF

DD FF BB FF CC EE AA CC GG

GG CC GG FF

GG

33

33 33

33

33

22

22

2244

44

4444

44

4444

44

44

44

44

44

5555

55 55

5555

Page 4: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

4

Comentarios:Comentarios: Por el momento no estamos interesados en caminos Por el momento no estamos interesados en caminos

óptimos, entonces podemos omitir los costos.óptimos, entonces podemos omitir los costos.

SSAA DD

BB DD EEAA

CC EE EE BB BB FF

DD FF BB FF CC EE AA CC GG

GG CC GG FF

GG

Los nodos representan el camino parcial desde la raíz Los nodos representan el camino parcial desde la raíz a ellos!!a ellos!!

Significa:Significa:SASA Significa:Significa:

SDASDA

Signif.:Signif.: SDEBASDEBA

Page 5: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

5

Terminología:Terminología:

Nodo, ramaNodo, rama Progenitor, hijo, ancestro, descendienteProgenitor, hijo, ancestro, descendiente Nodo raiz, nodo objetivoNodo raiz, nodo objetivo Expandir / Nodo Abierto/ Nodo cerrado/factor de Expandir / Nodo Abierto/ Nodo cerrado/factor de

ramificaciónramificación

SSAA DD

BB DD EEAA

CC EE EE BB BB FF

DD FF BB FF CC EE AA CC GG

GG CC GG FF

GG

Page 6: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

Métodos de búsqueda a ciegasMétodos de búsqueda a ciegas

Métodos que no usan ningún conocimiento Métodos que no usan ningún conocimiento específico acerca del problema:específico acerca del problema:

Primero en profundidadPrimero en profundidad

Primero en amplitudPrimero en amplitud

Búsqueda No-determinísticaBúsqueda No-determinística

Profundización IterativaProfundización Iterativa

Búsqueda Bi-direccionalBúsqueda Bi-direccional

Page 7: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

Búsqueda primero en profundidadBúsqueda primero en profundidad

Expandir el árbol tan profundamente Expandir el árbol tan profundamente como sea posible, como sea posible,

retornando a niveles superiores cuando retornando a niveles superiores cuando sea necesario.sea necesario.

Page 8: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

8

Búsqueda primero en Búsqueda primero en profundidadprofundidad

= seguim. Cronológ.hacia atrás= seguim. Cronológ.hacia atrás

Seleccionar un hijo Seleccionar un hijo convención: izq.-a-convención: izq.-a-

derechaderecha Repetidamente ir al hijo Repetidamente ir al hijo

siguiente, tanto como siguiente, tanto como sea posible.sea posible.

Volver a las alternativas Volver a las alternativas no visitadas (nivel más no visitadas (nivel más alto) solo cuando fuere alto) solo cuando fuere necesario.necesario.

BB

CC EE

DD FF

GG

SS

AA

Page 9: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

9

Algoritmo búsqueda primero en Algoritmo búsqueda primero en profundidad:profundidad:

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

2. 2. WHILEWHILE COLACOLA no vacía no vacía ANDAND objetivo no alcanzado objetivo no alcanzado

DODO remover el primer camino de la remover el primer camino de la COLACOLA;; crear nuevos caminos (a todos los hijos);crear nuevos caminos (a todos los hijos); rechazar los nuevos caminos con ciclos;rechazar los nuevos caminos con ciclos;

agregar al agregar al frentefrente de de COLA COLA los nuevoslos nuevos caminos;caminos;3. 3. IFIF objetivo alcanzado objetivo alcanzado THENTHEN éxito; éxito; ELSEELSE falla; falla;

Page 10: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

10

AA

DD

BB

EE

CC

FFGGSS

33

44

44

44

55 55

44

3322

1. 1. COLACOLA <-- camino que solo contiene la <-- camino que solo contiene la raiz;raiz;2. 2. WHILEWHILE COLACOLA no vacía no vacía ANDAND objetivo no alcanzado objetivo no alcanzado DODO remover el primer camino de la remover el primer camino de la COLACOLA;; crear nuevos caminos (a todos los crear nuevos caminos (a todos los hijos);hijos); rechazar los nuevos caminos con rechazar los nuevos caminos con ciclos;ciclos;

agregar al agregar al frentefrente de de COLA COLA los los nuevosnuevos caminos;caminos;3. 3. IFIF objetivo alcanzado objetivo alcanzado THENTHEN éxito; éxito; ELSEELSE falla; falla;

Page 11: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

11

Traza de depth-first Traza de depth-first para el ejemplo:para el ejemplo:

(S) (S) S removido, (SA,SD) computados y agregados S removido, (SA,SD) computados y agregados (SA, SD)(SA, SD) SA removido, (SAB,SAD,SAS) computados, SA removido, (SAB,SAD,SAS) computados,

(SAB,SAD) agregados(SAB,SAD) agregados (SAB,SAD,SD) (SAB,SAD,SD) SAB removido, (SABA,SABC,SABE) SAB removido, (SABA,SABC,SABE)

comput., comput., (SABC,SABE) agregados (SABC,SABE) agregados (SABC,SABE,SAD,SD) (SABC,SABE,SAD,SD) SABC removido, (SABCB) computados, SABC removido, (SABCB) computados,

nada agragadonada agragado (SABE,SAD,SD)(SABE,SAD,SD) SABE removido, (SABEB,SABED,SABEF) SABE removido, (SABEB,SABED,SABEF)

computados, computados, (SABED,SABEF)agragados(SABED,SABEF)agragados

(SABED,SABEF,SAD,SD) (SABED,SABEF,SAD,SD) SABED removido, SABED removido, (SABEDS,SABEDA.SABEDE) computados, (SABEDS,SABEDA.SABEDE) computados, nada agregadonada agregado

((SABEF,SAD,SD) SABEF,SAD,SD) SABEF removido, (SABEFE,SABEFG) SABEF removido, (SABEFE,SABEFG) computados, (SABEFG) computados, (SABEFG)

agregadoagregado (SABEFG,SAD,SD)(SABEFG,SAD,SD) objetivo alcanzado: reportar éxitoobjetivo alcanzado: reportar éxito

Page 12: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

12

Criterios de evaluación:Criterios de evaluación: Completitud:Completitud:

¿El algoritmo siempre encuentra un camino?¿El algoritmo siempre encuentra un camino? (para toda RED en que al menos un camino exista)(para toda RED en que al menos un camino exista)

VelocidadVelocidad (complejidad de tiempo en las peores (complejidad de tiempo en las peores cond.)cond.) :: ¿Cuál es el máximo número de nodos que puede ser ¿Cuál es el máximo número de nodos que puede ser

necesario que sean creados?necesario que sean creados? MemoriaMemoria (complejidad de espacio en las peores cond.)(complejidad de espacio en las peores cond.) : :

¿Cuál es la máxima cantidad de nodos que puede ¿Cuál es la máxima cantidad de nodos que puede ser necesario almacenar?ser necesario almacenar?

Expresado en términos de: Expresado en términos de: d = profundidad del árbold = profundidad del árbol b = factor de ramific. (promedio) del árbolb = factor de ramific. (promedio) del árbol m = profundidad de la solución menos profunda m = profundidad de la solución menos profunda

Page 13: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

13

Nota: aproximaciones !!Nota: aproximaciones !!

En nuestro análisis de complejidad, no tenemos En nuestro análisis de complejidad, no tenemos en cuenta la en cuenta la detección de ciclosdetección de ciclos . .

Los resultados solo se aplican ‘formalmente’ a las Los resultados solo se aplican ‘formalmente’ a las variantes de nuestros algoritmos variantes de nuestros algoritmos SINSIN verificación verificación de ciclos.de ciclos.

Estudiar el efecto de la detección de ciclos en la Estudiar el efecto de la detección de ciclos en la complejidad es dificultoso: complejidad es dificultoso: la recarga que implica esta verificación PUEDE o la recarga que implica esta verificación PUEDE o

NO ser compensada por la reducción de tamaño del NO ser compensada por la reducción de tamaño del árbol. árbol.

AdemásAdemás: nuestro análisis : nuestro análisis NONO toma en cuenta la toma en cuenta la longitud (espacio) de representación de caminos !!longitud (espacio) de representación de caminos !!

Page 14: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

14

Completitud Completitud (depth-first)(depth-first)

Completo para REDES FINITAS.Completo para REDES FINITAS. (= REDES con número finito de nodos)(= REDES con número finito de nodos)

IMPORTANTE:IMPORTANTE: Esto is debido a la integración de LOOP-checking Esto is debido a la integración de LOOP-checking

en esta versión de Depth-First (y en todos los otros en esta versión de Depth-First (y en todos los otros algoritmos que se presentarán) !algoritmos que se presentarán) ! SI no removemos caminos con ciclos, entonces SI no removemos caminos con ciclos, entonces

Depth-First no es completo (puede quedar Depth-First no es completo (puede quedar atrapado en loops de una red finita)atrapado en loops de una red finita)

Nota:Nota: NO necesar. encuentra el camino más NO necesar. encuentra el camino más corto. corto.

Page 15: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

15

AA

DD

BB

EE

CC

FFGGSS

33

44

44

55 55

44

3322

SSAA DD

BB DD EEAA

CC EE EE BB BB FF

DD FF BB FF CC EE AA CC GG

GG CC GG FF

GG

33

33 33

33

33

22

22

2244

44

4444

44

4444

44

44

44

44

44

5555

55 55

5555

Page 16: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

16

Velocidad Velocidad (depth-first)(depth-first)

En el peor caso: En el peor caso: el (único) nodo objet. puede estar en la rama del el (único) nodo objet. puede estar en la rama del

extremo derecho, extremo derecho,

GG

ddbb

Complej. de tiempo == bComplej. de tiempo == bd d ++ bbd-1 d-1 + … + + … + 11 = = bbd+1 d+1 --11 Luego: O(bLuego: O(bdd) ) b - 1b - 1

Page 17: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

17

Memoria Memoria (depth-first)(depth-first)

El número máximo de nodos en COLA se El número máximo de nodos en COLA se alcanza en el nodo del extremo izquierdo alcanza en el nodo del extremo izquierdo inferior.inferior.

Ejemplo: d = 3, b = 3 :Ejemplo: d = 3, b = 3 :

......

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

Page 18: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

Búsqueda primero en amplitudBúsqueda primero en amplitud

Expande el árbol capa por capa, Expande el árbol capa por capa,

Avanzando en profundidad.Avanzando en profundidad.

Page 19: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

19

Breadth-first search:Breadth-first search:

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

SS

AA DD

BB DD AA EE

CC EE EE BB BB FF

DD FF BB FF CC EE AA CC GG

GG

GGGG FFCC

Page 20: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

20

UNICA UNICA DIFERENCIA!DIFERENCIA!

Algoritmo prim.en amplitud:Algoritmo prim.en amplitud:

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

2. 2. WHILEWHILE COLACOLA no vacía no vacía ANDAND objetivo no alcanzado objetivo no alcanzado

DODO remover el primer camino de la remover el primer camino de la COLACOLA;; crear nuevos caminos (a todos los crear nuevos caminos (a todos los hijos);hijos); rechazar los caminos nuevos con ciclos;rechazar los caminos nuevos con ciclos; agregar los nuevos caminos al final de agregar los nuevos caminos al final de COLACOLA;;

3. 3. SISI objetivo alcanzado objetivo alcanzado THENTHEN éxito; éxito; ELSEELSE falla; falla;

Page 21: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

21

Traza de breadth-first Traza de breadth-first en el ejemplo:en el ejemplo:

(S) (S) S removido, (SA,SD) computados y agregados S removido, (SA,SD) computados y agregados (SA, SD)(SA, SD) SA removido, (SAB,SAD,SAS) computados, SA removido, (SAB,SAD,SAS) computados,

(SAB,SAD) agregados(SAB,SAD) agregados (SD,SAB,SAD) (SD,SAB,SAD) SD removido, (SDA,SDE,SDS) computados, SD removido, (SDA,SDE,SDS) computados,

(SDA,SDE) agregados(SDA,SDE) agregados (SAB,SAD,SDA,SDE) (SAB,SAD,SDA,SDE) SAB removido, (SABA,SABE,SABC) SAB removido, (SABA,SABE,SABC)

computados, (SABE,SABC) agregadoscomputados, (SABE,SABC) agregados (SAD,SDA,SDE,SABE,SABC)(SAD,SDA,SDE,SABE,SABC) SAD removido, (SADS,SADA, SAD removido, (SADS,SADA,

SADE) computados, (SADE) agregadosSADE) computados, (SADE) agregados etc, hasta que COLA contiene:etc, hasta que COLA contiene:

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

Page 22: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

22

Completitud Completitud (breadth-first)(breadth-first)

COMPLETACOMPLETA aún para REDES implícitamente infinitas!aún para REDES implícitamente infinitas!

Permanecería completa aún sin nuestro loop-Permanecería completa aún sin nuestro loop-checking.checking.

Nota:Nota: SIEMPRE encuentra el camino más corto. SIEMPRE encuentra el camino más corto.

Page 23: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

23

Velocidad Velocidad (breadth-first)(breadth-first) Si un nodo objetivo es encontrado a profundidad Si un nodo objetivo es encontrado a profundidad mm del del

árbol, todos los nodos hasta esa profundidad son creados.árbol, todos los nodos hasta esa profundidad son creados.

ddGGbb

mm

LuegoLuego: O: O((bbmm) ) nota: depth-first podría haber visitado nodos más profundos.nota: depth-first podría haber visitado nodos más profundos.

Page 24: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

24

Memoria Memoria (breadth-first)(breadth-first)

El mayor número de nodos en COLA se alcanza El mayor número de nodos en COLA se alcanza en el nivel en el nivel mm del nodo objetivo. del nodo objetivo.

GGddbb

mm

GG COLA contiene nodos y . COLA contiene nodos y . (Es decir: 4)(Es decir: 4) . . En General: bEn General: bmm

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

Page 25: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

25

Evaluación práctica:Evaluación práctica:

Depth-first:Depth-first:SI el espacio de búsqueda contiene ramas muy SI el espacio de búsqueda contiene ramas muy

profundas sin solución, ENTONCES Depth-first profundas sin solución, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas.puede desperdiciar mucho tiempo en ellas.

Breadth-first:Breadth-first: Demanda MUCHA memoria !Demanda MUCHA memoria !

¿ Soluciones ?¿ Soluciones ?Búsqueda No-determinísticaBúsqueda No-determinística Profundización iterativaProfundización iterativa

Page 26: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

26

Búsqueda No-determinística:Búsqueda No-determinística:

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

2. 2. WHILEWHILE COLACOLA no vacía no vacía ANDAND objetivo no alcanzado objetivo no alcanzado

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

3. 3. IFIF objetivo alcanzado objetivo alcanzado THENTHEN exito; exito; ELSEELSE falla; falla;

Page 27: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

27

Búsqueda por profundización Búsqueda por profundización iterativaiterativa

Restringe una búsqueda depth-first a una Restringe una búsqueda depth-first a una profundidad fija.profundidad fija.

Si no se encontró ningún camino, incrementar Si no se encontró ningún camino, incrementar la profundidad y recomenzar la búsqueda.la profundidad y recomenzar la búsqueda.

Page 28: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

28

Depth-limited search:Depth-limited search:1. 1. DEPTHDEPTH <-- <algun número natural> <-- <algun número natural> COLA COLA <-- camino que solo contiene la raiz; <-- camino que solo contiene la raiz;

2. 2. WHILEWHILE COLACOLA no vacía no vacía ANDAND objetivo no alcanzado objetivo no alcanzado

DODO remover el primer camino de la remover el primer camino de la COLACOLA;; IFIF el camino tiene long.menor que el camino tiene long.menor que DEPTHDEPTH crear nuevos caminos(a todos los hijos);crear nuevos caminos(a todos los hijos); rechazar los nuevos caminos con ciclos;rechazar los nuevos caminos con ciclos; agregar los nuevos caminos al frente de agregar los nuevos caminos al frente de COLACOLA;;

3. 3. IFIF objetivo alcanzado objetivo alcanzado THENTHEN exito; exito; ELSEELSE falla; falla;

Page 29: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

29

Algoritmo de profundización Algoritmo de profundización iterativa:iterativa:

1. 1. DEPTHDEPTH <-- 1 <-- 1 2. 2. WHILEWHILE objetivo no alcanzado objetivo no alcanzado

DODO ejecutar Depth-limited search; ejecutar Depth-limited search; incrementar en 1 incrementar en 1 DEPTHDEPTH;;

Page 30: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

30

Profundización iterativa:Profundización iterativa:la mejor búsqueda ‘a ciegas’.la mejor búsqueda ‘a ciegas’.

Completa: si - incluso encuentra el camino más Completa: si - incluso encuentra el camino más corto corto (como primero en amplitud)(como primero en amplitud) . .

b - 1b - 1 bbm-1m-1 ++ bbm-2m-2 + … + + … + 11 = = bbmm --1 = O(b1 = O(bm-1m-1))

En general: MUY buen trade-offEn general: MUY buen trade-off

El trabajo realizado en El trabajo realizado en DEPTHDEPTH = = mm is O(b is O(bmm))

Memoria: b*Memoria: b*m m (combina ventajas de depth- y breadth-first)(combina ventajas de depth- y breadth-first) Velocidad:Velocidad:

Si se halla el camino a Si se halla el camino a DepthDepth = = mm, ¿cuánto tiempo se , ¿cuánto tiempo se desperdició en la construcc.de los árboles más pequeños?desperdició en la construcc.de los árboles más pequeños?

Page 31: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

31

Búsqueda bi-direccional Búsqueda bi-direccional

Computa el árbol tanto desde el nodo de Computa el árbol tanto desde el nodo de comienzo como desde el nodo objetivo, hasta comienzo como desde el nodo objetivo, hasta que estos árboles se encuentran.que estos árboles se encuentran.

Page 32: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

32

Búsqueda bi-direccional Búsqueda bi-direccional SISI podemos describir EXPLíCITAMENTE el estado podemos describir EXPLíCITAMENTE el estado

OBJETIVO, OBJETIVO, YY Contamos con reglas para razonamiento HACIA Contamos con reglas para razonamiento HACIA

ADELANTE Y HACIA ATRAS:ADELANTE Y HACIA ATRAS:

Objet.Objet.InicioInicio

Page 33: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

33

Algoritmo bi-direccional:Algoritmo bi-direccional:

1. 1. COLA1COLA1 <-- camino que solo contiene la raiz; <-- camino que solo contiene la raiz; COLA2COLA2 <-- camino que solo contiene el objetivo; <-- camino que solo contiene el objetivo;

2. 2. WHILEWHILE ambas ambas COLAiCOLAi no estén vacías no estén vacías ANDAND COLA1COLA1 y y COLA2 COLA2 NO compartan un estado NO compartan un estado

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

3. 3. IFIF COLA1COLA1 y y COLA2 COLA2 comparten un estadocomparten un estado THENTHEN éxito; éxito; ELSEELSE falla; falla;

Page 34: Métodos básicos de Búsqueda ¿Cómo resolver el problema de control en sistemas de reglas de producción? Técnicas básicas para encontrar caminos en redes

34

Propiedades Propiedades (Bi-direccional)(Bi-direccional)::

Completa: Si.Completa: Si.

Velocidad: Si la verificación de estado común Velocidad: Si la verificación de estado común se puede realizar en tiempo constante se puede realizar en tiempo constante (hashing):(hashing): 2 * O(b2 * O(bm/2m/2) = O(b) = O(bm/2m/2) )

Memoria: similar: O(bMemoria: similar: O(bm/2m/2))