Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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-1 [ i, j ]
Mk [ i, j ] min= 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.
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
ALGORITMO DE WASHALL
Este algoritmo encuentra, si es posible, un camino entre cada uno de los vértices de la gráfica
dirigida. Es decir, la solución encontrada por el algoritmo no presenta las distancias entre los
vértices, sólo muestra si hay o no camino entre ellos.
El algoritmo de Washall se basa en un concepto llamado cerradura transitiva de la matriz de
adyacencia. Sea la gráfica dirigida G (V, A) y su matriz de la adyacencia M, donde M [ i, j ] =
1 si hay un arco de i a j, o si y 0 si no lo hay. La cerradura transitiva de M es la matriz C tal que
C [ i, j ] = 1 si hay un camino de longitud mayor o igual que 1 de i a j, o 0 en otro caso. 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.
b) Hay un camino de i a k que no pasa por un número de vértices mayor que k – 1, y hay un
camino de k a j que no pasa por un número de vértices mayor que k – 1.
EJEMPLO