SlideShare una empresa de Scribd logo
Acerca del Algoritmo de Dijkstra
Alvaro H. Salas S.*
Resumen
In this paper we prove the correctness of Dijkstra’s algorithm. We also discuss it and at the
end we show an application.
En este artı́culo realizamos una descripción detallada del algoritmo de Dijkstra, justificando su
correctitud, discutiéndolo y mostrando algunas de sus aplicaciones.
Palabras claves: grafo, digrafo, digrafo ponderado, digrafo pesado, peso de un camino, camino de
coste mı́nimo, camino minimal.
1. Introduccción
Dado un grafo con etiquetas no negativas, se trata de calcular el coste del camino mı́nimo desde
un vértice dado al resto (ing., single-source shortest paths). La utilidad de un procedimiento que
solucione esta cuestión es clara: el caso más habitual es disponer de un grafo que represente una
distribución geográfica, donde las aristas den el coste (en precio, en distancia o similares) de la
conexión entre dos lugares y sea necesario averiguar el camino más corto para llegar a un punto
partiendo de otro (es decir, determinar la secuencia de aristas para llegar a un nodo a partir del
otro con un coste mı́nimo). La solución más eficiente a este problema es el denominado algoritmo de
Dijkstra, en honor a su creador, E.W. Dijkstra. Formulado en 1959 en .A
note on two problems in
connexion with graphs”, Numerical Mathematica, 1, pp. 269-271, sobre grafos dirigidos, el algoritmo
de Dijkstra es un algoritmo voraz (algoritmo goloso) que genera uno a uno los caminos de un nodo
a al resto por orden creciente de longitud; usa un conjunto S de vértices donde, a cada paso del
algoritmo, se guardan los nodos para los que ya se sabe el camino mı́nimo y devuelve un vector
indexado por vértices, de modo que para cada uno de estos vértices podemos determinar el coste
de un camino más económico (de peso mı́nimo) de a a tales vértices. Cada vez que se incorpora un
nodo a la solución, se comprueba si los caminos todavı́a no definitivos se pueden acortar pasando
por él.
*Departamento de Matemáticas, Universidad de Caldas, Departamento de Matemáticas, Universidad Nacional de
Colombia, Manizales. email : asalash2002@yahoo.com
1
arXiv:0810.0075v1
[cs.DS]
1
Oct
2008
2. Preliminares
Recordemos que un digrafo (eng. directed graph) es una pareja G = (V, E), en donde V es un
conjunto y E es una relación binaria irreflexiva sobre V , es decir, un subconjunto de V × V tal que
(x, x) /
∈ E para todo x ∈ E. Decimos que V es el conjunto de vértices y que E es el conjunto de
aristas (eng. edges). En los sucesivo supondremos que V es finito. Dada una arista (u, v), decimos
que los vértices u y v son adyacentes y que la arista es incidente en ellos (u, v). Se llama camino de
u a v, denotado por u − v, a toda sucesión finita de vértices
u = x0, x1, . . . , xi, xi+1, . . . , xm−1, xm = v, (2.1)
de modo que (xi, xi+1) es una arista para cada i = 0, 1, . . . , m−1. Por definición, (2.1) es un camino
Figura 1: Un camino u − v
de longitud m, u es su vértice inicial, v es su vértice terminal y x1, x2,..., xm−1 son sus vértices
internos.
Un digrafo es ponderado o pesado, si a cada arista (u, v) se le asigna un número real, denotado por
p(u, v) y llamado su peso. En lo sucesivo consideraremos un digrafo ponderado G con pesos positivos
: p(u, v) > 0 para toda arista (u, v) ∈ E. El peso del camino (2.1) se define como la suma de los
pesos de sus aristas :
p(u − v) = p(x0, x1) + p(x1, x2) + · · · + p(xm−1, xm). (2.2)
Un camino es de coste mı́nimo si no es posible encontrar ningún camino de u a v cuyo peso sea
menor que p(u − v). En otras palabras, dado cualquier camino de u a v
u = y0, y1, . . . , yk−1, yk = v,
se debe tener
p(u, y1) + p(y1, y2) + · · · + p(yk−1, v) ≥ p(u − v).
2
3. El algoritmo de Dijkstra. Descripción y sustentación de
su correctitud.
Sea G = (V, E) un digrafo ponderado con pesos positivos de n vértices. Supongamos que a y z
son dos vértices en V , de modo que z 6= a y existe al menos un camino de a a z. Nuestro principal
objetivo consiste en hallar un camino a − z de coste mı́nimo. Este problema se resuelve de manera
eficiente mediante el algoritmo de Dijkstra. El algoritmo inicia en el vértice a y construye un camino
de coste mı́nimo
a = u0, u1, . . . , um−1, um = z,
tal que a − ui es un camino de coste mı́nimo para cada i = 0, 1, . . . , m.
3.1. Algoritmo de Dijkstra
Entrada: Grafo ponderado dirigido de n vértices con pesos positivos; a y z vértices distintos tales
que existe algún camino de a a z.
Salida: Peso de un camino de coste mı́nimo de a a z.
Paso 1 : Definimos S0 = ∅, T0 = V . Asignamos a cada vértice v en V una etiqueta (eng.
label) como sigue : L(v) = 0 si v = a y L(v) = ∞ para v 6= a.
Paso 2 : Para i = 1, 2, . . . , n : Supongamos que hemos construido los conjuntos S0, S1,...,
Si−1. Hacemos Ti−1 = V  Si−1. Si z ∈ Si−1, definimos S = Si−1 y detenemos la construcción.
En caso contrario, escogemos el primer vértice u en Ti−1 con la menor eqtiqueta, es decir,
L(u) = mı́n{L(v) | v ∈ Ti−1}.
Definimos ui−1 = u, Si = Si−1 ∪{ui−1} = {u0, u1, . . . , ui−1} (decimos que u entra), Ti = V Si
y para cada vértice v en Ti adyacente a u cambiamos su etiqueta L(v) por la nueva etiqueta
mı́n{L(v), L(u) + p(u, v)} :
L(v) ← mı́n{L(v), L(u) + p(u, v)},
es decir, actualizamos la etiqueta de los ”vecinos”de u por fuera de Si.
Paso 3 : Si i = n, definimos S = Sn y nos detenemos. Si i < n, hacemos i = i + 1 y vamos al
Paso 2.
El algoritmo de Dijkstra termina en el momento en que encontramos el primer ı́ndice m para el cual
z ∈ Sm. En ese momento, S = Sm.
3
3.2. Correctitud del algoritmo de Dijktra
La justificación de la correctitud de este notable algoritmo se basa en el siguiente
Teorema 1 Al finalizar la ejecución del algoritmo de Dijkstra tenemos que, para todo u ∈ S con
u 6= a,
A. Cualquier camino a − u tiene peso al menos L(u) : L(u) ≤ p(a − u)
B. Existe un camino de a a u de peso igual a L(u). En particular, L(u) es finita : L(u) < ∞.
Demostración. Haremos la demostración por inducción sobre i ≥ 1. Sea i = 1. Inicialmente (esto
es, antes del Paso 2) S0 = ∅, T0 = V . Es claro que z /
∈ S0. De acuerdo al Paso 2, escogemos el vértice
a por cuanto su etiqueta es la menor (los demás vértices tienen etiqueta ∞ > 0), ası́ que el vértice
a = u0 entra y S1 = {u0}. Entonces T1 = V  S1. Por hipótesis, existe al menos un camino de a a z.
Sea
a = x0, x1, . . . , xm−1, xm = z (3.3)
dicho camino. Entonces x1 ∈ T1 es un vecino de u0, ası́ que el conjunto de los vecinos de u0 por
fuera de S0 es no vacı́o. De acuerdo al Paso 2, actualizamos las etiquetas de estos vecinos. Sea v
cualquiera de ellos. Su nueva etiqueta es
mı́n{L(v), L(a) + p(a, v)} = mı́n{∞, 0 + p(a, v)} = p(a, v).
Según esto, la etiqueta de v (que en este momento es ∞) se cambia por el peso de la arista (a, v).
Supongamos que u1 es un vecino con la menor etiqueta (el vecino más económico o más cercano a
u0 = a; puede haber más de uno, en cuyo caso podemos escoger cualquiera de ellos), esto es,
L(u1) = mı́n{p(a, v) | v ∈ T1, siendo v un vecino de a} = p(a, u1).
Sea (3.3) cualquier camino a − z. Tenemos:
L(u1) ≤ p(a, x1) ≤ p(a, x1) + p(x1, x2) + · · · + p(xm−1, z) = p(a − z),
de modo que la condición A se cumple para i = 1. De otro lado, B es verdadera, ya que a, u1 es un
camino a − u1 de peso p(a − u1) = p(a, u1) = L(u1).
De acuerdo con los anteriores argumentos, el teorema es válido para i = 1.
Supongamos que este teorema se cumple para todos los vértices ui ∈ S con 1 ≤ i ≤ k. Veamos que
este teorema también es válido para el vértice uk+1.
Consideremos cualquier camino de a a v = uk+1 (ver Figura 2). Veamos que L(v) ≤ p(a−v). Si esto
fuera falso, se tendrı́a L(v) > p(a − v). Supongamos que y es el primer vértice de este camino por
4
Figura 2: Un camino arbitrario u − v
fuera de Sk+1 y sea u el predecesor de y en dicho camino. Entonces u ∈ Sk+1 = {u0, u1, . . . , ..., uk}.
De acuerdo con nuestra hipótesis inductiva, L(u) ≤ p(a−u). Además, L(v) = L(uk+1) ≤ L(y), luego
L(v) ≤ L(y) ≤ L(u) + p(u, y) ≤ p(a − u) + p(u, y) = p(a − y) ≤ p(a − v) < L(v),
lo cual es una contradicción. En consecuencia, la parte A del teorema se cumple para i = k + 1.
Supongamos que en el camino (3.3) el vértice y = xj es el primero que se encuentra por fuera de
Sk+1 = {u0, u1, . . . , uk}. Ver Figura 3. Entonces y = xj es vecino de u = xj−1 ∈ Sk+1. Por hipótesis
Figura 3: Existencia de un camino de a hacia uk+1 de peso L(uk+1)
inductiva, existe un camino a, b, . . . , t, u de a a u de peso L(u), luego L(u) es finito. Cuando u entró a
S, la etiqueta de su vecino y fue actualizada, de modo que L(y) ≤ L(u)+p(u, y) < ∞. Ahora, ambos,
y y uk+1, están por fuera de Sk+1, ası́ que L(uk+1) ≤ L(y) < ∞. Inicialmente (esto es, antes del
Paso 2), el vértice uk+1 tenı́a etiqueta ∞ (observemos que uk+1 6= a, ya que a = u0 y k + 1 6= 0).
En el momento actual, por lo que acabamos de demostrar, este vértice tiene etiqueta finita. Esto
significa que en algún momento fue actualizada y cambió de ∞ a L(uj) + p(uj, uk+1) para algún j
con j ≤ k. Sin pérdida de generalidad, podemos suponer que este es el valor actual de L(uk+1), es
decir,
L(uk+1) = L(uj) + p(uj, uk+1). (3.4)
5
De acuerdo a nuestra hipótesis inductiva, existe un camino de a − uj de peso L(uj). Agregando a
este camino la arista (uj, uk+1) obtenemos un camino de peso L(uj) + p(uj, uk+1) = L(uk+1), de
modo que B también se satisface para i = k + 1. Teorema demostrado. 
Del teorema antwerior se sigue que :
a. El algoritmo termina.
En efecto, probemos por inducción sobre i ≥ 1 que los elementos de Si son distintos.
Para i = 1, S1 = {u0} y en este caso no hay nada que demostrar. Supongamos que todos
los elementos de Si son distintos para algún i ≥ 1, de modo que z /
∈ Si. Sea x el último
vértice en Si ⊆ S de un camino u − z y y su vecino. Cuando x entró a S, la etiqueat de y se
actualizó, luego L(y) ≤ L(x)  ∞. Por lo tanto, es posible escoger en Ti = V  Si un elemento
con etiqueta mı́nima finita ≤ L(y). Uno de ellos es precisamente el elemento ui. Entonces
definimos Si+1 = {u0, u1, . . . , ui−1, ui}. Es claro que todos los elementos de Si+1 son distintos.
Por consiguiente, i ≤ n y el algoritmo debe terminar.
b. L(u) es el peso de un camino de coste mı́nimo de a a u para todo u ∈ S  {a}.
En efecto, puede haber más de un camino de coste mı́nimo. Sin embargo, es fácil ver que todos
ellos tienen el mismo peso. Si consideramos uno de estos caminos, su peso q es menor o igual
que el peso del camino de a a u cuya existencia se garantiza en la parte B del teorema, esto
es, q ≤ L(u). De otro lado, según la parte A de este teorema, todo camino a − u tiene peso al
menos L(u), esto es, q ≥ L(u). Concluimos que q = L(u). En particular, tomando u = z ∈ S,
obtenemos que L(z) es el peso de un camino de coste mı́nimo de a hacia z.
c. Si um = z, entonces
L(u0) ≤ L(u1) ≤ · · · ≤ L(uj) ≤ L(uj+1) ≤ · · · ≤ L(um).
En efecto, antes de que los elementos uj y uj+1 entren a S = Sm, éstos se encuentran en
Tj = V  Sj. Se escoge uj por cuanto este es uno de los elementos con etiqueta mı́nima, luego
L(uj) ≤ L(uj+1).
4. Discusión
Supongamos que aplicamos el algoritmo de Dijkstra empezando en un vértice arbitrario a. En
calidad de z tomamos cualquier vértice distinto de a. Si existe un camino de a a z, el algoritmo
funciona. Supongamos que no existe tal camino. En este caso, z no pertenece a ninguno de los
conjuntos Si. Al aplicar los pasos del algoritmo, nos detenemos en el momento en que todas las
6
etiquetas de los vértices que aún no han entrado sea ∞. Por lo tanto, dados dos vértices arbitrarios
distintos a y z, al tomar a como vértice inicial, si ejecutamos los pasos del algoritmo, deteniéndonos
en el momento en que
mı́n{L(v) | v ∈ Ti} = ∞,
obtenemos un conjunto S ⊆ V de vértices. Si z /
∈ S, entonces no hay ningún camino a − z. En par-
ticular, si S = {a}, entonces no existe ninguna arista que parta de a, es decir, a no tiene vecinos. En
este caso decimos que a es un vértice aislado. Si S = V , entonces existe un camino de a a cualquier
otro vértice y las etiquetas finales de dichos vértices nos dan un camino de peso mı́nimo desde a.
Cabe anotar que el peso de un camino de coste mı́nimo de a a z puede ser distinto del peso de un
camino de coste mı́nimo de z a a. Por ejemplo, a y z pueden representar ciudades vecinas. Digamos
que el peso de las aristas (a, z) y (z, a) representa el coste de transportar cierta mercancı́a de una
ciudad a otra. En general, p(a, z) 6= p(z, a). El algoritmo de Dijkstra nos proporciona L(z) = p(a, z)
al tomar a como vértice inicial y L(a) = p(z, a) si z es el vértice inicial.
En el caso en que en el grafo G = (V, E) sea una relación simétrica, decimos que el grafo es no
dirigido y las aristas son bidireccionales ( sobre las aristas no colocamos ninguna flecha ) y en este
caso L(a) = L(z) para cualquier par de vértices del grafo.
5. Algoritmo de Dijkstra modificado
En algunas ocasiones nos interesa conocer no solamente el peso de un camino de coste mı́nimo
entre dos vértices dados, sino también la ruta a seguir para llegar de uno de estos dos vértices al
otro. En este caso a cada vértice distinto de a le agregamos una etiqueta adicional, es decir, a cada
vértice v 6= a le asociamos una pareja L(v) de la siguiente manera. En el Paso 1, L(v) = (∞, ?). Si
al ejecutar el Paso 2 éste vértice es vecino de a, entonces su nueva etiqueta es L(v) = (p(u, v), u).
En caso contrario, esta etiqueta inicial es (∞, ?). Supongamos que en determinado momento la
etiqueta de cierto vértice v /
∈ S se actualiza, es decir que v es un vecino de un vértice u que aca-
ba de entrar a S, de modo que L(u) + p(u, v)  L(v). Entonces la etiqueta de v se cambia por
L(v) = (L(u) + p(u, v), u). El vértice u es predecesor de un camino de coste mı́nimo de a a v. De
esta manera, si al terminar el algoritmo la etiqueta de v es L(v) = (L(v), u), entonces observamos
la etiqueta de u. Sea L(u) = (L(u), t). Entonces un camino de coste mı́nimo de a a v debe ser de
la forma a, . . . , t, u, v. Al observar la etiqueta de t, obtenemos otro predecesor. Procedemos de esta
manera hasta llegar a un vértice b cuya etiqueta sea L(b) = (L(b), a). En ese momento habremos
obtenido un camino a, b, . . . , t, u, v de coste mı́nimo igual a L(v).
7
6. Aplicación
En esta sección mostraremos una aplicación del algoritmo de Dijkstra en un caso concreto. La
Figura 4 muestra un grafo no dirigido ponderado. Hallemos un camino de coste mı́nimo de a a z.
Figura 4: Grafo ponderado.
La ejecución del algoritmo se ilustra a continuación :
8
De acuerdo a la Figura 12, un camino de coste mı́nimo de a a z es a, b, c, d, z. Este camino tiene peso
igual a 10.
Referencias
[1] R. Johnsonbaugh, Matemáticas Discretas, Prentice Hall, Cuarta Edición, pag. 338–343.
9

