Problemas de la ruta más corta Algoritmo de Dijkstra’ Int od ccion Introduccion Muchos problemas pueden ser modelados usando graficas con pesos asignados a las conexiones: Tiempos p de vuelo p para las aerolineas Costos de telecomunicaciones Tiempos p de respuesta p para redes de p computadoras. Tok o Subway Tokyo S b a Map Algo itmo de Dijkst a Algoritmo Dijkstra Sea ui la distancia más corta del nodo fuente 0 hasta el nodo i y se define dij como la longitud de arco (i, j). Entonces el algoritmo define la etiqueta de un nodo inmediato posterior j como [uj, i]=[ui+ dij, i] La etiqueta del nodo de inicio es [0, -], que indica que el nodo no tiene p predecesor. Algo itmo de Dijkstra Algoritmo Dijkst a 1. Las etiquetas de nodos son de dos clases: temporales y permanentes. Una etiqueta temporal se modifica si se puede encontrar una ruta más corta a un nodo. Cuando se ve que no se pueden d encontrar mejores, j cambia bi ell estado d de d la l etiqueta i temporal a permanente. 2. Etiquetar el nodo fuente (nodo 1) con la etiqueta permanente [0 -]. [0, ] Igualar I l i=1. i 1 3. Calcular las etiquetas temporales [ui+ dij, i] para cada nodo j al que pueda llegarse desde el nodo i, siempre y cuando j no t tenga etiqueta ti t permanente. t Si ell nodo d j ya esta t etiquetado ti t d con [uj, k] por otro nodo k, y si ui+ dij < uj sustituir [uj, k] por [ui+ dij, i] Algo itmo de Dijkstra Algoritmo Dijkst a 5. Si todos los nodos tienen etiquetas permanentes, detenerse. En caso contrario seleccionar la etiqueta [ur, s] que tenga la distancia más corta (ur) entre todas las etiquetas temporales (l empates se rompen arbitrariamente). (los bi i ) 6. Hacer i=r 7. Repetir desde el paso 3 Distancia acumulada Nodo de procedencia Al nodo d inicial i i i l anterior t i Número d Nú de iteración Ejemplo 1 Ejemplo 2 2 2 1 3 1 5 3 3 2 3 3 2 6 1 4 2 7 3 Eje cicio 2 Ejercicio