Descargar la presentación
La descarga está en progreso. Por favor, espere
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.