Más contenido relacionado

La actualidad más candente

Compilado controles-mec
Compilado controles-mecCompilado controles-mec
Compilado controles-mec
Independiente
 
Lagrange
LagrangeLagrange
Oem
OemOem
Ejercicio de Cinematica.curso
Ejercicio de Cinematica.cursoEjercicio de Cinematica.curso
Ejercicio de Cinematica.curso
LEXYV16
 
Cap6
Cap6Cap6
Ejercicios lagrangiano
Ejercicios lagrangianoEjercicios lagrangiano
Ejercicios lagrangiano
Franklin Quispe Ccoa
 
Semana12 (1)
Semana12 (1)Semana12 (1)
Semana12 (1)
Carlos Ruíz
 
Ejercicios transformada de laplace
Ejercicios transformada de laplaceEjercicios transformada de laplace
Ejercicios transformada de laplace
Jean Carlos Quispe Avila
 
Ejercicios dinamica
Ejercicios dinamicaEjercicios dinamica
Ejercicios dinamica
Gabby Barrera
 
Semana03
Semana03Semana03
Semana03
Carlos Ruíz
 
Algebra lineal 2014-08-03
Algebra lineal 2014-08-03Algebra lineal 2014-08-03
Algebra lineal 2014-08-03
Cindy Adriana Bohórquez Santana
 
