SlideShare ist ein Scribd-Unternehmen logo
1 von 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 de estados.
Por el momento:
- no se intenta encontrar la solución óptima
- desarrollo de ‘árbol de búsqueda’
Un ejemplo:
3
S
4

4

A
5
D

4

B

C

5
E
2

G
4

F

3

Red implícita
 Dos tareas posibles:
 1. ENCONTRAR un (el) camino.
 2. RECORRER el camino.

= costo computacional
= costo de recorrido

 2. Encontrar caminos óptimos (próximo capítulo).
2
El árbol asociado de
caminos parciales -sin ciclos3
S
4
A

4
4
C

B

5

E
2
4
D

4

A
5

B

F

G

C

G

3

3

4

4

E
5
4

4

4

2

F

3

F

S

3
D

C

5

D 2 E
5

4

B

4
C

B

5

A

G

D

2
5

5

4

E

4

F

G

3

A

B

4

C

E

4

F

3

G

3
Comentarios:

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

SDA

D

C

E
D

A

E

E

B

F

B

F

G

C

G

C

B
E
F
G

A

C

F
G

Signif.:
SDEBA

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

4
Terminología:
S

A
B

D

D

C

E
D

A
E

E

B

F

B

F

G

C

G

C

B
E

A

F

C

G

F
G






Nodo, rama
Progenitor, hijo, ancestro, descendiente
Nodo raiz, nodo objetivo
Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación
5
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
Búsqueda primero en
profundidad
Expandir el árbol tan profundamente como
sea posible,
retornando a niveles superiores cuando sea
necesario.
Búsqueda primero en
profundidad

= seguim. Cronológ.hacia atrás
S
A
B
C

E
D

F
G

 Seleccionar un hijo

convención: izq.-aderecha

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

8
Algoritmo búsqueda primero
en profundidad:

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

COLA no vacía
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;
9
S

3
4

4

A
5

D 2 E

4

B

C

5
4

F

3

G

1. COLA <-- camino que solo contiene la raiz;
2. WHILE
COLA no vacía
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 evaluación:
 Completitud:

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

 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?

 Memoria (complejidad de espacio en las peores cond.) :
 ¿Cuál es la máxima cantidad de nodos que puede ser
necesario almacenar?

 Expresado en términos de:

 d = profundidad del árbol
 b = factor de ramific. (promedio) del árbol
 m = profundidad de la solución menos profunda

12
Nota: aproximaciones !!
 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.
 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.

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

13
Completitud (depth-first)
 Completo para REDES FINITAS.

 (= REDES con número finito de nodos)

 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) !
 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.
14
3
S
4

A

4
4
C

B

5

E
2
4
D

4

A
5

D 2 E

D

4

B

F

G

C

G

3

3

4

2

E
5
4

4

F
S

3
5

C

5

F

3

4

B

4
C

B

5

A

G

D

2
5

5

4

E

4

F

G

A

B

4

C

E

4

F

3

G

3
15
Velocidad (depth-first)
 En el peor caso:

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

d

b
G

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

16
Memoria (depth-first)
 El número máximo 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
Búsqueda primero en amplitud
Expande el árbol capa por capa,
Avanzando en profundidad.
Breadth-first search:
S
D

A
B
C

D
E

E
D

A
B

F

B

F

G

C

G

C

E
B
E

A

F
C

G

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

F
G

19
Algoritmo prim.en amplitud:
1. COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA;

COLA no vacía
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

3. SI objetivo alcanzado
THEN éxito;
ELSE falla;

UNICA
DIFERENCIA!
20
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 (breadth-first)
 COMPLETA

 aún para REDES implícitamente infinitas!

 Permanecería completa aún sin nuestro loopchecking.
 Nota: SIEMPRE encuentra el camino más corto.

22
Velocidad (breadth-first)
 Si un nodo objetivo es encontrado a profundidad m del árbol,
todos los nodos hasta esa profundidad son creados.

m
b

G

d

 Luego: O(bm)
 nota: depth-first podría haber visitado nodos más
profundos.

23
Memoria (breadth-first)
 El mayor número de nodos en COLA se alcanza en el
nivel m del nodo objetivo.

m
b

 COLA contiene nodos

G

y

G

d

. (Es decir: 4) .

 En General: bm
 Esto es generalm. MUCHO peor que depth-first !!

24
Evaluación práctica:
 Depth-first:

SI el espacio de búsqueda contiene ramas muy
profundas sin solución, ENTONCES Depth-first
puede desperdiciar mucho tiempo en ellas.

 Breadth-first:

 Demanda MUCHA memoria !

 ¿ Soluciones ?

