UMSNH   FIE Análisis de Algoritmos  Dra. Karina Mariela Figueroa Mora Algoritmo de Floyd - Warshall Herrera Garcia Jose Juan j [email_address]
Problema El problema surge por la necesidad de encontrar el camino mas corto y menos costoso para poder obtener mejores ganacias y ahorrar el mayor tiempo posible.  Aplicados por ejemplo a el diseño de rutas de transporte, aproximaciones al problema del viajante de comercio, etc.
Algoritmo de Floyd - Warshall 8 de junio de 1936 en Nueva York a 25 de septiembre de 2001 El algoritmo de Floyd-Warshall Encuentra el camino más corto entre todos los pares de nodos o vértices de un grafo. Usa la metodología de Programación Dinámica para resolver el problema.  Robert W. Floyd
Entrada:  una matriz de adyacencia n×n. Cuerpo:  la idea es Mantener una matriz  con las distancias calculadas hasta ese momento. Resultado:  la matriz de resultados contendrá las distancias mínimas y el recorrido.
Problema Real La Empresa  cuenta con 7 bodegas distribuidoras de aguacate en el país. Los administradores desean saber el costo mínimos de flete de una bodega a otra sin importar la bodega que envía y la bodega que recibe, esto para optimizar recursos a la hora que se transporta producto.
 
Del Grafo obtenemos:
Aplicando el Algoritmo de  Floyd-Warshall  Se obtiene la siguiente matriz
Aplicando el Algoritmo de Floyd-Warshall  Por ejemplo, si se quiere llevar producto de bodega A a la bodega  G: D AG=  55   Con el recorrido  A   E    G D AE   = 35  Con el recorrido  A   D     E D AD  = 20  Con el recorrido A   B    D A   B    D    E    G
A   B    D    E    G
Aplicando el Algoritmo de Floyd-Warshall  Por ejemplo, si se quiere llevar producto de bodega A a la bodega  G: D FA=  40   Con el recorrido  F    D    A D DA   = 20  Con el recorrido  D   B    A F   D    B    A
F   D    B    A
Complejidad del algortimo   Floyd-Warshall  P seducódigo: FloydWarshall (camino[][]) { N=camino.length; para k: = 0 hasta N − 1  //N para i:=0 hasta N − 1 //N P ara j:=0 hasta N−1  //N camino [i][j] = mín (  camino[i][j] ,  camino[i][k] + camino[k][j] ); } N*N*N = N 3  por lo tanto la complejidad de este algoritmo es O(N 3 ). Donde N es el número de nodos del grafo.
Complejidad  usando fuerza bruta.
Ejemplo: Para 4 nodos, los posibles caminos son: (N-1)!=(3)!=6 Estos caminos son:
 

Floyd Warshall (Real Problem)

  • 1.
    UMSNH FIE Análisis de Algoritmos Dra. Karina Mariela Figueroa Mora Algoritmo de Floyd - Warshall Herrera Garcia Jose Juan j [email_address]
  • 2.
    Problema El problemasurge por la necesidad de encontrar el camino mas corto y menos costoso para poder obtener mejores ganacias y ahorrar el mayor tiempo posible. Aplicados por ejemplo a el diseño de rutas de transporte, aproximaciones al problema del viajante de comercio, etc.
  • 3.
    Algoritmo de Floyd- Warshall 8 de junio de 1936 en Nueva York a 25 de septiembre de 2001 El algoritmo de Floyd-Warshall Encuentra el camino más corto entre todos los pares de nodos o vértices de un grafo. Usa la metodología de Programación Dinámica para resolver el problema. Robert W. Floyd
  • 4.
    Entrada: unamatriz de adyacencia n×n. Cuerpo: la idea es Mantener una matriz con las distancias calculadas hasta ese momento. Resultado: la matriz de resultados contendrá las distancias mínimas y el recorrido.
  • 5.
    Problema Real LaEmpresa cuenta con 7 bodegas distribuidoras de aguacate en el país. Los administradores desean saber el costo mínimos de flete de una bodega a otra sin importar la bodega que envía y la bodega que recibe, esto para optimizar recursos a la hora que se transporta producto.
  • 6.
  • 7.
  • 8.
    Aplicando el Algoritmode Floyd-Warshall Se obtiene la siguiente matriz
  • 9.
    Aplicando el Algoritmode Floyd-Warshall Por ejemplo, si se quiere llevar producto de bodega A a la bodega G: D AG= 55 Con el recorrido A  E  G D AE = 35 Con el recorrido A  D  E D AD = 20 Con el recorrido A  B  D A  B  D  E  G
  • 10.
    A B  D  E  G
  • 11.
    Aplicando el Algoritmode Floyd-Warshall Por ejemplo, si se quiere llevar producto de bodega A a la bodega G: D FA= 40 Con el recorrido F  D  A D DA = 20 Con el recorrido D  B  A F  D  B  A
  • 12.
    F D  B  A
  • 13.
    Complejidad del algortimo Floyd-Warshall P seducódigo: FloydWarshall (camino[][]) { N=camino.length; para k: = 0 hasta N − 1 //N para i:=0 hasta N − 1 //N P ara j:=0 hasta N−1 //N camino [i][j] = mín ( camino[i][j] , camino[i][k] + camino[k][j] ); } N*N*N = N 3 por lo tanto la complejidad de este algoritmo es O(N 3 ). Donde N es el número de nodos del grafo.
  • 14.
    Complejidad usandofuerza bruta.
  • 15.
    Ejemplo: Para 4nodos, los posibles caminos son: (N-1)!=(3)!=6 Estos caminos son:
  • 16.