Aplicaciones de ecuaciones diferenciales
Aplicaciones de ecuaciones diferencialesAplicaciones de ecuaciones diferenciales
Aplicaciones de ecuaciones diferenciales
Flightshox
 
Propagación de Ondas Electromagnéticas
Propagación de Ondas ElectromagnéticasPropagación de Ondas Electromagnéticas
Propagación de Ondas Electromagnéticas
Andy Juan Sarango Veliz
 
Aplicaciones de las ed de segundo orden
Aplicaciones de las ed de segundo ordenAplicaciones de las ed de segundo orden
Aplicaciones de las ed de segundo orden
sheep242
 
Apunte usm resolución ed os
Apunte usm    resolución ed osApunte usm    resolución ed os
Apunte usm resolución ed os
Cristian Cofré Sepúlveda
 
Derivadas
DerivadasDerivadas
Tema6 Ondas en sólidos elásticos y fluidos
Tema6 Ondas en sólidos elásticos y fluidosTema6 Ondas en sólidos elásticos y fluidos
Tema6 Ondas en sólidos elásticos y fluidos
rafarrc
 
Espacios vectoriales ita
Espacios vectoriales itaEspacios vectoriales ita
Espacios vectoriales ita
Rudy Medina
 
Exámenes álgebra lineal segundo y tercera evaluación
Exámenes álgebra lineal segundo y tercera evaluaciónExámenes álgebra lineal segundo y tercera evaluación
Exámenes álgebra lineal segundo y tercera evaluación
Cindy Adriana Bohórquez Santana
 
Derivada direccional yerinson
Derivada direccional yerinsonDerivada direccional yerinson
Derivada direccional yerinson
PSM san cristobal
 

