algoritmos y estructuras de datos ii programación dinámica algoritmo de floyd conclusión...
TRANSCRIPT
![Page 1: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/1.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Algoritmos y Estructuras de Datos II
Programación dinámica
27 de mayo de 2019
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 2: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/2.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Clase de hoy
1 Backtracking
2 Programación dinámicaProblema de la monedaProblema de la mochila
3 Algoritmo de FloydProblema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
4 Conclusión
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 3: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/3.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
BacktrackingProblema de la moneda
Sean 0 ≤ i ≤ n y 0 ≤ j ≤ k ,definimos cambio(i , j) = “menor número de monedasnecesarias para pagar exactamente el monto j condenominaciones d1,d2, . . . ,di .”
cambio(i, j) =
0 j = 0∞ j > 0 ∧ i = 0cambio(i − 1, j) di > j > 0 ∧ i > 0min(cambio(i − 1, j), 1 + cambio(i, j − di)) j ≥ di > 0 ∧ i > 0
En el peor caso es exponencial.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 4: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/4.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
BacktrackingProblema de la mochila
Sean 0 ≤ i ≤ n y 0 ≤ j ≤W ,definimos mochila(i , j) = “mayor valor alcanzable sinexceder la capacidad j con objetos 1,2, . . . , i .”
mochila(i, j)=
0 j = 00 j > 0 ∧ i = 0mochila(i−1, j) wi > j > 0 ∧ i > 0max(mochila(i−1, j), vi + mochila(i−1, j−wi)) j ≥ wi > 0 ∧ i > 0
En el peor caso es exponencial.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 5: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/5.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
BacktrackingProblema de los caminos de costo mínimo entre cada par de vértices
Sean 1 ≤ i , j ≤ n y 0 ≤ k ≤ n,definimos caminok (i , j) = “menor costo posible paracaminos de i a j cuyos vértices intermedios se encuentranen el conjunto {1,. . . ,k}.”
caminok (i, j) ={
L[i, j] k = 0min(caminok−1(i, j), caminok−1(i, k) + caminok−1(k , j)) k ≥ 1
Es exponencial (3n).
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 6: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/6.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Programación dinámica
Método para transformar una definición recursiva eniterativaa través de la confección de una tabla de valores.Objetivo: evitar la reiteración de cómputos.Ejemplo: definición recursiva de la secuencia deFibonacci.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 7: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/7.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Secuencia de Fibonacci
fn =
{n n ≤ 1fn−1 + fn−2 n > 1
Ya vimos que esta función recursiva es exponencial.La razón, el cálculo de fn lleva a calcular
2 veces fn−2,3 veces fn−3,5 veces fn−4,etc.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 8: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/8.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
¿Cómo podemos evitar tantos recálculos?
Llevando una tabla de valores calculados.Comenzando desde los casos bases.Sea f un arreglo de 0 a n.
f[0]:= 0f[1]:= 1f[2]:= f[1]+f[0]f[3]:= f[2]+f[1]etc
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 9: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/9.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Fibonacci a través de una tabla
fun fib(n: nat) ret r: natvar f: array[0..max(n,1)] of natf[0]:= 0f[1]:= 1for i:= 2 to n do f[i]:= f[i-1] + f[i-2] odr:= f[n]
end fun
¡Este algoritmo es lineal!
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 10: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/10.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaBacktracking
Vimos la definición
cambio(i, j) =
0 j = 0∞ j > 0 ∧ i = 0cambio(i − 1, j) di > j > 0 ∧ i > 0min(cambio(i − 1, j), 1 + cambio(i, j − di)) j ≥ di > 0 ∧ i > 0
que puede ser exponencial debido a que tiene dos llamadasrecursivas en el último caso.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 11: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/11.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaConfección de una tabla
Habiendo dos parámetros, la tabla será una matriz en vezde un vector como en el caso de Fibonacci.Los casos base corresponden al llenado de la primeracolumna y primera fila de la matriz.Como todas las llamadas recursivas se realizandecrementando el “parámetro i” o manteniendolo igualpero en ese caso decrementando el “parámetro j”, sepropone el siguiente método de llenado de la matriz:
fila por fila, desde la primera a la última, de modo de que elvalor correspondiente a cambio(i − 1, j) ya esté computadoal calcular el valor correspondiente a cambio(i , j)dentro de cada fila, desde la primer columna hasta laúltima, de modo de que el valor correspondiente acambio(i , j − di) ya esté computado al calcular cambio(i , j)
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 12: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/12.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaProgramación dinámica
fun cambio(d:array[1..n] of nat, k: nat) ret r: natvar cam: array[0..n,0..k] of natfor i:= 0 to n do cam[i,0]:= 0 odfor j:= 1 to k do cam[0,j]:=∞ odfor i:= 1 to n do
for j:= 1 to k doif d[i] > j then cam[i,j]:= cam[i-1,j]else cam[i,j]:= min(cam[i-1,j],1+cam[i,j-d[i]])fi
ododr:= cam[n,k]
end fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 13: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/13.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160123
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 14: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/14.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 01 02 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 15: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/15.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 02 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 16: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/16.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞2 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 17: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/17.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞2 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 18: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/18.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 12 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 19: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/19.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞2 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 20: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/20.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞2 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 21: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/21.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞2 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 22: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/22.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 22 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 23: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/23.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 03 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 24: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/24.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 25: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/25.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 26: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/26.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 13 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 27: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/27.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 28: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/28.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 29: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/29.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2 1
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 30: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/30.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2 1 2
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 31: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/31.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2 1 2 2
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 32: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/32.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2 1 2 2 3 2 3 3
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 33: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/33.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la monedaEjemplo con denominaciones d1 = 4, d2 = 2 y d3 = 7
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞1 0 ∞ ∞ ∞ 1 ∞ ∞ ∞ 2 ∞ ∞ ∞ 3 ∞ ∞ ∞ 42 0 ∞ 1 ∞ 1 ∞ 2 ∞ 2 ∞ 3 ∞ 3 ∞ 4 ∞ 43 0 ∞ 1 ∞ 1 ∞ 2 1 2 2 3 2 3 3 2 3 3
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 34: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/34.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaBacktracking
Vimos la definición
mochila(i, j) =
0 j = 00 j > 0 ∧ i = 0mochila(i − 1, j) wi > j > 0 ∧ i > 0max(mochila(i − 1, j), vi + mochila(i − 1, j − wi)) j ≥ wi > 0 ∧ i > 0
que puede ser exponencial debido a que tiene dos llamadasrecursivas en el último caso.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 35: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/35.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaConfección de una tabla
Habiendo dos parámetros, la tabla será nuevamente unamatriz.Los casos base corresponden al llenado de la primeracolumna y primera fila de la matriz.Como todas las llamadas recursivas se realizandecrementando el “parámetro i”, la única condiciónnecesaria para el llenado de la tabla es proceder fila porfila, no importa el orden de llenado dentro de cada fila.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 36: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/36.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaProgramación dinámica
fun mochila(v:array[1..n] of valor, w:array[1..n] of nat, W: nat)ret r: valor
var moch: array[0..n,0..W] of valorfor i:= 0 to n do moch[i,0]:= 0 odfor j:= 1 to W do moch[0,j]:= 0 odfor i:= 1 to n do
for j:= 1 to W doif w[i] > j then moch[i,j]:= moch[i-1,j]else moch[i,j]:= max(moch[i-1,j],v[i]+moch[i-1,j-w[i]])fi
ododr:= moch[n,W]
end funProgramación dinámica Algoritmos y Estructuras de Datos II
![Page 37: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/37.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1601234
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 38: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/38.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 02 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 39: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/39.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 02 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 40: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/40.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 32 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 41: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/41.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 32 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 42: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/42.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 43: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/43.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 03 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 44: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/44.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 23 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 45: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/45.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 33 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 46: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/46.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 33 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 47: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/47.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 53 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 48: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/48.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 04 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 49: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/49.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 24 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 50: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/50.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 34 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 51: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/51.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 34 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 52: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/52.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 54 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 53: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/53.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 64 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 54: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/54.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 55: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/55.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0 0 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 56: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/56.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0 0 0 2 2 2 2
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 57: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/57.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0 0 0 2 2 2 2 3 4 4
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 58: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/58.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0 0 0 2 2 2 2 3 4 4 5 5 5 5 5
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 59: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/59.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema de la monedaProblema de la mochila
Problema de la mochilaEjemplo con valores v1 = 3, v2 = 2, v3 = 3, v4 = 2, w1 = 8, w2 = 5, w3 = 7 y w4 = 3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 32 0 0 0 0 0 2 2 2 3 3 3 3 3 5 5 5 53 0 0 0 0 0 2 2 3 3 3 3 3 5 5 5 6 64 0 0 0 2 2 2 2 3 4 4 5 5 5 5 5 7 7
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 60: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/60.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimo entre todo parde vérticesBacktracking
Vimos la definición
caminok (i, j) ={
L[i, j] k = 0min(caminok−1(i, j), caminok−1(i, k) + caminok−1(k , j)) k ≥ 1
que puede ser exponencial debido a que tiene tres llamadasrecursivas en el último caso.
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 61: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/61.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoConfección de una tabla
Habiendo tres parámetros, la tabla será un arreglotridimensional.El caso base corresponde al llenado de la matrizcams[0, i , j].Como todas las llamadas recursivas se realizandecrementando el “parámetro k ”, la única condiciónnecesaria para el llenado de la tabla es proceder desde kigual a 0 hasta k igual a n.
Primero se copia cams[0, i , j] := L[i , j] para todo i , j .Luego, para todo k > 0, y para todo i , j se asignacams[k , i , j] :=min(cams[k − 1, i , j], cams[k − 1, i , k ] + cams[k − 1, k , j])
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 62: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/62.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoProgramación dinámica
fun camino(L:array[1..n,1..n] of costo) ret cams: array[1..n,1..n] of costocopiar L a camsfor k:= 1 to n do
for i:= 1 to n dofor j:= 1 to n do
cams[k,i,j]:= min(cams[k-1,i,j],cams[k-1,i,k]+cams[k-1,k,j])od
odod
end fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 63: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/63.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoProgramación dinámica
fun camino(L:array[1..n,1..n] of costo) ret cams: array[1..n,1..n] of costofor i:= 1 to n do
for j:= 1 to n do cams[0,i,j]:= L[i,j] ododfor k:= 1 to n do
for i:= 1 to n dofor j:= 1 to n do
cams[k,i,j]:= min(cams[k-1,i,j],cams[k-1,i,k]+cams[k-1,k,j])od
odod
end funProgramación dinámica Algoritmos y Estructuras de Datos II
![Page 64: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/64.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoPrimera observación interesante
Dijimos:“para todo k > 0, y para todo i , j se asigna cams[k , i , j] :=min(cams[k − 1, i , j], cams[k − 1, i , k ] + cams[k − 1, k , j])”¿Qué pasa al calcular la fila k de la matriz k -ésima?
cams[k , k , j] :=min(cams[k − 1, k , j], cams[k − 1, k , k ] + cams[k − 1, k , j]),o sea,cams[k , k , j] := min(cams[k − 1, k , j],0 + cams[k − 1, k , j]),o sea, cams[k , k , j] := cams[k − 1, k , j].
¡La fila k de la matriz k -ésima no cambia!
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 65: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/65.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoSegunda observación interesante
¿Qué pasa al calcular la columna k de la matriz k -ésima?cams[k , i , k ] :=min(cams[k − 1, i , k ], cams[k − 1, i , k ] + cams[k − 1, k , k ]),o sea,cams[k , i , k ] := min(cams[k − 1, i , k ], cams[k − 1, i , k ] + 0),o sea, m[k , i , k ] := m[k − 1, i , k ].
¡La columna k de la matriz k -ésima tampoco cambia!
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 66: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/66.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoTercera observación interesante
Para calcular la celda i , j de la matriz k -ésima (k > 0), secalcula:cams[k , i , j] :=min(cams[k − 1, i , j], cams[k − 1, i , k ] + cams[k − 1, k , j]).en este cálculo sólo se necesitan:
la misma celda de la matriz anterior (cams[k − 1, i , j])la celda i , k de la matriz anterior (cams[k − 1, i , k ])esta celda está en la columna k , ¡no cambia!la celda k , j de la matriz anterior (cams[k − 1, k , j])esta celda está en la fila k , ¡no cambia!
¡Entonces podemos hacer todo en una única matriz!
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 67: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/67.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoProgramación dinámica
fun Floyd(L:array[1..n,1..n] of costo) ret cams: array[1..n,1..n] of costocopiar L a camsfor k:= 1 to n do
for i:= 1 to n dofor j:= 1 to n do
cams[i,j]:= min(cams[i,j],cams[i,k]+cams[k,j])od
odod
end fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 68: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/68.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema del camino de costo mínimoProgramación dinámica
fun Floyd(L:array[1..n,1..n] of costo) ret cams: array[1..n,1..n] of costofor i:= 1 to n do
for j:= 1 to n docams[i,j]:= L[i,j]
ododfor k:= 1 to n do
for i:= 1 to n dofor j:= 1 to n do
cams[i,j]:= min(cams[i,j],cams[i,k]+cams[k,j])od
odod
end funProgramación dinámica Algoritmos y Estructuras de Datos II
![Page 69: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/69.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Grafo
1
2 3 4
5 6
10
4 14
3
1
2
4 8
2
2
3
3 12
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 70: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/70.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Matriz de adyacencia L
cams0 =
0 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 71: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/71.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 72: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/72.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 73: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/73.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 74: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/74.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 75: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/75.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 76: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/76.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 77: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/77.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 78: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/78.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 79: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/79.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 80: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/80.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 81: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/81.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 82: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/82.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 83: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/83.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
= cams1
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 84: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/84.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 85: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/85.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 86: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/86.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 5 ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 87: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/87.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 88: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/88.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 89: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/89.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
0 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
= cams2
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 90: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/90.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 91: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/91.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 92: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/92.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 3 1 9 4 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 93: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/93.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 94: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/94.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 95: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/95.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 3∞ ∞ 2 1 ∞ 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 96: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/96.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
= cams3
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 97: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/97.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 98: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/98.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 99: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/99.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 100: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/100.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 101: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/101.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 102: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/102.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 103: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/103.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
= cams4
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 104: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/104.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 105: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/105.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 106: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/106.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 74 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 107: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/107.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 108: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/108.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 109: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/109.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 110: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/110.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
= cams5
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 111: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/111.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 112: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/112.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 113: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/113.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 8 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 114: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/114.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 8 4 74 0 3 5 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 115: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/115.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 8 4 74 0 3 5 1 46 2 0 7 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 116: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/116.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 8 4 74 0 3 5 1 46 2 0 7 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 117: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/117.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
0 3 1 8 4 74 0 3 5 1 46 2 0 7 3 62 4 2 0 5 86 5 3 4 0 33 4 2 1 5 0
= cams6
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 118: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/118.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Reconstrucción del camino
fun Floyd(L:array[1..n,1..n] of costo) ret cams: array[1..n,1..n] of costoret E: array[1..n,1..n] of nat
copiar L a camsinicializar las celdas de E en 0for k:= 1 to n do
for i:= 1 to n dofor j:= 1 to n do
if cams[i,k]+cams[k,j] < cams[i,j]then cams[i,j]:= cams[i,k]+cams[k,j]
E[i,j]:= kfi
odod
odend fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 119: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/119.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Matriz de adyacencia L
cams0 E00 4 1 10 ∞ ∞4 0 3 ∞ 1 ∞∞ 2 0 8 4 ∞2 ∞ 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
0 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 120: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/120.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams1
cams1 E10 4 1 10 ∞ ∞4 0 3 14 1 ∞∞ 2 0 8 4 ∞2 6 2 0 ∞ ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
0 0 0 0 0 00 0 0 1 0 00 0 0 0 0 00 1 0 0 0 00 0 0 0 0 00 0 0 0 0 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 121: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/121.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams2
cams2 E20 4 1 10 5 ∞4 0 3 14 1 ∞6 2 0 8 3 ∞2 6 2 0 7 ∞∞ ∞ 3 ∞ 0 3∞ ∞ 2 1 ∞ 0
0 0 0 0 2 00 0 0 1 0 02 0 0 0 2 00 1 0 0 2 00 0 0 0 0 00 0 0 0 0 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 122: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/122.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams3
cams3 E30 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 38 4 2 1 5 0
0 3 0 3 3 00 0 0 3 0 02 0 0 0 2 00 3 0 0 3 03 3 0 3 0 03 3 0 0 3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 123: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/123.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams4
cams4 E40 3 1 9 4 ∞4 0 3 11 1 ∞6 2 0 8 3 ∞2 4 2 0 5 ∞9 5 3 11 0 33 4 2 1 5 0
0 3 0 3 3 00 0 0 3 0 02 0 0 0 2 00 3 0 0 3 03 3 0 3 0 04 3 0 0 3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 124: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/124.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams5
cams5 E50 3 1 9 4 74 0 3 11 1 46 2 0 8 3 62 4 2 0 5 89 5 3 11 0 33 4 2 1 5 0
0 3 0 3 3 50 0 0 3 0 52 0 0 0 2 50 3 0 0 3 53 3 0 3 0 04 3 0 0 3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 125: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/125.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Calculando cams6
cams6 E60 3 1 8 4 74 0 3 5 1 46 2 0 7 3 62 4 2 0 5 86 5 3 4 0 33 4 2 1 5 0
0 3 0 6 3 50 0 0 6 0 52 0 0 6 2 50 3 0 0 3 56 3 0 6 0 04 3 0 0 3 0
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 126: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/126.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema de la moneda
fun cambio(d:array[1..n] of nat, k: nat) ret nr: array[0..n] of natvar cam: array[0..n,0..k] of nat
r,s: natfor i:= 0 to n do cam[i,0]:= 0 odfor j:= 1 to k do cam[0,j]:=∞ odfor i:= 1 to n do
for j:= 1 to k doif d[i] > j then cam[i,j]:= cam[i-1,j] else cam[i,j]:= min(cam[i-1,j],1+cam[i,j-d[i]]) fi
ododfor i:= 0 to n do nr[i]:= 0 odnr[0]:= cam[n,k]if cam[n,k] 6=∞ then
r:= ns:= kwhile cam[r,s] > 0 do
if cam[r,s] = cam[r-1,s] then r:= r-1else nr[r]:= nr[r]+1
s:= s-d[r]fi
odfi
end fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 127: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/127.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Problema del camino de costo mínimoAlgoritmo de FloydEjemploReconstrucción del caminoOtras reconstrucciones
Problema de la mochila
fun mochila(v:array[1..n] of valor, w:array[1..n] of nat, W: nat) ret nr: array[1..n] of boolvar moch: array[0..n,0..W] of valor
r,s: natfor i:= 0 to n do moch[i,0]:= 0 odfor j:= 1 to W do moch[0,j]:= 0 odfor i:= 1 to n do
for j:= 1 to W doif w[i] > j then moch[i,j]:= moch[i-1,j] else moch[i,j]:= max(moch[i-1,j],v[i]+moch[i-1,j-w[i]]) fi
ododr:= ns:= Wwhile moch[r,s] > 0 do
if moch[r,s] = moch[r-1,s] then nr[r]:= falseelse nr[r]:= true
s:= s-w[r]fir:= r-1
odend fun
Programación dinámica Algoritmos y Estructuras de Datos II
![Page 128: Algoritmos y Estructuras de Datos II Programación dinámica Algoritmo de Floyd Conclusión Backtracking Problema de los caminos de costo mínimo entre cada par de vértices Sean 1](https://reader034.vdocuments.co/reader034/viewer/2022042606/5fa4893b9f00860b002b5dcb/html5/thumbnails/128.jpg)
BacktrackingProgramación dinámica
Algoritmo de FloydConclusión
Conclusión
Algoritmos voracesCuando tenemos un criterio de selección que garantizaoptimalidad
BacktrackingCuando no tenemos un criterio asísolución top-downen general es exponencial
Programación dinámicaconstruye una tabla bottom-upevita repetir cálculospero realiza algunos cálculos inútiles.
Programación dinámica Algoritmos y Estructuras de Datos II