La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ALGORITMO DE FLOYD dik + dkj < dij

Presentaciones similares


Presentación del tema: "ALGORITMO DE FLOYD dik + dkj < dij"— Transcripción de la presentación:

1 ALGORITMO DE FLOYD dik + dkj < dij
Esta algoritmo es más general que el de Dijkstra porque determina la distancia entre dos nodos cualesquiera en la red, el algoritmo representa una red de n nodos como una matriz cuadrada de n filas y n columnas, La entrada (i,j) de la matriz da la distancia dij del nodo i al nodo j, la cual es finita si i está vinculado directamente a j, e infinita en caso contrario. La idea del algoritmo de Floyd es simple. Dado tres nodos, i, j y k en la figura 1 con las distancias de conexión que se muestran en los tres arcos, es mas corto llegar de i a j pasando por k si: dik + dkj < dij Figura 1 k dik dik i j dij

2 ALGORITMO DE FLOYD La idea del algoritmo de Floyd es simple. Dado tres nodos, i, j y k en la figura 1 con las distancias de conexión que se muestran en los tres arcos, es mas corto llegar de i a j pasando por k si: dik + dkj < dij k Figura 1 dik dik i dij j En esta caso es óptimo reemplazar la ruta directa de i  j con la ruta indirecta i k  j. Este intercambio de operación triple se aplica a la matriz de distancias por medio de los siguientes pasos:

3 ALGORITMO DE FLOYD Paso 0. Defina la matriz de distancias de inicio Do y la matriz de secuencias de nodos So (todos los elementos en las diagonales están bloqueados), Establezca k = 1. 1 2 j n 1 2 j n - d12 d1j d1n d21 d2j d2n di1 di2 dij Din dn1 dn2 dnj 1 - 2 J n 1 j 1 2 2 Do = So = i i n n

4 ALGORITMO DE FLOYD Paso general k. Defina la fila k y la columna k como fila pivote y columna pivote. Aplique la operación triple a cada elemento dij en Dk-1, para todas las i y j. si la condición dik + dkj < dij (i<>k, j<>k , y i<>j) Cree Dk reemplazando dij en Dk-1 con dik +dkj Cree Sk reemplazando Sij en sk-1 con k. establezca k+k+1, Si k=n+1, detengase: de lo contrario repita el paso k. 1 2 j n 1 2 j n - d12 d1j d1n d21 d2j d2n di1 di2 dij Din dn1 dn2 dnj - 2 J n 1 j 1 1 2 2 Do = So = i i n n

5 ALGORITMO DE FLOYD 5 2 4 Paso 0. Definir las matrices de inicio: Do matriz de distancias y Ds matriz de secuencias 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 Do = 3 So = 3 4 4 5 5

6 ALGORITMO DE FLOYD 5 2 4 Paso General: Establecer K=1. Fila u columna pivote de Matriz de distancias Do 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 Do = 3 So = 3 4 4 5 5

7 ALGORITMO DE FLOYD 5 2 4 Paso General: Establecer K=1. Fila u columna pivote de Matriz de distancias Do Si cumple condición se reemplaza 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 Do = 3 So = 3 4 4 5 5

8 ALGORITMO DE FLOYD Paso General: nuevas matrices de distancias D y S
5 2 4 Paso General: nuevas matrices de distancias D y S K=2 Nuevas Filas y columnas pivotes 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 D1 = 3 S1 = 3 4 4 5 5

9 ALGORITMO DE FLOYD Paso General: nuevas matrices de distancias D y S
5 2 4 Paso General: nuevas matrices de distancias D y S K=3 Nuevas Filas y columnas pivotes 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 D1 = 3 S1 = 3 4 4 5 5

10 ALGORITMO DE FLOYD Paso General: nuevas matrices de distancias D y S
5 2 4 Paso General: nuevas matrices de distancias D y S K=3 Nuevas Filas y columnas pivotes 3 4 6 1 5 10 3 15 1 2 3 4 5 1 2 3 4 5 1 1 2 2 D1 = 3 S1 = 3 4 4 5 5


Descargar ppt "ALGORITMO DE FLOYD dik + dkj < dij"

Presentaciones similares


Anuncios Google