La actualidad más candente (20)

Compilado controles-mec
Compilado controles-mecCompilado controles-mec
Compilado controles-mec
 
Lagrange
LagrangeLagrange
Lagrange
 
Oem
OemOem
Oem
 
Ejercicio de Cinematica.curso
Ejercicio de Cinematica.cursoEjercicio de Cinematica.curso
Ejercicio de Cinematica.curso
 
Cap6
Cap6Cap6
Cap6
 
Ejercicios lagrangiano
Ejercicios lagrangianoEjercicios lagrangiano
Ejercicios lagrangiano
 
Semana12 (1)
Semana12 (1)Semana12 (1)
Semana12 (1)
 
Ejercicios transformada de laplace
Ejercicios transformada de laplaceEjercicios transformada de laplace
Ejercicios transformada de laplace
 
Ejercicios dinamica
Ejercicios dinamicaEjercicios dinamica
Ejercicios dinamica
 
Semana03
Semana03Semana03
Semana03
 
Algebra lineal 2014-08-03
Algebra lineal 2014-08-03Algebra lineal 2014-08-03
Algebra lineal 2014-08-03
 
Aplicaciones de ecuaciones diferenciales
Aplicaciones de ecuaciones diferencialesAplicaciones de ecuaciones diferenciales
Aplicaciones de ecuaciones diferenciales
 
Propagación de Ondas Electromagnéticas
Propagación de Ondas ElectromagnéticasPropagación de Ondas Electromagnéticas
Propagación de Ondas Electromagnéticas
 
Aplicaciones de las ed de segundo orden
Aplicaciones de las ed de segundo ordenAplicaciones de las ed de segundo orden
Aplicaciones de las ed de segundo orden
 
Apunte usm resolución ed os
Apunte usm    resolución ed osApunte usm    resolución ed os
Apunte usm resolución ed os
 
Derivadas
DerivadasDerivadas
Derivadas
 
Tema6 Ondas en sólidos elásticos y fluidos
Tema6 Ondas en sólidos elásticos y fluidosTema6 Ondas en sólidos elásticos y fluidos
Tema6 Ondas en sólidos elásticos y fluidos
 
Espacios vectoriales ita
Espacios vectoriales itaEspacios vectoriales ita
Espacios vectoriales ita
 
Exámenes álgebra lineal segundo y tercera evaluación
Exámenes álgebra lineal segundo y tercera evaluaciónExámenes álgebra lineal segundo y tercera evaluación
Exámenes álgebra lineal segundo y tercera evaluación
 
Derivada direccional yerinson
Derivada direccional yerinsonDerivada direccional yerinson
Derivada direccional yerinson
 

Similar a Acerca del algoritmo de dijkstra compressed

Flyd+Warshall
Flyd+WarshallFlyd+Warshall
Flyd+Warshall
grupo6tic
 
Ensayo polanco euan_elias
Ensayo polanco euan_eliasEnsayo polanco euan_elias
Ensayo polanco euan_elias
Elias Polanco Euán
 
Campos esc y_vect
Campos esc y_vectCampos esc y_vect
Campos esc y_vect
Jrg Rouco
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
Ana Cristina
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
Ana Cristina
 
Ortogonalidad
OrtogonalidadOrtogonalidad
Ortogonalidad
Joe Arroyo Suárez
 
Rutamascorta1
Rutamascorta1Rutamascorta1
Rutamascorta1
hernandodiaz
 
Espacios vectoriales Conceptos
Espacios vectoriales ConceptosEspacios vectoriales Conceptos
Espacios vectoriales Conceptos
carogf9015
 
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
leonardobenitez32
 
Calculo 3 ejer 1
Calculo 3 ejer 1Calculo 3 ejer 1
Calculo 3 ejer 1
izarra1530
 
Ecuación de continuidad - Fenómenos de transporte
Ecuación de continuidad - Fenómenos de transporteEcuación de continuidad - Fenómenos de transporte
Ecuación de continuidad - Fenómenos de transporte
www.youtube.com/cinthiareyes
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
waltergomez627
 
Transformaciones lineales
Transformaciones lineales Transformaciones lineales
Transformaciones lineales
mirabal21
 
Articulo de Variable Compleja: Un Paseo a través de lo Inédito
Articulo de Variable Compleja: Un Paseo a través de lo InéditoArticulo de Variable Compleja: Un Paseo a través de lo Inédito
Articulo de Variable Compleja: Un Paseo a través de lo Inédito
MynorRios
 
Sev resueltos
Sev resueltosSev resueltos
Familia de rectas
Familia de rectasFamilia de rectas
Familia de rectas
Aldo Daquilema
 
Unidad ii material complementario vectores
Unidad ii material complementario vectoresUnidad ii material complementario vectores
Unidad ii material complementario vectores
SistemadeEstudiosMed
 
Al ap 02
Al ap 02Al ap 02
Archivo con demostraciones de espacios vectoriales
Archivo con demostraciones de espacios vectorialesArchivo con demostraciones de espacios vectoriales
Archivo con demostraciones de espacios vectoriales
Cindy Adriana Bohórquez Santana
 
Problemario de Álgebra Lineal
Problemario de Álgebra LinealProblemario de Álgebra Lineal
Problemario de Álgebra Lineal
Juliho Castillo
 

Similar a Acerca del algoritmo de dijkstra compressed (20)

Flyd+Warshall
Flyd+WarshallFlyd+Warshall
Flyd+Warshall
 
Ensayo polanco euan_elias
Ensayo polanco euan_eliasEnsayo polanco euan_elias
Ensayo polanco euan_elias
 
Campos esc y_vect
Campos esc y_vectCampos esc y_vect
Campos esc y_vect
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
 
Ortogonalidad
OrtogonalidadOrtogonalidad
Ortogonalidad
 
Rutamascorta1
Rutamascorta1Rutamascorta1
Rutamascorta1
 
Espacios vectoriales Conceptos
Espacios vectoriales ConceptosEspacios vectoriales Conceptos
Espacios vectoriales Conceptos
 
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
05 CAMBIO DE INTEGRALES EN INTEGRAL DOBLE
 
Calculo 3 ejer 1
Calculo 3 ejer 1Calculo 3 ejer 1
Calculo 3 ejer 1
 
Ecuación de continuidad - Fenómenos de transporte
Ecuación de continuidad - Fenómenos de transporteEcuación de continuidad - Fenómenos de transporte
Ecuación de continuidad - Fenómenos de transporte
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
 
Transformaciones lineales
Transformaciones lineales Transformaciones lineales
Transformaciones lineales
 
Articulo de Variable Compleja: Un Paseo a través de lo Inédito
Articulo de Variable Compleja: Un Paseo a través de lo InéditoArticulo de Variable Compleja: Un Paseo a través de lo Inédito
Articulo de Variable Compleja: Un Paseo a través de lo Inédito
 
Sev resueltos
Sev resueltosSev resueltos
Sev resueltos
 