Búsqueda No-determinística
 Profundización iterativa
25
Búsqueda No-determinística:
1. COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA no vacía
AND objetivo no alcanzado

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
Búsqueda por profundización
iterativa
 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.

27
Depth-limited search:
1. DEPTH <-- <algun número natural>
COLA <-- camino que solo contiene la raiz;
2. WHILE
DO

COLA no vacía
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 profundización
iterativa:
1. DEPTH <-- 1
2. WHILE
DO

objetivo no alcanzado

ejecutar Depth-limited search;
incrementar en 1 DEPTH;

29
Profundización iterativa:
la mejor búsqueda ‘a ciegas’.
 Completa: si - incluso encuentra el camino más corto
(como primero en amplitud) .
 Memoria: b*m (combina ventajas de depth- y breadthfirst)

 Velocidad:

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

 bm-1 + bm-2 + … + 1 = bm -1 =
b-1

O(bm-1)

 El trabajo realizado en DEPTH = m is O(bm)
En general: MUY buen trade-off
30
Búsqueda bi-direccional
 Computa el árbol tanto desde el nodo de comienzo
como desde el nodo objetivo, hasta que estos
árboles se encuentran.

31
Búsqueda bi-direccional
 SI podemos describir EXPLíCITAMENTE 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 estén vacías
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 (Bi-direccional):
 Completa: Si.
 Velocidad: Si la verificación de estado común se
puede realizar en tiempo constante (hashing):
 2 * O(bm/2) = O(bm/2)

 Memoria: similar: O(bm/2)

34

Weitere ähnliche Inhalte

Andere mochten auch

Fundamentos de la inteligencia artificial
Fundamentos de la inteligencia artificialFundamentos de la inteligencia artificial
Fundamentos de la inteligencia artificial
Abner Gerardo
 
Herramientas heuristicas tec._de_estudio_corregido
Herramientas heuristicas tec._de_estudio_corregidoHerramientas heuristicas tec._de_estudio_corregido
Herramientas heuristicas tec._de_estudio_corregido
blmaturinarelys3
 
Inteligencia artificial victor campos
Inteligencia artificial victor camposInteligencia artificial victor campos
Inteligencia artificial victor campos
Victor Campos
 
Heurísticos en la resolución de problemas
Heurísticos en la resolución de problemasHeurísticos en la resolución de problemas
Heurísticos en la resolución de problemas
gjmendietap
 
Estrategias heuristicas
Estrategias heuristicasEstrategias heuristicas
Estrategias heuristicas
paoalva27
 
Metodo heurístico (1)
Metodo heurístico (1)Metodo heurístico (1)
Metodo heurístico (1)
Javier Juarez
 
Busquedas inteligencia artificail
Busquedas inteligencia artificailBusquedas inteligencia artificail
Busquedas inteligencia artificail
Luis Cambal
 

Andere mochten auch (14)

Fundamentos de la inteligencia artificial
Fundamentos de la inteligencia artificialFundamentos de la inteligencia artificial
Fundamentos de la inteligencia artificial
 
Heuristica
HeuristicaHeuristica
Heuristica
 
Herramientas heuristicas tec._de_estudio_corregido
Herramientas heuristicas tec._de_estudio_corregidoHerramientas heuristicas tec._de_estudio_corregido
Herramientas heuristicas tec._de_estudio_corregido
 
Clases de Computación 1
Clases de Computación 1Clases de Computación 1
Clases de Computación 1
 
Métodos Heurísticos
Métodos HeurísticosMétodos Heurísticos
Métodos Heurísticos
 
Actividades de estrategias heuristicas
Actividades de estrategias heuristicasActividades de estrategias heuristicas
Actividades de estrategias heuristicas
 
Ejercicios para unidad 1 heurística
Ejercicios para unidad 1 heurísticaEjercicios para unidad 1 heurística
Ejercicios para unidad 1 heurística
 
Metodo heuristico
Metodo heuristicoMetodo heuristico
Metodo heuristico
 
Inteligencia artificial victor campos
Inteligencia artificial victor camposInteligencia artificial victor campos
Inteligencia artificial victor campos
 
Resolución de problemas y heurísticas
Resolución de problemas y heurísticasResolución de problemas y heurísticas
Resolución de problemas y heurísticas
 
Heurísticos en la resolución de problemas
Heurísticos en la resolución de problemasHeurísticos en la resolución de problemas
Heurísticos en la resolución de problemas
 
Estrategias heuristicas
Estrategias heuristicasEstrategias heuristicas
Estrategias heuristicas
 
Metodo heurístico (1)
Metodo heurístico (1)Metodo heurístico (1)
Metodo heurístico (1)
 
