ALGORITMO DE FLOYD El Algoritmo de Floyd encuentra el camino más corto entre todos los vértices de la digráfica.

Sea la gráfica dirigida G = (V,A) donde cada arco u v tiene asociado un peso . El algoritmo de Floyd permitirá encontrar el camino más corto entre cada par ordenado u y v . La matriz de distancias sirve como punto de partida para este algoritmo. Se realizan k iteraciones sobre el matiz buscando el camino más corto; por lo tanto en la k-éstima iteración, M [ i, j ] tendrá el camino de menor costo para llegar de i a j, pasando por un número de vértices menor a k, el cual se calculara según la siguiente expresión :

Mk [ i, j ] min=

Mk-1 [ i, j ] Mk-1 [ i, k ] + Mk-1 [ k, j ]

Se elegirá el camino más corto entre el valor obtenido en la iteración (k – 1) y el que resulta de pasar por el vértice k. En el algoritmo se usa la matriz de costos, M, donde M [ i, j ] será igual el costo de ir a i a j, a un valor muy grande (∞) sino existe camino de i a j, o a cero si i = j.

FLOYD (N) Este algoritmo encuentra la distancia mínima entre todos los vértices de la gráfica dirigida. N es el número de vértices de la gráfica dirigida. M es una matriz de N X N elementos, y se inicia con los costos de la digráfica. k, i, j son variables enteras. 1. Repetir con K desde 1 hasta N 1.1 Repetir con I desde 1 hasta N 1.1.1 Repetir son J desde 1 hasta N 1.1.1.1 Si (M1k+Mkj < Mij entonces Hacer Mij ←Mik+Mkj 1.1.1.1.2(Fin del condicional del paso 1.1.1.1) 1.1.2 (Fin del ciclo del paso 1.1.1) 1.2 Fin del ciclo del paso 1.1) 2. (Fin del ciclo del paso 1)

Para todo vértice de la digráfica se prueba si el camino más corto para ir desde dicho vértice a los otros, es a través de un vértice intermedio k. En caso de ir del vértice origen al intermedio y el intermedio al destino. En otro caso, el valor de M [ i, j ] no se modifica. Una vez probados todos los vértices de la digráfica como nodos intermedios, matriz resultante almacena la menor distancia entre cada par de nodos. La complejidad del algoritmo es del orden de O (N3), ya que se utilizan tres ciclos anidados de orden N. EJEMPLO En el gráfico se presentan los diferentes estados de la matriz de distancias de la digráfica dad, obtenidos a partir de la aplicación del algoritmo. Así , la matriz mostrada en el inciso a) es la matriz de distancias de la digráfica dada - estado inicial -. La matriz de costos mostrada en el inciso b) es la obtenida usando el vértice b como vértice intermedio. En este paso, K= 2, se encontraron los siguientes caminos: a, b, d (con distancia igual a 10); a, b, e (con distancia igual a 6) y c,b,e (con distancia igual a 5). La figura de c corresponde a la matriz de distancias ,

la solución encontrada por el algoritmo no presenta las distancias entre los vértices. e. Esta variante del algoritmo de Floyd utiliza un arreglo auxiliar (7) de N X N elementos. Para K = 5 se encontraron los siguientes caminos: a. El estado final de esta matriz almacena las distancias mínimas entre cada uno de los vértices de la digráfica dada. b y e. Para generar la matriz C se establece que existe un camino del vértice i al j que pasa por un número de vértices mayor que k sí: a) Ya existe un camino de i a j que no pasa por un número de vértices mayor que k -1. c.resultado de usar el vértice c como vértice intermedio . e. d (con distancia igual a 5). y c. b. donde M [ i. e. Se obtuvieron los caminos a. j ] será igual a k si k es un nodo intermedio entre i y j. o si y 0 si no lo hay. donde T [ i. La cerradura transitiva de M es la matriz C tal que C [ i. A) y su matriz de la adyacencia M. b (con distancia igual a 8). Finalmente.los vértices intermedios -. En la figura del inciso a) se muestra el estado inicial de la matriz. ALGORITMO DE WASHALL Este algoritmo encuentra. b) Hay un camino de i a k que no pasa por un número de vértices mayor que k – 1. K=3. o 0 en otro caso. e. El algoritmo de Washall se basa en un concepto llamado cerradura transitiva de la matriz de adyacencia. si es posible. j ] = 1 si hay un arco de i a j. d (con distancia igual a 7) y b. Sea la gráfica dirigida G (V. Finalmente en d) se presentan a la matriz C luego se usar el vértice e como vértice intermedio. c . e.En este paso. Se formaron los caminos e. b. sólo muestra si hay o no camino entre ellos. la figura presentada en el inciso d) muestra la matriz obtenida de distancias mediante el vértice e como vértice intermedio. a. c. y hay un camino de k a j que no pasa por un número de vértices mayor que k – 1. se deberá ir guardando dicha trayectoria. Por su parte en b) se representa la correspondiente a la matriz C. j ] = 1 si hay un camino de longitud mayor o igual que 1 de i a j. b. EJEMPLO Se representan los diferentes estados de C. c. obtenidos a partir de la aplicación del algoritmo. e. se encontró el siguiente camino: e. Es decir. resultado de usar el vértice como vértice intermedio. c. un camino entre cada uno de los vértices de la gráfica dirigida. e. Si además de obtener la menor distancia entre todos los vértices de la gráfica dirigida se requiere conocer la trayectoria encontrada para cada vértice.

Sign up to vote on this title
UsefulNot useful