Algoritmo Dijkstra

hcombita 344 views 19 slides Mar 22, 2022
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

Paso a paso de ejemplo de calculo de camino mas corto aplicando el algoritmo Dijkstra.


Slide Content

Grafos Caminos Mas Cortos

Algoritmo Dijkstra Se requiere como entrada un grafo cuyas aristas tengan peso No pueden tener pesos negativos (para este caso usar bellmand-ford) Se utilizara la siguiente etiqueta para identificar los nodos: [Valor Acumulado, Nodo Procedente] iteracion

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [Valor Acumulado, Nodo Procedente] iteracion

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion Iteracion 0:

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion Iteracion 0: 1

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 1:

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 1: 3 Marcamos el nodo que tenga menor valor acumulado, que tenga etiqueta y que aun no este marcado.

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 2: [4,3] 2 [5,3] 2

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 2: [4,3] 2 [5,3] 2 Marcamos el nodo que tenga menor valor acumulado, que tenga etiqueta y que aun no este marcado. 2

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 3: [4,3] 2 [5,3] 2 2 [3,2] 3

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 3: [4,3] 2 [5,3] 2 2 [3,2] 3 Si ya teniamos una etiqueta en el nodo, tachamos la mayor.

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 3: [4,3] 2 [5,3] 2 2 [3,2] 3 Marcamos el nodo que tenga menor valor acumulado, que tenga etiqueta y que aun no este marcado.

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 4: [4,3] 2 [5,3] 2 2 [3,2] 3 [5,4] 4

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 4: [4,3] 2 [5,3] 2 2 [3,2] 3 [5,4] 4 Marcamos el nodo que tenga menor valor acumulado, que tenga etiqueta y que aun no este marcado. En este caso es igual, marcamos el mas cercano al inicio.

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 5: [4,3] 2 [5,3] 2 2 [3,2] 3 [5,4] 4 [7,5] 5

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 Iteracion 5: [4,3] 2 [5,3] 2 2 [3,2] 3 [5,4] 4 [7,5] 5 Si ya teniamos una etiqueta en el nodo, tachamos la mayor.

Ejemplo 1 2 4 3 5 6 2 1 2 2 4 1 3 [0,-] [Valor Acumulado, Nodo Procedente] iteracion [2, 1 ] 1 [1,1] 1 [5,3] 2 2 [3, 2 ] 3 [ 5 , 4 ] 4 RUTA: 1 – 2 – 4 – 6 DISTANCIA: 5

Ejercicio en Clase Camino mas corto: A. De 0 a 11 B. De 5 a 4 C. De 1 a 10 D. De 1 a 4 2 5 8 4 9 2 2 2 5 3 7 9 3 9

Algoritmo Al final tenemos en el vector distancia en cada posición la distancia mínima del vértice salida a otro vértice cualquiera.