L(v)=L(u)+W(u,v);
z(v)=u;
end
end
[m,u]=min(L.*flg);%在S之外的节点求最小值,得到新析切点u
k=k+1;S(k)=u;flg(u)=inf;%将新的节点放入S中,并作标记
end
④comp函数
function[Ans]=comp(Z1,Z2,Z3,H)
%函数功能为将各点到三个根点的最短路径值乘以各点自身的比重,即加第二重权,之后比较将最小值所对应的方案号存入一维数组Ans中
%基本数据导入
z(1,:
)=Z1;z(2,:
)=Z2;z(3,:
)=Z3;
fori=1:
50
g(i)=z(1,i)*H(i);
Ans(i)=1;
end
%比较并做出结论
fori=1:
50
forj=2:
3
ifg(i)>z(j,i)*H(i)
g(i)=z(j,i)*H(i);
Ans(i)=j;
end
end
end
6、结论
本小组所用的编程环境为MATLAB2012A,可能在数据导入等方面与MATLAB7.0有微小差异,敬请谅解!
MATLAB实际操作过程的步骤和各结果如下:
①导入基本数据表:
路径权.mat和比重权.mat,分别进入矩阵W和矩阵H中。
②将程序trans.m,my_min2.m,my_min1.m,comp.m导入MATLAB库中。
③将数据my_min1(my_min2(trans(W,50)),1)导入矩阵L1中,my_min1(my_min2(trans(W,50)),2)导入矩阵L2中,my_min1(my_min2(trans(W,50)),3)导入矩阵L3中。
④执行程序comp(L1,L2,L3,H),得到的数组命名为Ans,Ans所示即为最优解。
(具体过程见附录)
结论总结:
最终结论为ANS数组所示,1-50乡镇的最近火车站安排为12322332312212322222232231122222332222222212331122
七.附录
附一:
执行过程中用到的数据表(均以mat格式保存):
①路径权(根-点图)
1106.24000000000000
14317.4400000000000
14825.8900000000000
23710.8300000000000
256.43000000000000
2237.37000000000000
22018.3500000000000
33410.8500000000000
34512.1400000000000
3717.0600000000000
34636.2400000000000
4916.2800000000000
43012.8600000000000
43121.0400000000000
4816.4800000000000
54911.4000000000000
51719.7900000000000
6223.36000000000000
7225.38000000000000
7254.61000000000000
74322.0500000000000
74829.9300000000000
85011.8500000000000
897.76000000000000
83311.7000000000000
94622.6800000000000
93414.3300000000000
10479.89000000000000
111910.0800000000000
12383.11000000000000
12358.19000000000000
13476.77000000000000
13273.91000000000000
134822.7600000000000
143810.8600000000000
14326.10000000000000
16177.98000000000000
164113.4800000000000
174210.2200000000000
18368.79000000000000
194210.9100000000000
19218.86000000000000
20398.50000000000000
204016.150********00
213013.3500000000000
23503.68000000000000
234011.3300000000000
24144.88000000000000
27398.67000000000000
284920.8700000000000
29324.55000000000000
29378.98000000000000
29188.94000000000000
305027.7800000000000
304215.2200000000000
323917.3200000000000
334012.2100000000000
3334.020*********
334821.4100000000000
364916.2300000000000
383911.8400000000000
404815.3200000000000
414416.4200000000000
432617.9600000000000
461513.3300000000000
②比重权
760
1281
456
1155
944
676
490
728
782
420
889
526
684
882
551
590
917
565
1124
1282
1030
643
884
407
1206
1179
1117
560
894
322
725
612
461
478
722
394
898
770
995
999
938
333
368
619
830
954
707
1119
1018
1268
附二:
①执行trans(W,50)的结果
ans=
Columns1through13
0InfInfInfInfInfInfInfInf6.2400InfInfInf
Inf0InfInf6.4300InfInfInfInfInfInfInfInf
InfInf0InfInfInf17.0600InfInfInfInfInfInf
InfInfInf0InfInfInf16.480016.2800InfInfInfInf
InfInfInfInf0InfInfInfInfInfInfInfInf
InfInfInfInfInf0InfInfInfInfInfInfInf
InfInfInfInfInfInf0InfInfInfInfInfInf
InfInfInfInfInfInfInf07.7600InfInfInfInf
InfInfInfInfInfInfInfInf0InfInfInfInf
InfInfInfInfInfInfInfInfInf0InfInfInf
InfInfInfInfInfInfInfInfInfInf0InfInf
InfInfInfInfInfInfInfInfInfInfInf0Inf
InfInfInfInfInfInfInfInfInfInfInfInf0
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
Columns14through26
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInf18.3500InfInf7.3700InfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInf19.7900InfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInf3.3600InfInfInfInf
InfInfInfInfInfInfInfInf5.3800InfInf4.6100Inf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInf10.0800InfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
InfInfInfInfInfInfInfInfInfInfInfInfInf
0InfInfInfInfInfInfInfInfInf4.8800InfInf
Inf0InfInfInfInfInfInfInfInfInfInfInf
InfInf07.9800InfInfInfInfInfInfInfInfInf
InfInfInf0InfInfInfInfInfInfInfInfInf
InfInfInfInf0InfInfInfInfInfInfInfInf
InfInfInfInfInf0Inf8.8600InfInfInfInfInf
InfInfInfInfInfInf0InfInfInfInfInfInf
InfInfInfInfInfInfInf0InfInfInfInfInf
In