Está en la página 1de 2

Algoritmo de Floyd Recordemos que el algoritmo de Dijkstra nos permite determinar la ruta mas corta desde un nodo hacia

los otros, ahora veremos que el algoritmo de Floyd determina la ruta mas corta entre cualquier par de puntos. La Idea del algoritmo de Floyd es: Dados tres nodos i,j,k con distancias de conexin en sus arcos, es mas corto llegar a k desde i a travs de j si: dij + djk < dik En este caso es mas barato reemplazar la ruta i k con i j k, este cambio es llamado: la operacin triple y es aplicado sistemticamente a toda la red siguiendo los siguientes pasos:

Paso 0: Defina la matriz de distancia inicial D0 y la matriz de secuencia S0, las diagonales estn marcadas con - para indicar que estn bloqueados, si no existe una conexin entre nodos, colocar Matriz Distancias (D)
1 1 2 3 4 d21 d31 d41 2 d12 d32 d42 3 d13 d23 d43 4 d14 d24 d34 1 2 3 4

Matriz Secuencia (S)


1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 -

Paso general k

Defina el rengln k y la columna k como el rengln y la columna pivote. Aplique la operacin triple a cada elemento dij en Dk-1 para todas las i y j. Si satisface la condicin: dik + dkj < dij , (i k, j k, i j) Realice los siguientes cambios: Cree Dk reemplazando dij en Dk-1 con dik + dkj Cree Sk reemplazando sij en Sk-1 con k. Determine k = k + 1 y repita el paso k hasta que k = numero de nodos - 1

También podría gustarte