Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Resolución de problemas
Misioneros y canibales
2
Métodos básicos de Búsqueda
Por el momento:
- no se intenta encontrar la solución óptima
- desarrollo de ‘árbol de búsqueda’
Un ejemplo:
A 4 B 4 C
3
S 5 5
G
4 D E F 3
2 4
Red implícita
C E E B B F
D F B F C E A C G
G C G F Signif.:
SDEBA
G
B D A E
C E E B B F
D F B F C E A C G
G C G F
G
Nodo, rama
Progenitor, hijo, ancestro, descendiente
Nodo raiz, nodo objetivo
Expandir / Nodo Abierto/ Nodo cerrado/factor de ramificación
7
Métodos de búsqueda a ciegas
Primero en profundidad
Primero en amplitud
Búsqueda No-determinística
Profundización Iterativa
Búsqueda Bi-direccional
Búsqueda primero en
profundidad
10
Algoritmo búsqueda primero
en profundidad:
1. COLA <-- camino que solo contiene la raiz;
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)
3 S 4
4 A D
5 5 2
B D A E
4 5 2 4 5 4
C E E B B F
2 4 5 4 4 5 4 4 3
D F B F C E A C G
3 4 3 4
G C G F
3
G
17
Velocidad (depth-first)
En el peor caso:
el (único) nodo objet. puede estar en la rama del
extremo derecho,
d
b
...
A D Moverse
hacia abajo,
B D A E nivel por
nivel, hasta
C E E B B F que el
objetivo sea
D F B F C E A C G alcanzado.
G C G F
G
21
Algoritmo prim.en amplitud:
1. COLA <-- camino que solo contiene la raiz;
(SABED,SABEF,SADEB,SADEF,SDABC,SDABE,SDEBA,SDEBC,
SDEFG) el objetivo es alcanzado: reportar éxito
23
Completitud (breadth-first)
COMPLETA
aún para REDES implícitamente infinitas!
24
Velocidad (breadth-first)
Si un nodo objetivo es encontrado a profundidad m del árbol,
todos los nodos hasta esa profundidad son creados.
m
d
b G
Luego: O(bm)
nota: depth-first podría haber visitado nodos más
profundos. 25
Memoria (breadth-first)
El mayor número de nodos en COLA se alcanza en el
nivel m del nodo objetivo.
m
b d
G
En General: bm
26
Esto es generalm. MUCHO peor que depth-first !!
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
27
Búsqueda No-determinística:
1. COLA <-- camino que solo contiene la raiz;
3. IF objetivo alcanzado
THEN exito;
ELSE falla;
28
Búsqueda por profundización
iterativa
29
Depth-limited search:
1. DEPTH <-- <algun número natural>
COLA <-- camino que solo contiene la raiz;
3. IF objetivo alcanzado
THEN exito;
ELSE falla; 30
Algoritmo de profundización
iterativa:
1. DEPTH <-- 1
31
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 breadth-
first)
Velocidad:
Si se halla el camino a Depth = m, ¿cuánto tiempo se
desperdició en la construcc.de los árboles más pequeños?
33
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.
34
Algoritmo bi-direccional:
1. COLA1 <-- camino que solo contiene la raiz;
COLA2 <-- camino que solo contiene el objetivo;
36