Busquedas inteligencia artificail
Busquedas inteligencia artificailBusquedas inteligencia artificail
Busquedas inteligencia artificail
 

Ähnlich wie Busqueda engrafos

Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
narlyn diaz
 

Ähnlich wie Busqueda engrafos (20)

Tipos básicos de Búsqueda | Inteligencia Artificial
Tipos básicos de Búsqueda | Inteligencia ArtificialTipos básicos de Búsqueda | Inteligencia Artificial
Tipos básicos de Búsqueda | Inteligencia Artificial
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Algoritmo de Bellman- Ford
Algoritmo de Bellman- FordAlgoritmo de Bellman- Ford
Algoritmo de Bellman- Ford
 
ALGORITMO DE BELLMAN FORD.pdf
ALGORITMO DE BELLMAN FORD.pdfALGORITMO DE BELLMAN FORD.pdf
ALGORITMO DE BELLMAN FORD.pdf
 
Metodos De Busquedas Ia
Metodos De Busquedas IaMetodos De Busquedas Ia
Metodos De Busquedas Ia
 
Metodos De Busquedas
Metodos De BusquedasMetodos De Busquedas
Metodos De Busquedas
 
Algoritmos busquedas
Algoritmos busquedasAlgoritmos busquedas
Algoritmos busquedas
 
55852564 metodo-de-cross
55852564 metodo-de-cross55852564 metodo-de-cross
55852564 metodo-de-cross
 
Programacion dinamica
Programacion dinamicaProgramacion dinamica
Programacion dinamica
 
programaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdfprogramaciondinamica-150128212619-conversion-gate01.pdf
programaciondinamica-150128212619-conversion-gate01.pdf
 
La ruta mas corta
La ruta mas cortaLa ruta mas corta
La ruta mas corta
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Grafos-2021.pdf
Grafos-2021.pdfGrafos-2021.pdf
Grafos-2021.pdf
 
Recorrido de grafos 2da parte
Recorrido de grafos 2da parteRecorrido de grafos 2da parte
Recorrido de grafos 2da parte
 
Unidad iii
Unidad iiiUnidad iii
Unidad iii
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
 
Modelo del camino mas corto.pptx
Modelo del camino mas corto.pptxModelo del camino mas corto.pptx
Modelo del camino mas corto.pptx
 
Big data workshop 02 - Social Network Analysis
Big data workshop 02 - Social Network AnalysisBig data workshop 02 - Social Network Analysis
Big data workshop 02 - Social Network Analysis
 
elementaryAlgorithms.ppt
elementaryAlgorithms.pptelementaryAlgorithms.ppt
elementaryAlgorithms.ppt
 
Ruta critica torno
Ruta critica torno Ruta critica torno
Ruta critica torno
 