Familia de rectas
Familia de rectasFamilia de rectas
Familia de rectas
 
Unidad ii material complementario vectores
Unidad ii material complementario vectoresUnidad ii material complementario vectores
Unidad ii material complementario vectores
 
Al ap 02
Al ap 02Al ap 02
Al ap 02
 
Archivo con demostraciones de espacios vectoriales
Archivo con demostraciones de espacios vectorialesArchivo con demostraciones de espacios vectoriales
Archivo con demostraciones de espacios vectoriales
 
Problemario de Álgebra Lineal
Problemario de Álgebra LinealProblemario de Álgebra Lineal
Problemario de Álgebra Lineal
 

Más de hubapla

Actividades desconectadas para estudiantes
Actividades desconectadas para estudiantesActividades desconectadas para estudiantes
Actividades desconectadas para estudiantes
hubapla
 
Algoritmo de dijkstra tutorial interactivo
Algoritmo de dijkstra tutorial interactivoAlgoritmo de dijkstra tutorial interactivo
Algoritmo de dijkstra tutorial interactivo
hubapla
 
Expectativas y compromisos 2021 hb
Expectativas y compromisos 2021 hbExpectativas y compromisos 2021 hb
Expectativas y compromisos 2021 hb
hubapla
 
Guias mcd mcm 601 hbp mat 2019
Guias mcd mcm 601 hbp mat 2019Guias mcd mcm 601 hbp mat 2019
Guias mcd mcm 601 hbp mat 2019
hubapla
 
Guias 601 hbp mat 2019
Guias 601 hbp mat 2019Guias 601 hbp mat 2019
Guias 601 hbp mat 2019
hubapla
 
Guias 3 4 trigon 2019
Guias 3 4 trigon 2019Guias 3 4 trigon 2019
Guias 3 4 trigon 2019
hubapla
 
Dba v1 v2 mat decimo
Dba  v1 v2 mat decimoDba  v1 v2 mat decimo
Dba v1 v2 mat decimo
hubapla
 
Dba v1 v2 mat undecimo
Dba  v1 v2 mat undecimoDba  v1 v2 mat undecimo
Dba v1 v2 mat undecimo
hubapla
 
Dba v1 v2 mat noveno
Dba  v1 v2 mat novenoDba  v1 v2 mat noveno
Dba v1 v2 mat noveno
hubapla
 
Ejercicios de media, moda y mediana
Ejercicios de media, moda y medianaEjercicios de media, moda y mediana
Ejercicios de media, moda y mediana
hubapla
 
Malla matematicas 6 a 11
Malla  matematicas 6 a 11Malla  matematicas 6 a 11
Malla matematicas 6 a 11
hubapla
 
Malla matemáticas 6 a 11 2018
Malla matemáticas 6 a 11 2018Malla matemáticas 6 a 11 2018
Malla matemáticas 6 a 11 2018
hubapla
 
Medellinmatematicas
MedellinmatematicasMedellinmatematicas
Medellinmatematicas
hubapla
 
Autorizaciones salidas estudiantes
Autorizaciones salidas estudiantesAutorizaciones salidas estudiantes
Autorizaciones salidas estudiantes
hubapla
 
Formato prestamo de libros
Formato prestamo de librosFormato prestamo de libros
Formato prestamo de libros
hubapla
 

Más de hubapla (15)

Actividades desconectadas para estudiantes
Actividades desconectadas para estudiantesActividades desconectadas para estudiantes
Actividades desconectadas para estudiantes
 
Algoritmo de dijkstra tutorial interactivo
Algoritmo de dijkstra tutorial interactivoAlgoritmo de dijkstra tutorial interactivo
Algoritmo de dijkstra tutorial interactivo
 
Expectativas y compromisos 2021 hb
Expectativas y compromisos 2021 hbExpectativas y compromisos 2021 hb
Expectativas y compromisos 2021 hb
 
Guias mcd mcm 601 hbp mat 2019
Guias mcd mcm 601 hbp mat 2019Guias mcd mcm 601 hbp mat 2019
Guias mcd mcm 601 hbp mat 2019
 
Guias 601 hbp mat 2019
Guias 601 hbp mat 2019Guias 601 hbp mat 2019
Guias 601 hbp mat 2019
 
Guias 3 4 trigon 2019
Guias 3 4 trigon 2019Guias 3 4 trigon 2019
Guias 3 4 trigon 2019
 
Dba v1 v2 mat decimo
Dba  v1 v2 mat decimoDba  v1 v2 mat decimo
Dba v1 v2 mat decimo
 
Dba v1 v2 mat undecimo
Dba  v1 v2 mat undecimoDba  v1 v2 mat undecimo
Dba v1 v2 mat undecimo
 
Dba v1 v2 mat noveno
Dba  v1 v2 mat novenoDba  v1 v2 mat noveno
Dba v1 v2 mat noveno
 
Ejercicios de media, moda y mediana
Ejercicios de media, moda y medianaEjercicios de media, moda y mediana
Ejercicios de media, moda y mediana
 
Malla matematicas 6 a 11
Malla  matematicas 6 a 11Malla  matematicas 6 a 11
Malla matematicas 6 a 11
 
Malla matemáticas 6 a 11 2018
Malla matemáticas 6 a 11 2018Malla matemáticas 6 a 11 2018
Malla matemáticas 6 a 11 2018
 
Medellinmatematicas
MedellinmatematicasMedellinmatematicas
Medellinmatematicas
 
Autorizaciones salidas estudiantes
Autorizaciones salidas estudiantesAutorizaciones salidas estudiantes
Autorizaciones salidas estudiantes
 
Formato prestamo de libros
Formato prestamo de librosFormato prestamo de libros
Formato prestamo de libros
 

Último

PRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
PRINCIPALES INNOVACIONES CURRICULARES 2024.pdfPRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
PRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
christianMuoz756105
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
johnyamg20
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
https://gramadal.wordpress.com/
 
Gracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdfGracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdf
Ani Ann
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
https://gramadal.wordpress.com/
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
Ruth Noemí Soto Villegas
 
Fundamentos filosóficos de la metodología de la enseñanza
Fundamentos filosóficos de la metodología de la enseñanzaFundamentos filosóficos de la metodología de la enseñanza
Fundamentos filosóficos de la metodología de la enseñanza
iamgaby0724
 
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
JAVIER SOLIS NOYOLA
 
DIPLOMA Teachers For Future junio2024.pdf
DIPLOMA Teachers For Future junio2024.pdfDIPLOMA Teachers For Future junio2024.pdf
DIPLOMA Teachers For Future junio2024.pdf
Alfaresbilingual
 
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdfTP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
JesicaSalinas5
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
Fernández Gorka
 
Programación de la XI semana cultural del CEIP Alfares
Programación de la XI semana cultural del CEIP AlfaresProgramación de la XI semana cultural del CEIP Alfares
Programación de la XI semana cultural del CEIP Alfares
Alfaresbilingual
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
EleNoguera
 
