Está en la página 1de 10

DETERMINACIÓN DEL CAMINO DE COSTO MINIMO - ALGORITMO DE DIJKSTRA

6
A B 5

1 2 2 C

5
D E
1

Tabla de Nodos y Distancias

Nodo Dist. Mín. Predecesor Usaremos nodos en ve


desde A para indicar que no ha
A 0 visitado, en rojo si ya
B 999 Computacionalmente
C 999 falta una cuarta colum
D 999
E 999

Descripción del Algoritmo

Inicialización de la Tabla
Inicialice la distancia del nodo de inicio a si mismo en cero
Inicialice la distancia del nodo de inicio a todos los demás en infinito
Marque todos los nodos como no visitados (verdes, o sea cuarta columna inicializada a
Inicialice la columna de nodo predecesor en nulo ""

Mientras haya nodos sin visitar, itere:


Visite el nodo no visitado que tenga la menor distancia conocida al nodo de inicio
Para el nodo que está visitando, examine sus nodos adyacentes no visitados
Para el nodo que está visitando, calcule la distancia de sus vecinos desde el nodo de in
Si la distancia calculada para un vecino es menor que la que figuraba en la tabla enton
Actualice la distancia mínima en la tabla
Actualice el predecesor en la tabla
Marque el nodo que está visitando como visitado (rojo, o sea cuarta columna inicializa

Cuando no haya nodos sin visitar, el algoritmo se detiene

Visito "A"
6 0+6=6
A B 5

1 2 2 C

5
D E
0+1=1 1

y actualizo la tabla

Visito "D"
6 1+2=3
A B 5
1 2 2 C

5
D E
1 1+1=2

y actualizo la tabla

Visito "E"
6 2+2=4
A B 5

1 2 2 C 2+5=7

5
D E
1

y actualizo la tabla
Visito "B"
6
A B 5

1 2 2 C 3+5=8

5
D E
1

y actualizo la tabla

Visito "C"
6
A B 5

1 2 2 C

5
D E
1
y actualizo la tabla

ya no hay nodos sin visitar así que el algoritmo se detiene

Algoritmo para reconstruir el camino de longitud mínima entre el nodo de inicio y cualq

Inicialización:
Inicio = identificación del nodo de inicio
Destino = identificación del nodo destino
Cadena = Destino
EsteNodo = Destino

Itere mientras EsteNodo <> Inicio


EsteNodo = Predecesor(EsteNodo)
Cadena = EsteNodo+Cadena (se interpreta el operador + como la concatenación de caracteres)

Supongamos que deseamos hallar el camino de costo mínimo de A hasta C

# iteración Inicio Destino EsteNodo Cadena


0A C C C
1A C E EC
2A C D DEC
3A C A ADEC
DE DIJKSTRA

Usaremos nodos en verde


para indicar que no ha sido
visitado, en rojo si ya lo fue.
Computacionalmente haría
alta una cuarta columna booleana

columna inicializada a FALSE)

al nodo de inicio
o visitados
os desde el nodo de inicio
raba en la tabla entonces

rta columna inicializada a TRUE)

Nodo Dist. Mín. Predecesor


desde A
A 0
B 999
C 999
D 999
E 999

Nodo Dist. Mín. Predecesor


desde A
A 0
B 6 A
C 999
D 1 A
E 999

Nodo Dist. Mín. Predecesor


desde A
A 0
B 6 A
C 999
D 1 A
E 999

Nodo Dist. Mín. Predecesor


desde A
A 0
B 3 D
C 999
D 1 A
E 2 D

Nodo Dist. Mín. Predecesor


desde A
A 0
B 3 D
C 999
D 1 A
E 2 D

Nodo Dist. Mín. Predecesor


desde A
A 0
B 3 D
C 7 E
D 1 A
E 2 D
Nodo Dist. Mín. Predecesor
desde A
A 0
B 3 D
C 7 E
D 1 A
E 2 D

Nodo Dist. Mín. Predecesor


desde A
A 0
B 3 D
C 7 E
D 1 A
E 2 D
Nodo Dist. Mín. Predecesor
desde A
A 0
B 3 D
C 7 E
D 1 A
E 2 D

nodo de inicio y cualquier otro nodo

tenación de caracteres)

hasta C

Nodo Dist. Mín. Predecesor


desde A
A 0
B 3 D
C 7 E
D 1 A
E 2 D

También podría gustarte