algoritmo de warshall

Embed Size (px)

Citation preview

INTEGRANTES:JOHN RICHARD MAQUERA DELGADO

26 de Mayo del 2011

Definicin : El algoritmo de Floyd - Warshall ,

ideado por Floyd en 1962 basndose en un teorema de Warshall tambin de 1962, usa la metodologa de Programacin Dinmica para resolver el problema. El problema que intenta resolver este algoritmo es el de encontrar el camino ms corto entre todos los pares de nodos o vrtices de un grafo. Esto es semejante a construir una matriz con todas las distancias mnimas entre pares de vrtices de un grafo, indicando adems la ruta a seguir para ir del primer vrtice al segundo. Este es uno de los problemas ms interesantes que se pueden resolver con algoritmos de grafos.

Pseudocodigo del AlgorimtoFloyd_Warshall(n,W) Var D:arreglo [1..n][1..n] de enteros Inicio Para i = 1 hasta n hacer Para j = 1 hasta n hacer Inicio D [i,j] w [i,j] pred [i,j] nulo fin fin para k=1 hasta n hacer para j=1 hasta n hacer inicio si D[i,k] +D[k,j] < D[i,j] entonces inicio D [I,j] D[i,k]+ D[k,j] pred[I,j] k fin fin return D fin

Implementacin del Algoritmopublic class Floyd { public static final int INF = Integer.MAX_VALUE/2; public static int[][] algoritmoFloyd(int[][]D) { int n=D.length; //n de vrtices del grafo for(int k=0;k