%% ****************求必须通过指定两个点的最短路******************
% 参数说明: //
% W 表示图的权值矩阵, k1表示起点,k2表示终点,t1,t2表示两个指定的点 //
% P 表示程序最终的到的路 //
% d 表示路的长度 //
%%
function [P d] = cn2shorf(W,k1,k2,t1,t2)
% 注:路中重复的点记作一个点
[p1 d1] = n2shorf(W,k1,t1);
[p2 d2] = n2shorf(W,t1,t2);
[p3 d3] = n2shorf(W,t2,k2);
dt1 = d1 + d2 + d3;
[p4 d4] = n2shorf(W,k1,t2);
[p5 d5] = n2shorf(W,t2,t1);
[p6 d6] = n2shorf(W,t1,k2);
dt2 = d4 + d5+ d6;
if dt1 <dt2
d = dt1;
P = [p1 p2(2:length(p2)) p2(2:length(p3))];
else
d = dt2;
P = [p4 p5(2:length(p5)) p6(2:length(p6))];
end
求必须通过指定两个点的最短路
最新推荐文章于 2019-08-29 11:12:53 发布