Se codifica el algoritmo para un grafo G representado por su matriz de adyacencia. El método
devuelve la matriz de caminos P.
public static int [][] matrizCaminos(GrafoMatriz g) throws Exception
{
int n = g.numeroDeVertices();
int [][] P = new int[n][n]; // matriz de caminos
// Se obtiene la matriz inicial: matriz de adyacencia
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
P[i][j] = g.adyacente(i,j) ? 1 : 0;
// se obtienen, virtualmente, a partir de P0, las sucesivas
// matrices P1, P2, P3 ,..., Pn-1, Pn que es la matriz de caminos
for (int k = 0; k < n; k++)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
P[i][j] = Math.min(P[i][j] + P[i][k] * P[k][j], 1);
return P;
}
No hay comentarios.:
Publicar un comentario
Es muy importante tu comentarios: