P. 1
ALGORITMO DE FLOYD

ALGORITMO DE FLOYD

|Views: 2.036|Likes:
Publicado porKaren Munguia

More info:

Published by: Karen Munguia on Apr 19, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

07/30/2013

pdf

text

original

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 ,

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->