Está en la página 1de 32

Clase virtual de la asignatura Complementos de Matemática I

A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

G. Argiroffo S. Bianchi V. Garcı́a

1 Deptartamento de Matemática

Escuela de Ciencias Exactas y Naturales


UNR

26 de octubre de 2020

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 1 / 32


O UTLINE

1 D EFINICIONES Y EJEMPLOS

2 A LGORITMO DE D IJKSTRA

3 C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 2 / 32


O UTLINE

1 D EFINICIONES Y EJEMPLOS

2 A LGORITMO DE D IJKSTRA

3 C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 3 / 32


C AMINO M ÁS CORTO

Sea G = (V, E) grafo dirigido, conexo y sin lazos.


Si a cada arista e ∈ E se le asigna p(e) ∈ R+ , se dice que G es ponderado.
Si x, y ∈ V pero (x, y) ∈
/ E entonces definimos p(x, y) = ∞.
Veamos un ejemplo:

b 7
h 4
e
5 4
f 4
3
6 3 g
4 13
4 2
a 8
7 d
H
c
9

En este caso no existe el arco (a, d) por lo tanto p(a, d) = ∞.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 4 / 32


C AMINO M ÁS CORTO

Sea G = (V, E) dirigido, conexo, ponderado y sin lazos.

D EFINICI ÓN
Sean a, b ∈ V tales que existe un camino dirigido de a hacia b en G.
Llamamos camino más corto de a a b al a − b camino dirigido P para el cual el
valor ∑e∈E(P) p(e) es el menor posible.
Definimos la función d : V × V → R+ ∪ {∞} tal que d(a, b) = ∑e∈E(P) p(e)
cuando P es el a − b camino más corto, y d(a, b) = ∞ cuando no existe un
a − b camino en G. El valor d(a, b) es llamado distancia de a hacia b. Además
definimos d(a, a) = 0 para todo a ∈ V .

Observación Si P es el a − b camino dirigido más corto entonces P es simple.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 5 / 32


C AMINO M ÁS CORTO

Ejemplo:
8
f
c
9
6
4
6
g
1 11

5 4
b 7 4
a
3 h

Para calcular d(a, f ):


camino P : (a, c), (c, f ) y peso p(a, c) + p(c, f ) = 12,
camino P0 : (a, b), (b, c), (c, f ) y peso p(a, b) + p(b, c) + p(c, f ) = 12.
Entonces d(a, f ) = 12.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 6 / 32


C AMINO M ÁS CORTO

Ejemplo (cont.):
8
f
c
9
6
4
6
g
1 11

5 4
b 7 4
a
3 h

Para calcular d(f , a):


arco (f , a) y peso p(f , a) = 8,
camino P : (f , h), (h, a) y peso p(f , h) + p(h, a) = 7.
Entonces d(f , a) = 7.

Observemos que d(g, v) = ∞ para cualquier v 6= g.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 7 / 32


C AMINO M ÁS CORTO

Sea G = (V, E) dirigido, conexo, ponderado y sin lazos.


Sea v0 ∈ V .

O BJETIVO
1) Determinar d(v0 , v) para cualquier v ∈ V .
2) Obtener camino dirigido más corto de v0 a v si d(v0 , v) < ∞.

Para resolver ambos problemas presentaremos el algoritmo desarrollado por


Edsger Wybe Dijkstra (1930-2002)

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 8 / 32


C AMINO M ÁS CORTO

Sea v0 ∈ V fijo. Sea S ⊂ V tal que v0 ∈ S y S̄ = V − S.

D EFINICI ÓN
La distancia de v0 a S̄ es

d(v0 , S̄) = min{d(v0 , v) : v ∈ S̄}.

Veamos un ejemplo:
8
f
c
9
6
4
6 g
11

5 4
b 7 4
a
S 3 h
a=vo

Aquı́ S = {v0 } y S̄ = {b, c, h, f , g}.


Entonces d(v0 , S̄) = min{p(a, b), p(a, c)} = p(a, b) = 5.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 9 / 32


C AMINO M ÁS CORTO

Observación Cuando d(v0 , S̄) < ∞, entonces d(v0 , S̄) representa la longitud
de un camino más corto dirigido de v0 a un vértice v ∈ S̄. Es decir, existe un
vértice vm+1 ∈ S̄ tal que d(v0 , S̄) = d(v0 , vm+1 ) y existe un camino simple
dirigido P : (v0 , v1 ), (v1 , v2 ), . . . , (vm−1 , vm ), (vm , vm+1 ) en G, que además es el
camino más corto entre v0 y vm+1 .
Veamos un ejemplo:

8
f
c
9
6
4
6 g
11

