La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

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 de estados. Por el momento: - no se intenta encontrar la solución óptima - desarrollo de árbol de búsqueda

2 2 Un ejemplo: Dos tareas posibles: Dos tareas posibles: 1. ENCONTRAR un (el) camino. = costo computacional 1. ENCONTRAR un (el) camino. = costo computacional 2. RECORRER el camino. = costo de recorrido 2. RECORRER el camino. = costo de recorrido 2. Encontrar caminos óptimos (próximo capítulo). 2. Encontrar caminos óptimos (próximo capítulo). Red implícita A D B E C F G S

3 3 A D B E C F G S El árbol asociado de caminos parciales -sin ciclos- 2 S AD BDEA CEEBBF DFBFCEACG GCGF G

4 4 Comentarios: Por el momento no estamos interesados en caminos óptimos, entonces podemos omitir los costos. Por el momento no estamos interesados en caminos óptimos, entonces podemos omitir los costos. S AD BDEA CEEBBF DFBFCEACG GCGF G Los nodos representan el camino parcial desde la raíz a ellos!! Los nodos representan el camino parcial desde la raíz a ellos!!Significa:SA Significa:SDA Signif.: SDEBA SDEBA

5 5Terminología: Nodo, rama Nodo, rama Progenitor, hijo, ancestro, descendiente Progenitor, hijo, ancestro, descendiente Nodo raiz, nodo objetivo Nodo raiz, nodo objetivo Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación S AD BDEA CEEBBF DFBFCEACG GCGF G

6 Métodos de búsqueda a ciegas Métodos que no usan ningún conocimiento específico acerca del problema: Primero en profundidad Primero en amplitud Búsqueda No-determinística Profundización Iterativa Búsqueda Bi-direccional

7 Búsqueda primero en profundidad Expandir el árbol tan profundamente como sea posible, retornando a niveles superiores cuando sea necesario.

8 8 Búsqueda primero en profundidad = seguim. Cronológ.hacia atrás Seleccionar un hijo Seleccionar un hijo convención: izq.-a- derecha convención: izq.-a- derecha Repetidamente ir al hijo siguiente, tanto como sea posible. Repetidamente ir al hijo siguiente, tanto como sea posible. Volver a las alternativas no visitadas (nivel más alto) solo cuando fuere necesario. Volver a las alternativas no visitadas (nivel más alto) solo cuando fuere necesario. B C E D F G S A

9 9 Algoritmo búsqueda primero en profundidad: Algoritmo búsqueda primero en profundidad: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado AND objetivo no alcanzado DO remover el primer camino de la COLA; DO remover el primer camino de la COLA; 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 frente de COLA los nuevos agregar al frente de COLA los nuevos caminos; caminos; 3. IF objetivo alcanzado THEN éxito; THEN éxito; ELSE falla; ELSE falla;

10 10 A D B E C F G S COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado AND objetivo no alcanzado DO remover el primer camino de la COLA; DO remover el primer camino de la COLA; 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 frente de COLA los nuevos agregar al frente de COLA los nuevos caminos; caminos; 3. IF objetivo alcanzado THEN éxito; THEN éxito; ELSE falla; ELSE falla;

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

12 12 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) Velocidad (complejidad de tiempo en las peores cond.) : Velocidad (complejidad de tiempo en las peores cond.) : ¿Cuál es el máximo número de nodos que puede ser necesario que sean creados? ¿Cuál es el máximo número de nodos que puede ser necesario que sean creados? Memoria (complejidad de espacio en las peores cond.) : Memoria (complejidad de espacio en las peores cond.) : ¿Cuál es la máxima cantidad de nodos que puede ser necesario almacenar? ¿Cuál es la máxima cantidad de nodos que puede ser necesario almacenar? Expresado en términos de: Expresado en términos de: d = profundidad del árbol d = profundidad del árbol b = factor de ramific. (promedio) del árbol b = factor de ramific. (promedio) del árbol m = profundidad de la solución menos profunda m = profundidad de la solución menos profunda

13 13 Nota: aproximaciones !! En nuestro análisis de complejidad, no tenemos en cuenta la detección de ciclos. En nuestro análisis de complejidad, no tenemos en cuenta la detección de ciclos. Los resultados solo se aplican formalmente a las variantes de nuestros algoritmos SIN verificación de ciclos. Los resultados solo se aplican formalmente a las variantes de nuestros algoritmos SIN verificación de ciclos. Estudiar el efecto de la detección de ciclos en la complejidad es dificultoso: Estudiar el efecto de la detección de ciclos en la complejidad es dificultoso: la recarga que implica esta verificación PUEDE o NO ser compensada por la reducción de tamaño del árbol. la recarga que implica esta verificación PUEDE o NO ser compensada por la reducción de tamaño del árbol. Además: nuestro análisis NO toma en cuenta la longitud (espacio) de representación de caminos !! Además: nuestro análisis NO toma en cuenta la longitud (espacio) de representación de caminos !!

