========================================================
求任意两点间最短距离及其路径。(万能最短路)
输入:权值矩阵,起点,终点
输出:最短距离矩阵,指定起讫点路径(经过的顶点编号)
为任意一点到其他点最短路奠定基础
========================================================
function [P d]=liangdianzuiduanlu(W,qidian,zhongdian)
W;
n=length(W);
D=W;
m=1;
while m<=n
for i=1:n
for j=1:n
if D(i,j)>D(i,m)+D(m,j)
D(i,j)=D(i,m)+D(m,j);
end
end
end
m=m+1;
end
d=D(qidian,zhongdian);
P1=zeros(1,n);
k=1;
P1(k)=zhongdian;
V=ones(1,n)*inf;
kk=zhongdian;
while kk~=qidian;
for i=1:n
V(1,i)=D(qidian,kk)-W(i,kk);
if V(1,i)==D(
求任意两点间最短距离及其路径。(万能最短路)
输入:权值矩阵,起点,终点
输出:最短距离矩阵,指定起讫点路径(经过的顶点编号)
为任意一点到其他点最短路奠定基础
========================================================
function [P d]=liangdianzuiduanlu(W,qidian,zhongdian)
W;
n=length(W);
D=W;
m=1;
while m<=n
for i=1:n
for j=1:n
if D(i,j)>D(i,m)+D(m,j)
D(i,j)=D(i,m)+D(m,j);
end
end
end
m=m+1;
end
d=D(qidian,zhongdian);
P1=zeros(1,n);
k=1;
P1(k)=zhongdian;
V=ones(1,n)*inf;
kk=zhongdian;
while kk~=qidian;
for i=1:n
V(1,i)=D(qidian,kk)-W(i,kk);
if V(1,i)==D(