5 4
b 7 4
a
S 3 h
a=vo

Aquı́ S = {v0 , b, c} y S̄ = {h, f , g}.


Vamos a calcular d(v0 , S̄)
S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 10 / 32
C AMINO M ÁS CORTO

Ejemplo(cont.)
8
f
c
9
6
4
6 g
11

5 4
b 7 4
a
S 3 h
a=vo

camino P1 : (a, c), (c, f ) de costo p(a, c) + p(c, f ) = 12.


camino P2 : (a, c), (c, h) de costo p(a, c) + p(c, h) = 17.
camino P3 : (a, b), (b, h) de costo p(a, b) + p(b, h) = 12.
camino P4 : (a, b), (b, c), (c, f ) de costo p(a, b) + p(b, c) + p(c, f ) = 12.
camino P5 : (a, b), (b, c), (c, h) de costo p(a, b) + p(b, c) + p(c, h) = 16.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 11 / 32


C AMINO M ÁS CORTO

Ejemplo(cont.)
8
f
c
9
6
4
6 g
11

5 4
b 7 4
a
S 3 h
a=vo

Hay tres caminos más cortos:


P1 : (a, c), (c, f ) de costo p(a, c) + p(c, f ) = 12,
P3 : (a, b), (b, h) de costo p(a, b) + p(b, h) = 12 y
P4 : (a, b), (b, c), (c, f ) de costo p(a, b) + p(b, c) + p(c, f ) = 12.
En los tres se observa que el último vértice del camino, f en P1 y P4 y h en P3 ,
pertenecen a S̄ y los restantes vértices en cada camino están en S.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 12 / 32


C AMINO M ÁS CORTO

L EMA
Sea G = (V, E) grafo dirigido y ponderado. Para cada arista (a, b) ∈ E,
p(a, b) ∈ R+ . Si (a, b) ∈ / E, p(a, b) = ∞. Sea v0 ∈ V y sea S ⊂ V tal que v0 ∈ S
y S̄ = V − S. Supongamos que d(v0 , S̄) = d(v0 , vm+1 ) y
P : (v0 , v1 ), (v1 , v2 ), . . . , (vm−1 , vm ), (vm , vm+1 ) es un camino más corto entre v0
y vm+1 en G.
Entonces:
{v0 , v1 , . . . , vm } ⊂ S,
Pk : (v0 , v1 ), (v1 , v2 ), . . . , (vk−1 , vk ) es el camino más corto entre v0 y vk
en G, para todo 1 ≤ k ≤ m.

Demostración
Ejercicio

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 13 / 32


C AMINO M ÁS CORTO

C OROLARIO
Sea G = (V, E) grafo dirigido, conexo, ponderado. Sea v0 ∈ S ⊂ V y
S̄ = V − S. Entonces

d(v0 , S̄) = min{d(v0 , u) + p(u, w) : u ∈ S y w ∈ S̄}.

Sigue que existen x ∈ S e y ∈ S̄ tales que d(v0 , S̄) = d(v0 , x) + p(x, y).
El algoritmo comienza con S0 = {v0 } y calcula

d(v0 , S̄0 ) = min{d(v0 , u) + p(u, w) : u ∈ S0 y w ∈ S̄0 }.

Pero u ∈ S0 = {v0 } si y sólo si u = v0 . Entonces d(v0 , u) = 0 y


además
d(v0 , S̄0 ) = min{p(v0 , w) : w ∈ S̄0 }.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 14 / 32


C AMINO M ÁS CORTO

Si v1 ∈ S̄0 es tal que p(v0 , v1 ) = min{p(v0 , w) : w ∈ S̄}, entonces definimos


S1 = S0 ∪ {v1 }.
El proceso consiste en:
una vez obtenido el conjunto Si = {v0 , v1 , . . . , vi }, calcular d(v0 , S̄i ).
Si vi+1 ∈ S̄i es tal d(v0 , S̄i ) = d(v0 , vi+1 ) entonces Si+1 = Si ∪ {vi+1 }.
El proceso se detiene cuando S̄n−1 = 0/ o d(v0 , S̄i ) = ∞ para algún
0 ≤ i ≤ n − 2.
El procedimiento utiliza etiquetas en cada v ∈ V de la forma (L(v), u).
Al finalizar, L(v) = d(v0 , v) para todo v ∈ V , v 6= v0 y u es el vértice que
precede a v en el camino más corto desde v0 (si existe).
Al inicio v0 recibe la etiqueta (0, −) mientras que v 6= v0 es etiquetado por
(∞, −).

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 15 / 32


O UTLINE

1 D EFINICIONES Y EJEMPLOS

2 A LGORITMO DE D IJKSTRA

