TECNOLOGÍA SUPERIOR EN DISEÑO Y
MANTENIMIENTO DE REDES
CONMUTACIÓN Y
ENRUTAMIENTO I
TRABAJO ASÍNCRONO
ALGORITMO DE DIJSKTRA.
AUTOR:
CHANG SÁNCHEZ RICHARD
Richard Chang
Redes 3 A Nocturna
Algoritmo de Dijsktra.
El algoritmo de Dijkstra, es un algoritmo para la determinación del camino más corto,
dado un vértice origen, hacia el resto de los vértices en un grafo que tiene pesos en cada
arista.
La idea subyacente en este algoritmo consiste en ir explorando todos los caminos más
cortos que parten del vértice origen y que llevan a todos los demás vértices; cuando se
obtiene el camino más corto desde el vértice origen hasta el resto de los vértices que
componen el grafo, el algoritmo se detiene. Se trata de una especialización de la búsqueda
de costo uniforme y, como tal, no funciona en grafos con aristas de coste.
El fundamento sobre el que se basa este algoritmo es el principio de optimizar: si el
camino más corto entre los vértices “u” y “v” pasa por el vértice “w”, entonces la parte
del camino que va de “w” a “v” debe ser el camino más corto entre todos los caminos que
van de “w” a “v”. De esta manera, se van construyendo sucesivamente los caminos de
coste mínimo desde un vértice inicial hasta cada uno de los vértices del grafo, y se utilizan
los caminos conseguidos como parte de los nuevos caminos.
Dicho en otras palabras: “Dado un grafo a cuyos arcos se han asociado una serie de pesos,
se define el camino de coste mínimo de un vértice “u” a otro “v”, como el camino donde
la suma de los pesos de los arcos que lo forman es la más baja entre las de todos los
caminos posibles de “u” a “v”.” El algoritmo de Dijkstra en cada paso selecciona un
vértice “v” cuya distancia es desconocida, entre los que tiene la distancia más corta al
vértice origen “s”, entonces el camino más corto de “s” a “v” ya es conocido y marca el
vértice “v” como ya conocido. Así, sucesivamente se van marcando nuevos vértices hasta
que estén todos marcados; en ese momento es conocida la distancia mínima del origen
“s” al resto de los vértices. Entre las condiciones más importantes que deben considerarse
para aplicar el algoritmo están: Las aristas deben tener un peso no negativo.
Una de sus aplicaciones más importantes reside en el campo de la telemática. Gracias a
él, es posible resolver grafos con muchos nodos, lo que sería muy complicado resolver
sin dicho algoritmo, encontrando así las rutas más cortas entre un origen y todos los
destinos en una red.
¿Como funciona el Algoritmo?
1) Seleccionamos el nodo no visitado con menor distancia acumulada (al iniciar, este será
siempre el nodo de inicio).
2) Sumamos la distancia acumulada en dicho nodo con la distancia de las aristas a los
codos a los que podemos acceder. Comparamos la nueva distancia con que teníamos
acumulada en el nodo destino (en caso de tener ya alguna) y nos quedamos con la menor.
3) Marcamos el nodo actual como visitado y volvemos al paso 1.
Richard Chang
Redes 3 A Nocturna
Ejemplo
El siguiente ejemplo se mostrará como se desarrollará con el fin de encontrar el camino
más corto desde a hasta z:
Leyenda:
• Rojo: Aristas y vértices pertenecientes a la solución momentánea.
• Azul: Aristas y vértices candidatos.
Paso 1
Se escoge de los nodos adyacentes aquel que tiene una menor peso en la arista, en este
caso, el nodo d. En d
• Distancia:5
• Nodos procesados:A
Paso 2
Ahora, vemos que se añade un nuevo candidato, el vértice e, y el vértice c, pero esta vez
a través del d. Pero el camino mínimo surge al añadir el vértice c.
Solución momentánea:
• Camino: ADC
Richard Chang
Redes 3 A Nocturna
• Distancia:9
• Nodos procesados:A,D
Paso 3
Solución momentánea:
• Camino: ADCB
• Distancia:11
• Nodos procesados:A,D,C
Paso 4
Como podemos comprobar, se han añadido un candidato nuevo, el vértice f, a través del
vértice b. El mínimo camino hallado en todo el grafo hasta ahora es el siguiente:
Solución momentánea:
• 'Camino: ADCBF
• Distancia:15
• Nodos procesados:A,D,C,B
Paso 5
En este antepenúltimo paso, se añaden tres vértices candidatos, los vértices g, z y e. Este
último ya estaba pero en esta ocasión aparece a través del vértice f. En este caso el
camino mínimo, que cambia un poco con respecto al anterior, es:
Richard Chang
Redes 3 A Nocturna
Solución momentánea:
• Camino: ADCBG
• Distancia:17
• Nodos procesados:A,D,C,B,F
Paso 6
En el penúltimo paso, vuelve a aparecer otro candidato: el vértice e, pero esta vez a
través del vértice f. De todas formas, el camino mínimo vuelve a cambiar para retomar
el camino que venía siguiendo en los pasos anteriores:
Solución momentánea:
• Camino: ADCBFE
• Distancia:18
• Nodos procesados:A,D,C,B,F,G
Paso 7
Por fin, llegamos al último paso, en el que sólo se añade un candidato, el vértice z a
través del vértice e. El camino mínimo y final obtenido es:
Solución Final:
• Camino: ADCBFEZ
• Distancia:23
• Nodos procesados:A,D,C,B,F,G,E
Richard Chang
Redes 3 A Nocturna
Referencias
Universidad Don Bosco. (17 de 02 de 2022). GUIA No. 10 - PROGRAMACION IV.
Obtenido de UDB:
https://www.udb.edu.sv/udb_files/recursos_guias/informatica-
ingenieria/programacion-iv/2019/ii/guia-10.pdf
Garcia, E. (16 de Mayo de 2010). Algoritmo De Dijkstra. Obtenido de Algoritmos
Computacionales - Slideshare.net: https://es.slideshare.net/1450138/algoritmo-
de-dijkstra-4118826
Richard Chang
Redes 3 A Nocturna