利用动态规划法求解每对节点之间的最短路径问题时,设有向图G=<V,E>共有n个节点,节点编号1~n,设C是G的成本邻接矩阵,用Dk(i,j)表示从i到j并且不经过编号比k还大的节点的最短路径的长度(Dn(i,j)即为图G中节点i到j的最短路径长度),则求解该问题的递推关系式为(28)。
A、Dk(i,j)=Dk-1(i,j)+C(i,j)
B、Dk(i,j)=min{Dk-1(i,j),Dk-1(i,j)+C(i,j)}
C、Dk(i,j)=Dk-1(i,k)+Dk-1(k,j)
D、Dk(i,j)=min{Dk-1(i,j),Dk-1(i,k)+Dk-1(k,j)}
查看答案
正确答案
试题解析
解析:从“Dk(i,j)表示从i到j并且不经过编号比k还大的节点的最短路径的长度”中,我们得到一个提示,在求i,j之间最短路径的时候,会考虑它经过哪些节点能缩短原来的路径。在Dk(i,j)=min{Dk-1(i,j),Dk-1(i,k)+Dk-1(k,j)}中,Dk(i,j)表示i到j不经过k的路径长度,而Dk-1(I,k)+Dk-1(k,j)表示i到j经过k的路径长度,且min()函数用于找最小值,所以此式正确。