问答题
[问题1] 本题采用Floyd-Warshall算法求解任意两个顶点之间的最短路径。已知图G的顶点集台为V={1,2,...,n},W={wij}n*n为权重矩阵。设[*]为从顶点i到顶点j的一条最短路径的权重。当k=0时,不存在中间顶点,因此[*];当k>0时,该最短路径上所有的中间顶点均属于集合{1,2,...,k}。若中间顶点包括顶点k,则[*];若中间顶点不包括顶点k,则[*]。于是得到如下递归式。 [*] 因为对于任意路径,所有的中间项点都在集合{1,2...,n}内,因此矩阵[*]给出了任意两个顶点之间的最短路径,即对所有[*]表示顶点i到顶点j的最短路径。 下面是求解该问题的伪代码,请填充其中空缺的横线处。 伪代码中的主要变量说明如下。 W:权重矩阵。 n:图的顶点个数。 SP:最短路径权重之和数组,SP[i]表示顶点i到其他各项点的最短路径权重之和,i从1到n。 min_SP:最小的最短路径权重之和。 min_v:具有最小的最短路径权重之和的顶点。 i:循环控制变量。 j:循环控制变量。 k:循环控制变量。 [伪代码] LOCATE -SHOPPINGMALL(W, n) 1 D(0)=W 2 for ______ 3 for i=1 to n 4 for j=1 to n 5 if [*] 6 ______ 7 else 8 ______ 9 for i=1 to n 10 SP[i]=0 11 for j=1 to n 12 ______ 13 min_SP=SP[1] 14 ______ 15 for i=2 to n 16 if min_SP>SP[i] 17 min_SP=SP[i] 18 min_v=i 19 return ______