3 C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 16 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Sea G = (V, E) ponderado, dirigido y sin lazos. Sea n = |V| y v0 ∈ V .


Algoritmo de Dijkstra
1 i := 0, sean S0 = {v0 }, S̄0 = V − S0 , L(v0 ) = 0 y L(v) = ∞ para todo
v ∈ V , v 6= v0 .
I Si n = 1, entonces V = {v0 }. Fin.
I Si n > 1, ir al Paso 2.
2 Para cada v ∈ S̄i , hacer L(v) = min{L(v), L(u) + p(u, v) : u ∈ Si }.
Si L(v) cambia su valor, sea y ∈ Si el valor que produce el mı́nimo y v
adquiere la nueva etiqueta (L(v), y).
3 Si cada vértice de S̄i (para algún i := 0, . . . , n − 2) tiene etiqueta (∞, −),
entonces las etiquetas de los vértices del grafo tiene la información
buscada.
Si existe v ∈ S̄i con L(V) < ∞, entonces:

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 17 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Algoritmo de Dijkstra
3 (cont.)
I Sea vi+1 ∈ S̄i tal que L(vi+1 ) = min{L(v) : v ∈ S̄i } (si hay más de uno
elegir cualquiera).
I Sea Si+1 = Si ∪ {vi+1 }.
I i := i + 1. Si i = n − 1, las etiquetas del grafo tienen la información
buscada. Si i < n − 1 ir al Paso 2.
Vamos a aplicar el algoritmo en este grafo:

b 7
h 4
e
5 4
f 4
3
6 3 g
4 13
4 2
a 8
7 d
H
c
9

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 18 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 1 Inicialización i := 0. S0 = {a}, L(a) = 0 y L(v) = ∞ para v 6= a.


n = 8 > 1, ir Paso 2
Paso 2 Para v ∈ S̄0 = {b, c, d, e, f , g, h} calcular L(v) = min{∞, p(a, v)}.
b 7
h 4
e
5 4
f 4
3
6 3 g
4 13
4 2
a 8
7 d
H
c
9

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 19 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 1 Inicialización i := 0. S0 = {a}, L(a) = 0 y L(v) = ∞ para v 6= a.


n = 8 > 1, ir Paso 2
Paso 2 Para v ∈ S̄0 = {b, c, d, e, f , g, h} calcular L(v) = min{∞, p(a, v)}.
L(b)=6
L(h)=3 b 7
h 4 L(e)=8
e
5 4
f 4
3 L(f)=4
6 3 g
4 13
4 2
L(a)=0
a 8
7 d
L(c)=7 H
c
9

Observar que L(d) = L(g) = ∞ y entonces estas etiquetas no cambian.


