You are on page 1of 4

15/05/13 Algoritmo Dijkstra de etiquetas, ruta mnima en red no orientada

www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/Investigacion_de_Operaciones_Careaga/Common/IO-modulo4-rutaminimadijkstra.htm 1/4
Investigacion de Operaciones
Anterior Siguiente
4.4.1.1. Algoritmo Dijkstra de etiquetas, ruta mnima en red no orientada
El algoritmo de Dijkstra para ruta mnima utiliza la etiqueta general: ( # Identificacin del nodo precedente,
acumulacin del costo) que se coloca en cada uno de los nodos de la red, ya sea con carcter permanente P o
bien temporal t. Los pasos del algoritmo son los siguientes:
1. El nodo origen siempre se etiqueta con: ( -, 0 ) P
2. A partir del ltimo nodo con etiqueta permanente, se etiquetan temporalmente ( t ) todos los nodos sin
etiqueta permanente, conectados directamente al mismo.
3. Se inicia la revisin de las etiquetas temporales (t), en los nodos que tengan dos etiquetas eliminando la de
costo mayor, a continuacin se comparan las temporales que an quedan, con el criterio de costo
menor se elige una para permanencia. En caso de empate se hacen permanentes las que estn en esa
condicin.
4. Se repite el procedimiento desde el paso 2, mientras existan nodos t para hacerlos P y se termina
ordenando en tabla, las n-1 rutas mnimas encontradas.
Ejemplo 4-11. Ruta mnima, aplica algoritmo de Dijkstra (RUMINOD1).
La siguiente red (Figura 4-76) es no orientada, con un total de ocho nodos de los cuales se fija como origen al
nodo #8. Determine las rutas mnimas desde el origen hasta los 8 - 1 = 7 nodos restantes, utilizando el algoritmo
de Dijkstra.
Figura 4-76. Red no orientada del ejemplo RUMINOD1.
Se inicia la aplicacin del algoritmo en el paso 1 colocando en nodo origen #8 la etiqueta ( -, 0 )P, el cual tiene
como nodos directos a #5, #6 y #7; se procede en el paso 2 al etiquetado temporal con: # 5, ( 8, 0 + 14 = 14
)t; # 6, ( 8, 0+7 = 7 ) t; # 7, ( 8, 0 + 8 = 8 ) t; los otros nodos ( 1, 2, 3, 4 ) an no se etiquetan. Slo los nodos
# 5, # 6 y # 7, tienen etiqueta temporal, en revisin de paso 3 resulta: mnimo costo respectivo (14, 7, 8) = 7
C 86 = 7, lo que significa que la etiqueta de nodo # 6 pasa a permanente escribiendo as: # 6, ( 8, 7 ) P
15/05/13 Algoritmo Dijkstra de etiquetas, ruta mnima en red no orientada
www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/Investigacion_de_Operaciones_Careaga/Common/IO-modulo4-rutaminimadijkstra.htm 2/4
Se repite desde paso 2, partiendo de nodo # 6 (recin anotado P) que tiene como nodos directos a # 2, 3, 4, 5,
7 resultando las temporales t siguientes: #2,(6, 7+15=22); #3,(6, 7+8=15); #4,(6, 7+13=20); #5,(6, 7+6=13);
#7,(6,7+9 =16). En nodos: #5 y 7, se elimina (8,14)t y (6,16)t, pues tienen dos etiquetas. En paso 3 se revisa:
mnimo costo en temporal (22, 15, 20, 13, 8) = 8 C 87 = 8, significa que la etiqueta del nodo #7 debe pasar
a permanente, anotando as: #7 ( 8, 8) P.
Hasta ahora, los nodos #8, #6 y #7 tienen etiqueta permanente, los nodos restantes (excepto el #1) tienen
etiqueta t temporal. Se inicia una nueva iteracin del algoritmo de Dijkstra desde el paso 2, partiendo del nodo
#7, ltimo en pasar a permanencia, el cual tiene como nico nodo directo el #4 (pues los nodos #6 y 8 ya tienen
permanencia), procediendo con su etiqueta temporal #4, ( 7, 8+11=19 ) t. En primera revisin de paso3, resulta
eliminada la etiqueta temporal #4, (6, 20)t. La siguiente revisin resulta: mnimo costo ( 22, 15, 19, 13 ) = 13
C 6 5 = 6, significa, la etiqueta de nodo #5 pasa a permanente sealando as: # 5 ( 6, 13 ) P.
Para continuar conviene anotar que los nodos # 8, 6, 7, 5, tienen permanencia, los nodos # 2, 3, 4, tienen
temporal, el nodo # 1 an no se etiqueta. Partiendo del nodo # 5 se observa que su nico nodo directo para
etiqueta temporal es el # 2, ya que en los nodos # 6 y # 8, hay permanencia, entonces # 2, ( 5, 13 + 5 =18 ) t;
Aqu mismo se elimina la temporal # 2 ( 6, 22 ) t; se procede a la revisin comparando temporales: mnimo
costo ( 18, 15, 19 ) = 15 C 6 3 = 8, significa que la etiqueta en nodo #3 pase a permanente anotando: # 3 (
6, 15 ) P.
Ahora los nodos # 8, 6, 7, 5, y 3, tienen permanencia; los nodos # 2 y # 4, tienen temporal; el # 1 an no se
etiqueta. El nodo # 3, tiene directos a #1, #2, # 4 y quedan con t: # 1,(3, 15+7=22 ) t; # 2,( 3, 15+10=25) t; #
4(3, 15+4=19) t; toca eliminar la temporal duplicada # 2 ( 3, 25 ) t; con respecto al nodo # 4, se tienen dos
etiquetas pero empatadas en el costo, por lo cual no hay eliminacin y se conservan; se procede a la revisin de
las temporales resultando como sigue: mnimo costo ( 22, 18, 19, 19 ) = 18 C 52 = 5, significa que la
etiqueta del nodo # 2 debe hacerse permanente as: # 2 ( 5, 18 ) P.
Se anota ahora que los nodos # 8, 6, 7, 5, 3, 2, ya tienen etiqueta permanente; los nodos # 1 y # 4, tienen
temporal. Repitiendo con el paso 2, se etiqueta con temporal el nodo # 1, (2, 18+12=30) t, pues los nodos # 3,
5 y 6, tambin directos del # 2, ya tienen permanencia; esta ltima temporal se elimina por duplicidad en el nodo
# 1 y se procede a la comparacin:
Mnimo costo(24,19,19)=19 C 7 4 = 11 y C 3 4 = 4, lo cual significa que la situacin de empate resulta en
dos rutas alternativas para llegar al nodo # 4 sealando con doble etiqueta permanente as: # 4 ( 3, 19) P y ( 7,
19) P.
Con excepcin del nodo # 1, todos los nodos tienen carcter permanente, se procede a etiquetar temporalmente
al nodo # 1, ( 4, 19 + 5 = 24 ) t; pero se elimina la misma etiqueta temporal #1(4,24)t por duplicidad y costo
alto, quedando sola la etiqueta que se convierte a permanente en el nodo # 1: ( 3, 22 ) P.
Se termina el algoritmo de Dijkstra cuando todos los nodos tienen etiqueta permanente. La solucin del
problema de ruta mnima para una red no orientada se puede completar resumiendo en forma tabular, las n-1
rutas determinadas. Tambin deben sealarse las ramas resultantes de la aplicacin del algoritmo en la misma
red, tal como se muestra a continuacin en el ejemplo Ruminod1 red no orientada de ruta mnima mostrando las
etiquetas permanentes y temporales, resultado de la aplicacin del algoritmo de Dijkstra. Las ramas en lnea
gruesa sealan la ruta mnima del origen #8 hacia cada nodo.
15/05/13 Algoritmo Dijkstra de etiquetas, ruta mnima en red no orientada
www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/Investigacion_de_Operaciones_Careaga/Common/IO-modulo4-rutaminimadijkstra.htm 3/4
Figura 4-77. Red ejemplo RUMINOD1, muestra solucin del algoritmo de Dijkstra
Figura 4-78. Rutas mnimas obtenidas con algoritmo de Dijkstra al ejemplo RUMINOD1.
Como ejercicio para el estudiante, considere la red ejemplo Ruminod1 con los mismos costos C i j asociados a
las ramas. Pero en este caso se considera al nodo #6, como origen, lo cual produce un problema diferente,
que podr comprobar con sus resultados y los anotados en la red correspondiente.
Ejemplo 4-12. Ruta mnima, aplica algoritmo de Dijkstra (RUMINOD2).
Red no orientada de 8 nodos, determine la ruta mnima del nodo origen # 6 hasta los restantes n - 1 =
8-1 = 7 nodos.
Figura 4-79. Ejemplo RUMINOD2, se muestra solucin con rutas de Dijkstra.
15/05/13 Algoritmo Dijkstra de etiquetas, ruta mnima en red no orientada
www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/Investigacion_de_Operaciones_Careaga/Common/IO-modulo4-rutaminimadijkstra.htm 4/4
Figura 4-80. Tabla solucin con rutas de Dijkstra, ejemplo RUMINOD2.
Anterior Inicio Siguiente
Problema de ruta mnima Subir Algoritmo de Dijkstra para ruta
mnima en red orientada acclica