2. OBJETIVO
• Aplicar el algoritmo de Dijkstra en la determinación de la ruta
mas corta en una red de transporte a través de la exposición y
resolución de un ejemplo ilustrativo.
• Valorar ideas en un ambiente de respeto y tolerancia, mediante
el dialogo cooperativo que permita plantear soluciones a
situaciones planteadas.
3. PROBLEMA DE LA RUTA MAS CORTA
Este problema consiste en determinar la ruta mas corta entre un
origen y un destino en una red de transporte.
Los algoritmos de solución son dos:
• Algoritmo de Dijkstra
• Algoritmo de Floyd
4. ALGORITMO DE DIJKSTRA
• Sirve para determinar las rutas más cortas entre el nodo origen y los
demás nodos en la red.
• Sea 𝑢𝑖 la distancia más corta del nodo origen 1 al nodo 𝑖, y defina
𝑑𝑖𝑗 (≥ 0) como la longitud del arco (𝑖, 𝑗). El algoritmo define la etiqueta
para un nodo 𝑗 que sigue inmediatamente como
𝑢𝑗, 𝑖 = 𝑢𝑖 + 𝑑𝑖𝑗, 𝑖 , 𝑑𝑖𝑗 ≥ 0
• Las etiquetas de nodo en el algoritmo de Dijkstra son de dos tipos:
temporales y permanentes. Una etiqueta temporal en un nodo se
modifica si puede hallarse una ruta más corta al nodo. De lo
contrario, el estado temporal cambia a permanente.
5. EJEMPLO 1
La red de la figura presenta las distancias en millas entre pares
de ciudades 1,2,…,8. Use el algoritmo de Dijkstra para
determinar la ruta más corta entre la ciudades 1 y 8.
6. SOLUCIÓN
• Iteración 0. Asignamos la
etiqueta permanente al nodo
1.
• Iteración 1. Se puede llegar a
los nodos 2 y 3 desde el nodo
, Asi la lista de nodos
etiquetados se muestra en la
tabla.
De las dos etiquetas
temporales, el nodo 2 da la
distancia mínima ( 𝑢2 = 1 ). De
este modo, el estado del nodo
Nod
o
Equiteta Estado
1 [0, −] Permanent
e
2 0 + 1,1 = [1,1] Temporal
3 0 + 2,1 = [2,1] Temporal
7. • Iteración 3. Se puede llegar
a los nodos 3, 4 y 5 desde
el nodo 2. Actualizando la
tabla de nodos etiquetados
resulta,
La etiqueta temporal [2,2] en
el nodo 3, es ahora
permanente.
Nodo Equiteta Estado
1 [0, −] Permanent
e
2 0 + 1,1 = [1,1] Permanent
e
3 1 + 1,2 = [2,2] Temporal
4 1 + 5,2 = [6,2] Temporal
5 1 + 2,2 = [3,2] Temporal
8. • Iteración 4. Se puede llegar
a los nodos 4, 5 y 6 desde
el nodo 3. Actualizando la
tabla de nodos etiquetados
resulta,
La etiqueta temporal [3,3] en
el nodo 5, es ahora
permanente.
Nodo Equiteta Estado
1 [0, −] Permanent
e
2 0 + 1,1 = [1,1] Permanent
e
3 1 + 1,2 = [2,2] Permanent
e
4 2 + 2,3 = [4,3] Temporal
5 2 + 1,3 = [3,3] Temporal
6 2 + 4,3 = [6,3] Temporal
9. • Iteración 5. Se puede llegar
a los nodos 6 y 7 desde el
nodo 5. Actualizando la
tabla de nodos etiquetados
resulta,
La etiqueta temporal [6,5] en
el nodo 6, es ahora
permanente.
Nodo Equiteta Estado
1 [0, −] Permanent
e
2 0 + 1,1 = [1,1] Permanent
e
3 1 + 1,2 = [2,2] Permanent
e
4 2 + 2,3 = [4,3] Temporal
5 2 + 1,3 = [3,3] Permanent
e
6 3 + 3,5 = [6,5] Temporal
10. • Iteración 6. Se puede llegar a
los nodos 7 y 8 desde el nodo
6. Actualizando la tabla de
nodos etiquetados resulta,
La etiqueta temporal [8,6] en el
nodo 8, es ahora permanente.
• Finalmente la ruta mas corta
para llegar de la ciudad 1 a la
ciudad 8 es:
1 → 2 → 3 → 5 → 6 → 8
Con una distancia de 8 millas
Nodo Equiteta Estado
1 [𝟎, −] Permanent
e
2 𝟎 + 𝟏, 𝟏 = [𝟏, 𝟏] Permanent
e
3 𝟏 + 𝟏, 𝟐 = [𝟐, 𝟐] Permanent
e
4 2 + 2,3 = [4,3] Temporal
5 𝟐 + 𝟏, 𝟑 = [𝟑, 𝟑] Permanent
e
6 𝟑 + 𝟑, 𝟓 = [𝟔, 𝟓] Permanent
e
11. TAREA
Tomando como referencia la red del ejemplo 1, determine la ruta
mas corta entre las siguientes ciudades:
1. Ciudad 1 y Ciudad 6
2. Ciudad 4 y 8
3. Ciudad 2 y 6