Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos
Algoritmo: procedimiento computacional que termina
si en algn caso no termina, hay que especificarlo Caractersticas: algoritmo A(x) y | fallo correcto: y es lo que A dice que es completo: satisfaccin: y es solucin optimizacin: y es la solucin ptima
Bsqueda Heurstica
Complejidad
Algoritmo A(x), | x | = n Coste en tiempo: pasos que da A en funcin de n, caso peor polinomio de n: n2 + 2n + 3 O(n2)
exponencial: 3n + nlog(n) O(3n)
Bsqueda ciega
Bsqueda ciega (fuerza bruta): sin funcin heurstica Algoritmos:
Busqueda en anchura (BFS) Bsqueda en profundidad (DFS) Profundizacin iterativa (ID)
Evaluacin:
calidad solucin: ptimo? coste en tiempo: proporcional a los nodos generados coste en memoria: proporcional a los nodos almacenados
Bsqueda Heurstica 5
Nodo: operaciones
Generacin: cuando se crea Expansin: cuando se generan sus sucesores
generacin de sucesores
expansin
nodo
es solucin?
no
generacin
Bsqueda Heurstica
Bsqueda en rbol
rbol de bsqueda:
finito: profundidad d factor de ramificacin b (uniforme)
d
...
soluciones
Bsqueda Heurstica 7
Bsqueda en anchura
Algoritmo BFS (breadth-first search)
1. Lista L nodo raz 2. Si L vaca, fallo, stop. Sino, n extrae-primero(L). 3. Generar los sucesores de n. Si alguno es solucin, retornar el camino desde la raz, stop. 4. Sino, aadir al final de L todos los sucesores de n, etiquetando cada sucesor con su camino desde la raz. Ir a 2.
Bsqueda Heurstica 9
15 16
17 18
19 20
21 22
23 24
25 26
27 28
29 30
orden de generacin
Bsqueda Heurstica 10
nivel
0 1 2
nodos
1
1 + b + b2 + ... + bd =
bd+1 - 1 b-1
bd+1 b-1
b b2
Bsqueda en anchura IV
1 2
b d-1
caso peor bd
12
!!
Velocidad generacin nodos: 107 por seg Memoria disponible: 2,5 x 108 nodos Si guardamos todos los nodos:
25 seg
Bsqueda en profundidad
Algoritmo DFS (depth-first search):
1. Lista L nodo raz 2. Si L vaca, fallo, stop. Sino, n extrae-primero(L). 3. Generar los sucesores de n. Si alguno es solucin, retornar el camino deste la raz, stop. 4. Sino, aadir al principio de L todos los sucesores de n, etiquetando cada sucesor con su camino desde la raz. Ir a 2.
Bsqueda Heurstica 14
10
13 14
15 16
21 22
23 24
27 28
29 30
orden de generacin
Bsqueda Heurstica 15
rama infinita
Profundizacin iterativa
Algoritmo ID (iterative deepening):
1. Cota profundidad c 1 2. Lista L nodo raz. 3. Si L vacia, c c + 1, ir a 2. Sino, n extrae-primero(L). 4. Si profundidad(n) < c, generar los sucesores de n. Si alguno es solucin, retornar el camino desde la raz. Stop. 5. Sino, aadir al principio de L los sucesores de n, etiquetando cada sucesor con su camino desde la raz. En cualquier caso, ir a 3.
Bsqueda Heurstica 18
c=1
orden de generacin
Bsqueda Heurstica 19
c=2
orden de generacin
Bsqueda Heurstica 20
c=3
orden de generacin
Bsqueda Heurstica 21
bd
Bsqueda Heurstica
22
Comparacin ID y DFS
Complejidad espacial igual Complejidad temporal:
asintticamente (d grande) igual: la mayor parte del trabajo se debe a la ltima iteracin, y el coste de las iteraciones anteriores es pequeo para b y d fijos ID = DFS
bd bd
b b-1 b b-1
b b-1
Bsqueda Heurstica
23
Resumen
BFS Espacio: exp Tiempo: exp Problema ramas infinitas no Solucin ms cercana s DFS lineal exp s no ID lineal exp no s
ID repite trabajo, pero el coste de las iteraciones anteriores es pequeo comparado con la iteracin que encuentra la solucin. Si sabemos la profundidad de la solucin: DFS.
Bsqueda Heurstica 24