Maikell-Victor-Quimica-2024-Volume-2.pdf
Maikell-Victor-Quimica-2024-Volume-2.pdfMaikell-Victor-Quimica-2024-Volume-2.pdf
Maikell-Victor-Quimica-2024-Volume-2.pdf
DevinsideSolutions
 
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacionalPapel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
BrunoDiaz343346
 
Presentación sector la arenita_paijan pptx
Presentación sector la arenita_paijan pptxPresentación sector la arenita_paijan pptx
Presentación sector la arenita_paijan pptx
Aracely Natalia Lopez Talavera
 
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACIONANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
carla466417
 
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
Shirley Vásquez Esparza
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
cesareduvr95
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
MiNeyi1
 

Último (20)

PRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
PRINCIPALES INNOVACIONES CURRICULARES 2024.pdfPRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
PRINCIPALES INNOVACIONES CURRICULARES 2024.pdf
 
Business Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business TechBusiness Plan -rAIces - Agro Business Tech
Business Plan -rAIces - Agro Business Tech
 
Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.Sesión de clase: El conflicto inminente.
Sesión de clase: El conflicto inminente.
 
Gracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdfGracias papá hombre_letra y acordes de guitarra.pdf
Gracias papá hombre_letra y acordes de guitarra.pdf
 
Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)Power Point: El conflicto inminente (Bosquejo)
Power Point: El conflicto inminente (Bosquejo)
 
Mi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste BlancoMi Comunidad En El Sector Monterrey-Poste Blanco
Mi Comunidad En El Sector Monterrey-Poste Blanco
 
Fundamentos filosóficos de la metodología de la enseñanza
Fundamentos filosóficos de la metodología de la enseñanzaFundamentos filosóficos de la metodología de la enseñanza
Fundamentos filosóficos de la metodología de la enseñanza
 
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ROMPECABEZAS DE COMPETENCIAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
DIPLOMA Teachers For Future junio2024.pdf
DIPLOMA Teachers For Future junio2024.pdfDIPLOMA Teachers For Future junio2024.pdf
DIPLOMA Teachers For Future junio2024.pdf
 
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdfTP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
TP__N1__Geller-Iris_Salinas-Jesica_(1)-1.pdf
 
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍACINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
CINE COMO RECURSO DIDÁCTICO para utilizar en TUTORÍA
 
Programación de la XI semana cultural del CEIP Alfares
Programación de la XI semana cultural del CEIP AlfaresProgramación de la XI semana cultural del CEIP Alfares
Programación de la XI semana cultural del CEIP Alfares
 
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdfCarnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
Carnavision: anticipa y aprovecha - hackathon Pasto2024 .pdf
 
Maikell-Victor-Quimica-2024-Volume-2.pdf
Maikell-Victor-Quimica-2024-Volume-2.pdfMaikell-Victor-Quimica-2024-Volume-2.pdf
Maikell-Victor-Quimica-2024-Volume-2.pdf
 
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacionalPapel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
 
Presentación sector la arenita_paijan pptx
Presentación sector la arenita_paijan pptxPresentación sector la arenita_paijan pptx
Presentación sector la arenita_paijan pptx
 
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACIONANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
ANALISIS CRITICO DEL PENSAMIENTO COLONIAL Y DESCOLONIZACION
 
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
Leyes de los gases según Boyle-Marriote, Charles, Gay- Lussac, Ley general de...
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
 