Busqueda engrafos

  • 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. Un ejemplo: 3 S 4 4 A 5 D 4 B C 5 E 2 G 4 F 3 Red implícita  Dos tareas posibles:  1. ENCONTRAR un (el) camino.  2. RECORRER el camino. = costo computacional = costo de recorrido  2. Encontrar caminos óptimos (próximo capítulo). 2
  • 3. El árbol asociado de caminos parciales -sin ciclos3 S 4 A 4 4 C B 5 E 2 4 D 4 A 5 B F G C G 3 3 4 4 E 5 4 4 4 2 F 3 F S 3 D C 5 D 2 E 5 4 B 4 C B 5 A G D 2 5 5 4 E 4 F G 3 A B 4 C E 4 F 3 G 3
  • 4. Comentarios:  Por el momento no estamos interesados en caminos óptimos, entonces podemos omitir los costos. Significa: S SA A D Significa: B SDA D C E D A E E B F B F G C G C B E F G A C F G Signif.: SDEBA  Los nodos representan el camino parcial desde la raíz a ellos!! 4
  • 5. Terminología: S A B D D C E D A E E B F B F G C G C B E A F C G F G     Nodo, rama Progenitor, hijo, ancestro, descendiente Nodo raiz, nodo objetivo Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación 5
  • 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. Búsqueda primero en profundidad = seguim. Cronológ.hacia atrás S A B C E D F G  Seleccionar un hijo convención: izq.-aderecha  Repetidamente ir al hijo siguiente, tanto como sea posible.  Volver a las alternativas no visitadas (nivel más alto) solo cuando fuere necesario. 8
  • 9. Algoritmo búsqueda primero en profundidad: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía 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; 9
  • 10. S 3 4 4 A 5 D 2 E 4 B C 5 4 F 3 G 1. COLA <-- camino que solo contiene la raiz; 2. WHILE COLA no vacía 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
  • 11. 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
  • 12. Criterios de evaluación:  Completitud: ¿El algoritmo siempre encuentra un camino?  (para toda RED en que al menos un camino exista)  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?  Memoria (complejidad de espacio en las peores cond.) :  ¿Cuál es la máxima cantidad de nodos que puede ser necesario almacenar?  Expresado en términos de:  d = profundidad del árbol  b = factor de ramific. (promedio) del árbol  m = profundidad de la solución menos profunda 12
  • 13. Nota: aproximaciones !!  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.  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.  Además: nuestro análisis NO toma en cuenta la longitud (espacio) de representación de caminos !! 13
  • 14. Completitud (depth-first)  Completo para REDES FINITAS.  (= REDES con número finito de nodos)  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) !  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. 14
  • 16. Velocidad (depth-first)  En el peor caso:  el (único) nodo objet. puede estar en la rama del extremo derecho, d b G  Complej. de tiempo == bd + bd-1 + … + 1 = bd+1 -1 b-1 d  Luego: O(b ) 16
  • 17. Memoria (depth-first)  El número máximo 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
  • 18. Búsqueda primero en amplitud Expande el árbol capa por capa, Avanzando en profundidad.
  • 19. Breadth-first search: S D A B C D E E D A B F B F G C G C E B E A F C G  Moverse hacia abajo, nivel por nivel, hasta que el objetivo sea alcanzado. F G 19
  • 20. Algoritmo prim.en amplitud: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE DO COLA; COLA no vacía 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 3. SI objetivo alcanzado THEN éxito; ELSE falla; UNICA DIFERENCIA! 20
  • 21. 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
  • 22. Completitud (breadth-first)  COMPLETA  aún para REDES implícitamente infinitas!  Permanecería completa aún sin nuestro loopchecking.  Nota: SIEMPRE encuentra el camino más corto. 22
  • 23. Velocidad (breadth-first)  Si un nodo objetivo es encontrado a profundidad m del árbol, todos los nodos hasta esa profundidad son creados. m b G d  Luego: O(bm)  nota: depth-first podría haber visitado nodos más profundos. 23
  • 24. Memoria (breadth-first)  El mayor número de nodos en COLA se alcanza en el nivel m del nodo objetivo. m b  COLA contiene nodos G y G d . (Es decir: 4) .  En General: bm  Esto es generalm. MUCHO peor que depth-first !! 24
  • 25. Evaluación práctica:  Depth-first: SI el espacio de búsqueda contiene ramas muy profundas sin solución, ENTONCES Depth-first puede desperdiciar mucho tiempo en ellas.  Breadth-first:  Demanda MUCHA memoria !  ¿ Soluciones ? Búsqueda No-determinística  Profundización iterativa 25
  • 26. Búsqueda No-determinística: 1. COLA <-- camino que solo contiene la raiz; 2. WHILE DO COLA no vacía AND objetivo no alcanzado 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
  • 27. Búsqueda por profundización iterativa  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. 27
  • 28. Depth-limited search: 1. DEPTH <-- <algun número natural> COLA <-- camino que solo contiene la raiz; 2. WHILE DO COLA no vacía 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
  • 29. Algoritmo de profundización iterativa: 1. DEPTH <-- 1 2. WHILE DO objetivo no alcanzado ejecutar Depth-limited search; incrementar en 1 DEPTH; 29
  • 30. Profundización iterativa: la mejor búsqueda ‘a ciegas’.  Completa: si - incluso encuentra el camino más corto (como primero en amplitud) .  Memoria: b*m (combina ventajas de depth- y breadthfirst)  Velocidad:  Si se halla el camino a Depth = m, ¿cuánto tiempo se desperdició en la construcc.de los árboles más pequeños?  bm-1 + bm-2 + … + 1 = bm -1 = b-1 O(bm-1)  El trabajo realizado en DEPTH = m is O(bm) En general: MUY buen trade-off 30
  • 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. 31
  • 32. Búsqueda bi-direccional  SI podemos describir EXPLíCITAMENTE el estado OBJETIVO, Y  Contamos con reglas para razonamiento HACIA ADELANTE Y HACIA ATRAS: Inicio Objet. 32
  • 33. Algoritmo bi-direccional: 1. COLA1 <-- camino que solo contiene la raiz; COLA2 <-- camino que solo contiene el objetivo; 2. WHILE ambas COLAi no estén vacías 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
  • 34. Propiedades (Bi-direccional):  Completa: Si.  Velocidad: Si la verificación de estado común se puede realizar en tiempo constante (hashing):  2 * O(bm/2) = O(bm/2)  Memoria: similar: O(bm/2) 34