1
我需要找到图的平均最优路径。我决定使用Floyd-Warhsall的算法来获得所有可能的最佳长度,但所有条目都用零写入。有想法该怎么解决这个吗?图的平均最优路径
原点矩:
0 0 0 0 1 0
0 0 1 0 4 0
0 1 0 0 0 2
0 0 0 0 0 1
1 4 0 0 0 2
0 0 2 1 2 0
平均代码:
double average = 0;
vector<vector<double> > p;
p = matrix;
for(int k = 0; k < vertices; k++)
{
for(int i = 0; i < vertices; i++)
{
for(int j = 0; j < vertices; j++)
{
if((p[i][k] + p[k][j] < p [i][j]))
{
p[i][j] = p[i][k]+p[k][j];
}
}
}
}
double sum = 0;
for(int i = 0;i < vertices; i++)
{
for(int j = 0; j < vertices; j++)
{
sum += p[i][j]; //adds up all entries
}
}
double fact = 0;
for(int i = 1; i < vertices; i++)
{
fact += i;
}
average = sum/fact;
return average;
你在哪里定义'vertices'? –
@JoeFrambach它们是在一个类中定义的,它们只是图中顶点的数量。 – user2057191