Paso 3 existe v ∈ S̄0 con L(v) < ∞. L(h) = min{L(v) : v ∈ S̄0 }.
S1 = {a, h}. i := 1. 1 < 8 − 1 = 7. ir al Paso 2.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 20 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄1 = {b, c, d, e, f , g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S1 }.
L(b)=6
L(h)=3 b 7
h 4 L(e)=8
e
5 4
f 4
3 L(f)=4
6 3 g
4 13
4 2
L(a)=0
a 8
7 d
L(c)=7 H
c
9

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 21 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄1 = {b, c, d, e, f , g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S1 }.
(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8
7 d
(L(c)=7,a) H
c
9

Observar que todas las etiquetas quedan iguales salvo


L(e) = min{L(e), L(h) + p(h, e)} = min{8, 3 + 4} = 7 y h es el predecesor.
Paso 3 existe v ∈ S̄1 con L(v) < ∞. L(f ) = min{L(v) : v ∈ S̄1 }.
S2 = {a, h, f }. i := 2. 2 < 8 − 1 = 7. ir al Paso 2.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 22 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄2 = {b, c, d, e, g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S2 }.
(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8
7 d
(L(c)=7,a) H
c
9

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 23 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄2 = {b, c, d, e, g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S2 }.
(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

Observar que todas las etiquetas que cambian son


L(c) = min{L(c), L(f ) + p(f , c)} = min{7, 4 + 2} = 6 y f es el predecesor y
L(d) = min{L(d), L(f ) + p(f , d)} = min{∞, 4 + 3} = 7 y f es el predecesor.
Paso 3 existe v ∈ S̄2 con L(v) < ∞. L(b) = L(c) = min{L(v) : v ∈ S̄2 }.
Elijo a b. S3 = {a, b, h, f }. i := 3. 3 < 8 − 1 = 7. ir al Paso 2.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 24 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄3 = {c, d, e, g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S3 }.
(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

Observar que ninguna etiqueta cambia, ya que


L(f ) = min{L(f ), L(b) + p(b, f )} = min{4, 6 + 5} = 4.
Paso 3 existe v ∈ S̄3 con L(v) < ∞. L(c) = min{L(v) : v ∈ S̄3 }.
S4 = {a, b, c, h, f }. i := 4. 4 < 8 − 1 = 7. ir al Paso 2.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 25 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄4 = {d, e, g} calcular


L(v) = min{L(v), L(u) + p(u, v) : u ∈ S4 }.
(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

Observar que ninguna etiqueta cambia, ya que


L(d) = min{L(d), L(c) + p(c, d)} = min{7, 6 + 9} = 7.
Paso 3 existe v ∈ S̄4 con L(v) < ∞. L(d) = L(e) = min{L(v) : v ∈ S̄4 }.
Elijo d. S5 = {a, b, c, d, h, f }. i := 5. 5 < 8 − 1 = 7. ir al Paso 2.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 26 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄5 = {e, g} calcular L(v) = min{L(v), L(u) + p(u, v) : u ∈ S5 }.


(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
3 (L(f)=4,a)
6 3 g
4 13
4 2
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 27 / 32


A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄5 = {e, g} calcular L(v) = min{L(v), L(u) + p(u, v) : u ∈ S5 }.


(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
(L(f)=4,a)
3
6 3 g
4 13
4 2 (L(g)=20,d)
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

Observar que cambia la etiqueta


L(g) = min{L(g), L(d) + p(d, g)} = min{∞, 7 + 13} = 20 y el predecesor es
d.
Pero no cambia L(e) = min{L(e), L(d) + p(d, e)} = min{7, 7 + 4} = 7
Paso 3 existe v ∈ S̄5 con L(v) < ∞. L(e) = min{L(v) : v ∈ S̄5 }.
S6 = {a, b, c, d, e, h, f }. i := 6. 6 < 8 − 1 = 7. ir al Paso 2.
S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 28 / 32
A LGORITMO DE D IJKSTRA DE CAMINO M ÁS CORTO

Paso 2 Para v ∈ S̄6 = {g} calcular L(v) = min{L(v), L(u) + p(u, v) : u ∈ S6 }.


(L(b)=6,a)
(L(h)=3, a) b 7
h 4 (L(e)=7,h)
e
5 4
f 4
(L(f)=4,a)
3
6 3 g
4 13
4 2 (L(g)=20,d)
L(a)=0
a 8 (L(d)=7,f)

7 d
(L(c)=6,f) H
c
9

Observar que no hay cambios de etiquetas ya que


L(b) = min{L(b), L(e) + p(e, b)} = min{6, 7 + 7} = 6 y
L(f ) = min{L(f ), L(e) + p(e, f )} = min{4, 7 + 4} = 4
Paso 3 existe v ∈ S̄6 con L(v) < ∞. L(g) = min{L(v) : v ∈ S̄6 }.
S7 = {a, b, c, d, e, h, f , g}. i := 7. 7 = 8 − 1 = 7. Fin

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 29 / 32


O UTLINE

1 D EFINICIONES Y EJEMPLOS

2 A LGORITMO DE D IJKSTRA

3 C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 30 / 32


C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

D EFINICI ÓN
Dado G = (V, E) ponderado con n = |V|, sea f (n) el número máximo de
operaciones que realiza el Algoritmo para encontrar el camino más corto.

Después del paso de inicialización, el procedimiento realiza n − 1 iteraciones.


(En la iteración i con i = 1, . . . , n − 1, se establece el i-ésimo vértice más
cercano a v0 .)
En el Paso 2, se calcula L(v) = min{L(v), L(u) + p(u, v) : u ∈ Si }.
Es decir, para cada u ∈ Si
se realizan a lo sumo n − 1 sumas y
se realizan n − 1 comparaciones.
Se realizan un total de 2(n − 1) cómputos para cada v ∈ S̄i (|S̄i | ≤ n − 1).
Se obtienen a lo sumo 2(n − 1)2 operaciones.

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 31 / 32


C OMPLEJIDAD DEL A LGORITMO DE D IJKSTRA

En el Paso 3, calculamos min{L(v) : v ∈ S̄i } (recordar |S̄i | ≤ n − 1).


Esto requiere a lo sumo n − 2 comparaciones.
Entonces
f (n) ≤ (n − 1)[2(n − 1)2 + (n − 2)].
Que se expresa como:
f (n) ∈ O(n3 ).
El algoritmo puede mejorarse de modo de obtener

f (n) ∈ O(n2 ).

S. Bianchi (UNR) Algoritmo de Dijkstra de camino más corto 26 de octubre de 2020 32 / 32

También podría gustarte