14 14 Completitud (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 en esta versión de Depth-First (y en todos los otros algoritmos que se presentarán) ! Esto is debido a la integración de LOOP-checking en esta versión de Depth-First (y en todos los otros algoritmos que se presentarán) ! SI no removemos caminos con ciclos, entonces Depth-First no es completo (puede quedar atrapado en loops de una red finita) 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 más corto. Nota: NO necesar. encuentra el camino más corto.

15 15 A D B E C F G S S AD BDEA CEEBBF DFBFCEACG GCGF G

16 16 Velocidad (depth-first) En el peor caso: En el peor caso: el (único) nodo objet. puede estar en la rama del extremo derecho, el (único) nodo objet. puede estar en la rama del extremo derecho, G d b Complej. de tiempo == b d + b d-1 + … + 1 = b d+1 -1 Complej. de tiempo == b d + b d-1 + … + 1 = b d+1 -1 Luego: O(b d ) Luego: O(b d ) b - 1

17 17 Memoria (depth-first) El número máximo de nodos en COLA se alcanza en el nodo del extremo izquierdo inferior. El número máximo de nodos en COLA se alcanza en el nodo del extremo izquierdo 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) + 1 En General: ((b-1) * d) + 1 Orden: O(d*b) Orden: O(d*b)

18 Búsqueda primero en amplitud Expande el árbol capa por capa, Avanzando en profundidad.

19 19 Breadth-first search: Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado. Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado.SA D B D A E C EE BBF D F B FC E A C G G GG FC

20 20 UNICADIFERENCIA! Algoritmo prim.en amplitud: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado AND objetivo no alcanzado DO remover el primer camino de la COLA; DO remover el primer camino de la COLA; crear nuevos caminos (a todos los hijos); crear nuevos caminos (a todos los hijos); rechazar los caminos nuevos con ciclos; rechazar los caminos nuevos con ciclos; agregar los nuevos caminos al final de COLA; agregar los nuevos caminos al final de COLA; 3. SI objetivo alcanzado THEN éxito; THEN éxito; ELSE falla; ELSE falla;

