Вы находитесь на странице: 1из 16

Luis Benavides Walther Buzani Cesar Rogel Josue Marquez

ALGORITMO DE DIJKSTRA

Tambin llamado algoritmo de caminos

mnimos.

Edsger Dijkstra

Algoritmo
Teniendo un grafo dirigido ponderado de N

nodos no aislados, sea x el nodo inicial, un vector D de tamao N guardar al final del algoritmo las distancias desde x al resto de los nodos.

Inicializar todas las distancias en D con un

valor infinito relativo ya que son desconocidas al principio, exceptuando la de x que se debe colocar en 0 debido a que la distancia de x a x sera 0.

Sea a = x (tomamos a como nodo actual). Recorremos todos los nodos adyacentes de a,

excepto los nodos marcados, llamaremos a estos vi.

Si la distancia desde x hasta vi guardada en D

es mayor que la distancia desde x hasta a, sumada a la distancia desde a hasta vi; esta se sustituye con la segunda nombrada, esto es: si (Di > Da + d(a, vi)) entonces Di = Da + d(a, vi)

Marcamos como completo el nodo a. Tomamos como prximo nodo actual el de

menor valor en D (puede hacerse almacenando los valores en una cola de prioridad) y volvemos al paso 3 mientras existan nodos no marcados.

Anexo:Ejemplo de Algoritmo de Dijkstra


Hay diferentes algoritmos para hallar un camino de longitud mnima entre dos vrtices de un

grafo ponderado. Presentaremos un algoritmo descubierto por el matemtico holands EdsgerDijkstra en 1959. La versin que descubriremos resuelve este problema para grafos ponderados no dirigidos si todos los pesos son positivos. Este algorimo puede adaptarse fcilmente para resolver problemas de caminos de longitud mnima en grafo dirigidos. A este algoritmo se le llama Algoritmo de Dijkstra:

El siguiente ejemplo se desarrollar con el fin de encontrar el camino ms corto desde a hasta z:

Leyenda: Rojo: Aristas y vrtices pertenecientes a la solucin momentnea. Azul: Aristas y vrtices candidatos.

Paso 1

En este primer paso, podemos apreciar que hay tres candidatos: Los vrtices b, c y d. En este caso, hacemos el camino desde el vrtice a, hasta el vrtice d, ya que es el camino ms corto de los tres. Solucin momentnea: Camino: AD Distancia:5

Paso 2

Ahora, vemos que se aade un nuevo candidato, el vrtice e, y el vrtice c, pero esta vez a travs del d. Pero el camino mnimo surge al aadir el vrtice c. Solucin momentnea: Camino: ADC Distancia:9

Paso 3

En este paso no se aade ningn candidato ms puesto que el ltimo vrtice es el mismo que en el paso anterior. En este caso el camino mnimo hallado es el siguiente: Solucin momentnea: Camino: ADCB Distancia:11

Paso 4

Como podemos comprobar, se han aadido dos candidatos nuevos, los vrtices f y g, ambos a travs del vrtice b. El mnimo camino hallado en todo el grafo hasta ahora es el siguiente: Solucin momentnea: Camino: ADCBF Distancia:15

Paso 5

En este antepenltimo paso, se aaden tres vrtices candidatos, los vrtices g, z y e. Este ltimo ya estaba pero en esta ocasin aparece a travs del vrtice f. En este caso el camino mnimo, que cambia un poco con respecto al enterior, es: Solucin momentnea: Camino: ADCBF Distancia:19

Paso 6

En el penltimo paso, vuelve a aparecer otro candidato: el vrtice e, pero esta vez a travs del vrtice f. De todas formas, el camino mnimo vuelve a cambiar para retomar el camino que vena siguiendo en los pasos anteriores: Solucin momentnea: Camino: ADCBFE Distancia:18

Paso 7

Por fin, llegamos al ltimo paso, en el que slo se aade un candidato, el vrtice z a travs del e. El camino mnimo y final obtenido es: Solucin Final: Camino: ADCBFEZ Distancia:23