Está en la página 1de 1

Algoritmo de DIJKSTRA (Matemática Discreta de Grimaldi, pág.

660)

Sea G= (V,E) un grafo ponderado tal que |V| = n. Para determinar la distancia mas corta de un
vértice fijo v0 a los demás vértices de G, como así también el camino simple dirigido mas corto
para cada uno de uno de estos vértices, Aplicamos el siguiente Algoritmo:

PASO 1: Ponemos un contador i=0 y S0 = {v 0 }. Etiquetamos v0 con (0,-) y cada v ? v 0 con (8 ,-).
Si n = 1, entonces V= {v 0 } y el problema está resuelto
Si n >1, continuamos en el paso 2.

PASO 2: Para cada v∈ S i , reemplazamos (cuando sea posible), la etiqueta de v por la nueva
etiqueta final (L(v), y), donde L(v) = min {L(v), L(u)+ p( u, v)} e y es un vértices en Si
u ∈S i

que produce L(v) mínimo.

PASO 3: Si cada vértice de S i (para algún i entre 0 y n-2) tiene etiqueta (8 ,-) entonces el grafo
etiquetado contiene la información que estamos buscando.
Caso contrario, existe un vértice en S i que no está etiquetado con (8 ,-) y realizamos
las siguientes tareas:

1) Seleccionamos un vértice vi+1 , tal que L(v i+1 ) sea mínimo. Puede haber varios de
estos vértices en cuyo caso poder elegir cualquiera de los posibles candidatos. El
vértice v i+1 es un elemento de S i que es el más cercano a v 0 .

2) Asignamos Si ∪{v i+1 }a Si+1.


3) Incrementamos el contador i en 1.
Si i = n-1, el grafo etiquetado contiene la información deseada. Si i< n-1,
regresamos al paso 2.

También podría gustarte