Acerca del algoritmo de dijkstra compressed

  • 1. Acerca del Algoritmo de Dijkstra Alvaro H. Salas S.* Resumen In this paper we prove the correctness of Dijkstra’s algorithm. We also discuss it and at the end we show an application. En este artı́culo realizamos una descripción detallada del algoritmo de Dijkstra, justificando su correctitud, discutiéndolo y mostrando algunas de sus aplicaciones. Palabras claves: grafo, digrafo, digrafo ponderado, digrafo pesado, peso de un camino, camino de coste mı́nimo, camino minimal. 1. Introduccción Dado un grafo con etiquetas no negativas, se trata de calcular el coste del camino mı́nimo desde un vértice dado al resto (ing., single-source shortest paths). La utilidad de un procedimiento que solucione esta cuestión es clara: el caso más habitual es disponer de un grafo que represente una distribución geográfica, donde las aristas den el coste (en precio, en distancia o similares) de la conexión entre dos lugares y sea necesario averiguar el camino más corto para llegar a un punto partiendo de otro (es decir, determinar la secuencia de aristas para llegar a un nodo a partir del otro con un coste mı́nimo). La solución más eficiente a este problema es el denominado algoritmo de Dijkstra, en honor a su creador, E.W. Dijkstra. Formulado en 1959 en .A note on two problems in connexion with graphs”, Numerical Mathematica, 1, pp. 269-271, sobre grafos dirigidos, el algoritmo de Dijkstra es un algoritmo voraz (algoritmo goloso) que genera uno a uno los caminos de un nodo a al resto por orden creciente de longitud; usa un conjunto S de vértices donde, a cada paso del algoritmo, se guardan los nodos para los que ya se sabe el camino mı́nimo y devuelve un vector indexado por vértices, de modo que para cada uno de estos vértices podemos determinar el coste de un camino más económico (de peso mı́nimo) de a a tales vértices. Cada vez que se incorpora un nodo a la solución, se comprueba si los caminos todavı́a no definitivos se pueden acortar pasando por él. *Departamento de Matemáticas, Universidad de Caldas, Departamento de Matemáticas, Universidad Nacional de Colombia, Manizales. email : asalash2002@yahoo.com 1 arXiv:0810.0075v1 [cs.DS] 1 Oct 2008
  • 2. 2. Preliminares Recordemos que un digrafo (eng. directed graph) es una pareja G = (V, E), en donde V es un conjunto y E es una relación binaria irreflexiva sobre V , es decir, un subconjunto de V × V tal que (x, x) / ∈ E para todo x ∈ E. Decimos que V es el conjunto de vértices y que E es el conjunto de aristas (eng. edges). En los sucesivo supondremos que V es finito. Dada una arista (u, v), decimos que los vértices u y v son adyacentes y que la arista es incidente en ellos (u, v). Se llama camino de u a v, denotado por u − v, a toda sucesión finita de vértices u = x0, x1, . . . , xi, xi+1, . . . , xm−1, xm = v, (2.1) de modo que (xi, xi+1) es una arista para cada i = 0, 1, . . . , m−1. Por definición, (2.1) es un camino Figura 1: Un camino u − v de longitud m, u es su vértice inicial, v es su vértice terminal y x1, x2,..., xm−1 son sus vértices internos. Un digrafo es ponderado o pesado, si a cada arista (u, v) se le asigna un número real, denotado por p(u, v) y llamado su peso. En lo sucesivo consideraremos un digrafo ponderado G con pesos positivos : p(u, v) > 0 para toda arista (u, v) ∈ E. El peso del camino (2.1) se define como la suma de los pesos de sus aristas : p(u − v) = p(x0, x1) + p(x1, x2) + · · · + p(xm−1, xm). (2.2) Un camino es de coste mı́nimo si no es posible encontrar ningún camino de u a v cuyo peso sea menor que p(u − v). En otras palabras, dado cualquier camino de u a v u = y0, y1, . . . , yk−1, yk = v, se debe tener p(u, y1) + p(y1, y2) + · · · + p(yk−1, v) ≥ p(u − v). 2
  • 3. 3. El algoritmo de Dijkstra. Descripción y sustentación de su correctitud. Sea G = (V, E) un digrafo ponderado con pesos positivos de n vértices. Supongamos que a y z son dos vértices en V , de modo que z 6= a y existe al menos un camino de a a z. Nuestro principal objetivo consiste en hallar un camino a − z de coste mı́nimo. Este problema se resuelve de manera eficiente mediante el algoritmo de Dijkstra. El algoritmo inicia en el vértice a y construye un camino de coste mı́nimo a = u0, u1, . . . , um−1, um = z, tal que a − ui es un camino de coste mı́nimo para cada i = 0, 1, . . . , m. 3.1. Algoritmo de Dijkstra Entrada: Grafo ponderado dirigido de n vértices con pesos positivos; a y z vértices distintos tales que existe algún camino de a a z. Salida: Peso de un camino de coste mı́nimo de a a z. Paso 1 : Definimos S0 = ∅, T0 = V . Asignamos a cada vértice v en V una etiqueta (eng. label) como sigue : L(v) = 0 si v = a y L(v) = ∞ para v 6= a. Paso 2 : Para i = 1, 2, . . . , n : Supongamos que hemos construido los conjuntos S0, S1,..., Si−1. Hacemos Ti−1 = V Si−1. Si z ∈ Si−1, definimos S = Si−1 y detenemos la construcción. En caso contrario, escogemos el primer vértice u en Ti−1 con la menor eqtiqueta, es decir, L(u) = mı́n{L(v) | v ∈ Ti−1}. Definimos ui−1 = u, Si = Si−1 ∪{ui−1} = {u0, u1, . . . , ui−1} (decimos que u entra), Ti = V Si y para cada vértice v en Ti adyacente a u cambiamos su etiqueta L(v) por la nueva etiqueta mı́n{L(v), L(u) + p(u, v)} : L(v) ← mı́n{L(v), L(u) + p(u, v)}, es decir, actualizamos la etiqueta de los ”vecinos”de u por fuera de Si. Paso 3 : Si i = n, definimos S = Sn y nos detenemos. Si i < n, hacemos i = i + 1 y vamos al Paso 2. El algoritmo de Dijkstra termina en el momento en que encontramos el primer ı́ndice m para el cual z ∈ Sm. En ese momento, S = Sm. 3
  • 4. 3.2. Correctitud del algoritmo de Dijktra La justificación de la correctitud de este notable algoritmo se basa en el siguiente Teorema 1 Al finalizar la ejecución del algoritmo de Dijkstra tenemos que, para todo u ∈ S con u 6= a, A. Cualquier camino a − u tiene peso al menos L(u) : L(u) ≤ p(a − u) B. Existe un camino de a a u de peso igual a L(u). En particular, L(u) es finita : L(u) < ∞. Demostración. Haremos la demostración por inducción sobre i ≥ 1. Sea i = 1. Inicialmente (esto es, antes del Paso 2) S0 = ∅, T0 = V . Es claro que z / ∈ S0. De acuerdo al Paso 2, escogemos el vértice a por cuanto su etiqueta es la menor (los demás vértices tienen etiqueta ∞ > 0), ası́ que el vértice a = u0 entra y S1 = {u0}. Entonces T1 = V S1. Por hipótesis, existe al menos un camino de a a z. Sea a = x0, x1, . . . , xm−1, xm = z (3.3) dicho camino. Entonces x1 ∈ T1 es un vecino de u0, ası́ que el conjunto de los vecinos de u0 por fuera de S0 es no vacı́o. De acuerdo al Paso 2, actualizamos las etiquetas de estos vecinos. Sea v cualquiera de ellos. Su nueva etiqueta es mı́n{L(v), L(a) + p(a, v)} = mı́n{∞, 0 + p(a, v)} = p(a, v). Según esto, la etiqueta de v (que en este momento es ∞) se cambia por el peso de la arista (a, v). Supongamos que u1 es un vecino con la menor etiqueta (el vecino más económico o más cercano a u0 = a; puede haber más de uno, en cuyo caso podemos escoger cualquiera de ellos), esto es, L(u1) = mı́n{p(a, v) | v ∈ T1, siendo v un vecino de a} = p(a, u1). Sea (3.3) cualquier camino a − z. Tenemos: L(u1) ≤ p(a, x1) ≤ p(a, x1) + p(x1, x2) + · · · + p(xm−1, z) = p(a − z), de modo que la condición A se cumple para i = 1. De otro lado, B es verdadera, ya que a, u1 es un camino a − u1 de peso p(a − u1) = p(a, u1) = L(u1). De acuerdo con los anteriores argumentos, el teorema es válido para i = 1. Supongamos que este teorema se cumple para todos los vértices ui ∈ S con 1 ≤ i ≤ k. Veamos que este teorema también es válido para el vértice uk+1. Consideremos cualquier camino de a a v = uk+1 (ver Figura 2). Veamos que L(v) ≤ p(a−v). Si esto fuera falso, se tendrı́a L(v) > p(a − v). Supongamos que y es el primer vértice de este camino por 4
  • 5. Figura 2: Un camino arbitrario u − v fuera de Sk+1 y sea u el predecesor de y en dicho camino. Entonces u ∈ Sk+1 = {u0, u1, . . . , ..., uk}. De acuerdo con nuestra hipótesis inductiva, L(u) ≤ p(a−u). Además, L(v) = L(uk+1) ≤ L(y), luego L(v) ≤ L(y) ≤ L(u) + p(u, y) ≤ p(a − u) + p(u, y) = p(a − y) ≤ p(a − v) < L(v), lo cual es una contradicción. En consecuencia, la parte A del teorema se cumple para i = k + 1. Supongamos que en el camino (3.3) el vértice y = xj es el primero que se encuentra por fuera de Sk+1 = {u0, u1, . . . , uk}. Ver Figura 3. Entonces y = xj es vecino de u = xj−1 ∈ Sk+1. Por hipótesis Figura 3: Existencia de un camino de a hacia uk+1 de peso L(uk+1) inductiva, existe un camino a, b, . . . , t, u de a a u de peso L(u), luego L(u) es finito. Cuando u entró a S, la etiqueta de su vecino y fue actualizada, de modo que L(y) ≤ L(u)+p(u, y) < ∞. Ahora, ambos, y y uk+1, están por fuera de Sk+1, ası́ que L(uk+1) ≤ L(y) < ∞. Inicialmente (esto es, antes del Paso 2), el vértice uk+1 tenı́a etiqueta ∞ (observemos que uk+1 6= a, ya que a = u0 y k + 1 6= 0). En el momento actual, por lo que acabamos de demostrar, este vértice tiene etiqueta finita. Esto significa que en algún momento fue actualizada y cambió de ∞ a L(uj) + p(uj, uk+1) para algún j con j ≤ k. Sin pérdida de generalidad, podemos suponer que este es el valor actual de L(uk+1), es decir, L(uk+1) = L(uj) + p(uj, uk+1). (3.4) 5
  • 6. De acuerdo a nuestra hipótesis inductiva, existe un camino de a − uj de peso L(uj). Agregando a este camino la arista (uj, uk+1) obtenemos un camino de peso L(uj) + p(uj, uk+1) = L(uk+1), de modo que B también se satisface para i = k + 1. Teorema demostrado. Del teorema antwerior se sigue que : a. El algoritmo termina. En efecto, probemos por inducción sobre i ≥ 1 que los elementos de Si son distintos. Para i = 1, S1 = {u0} y en este caso no hay nada que demostrar. Supongamos que todos los elementos de Si son distintos para algún i ≥ 1, de modo que z / ∈ Si. Sea x el último vértice en Si ⊆ S de un camino u − z y y su vecino. Cuando x entró a S, la etiqueat de y se actualizó, luego L(y) ≤ L(x) ∞. Por lo tanto, es posible escoger en Ti = V Si un elemento con etiqueta mı́nima finita ≤ L(y). Uno de ellos es precisamente el elemento ui. Entonces definimos Si+1 = {u0, u1, . . . , ui−1, ui}. Es claro que todos los elementos de Si+1 son distintos. Por consiguiente, i ≤ n y el algoritmo debe terminar. b. L(u) es el peso de un camino de coste mı́nimo de a a u para todo u ∈ S {a}. En efecto, puede haber más de un camino de coste mı́nimo. Sin embargo, es fácil ver que todos ellos tienen el mismo peso. Si consideramos uno de estos caminos, su peso q es menor o igual que el peso del camino de a a u cuya existencia se garantiza en la parte B del teorema, esto es, q ≤ L(u). De otro lado, según la parte A de este teorema, todo camino a − u tiene peso al menos L(u), esto es, q ≥ L(u). Concluimos que q = L(u). En particular, tomando u = z ∈ S, obtenemos que L(z) es el peso de un camino de coste mı́nimo de a hacia z. c. Si um = z, entonces L(u0) ≤ L(u1) ≤ · · · ≤ L(uj) ≤ L(uj+1) ≤ · · · ≤ L(um). En efecto, antes de que los elementos uj y uj+1 entren a S = Sm, éstos se encuentran en Tj = V Sj. Se escoge uj por cuanto este es uno de los elementos con etiqueta mı́nima, luego L(uj) ≤ L(uj+1). 4. Discusión Supongamos que aplicamos el algoritmo de Dijkstra empezando en un vértice arbitrario a. En calidad de z tomamos cualquier vértice distinto de a. Si existe un camino de a a z, el algoritmo funciona. Supongamos que no existe tal camino. En este caso, z no pertenece a ninguno de los conjuntos Si. Al aplicar los pasos del algoritmo, nos detenemos en el momento en que todas las 6
  • 7. etiquetas de los vértices que aún no han entrado sea ∞. Por lo tanto, dados dos vértices arbitrarios distintos a y z, al tomar a como vértice inicial, si ejecutamos los pasos del algoritmo, deteniéndonos en el momento en que mı́n{L(v) | v ∈ Ti} = ∞, obtenemos un conjunto S ⊆ V de vértices. Si z / ∈ S, entonces no hay ningún camino a − z. En par- ticular, si S = {a}, entonces no existe ninguna arista que parta de a, es decir, a no tiene vecinos. En este caso decimos que a es un vértice aislado. Si S = V , entonces existe un camino de a a cualquier otro vértice y las etiquetas finales de dichos vértices nos dan un camino de peso mı́nimo desde a. Cabe anotar que el peso de un camino de coste mı́nimo de a a z puede ser distinto del peso de un camino de coste mı́nimo de z a a. Por ejemplo, a y z pueden representar ciudades vecinas. Digamos que el peso de las aristas (a, z) y (z, a) representa el coste de transportar cierta mercancı́a de una ciudad a otra. En general, p(a, z) 6= p(z, a). El algoritmo de Dijkstra nos proporciona L(z) = p(a, z) al tomar a como vértice inicial y L(a) = p(z, a) si z es el vértice inicial. En el caso en que en el grafo G = (V, E) sea una relación simétrica, decimos que el grafo es no dirigido y las aristas son bidireccionales ( sobre las aristas no colocamos ninguna flecha ) y en este caso L(a) = L(z) para cualquier par de vértices del grafo. 5. Algoritmo de Dijkstra modificado En algunas ocasiones nos interesa conocer no solamente el peso de un camino de coste mı́nimo entre dos vértices dados, sino también la ruta a seguir para llegar de uno de estos dos vértices al otro. En este caso a cada vértice distinto de a le agregamos una etiqueta adicional, es decir, a cada vértice v 6= a le asociamos una pareja L(v) de la siguiente manera. En el Paso 1, L(v) = (∞, ?). Si al ejecutar el Paso 2 éste vértice es vecino de a, entonces su nueva etiqueta es L(v) = (p(u, v), u). En caso contrario, esta etiqueta inicial es (∞, ?). Supongamos que en determinado momento la etiqueta de cierto vértice v / ∈ S se actualiza, es decir que v es un vecino de un vértice u que aca- ba de entrar a S, de modo que L(u) + p(u, v) L(v). Entonces la etiqueta de v se cambia por L(v) = (L(u) + p(u, v), u). El vértice u es predecesor de un camino de coste mı́nimo de a a v. De esta manera, si al terminar el algoritmo la etiqueta de v es L(v) = (L(v), u), entonces observamos la etiqueta de u. Sea L(u) = (L(u), t). Entonces un camino de coste mı́nimo de a a v debe ser de la forma a, . . . , t, u, v. Al observar la etiqueta de t, obtenemos otro predecesor. Procedemos de esta manera hasta llegar a un vértice b cuya etiqueta sea L(b) = (L(b), a). En ese momento habremos obtenido un camino a, b, . . . , t, u, v de coste mı́nimo igual a L(v). 7
  • 8. 6. Aplicación En esta sección mostraremos una aplicación del algoritmo de Dijkstra en un caso concreto. La Figura 4 muestra un grafo no dirigido ponderado. Hallemos un camino de coste mı́nimo de a a z. Figura 4: Grafo ponderado. La ejecución del algoritmo se ilustra a continuación : 8
  • 9. De acuerdo a la Figura 12, un camino de coste mı́nimo de a a z es a, b, c, d, z. Este camino tiene peso igual a 10. Referencias [1] R. Johnsonbaugh, Matemáticas Discretas, Prentice Hall, Cuarta Edición, pag. 338–343. 9