【7.18 灾情巡视路线代码】

参考论文:https://wenku.baidu.com/view/1ea4660ec1c708a1294a449e.html

求最短路:

a=zeros(53);
a(50,1 )=6.0;a(50,53)=12.9;a(50,38)=11.5;a(50,2)=9.2;a(50,48)=19.8;a(50,51)=10.1;a(1,36)=10.3; a(1,37)=5.9;a(1,38)=11.2;
a(2,3)=4.8;a(2,5)=8.3;a(3,38)=7.9;a(3,39)=8.2;a(4,39)=12.7;a(4,8)=20.4;a(5,48)=11.4;a(5,39)=11.3;a(5,6)=9.7;
a(6,48)=9.5;a(6,7)=7.3;a(6,47)=11.8;a(7,39)=15.1;a(7,40)=7.2;a(7,47)=14.5;a(8,40)=8.0;
a(9,40)=7.8;a(9,41)=5.6;a(10,41)=10.8;a(11,45)=13.2;a(11,40)=14.2;a(11,42)=6.8;
a(12,42)=7.8;a(12,41)=12.2;a(12,43)=10.2;a(13,44)=16.4;a(13,45)=9.8;a(13,42)=8.6;a(13,14)=8.6;
a(14,15)=15;a(14,43)=9.9;a(15,44)=8.8;a(16,17)=6.8;a(16,44)=11.8;a(17,22)=6.7;a(17,46)=9.8;
a(18,46)=9.2;a(18,45)=8.2;a(18,44)=8.2;a(19,20)=93;a(19,47)=7.2;a(19,45)=8.1;
a(20,21)=7.9;a(20,25)=6.5;a(20,47)=5.5;a(21,23)=9.1;a(21,25)=6.5;a(21,46)=4.1;
a(22,23)=10.0;a(22,46)=10.1;a(23,24)=8.9;a(23,49)=7.9;a(24,27)=18.8;a(24,49)=13.2;a(25,49)=8.8;a(25,48)=12.0;
a(26,27)=7.8;a(26,51)=10.5;a(26,49)=10.5;a(27,28)=7.9;a(28,52)=8.3;a(28,51)=12.1;
a(29,52)=7.2;a(29,53)=7.9;a(29,51)=15.2;a(30,32)=10.3;a(30,52)=7.7;
a(31,32)=8.1;a(31,33)=7.3; a(31,53)=9.2;a(32,33)=19;a(32,35)=14.9;a(33,36)=7.4;
a(34,35)=8.2;a(34,36)=11.5;a(34,13)=17.6;a(37,38)=12.2;a(36,53)=8.8;a(37,38)=11.0;a(44,45)=15.8;a(48,49)=14.2;
a=a+a';
d=[];
[b,c]=find(a>0);
for i=1:length(b)
    d=[d;a(b(i),c(i))];
end
DG=sparse(b,c,d);
UG=tril(DG);
bg=biograph(UG,[],'ShowArrows','off','ShowWeights','on');
set(bg.nodes,'shape','circle');
view(bg)
[dist,path,pred]=graphshortestpath(DG,1,'directed',false)

  求最小生成树:

clc;clear;
a=zeros(53);
a(50,1 )=6.0;a(50,53)=12.9;a(50,38)=11.5;a(50,2)=9.2;a(50,48)=19.8;a(50,51)=10.1;a(1,36)=10.3; a(1,37)=5.9;a(1,38)=11.2;
a(2,3)=4.8;a(2,5)=8.3;a(3,38)=7.9;a(3,39)=8.2;a(4,39)=12.7;a(4,8)=20.4;a(5,48)=11.4;a(5,39)=11.3;a(5,6)=9.7;
a(6,48)=9.5;a(6,7)=7.3;a(6,47)=11.8;a(7,39)=15.1;a(7,40)=7.2;a(7,47)=14.5;a(8,40)=8.0;
a(9,40)=7.8;a(9,41)=5.6;a(10,41)=10.8;a(11,45)=13.2;a(11,40)=14.2;a(11,42)=6.8;
a(12,42)=7.8;a(12,41)=12.2;a(12,43)=10.2;a(13,44)=16.4;a(13,45)=9.8;a(13,42)=8.6;a(13,14)=8.6;
a(14,15)=15;a(14,43)=9.9;a(15,44)=8.8;a(16,17)=6.8;a(16,44)=11.8;a(17,22)=6.7;a(17,46)=9.8;
a(18,46)=9.2;a(18,45)=8.2;a(18,44)=8.2;a(19,20)=93;a(19,47)=7.2;a(19,45)=8.1;
a(20,21)=7.9;a(20,25)=6.5;a(20,47)=5.5;a(21,23)=9.1;a(21,25)=6.5;a(21,46)=4.1;
a(22,23)=10.0;a(22,46)=10.1;a(23,24)=8.9;a(23,49)=7.9;a(24,27)=18.8;a(24,49)=13.2;a(25,49)=8.8;a(25,48)=12.0;
a(26,27)=7.8;a(26,51)=10.5;a(26,49)=10.5;a(27,28)=7.9;a(28,52)=8.3;a(28,51)=12.1;
a(29,52)=7.2;a(29,53)=7.9;a(29,51)=15.2;a(30,32)=10.3;a(30,52)=7.7;
a(31,32)=8.1;a(31,33)=7.3; a(31,53)=9.2;a(32,33)=19;a(32,35)=14.9;a(33,36)=7.4;
a(34,35)=8.2;a(34,36)=11.5;a(34,13)=17.6;a(37,38)=12.2;a(36,53)=8.8;a(37,38)=11.0;a(44,45)=15.8;a(48,49)=14.2;
a=a+a';
result=[];p=1;tb=2:length(a);
while (length(result)~=length(a)-1) % ~=表示不等于
    temp=a(p,tb);temp=temp(:);
    d=min(temp);
    [jb,kb]=find(a(p,tb)==d);
    j=p(jb(1));k=tb(kb(1));
    result=[result,[j;k;d]];
    p=[p,k];
    tb(find(tb==k))=[];
end
result;

  

转载于:https://www.cnblogs.com/zxhyxiao/p/9332577.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值