21 21 Traza de breadth-first en el ejemplo: (S) S removido, (SA,SD) computados y agregados (S) S removido, (SA,SD) computados y agregados (SA, SD)SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SA, SD)SA removido, (SAB,SAD,SAS) computados, (SAB,SAD) agregados (SD,SAB,SAD) SD removido, (SDA,SDE,SDS) computados, (SDA,SDE) 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 (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 (SAD,SDA,SDE,SABE,SABC)SAD removido, (SADS,SADA, SADE) computados, (SADE) agregados etc, hasta que COLA contiene: etc, hasta que COLA contiene: (SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) el objetivo es alcanzado: reportar éxito (SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC, SDEFG) el objetivo es alcanzado: reportar éxito

22 22 Completitud (breadth-first) COMPLETA COMPLETA aún para REDES implícitamente infinitas! aún para REDES implícitamente infinitas! Permanecería completa aún sin nuestro loop- checking. Permanecería completa aún sin nuestro loop- checking. Nota: SIEMPRE encuentra el camino más corto. Nota: SIEMPRE encuentra el camino más corto.

23 23 Velocidad (breadth-first) Si un nodo objetivo es encontrado a profundidad m del árbol, todos los nodos hasta esa profundidad son creados. Si un nodo objetivo es encontrado a profundidad m del árbol, todos los nodos hasta esa profundidad son creados. d G b m Luego: O(b m ) Luego: O(b m ) nota: depth-first podría haber visitado nodos más profundos. nota: depth-first podría haber visitado nodos más profundos.

24 24 Memoria (breadth-first) El mayor número de nodos en COLA se alcanza en el nivel m del nodo objetivo. El mayor número de nodos en COLA se alcanza en el nivel m del nodo objetivo. G d b m G COLA contiene nodos y. (Es decir: 4). COLA contiene nodos y. (Es decir: 4). En General: b m En General: b m Esto es generalm. MUCHO peor que depth-first !! Esto es generalm. MUCHO peor que depth-first !!

25 25 Evaluación práctica: Depth-first: Depth-first: SI el espacio de búsqueda contiene ramas muy profundas sin solución, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas. SI el espacio de búsqueda contiene ramas muy profundas sin solución, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas. Breadth-first: Breadth-first: Demanda MUCHA memoria ! Demanda MUCHA memoria ! ¿ Soluciones ? ¿ Soluciones ? Búsqueda No-determinística Búsqueda No-determinística Profundización iterativa Profundización iterativa

26 26 Búsqueda No-determinística: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado AND objetivo no alcanzado DO remover el primer camino de la COLA; DO remover el primer camino de la COLA; 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 COLA; agregar los nuevos cam. en lug. al azar en COLA; 3. IF objetivo alcanzado THEN exito; THEN exito; ELSE falla; ELSE falla;

27 27 Búsqueda por profundización iterativa Restringe una búsqueda depth-first a una profundidad fija. Restringe una búsqueda depth-first a una profundidad fija. Si no se encontró ningún camino, incrementar la profundidad y recomenzar la búsqueda. Si no se encontró ningún camino, incrementar la profundidad y recomenzar la búsqueda.

28 28 Depth-limited search: 1. DEPTH 1. DEPTH COLA <-- camino que solo contiene la raiz; COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía AND objetivo no alcanzado AND objetivo no alcanzado DO remover el primer camino de la COLA; DO remover el primer camino de la COLA; IF el camino tiene long.menor que DEPTH IF el camino tiene long.menor que DEPTH 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 COLA; agregar los nuevos caminos al frente de COLA; 3. IF objetivo alcanzado THEN exito; THEN exito; ELSE falla; ELSE falla;

29 29 Algoritmo de profundización iterativa: 1. DEPTH < WHILE objetivo no alcanzado DO ejecutar Depth-limited search; DO ejecutar Depth-limited search; incrementar en 1 DEPTH; incrementar en 1 DEPTH;

30 30 Profundización iterativa: la mejor búsqueda a ciegas. Completa: si - incluso encuentra el camino más corto (como primero en amplitud). Completa: si - incluso encuentra el camino más corto (como primero en amplitud). b - 1 b m-1 + b m-2 + … + 1 = b m -1 = O(b m-1 ) b m-1 + b m-2 + … + 1 = b m -1 = O(b m-1 ) En general: MUY buen trade-off El trabajo realizado en DEPTH = m is O(b m ) El trabajo realizado en DEPTH = m is O(b m ) Memoria: b*m (combina ventajas de depth- y breadth- first) Memoria: b*m (combina ventajas de depth- y breadth- first) Velocidad: Velocidad: Si se halla el camino a Depth = m, ¿cuánto tiempo se desperdició en la construcc.de los árboles más pequeños? Si se halla el camino a Depth = m, ¿cuánto tiempo se desperdició en la construcc.de los árboles más pequeños?

31 31 Búsqueda bi-direccional Computa el árbol tanto desde el nodo de comienzo como desde el nodo objetivo, hasta que estos árboles se encuentran. Computa el árbol tanto desde el nodo de comienzo como desde el nodo objetivo, hasta que estos árboles se encuentran.

32 32 Búsqueda bi-direccional SI podemos describir EXPLíCITAMENTE el estado OBJETIVO, Y SI podemos describir EXPLíCITAMENTE el estado OBJETIVO, Y Contamos con reglas para razonamiento HACIA ADELANTE Y HACIA ATRAS: Contamos con reglas para razonamiento HACIA ADELANTE Y HACIA ATRAS: Objet.Inicio

33 33 Algoritmo bi-direccional: 1. COLA1 <-- camino que solo contiene la raiz; COLA2 <-- camino que solo contiene el objetivo; COLA2 <-- camino que solo contiene el objetivo; 2. WHILE ambas COLAi no estén vacías AND COLA1 y COLA2 NO compartan un estado AND COLA1 y COLA2 NO compartan un estado DO remover sus primeros caminos; DO 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. IF COLA1 y COLA2 comparten un estado THEN éxito; THEN éxito; ELSE falla; ELSE falla;

34 34 Propiedades (Bi-direccional) : Completa: Si. Completa: Si. Velocidad: Si la verificación de estado común se puede realizar en tiempo constante (hashing): Velocidad: Si la verificación de estado común se puede realizar en tiempo constante (hashing): 2 * O(b m/2 ) = O(b m/2 ) 2 * O(b m/2 ) = O(b m/2 ) Memoria: similar: O(b m/2 ) Memoria: similar: O(b m/2 )


Descargar ppt "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."

Presentaciones similares


Anuncios Google