灾情巡视路线的数学模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
灾情巡视路线的数学模型(总
26页)
-CAL-FENGHAI.-(YICAI)-Company One1
-CAL-本页仅作为文档封面,使用请直接删除
灾情巡视路线的数学模型
摘要
本文是解决灾情巡视路线最佳安排方案的问题。
某县领导将带人下乡巡视灾情,打算从县城出发,视察所有乡、村后返回县城。
为确定安排巡视路线,本文将此安排问题转化为旅行售货员问题,建立了四个最优化模型解决问题。
对于问题一,建立了双目标最优化模型。
首先将问题一转化为三个售货员的最佳旅行售货员问题,得到以总路程最短和路程均衡度最小的目标函数,采用最短路径的Dijkstra算法,并用MATLAB软件编程计算,得到最优树图,然后按每块近似有相等总路程的标准将最优树分成三块,最后根据最小环路定理,得到三组巡视路程分别为208.8km、205.3km和210.5km,三组巡视的总路程达到624.6km,路程均衡度为2.47%,具体巡视路线安排见表1。
对于问题二,建立了单目标最优化模型。
首先根据条件计算可确定至少要分4组巡视,于是可将问题转化为四个售货员的最佳旅行售货员问题,采用Kruskal算法求出巡视路线的最小生成树。
再根据求最优哈密顿圈的方法,运用LINGO软件编程计算,求出了各组的最佳巡视路线。
各组巡视的路程分别为154.3km、184km、136.5km、186.4km,时间分别为22.41h、22.26h、21.90h、21.33h,时间均衡度为4.82%,具体巡视路线安排见表2。
对于问题三,建立了以最少分组数为目标函数的单目标最优化模型。
运用问题一中最短路径的Dijkstra算法,运用LINGO软件编程计算,得到从县城到各点的最短距离,再经过计算可得到本问的最短巡视时间为6.43小时。
最后采用就近归组的搜索方法,逐步优化,最终得到最少需要分22组进行巡视,具体的巡视方案见表3。
对于问题四,建立了单目标优化模型,并且对变量进行讨论。
在分析乡(镇)停留时间T,村庄停留时间t和汽车行驶速度V的改变对最佳巡视路线的影响时,我们通过控制变量的变化,初步的得出了当T与t变化时和V变化时对最佳巡视路线的影响。
关键词最优化模型旅行售货员问题最优哈密顿圈
1.问题重述
今年夏天某县遭受水灾,为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡、村巡视。
巡视路线指从县政府所在地出发,走遍各乡(镇)、村,又回到县政府所在地的路线。
(路线相关信息见附表1)
本文需解决的问题:
问题一:若分三组巡视,试设计总路程最短且各组尽可能均衡的巡视路线。
问题二:假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1
小时,汽车行驶速度V=35公里/小时。
要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。
问题三:在上述关于T, t和V的假定下,如果巡视人员足够多,完成巡视的
最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。
问题四:若巡视组数已定(如三组),要求尽快完成巡视,讨论T,t和V改变
对最佳巡视路线的影响。
2.模型假设与符号说明
2.1模型的假设
假设1:巡视人员足够多,汽车足够多;
假设2:每组视察路线的路况相同,并且各汽车的平均速度相等;
假设3:每个乡(镇)、村均只视察一次,第二次经过时不作停留;
假设4:各巡视小组只在各自计划的乡(镇)、村停留,非计划之内的乡(镇)、村可以经过,但是不停留。
假设5:在乡镇的停留时间与在村的停留时间成正比例关系。
2.2符号说明
3.问题分析
本文是领导视察受灾县,并求最佳巡视路线的数学建模问题,题中已给出该县公路的网络图,要求在不同的题目要求下,得到灾情巡视的最佳分组方案和路线。
若将每个乡(镇)或村看作一个图的顶点,各乡镇、村之间的公路看作此图对应顶点间的边,各条公路的长度(或行驶时间)看作对应边上的权,所给公路网就转化为加权网络图,问题就转化图论中一类称之为旅行售货员的问题,即在给定的加权网络图中寻找从给定点O出发,行遍所有顶点至少一次再回到点O,使得总权(路程或时间)最小. 本题所求的分组巡视的最佳路线,也就是m条经过同一点并覆盖所有其他顶点又可使边上的权之和达到最小的闭链(闭迹),即最佳旅行售货员问题。
针对问题一, 要求分三组(路)巡视,得到总路程最短且各组尽可能均衡的巡视路线,可转化为三个售货员的最佳旅行售货员问题。
先用MATLAB软件编程计算得到加权网络图的最小生成树,按每块近似有相等总路程的标准将最小生成树分成三块,每一块都转化为一个最佳旅行售货员问题。
再确定总路程
最短且满足各组尽可能均衡的路线的目标函数,最后对目标函数适当改进,得到最终的双目标最优化模型。
针对问题二,由于T =2小时,t =1小时,V =35公里/小时,需访问的乡镇共有17个,村共有35个。
计算出在乡(镇)及村的总停留时间为1723569⨯+=小时,要在24小时内完成巡回,若不考虑行走时间,有:69/k<24(k 为分的组数). 得k 最小为4,所以至少要分4组。
于是将题目转化为四个售货员的最佳旅行售货员问题,再用与问题一类似的方法运用MATLAB 软件编程计算求解,即可得到问题二的结果。
针对问题三, 从起始点O 出发,中途不作任何停留,直接沿最小生成树路线巡视到距O 最远的点,并仅在此点停留,再返回,得到最短巡视时间。
为避免人力浪费,且满足条件,以分组最少的巡视方法为单目标函数建立模型求解。
针对问题四,实际上是一个变量讨论问题。
在分析乡(镇)停留时间T ,村庄停留时间t 和汽车行驶速度V 的改变对最佳巡视路线的影响时,我们通过控制不同变量的变化,初步的得出了当T 与t 变化时和V 变化时对最佳巡视路线的影响。
4.问题一的解答
针对问题一,建立模型一 4.1模型的建立
均衡度分析:我们把,0max |()()|
max ()
i j i j
i i
l l l ωωαω-=
称为该分组的实际路程均衡度。
α为最大容许均衡度。
显然0≤0α≤1,0α越小,说明分组的均衡度越好。
由问题一的分析,将乡村公路示意图抽象为一个赋权连通图(,)G V E ,再把图G 分成三个子图k G (k =1,2,3),在每个子图中寻找最佳回路k
L (k =1,2,3),k l 为回路k L 的各边权之和。
要使总路程最短且各组有尽可能均衡的巡视路线,确定的目标函数应该为:
易知,上式两个目标函数相互矛盾,不可能同时达到。
然而,要使总路程最短,可以尽量让每个子图的边权之和k l 最小,又边权为()i w e ,n 为每个子图中乡(镇)、村的总数,则有: 4.2模型的求解与分析
根据最短路径的Dijkstra 原理,用MATLAB 软件编程计算得到图的最优树,如下图所示:
图一
由于在最优树上,各边权接近,要使最优树分解时, 分解结果尽量均衡,则各子图包含的顶点就应尽量接近[(35+17)/3]=17个,由此得到最优树的分解原则如下:
(1)分解点为O 点或尽可能接近O 点;
(2)分解所得的三个子图包含的顶点数尽可能接近17个; (3)尽量使分解所得的子图为连通图;
(4)尽量使子图与O 的最短路上的点在该子圈内,尽量使各子图内部形成环路。
根据以上原则,得到分解后的结果图如下图所示: 图二
通过增环、扩环、换枝等方法,对子图内部进行适当调整优化,寻找出最佳巡视回路,运用LINGO 软件编程计算得到结果如下表:
表1 分三组巡视的路线 单位(公里)
根据上表数据,得到分组路程均衡度为210.5-205.3
=
100%=2.47%210.5
α⨯.
本题的分组路程均衡度为2.47%,说明本题分组路程均衡性很好,满足题目
要求的均衡路线,但是总路程稍长,达到了624.6公里。
5.问题二的解答
针对问题二,建立模型二 5.1模型的建立
由问题二的分析知,要满足条件,最少要分成4组进行灾情巡视。
若k m ,k n (k =1,2,3,4)分别为该组停留的乡(镇)和村数,则各组所花费的时间为: 此问题与问题一的情况类似,为得到最佳巡视路线图,就要让各组所花费的总时间最小,花费时间最多的组花费的时间也要尽可能小,于是有目标函数如下:
类似于问题一,把花费时间最多的组花费的时间尽可能小作为主要判断依据,最终确定单目标函数:
要使总路程最短,应尽量让每个子图的边权之和k l 最小,又边权为()k w e ,则有:
对ij x 有以下四个约束条件 (1)每个点只有一条边出去,即 (2)每个点只有一条边进去,即 (3)除起点和终点外,各边不构成圈 5.2模型的求解
根据Kruskal 算法原理,用MATLAB 编程计算得到最小生成树(程序见附录),结果如下图所示: 图三
此最小生成树分解方法类似于问题一,为得到最佳巡视路线图,乡村数的均衡性和各组时间的均衡性是分组的主要依据,故有平均每个子图中点权和为[(17⨯2+35)/4]=17,得到分成四组时的最小生成树分解原则如下:
(1)分解点为O或尽量接近O;
(2)分解后的各子图尽量为连通图;
(3)生成的子图容易形成圈或接近圈;
(4)使各子图中的点权和尽量接近17;
根据以上原则,得到分解后的结果图如下图所示:
图四
通过增环、扩环、换枝等方法,对子图内部进行适当调整优化,寻找出最佳巡视回路,运用LINGO软件编程计算得到结果如下表:
表2 分4组巡视的路线
由上表可发现,第二组和第一组有重叠点:K,21,25,M;第四组和第二组有重叠点:2,5,6;第四组和第三组有重叠点:C。
这些点是该组非计划之内的乡(镇)、村,故该组在巡视时,可以经过这些地方,但是不停留。
5.3结果的分析
由上表可知,分为4组巡视时,各组巡视时间均在22小时左右,消耗最长时间的小组所消耗的时间为22.41小时<24小时,满足题目条件的要求,证明分为4组进行巡视是可行的。
再进行均衡度分析,分析如下:
分组的时间均衡度为:
由上式可以看出,问题二分组方法的时间均衡度很好。
6.问题三的解答
针对问题三,建立模型三
6.1模型的建立
问题一中计算出了从县城到各点的距离(见附表程序一的结果),可以知道离县城最远的乡为H 点,距离为77.5公里,因此单独巡视该乡所需时间为
77.52
2 6.4335
H h ⨯=
+=小时。
故无论如何分工巡视,完成巡视至少需要6.43小时。
故确定以最少分组为目标的目标函数:
要在最短时间内完成巡视,即巡视时间小于等于6.43小时,有 其中,j m ,j n 分别为图中权为,T t 的点的个数。
6.2模型的求解
定义最小生成树的分支上未分组的点中到O 最远的点为N V ,次最远点为
1N V -,依此类推,直至离O 最近的点1V 。
O 点到点N 的时间记为N T ,停留时间
记为N t 。
将N V 看成第一组,再根据约束条件判断12-1,,N V V V ,分组情况,判别方法如下:
(i )若min 1N N N N N T t T T t t -+≤≤++,则点N V 应单独分在一组;
若min 1N N N N N T T t T t t -≥+≥++,则N V 和1N V -分为一组。
同理,可依此类推判断2,3,
N N V V --直至待判点不能和前面已判点分在一
组。
(ii )再在分支上未分组的点中找到离O 最远的点,作为下一组,用上述同样的
方法判断,直至所有节点分组完。
按以上求解过程,逐步求解可得以下共分22组巡视方案: 表3 分为22组巡视路线
上表中,在共22组的巡视路线中,分组一栏中为巡视停留点,路线其它点均是只经过,不停留。
6.3结果的分析
由以上表格,可以看出各组巡视的时间差别不大,所耗费最大时间也未超过题目要求的最小时间6.43小时,故分成22组是可行的。
但我们采用的是就近归组的搜索方法,逐步优化,得到的最少需要分22组,故22组分法是否是最小数组,因论证过程较繁复,此处就不再讨论。
7.问题四的解答
针对问题四,建立模型四
7.1模型的建立
由问题四的分析知,本题要讨论参数T,t和V的改变对最佳巡视路线的影响。
且要尽快完成巡视,就要求花费时间最多的组花费的时间尽可能小。
易知各组花费时间为:
则可得到目标函数:
要求在时间均衡度最小时讨论,故有约束条件:
7.2模型的求解
在上述
k
h表达式中,由于T和t的作用完全相仿,所以为简化讨论起见,
对于任意给定的T和t,不妨记
T
p
t
=。
即T pt
=这里
k
h可简记为:
它是t 和1V 的的线性函数,将随着t 和1V
增大(即V 的减小)而增大.于是我们容易得到以下结论:
(1)若t (T )增大而V 不变,为了使k h 最大值尽可能小,就要求
C pm n =+的最大值尽可能小.但是当T 和t 的关系确定后,+k k m p n ∑()实际上就是定值C pm n +=,其中m 是全县的乡(镇)数17,n 是全县的村数
35。
上述要求就成为各组停留在询问乡村的总时间尽可能均匀.用数学式子表示即为:
这里a a ⎡⎤⎢⎥⎢⎥⎣⎦和表示数a 的上整数和下整数.当然,在调整各组停留的乡
村数使之达到均衡时,自然会给各组的路线及其长度带来影响.这时应当考虑进行适当调整。
(2)若()T t 不变而V 增大.这种情况下,今k l V
起主导作用。
那么,和(1)中的结论类似,我们更应使k l 即各组的巡视路线尽可能均衡。
诚然,因为k l ∑不是常数,而且k l 的均衡性会带来k l ∑的增大,这对于尽快完成巡视会带来负
面影响。
所以对具体情况应作具体分析,比如可以考虑k h 的前半部份
+)k k m p n t ⨯(对均衡性的修正,对路程较长的组尽量考虑停留较少乡村。
8.模型的评价、改进及推广
8.1模型的评价
优点:模型有较强的理论应用性,对任意给出有各边权值的图G ,都能够分
为若干个子图,简化问题,便于求解;
缺点:模型中只考虑了路程与时间两种因素,未考虑其他影响因素,忽略
了现实生活中对模型有很大影响的重要指标,如人力资源,巡视经费等。
这样模型的实用性就降低了。
8.2模型的改进
(1)在问题二中,未论证22组是否为最小分组方法,若时间充足,应进
行论证,使模型的结果更为可靠。
(2)建模时可以考虑更多的因素,让模型实用性更强,比如说,如何让巡
视过程中花费最小。
8.3模型的推广
该问题为旅行售货员问题,可以应用的范围较广,在图形数据处理及简化方面均可运用该模型均作为参考。
9.参考资料
[1]姜启源,数学建模(第三版)[M],北京:高等教育出版社,2003
[2]徐权智,杨晋浩,数学建模[M],北京:高等教育出版社,2004
[3]韩中庚,数学建模方法及其应用[M],北京:高等教育出版社,2005
[4]宋来忠,数学建模与实验[M],北京:科学出版社,2005
[5]田贵超,黎明,韦雪洁.旅行商问题(TSP)的几种求解方法[J].计算机仿真,2006.8(8)
10.附录
附录一某县的乡(镇)、村公路网示意图,公路边的数字为该路段的公里数题一
程序一.县城到O到各点的距离程序及结果
model:
sets:
cities/A35,A34,A33,A32,A31,A30,A29,A28,A27,A26,A25,A24,A23,A22,A21,A2 0,A19,A18,A17,A16,A15,A14,A13,A12,A11,A10,A9,A8,A7,A6,A5,A4,A3,A2,A1, R,Q,P,N,M,L,K,J,I,H,G,F,E,D,C,B,A,O/:fl;
roads(cities,cities)/A35,A34 A35,A33 A35,A32 A34,B A34,A A32,A33 A31,A33 A33,A A32,A31 A30,A32 A31,R A30,Q A29,R Q,A29 A29,P A27,A28 Q,A28 A28,P A27,A26 A24,A27 A26,P N,A26 A21,A25 A20,A25 N,A25 A25,M
A24,A23 A24,N A22,A23 A23,A21 A23,N A17,A22 A22,K A21,A20 K,A21
A19,A20 A20,L A19,L J,A19 A18,K A18,J I,A18 A16,A17 A17,K A16,I
A15,A14 A15,I A14,A13 H,A14 A13,J A13,I A13,G H,A12 A12,G A12,F J,A11 G,A11 A11,E A10,F F,A9 A9,E A8,A4 A8,E A7,A6 L,A7 E,A7 A7,D A6,A5
M,A6 L,A6 A5,A2 M,A5 D,A5 A4,D A3,A2 D,A3 A3,C A2,O C,A1 B,A1 A,A1
A1,O A,R R,O P,O N,M M,O I,J C,B C,O/:w,p;
endsets
data:
w=8.2 20.3 14.9 17.6 11.5 19 7.3 7.4 8.1 10.3 9.2 7.7 7.9 7.2 15.2 7.9 8.3 12.1 7.8 18.8 10.5 10.5 7.8 6.5 8.8 12 8.9 13.2 10 9.1
7.9 6.7 10.1 7.9 4.1 9.3 5.5 7.2 8.1 9.2 8.2 8.2 6.8 9.8 11.8 15 8.8
8.6 9.9 9.8 16.4 8.6 10.2 7.8 12.2 13.2 6.8 14.2 10.8 5.6 7.8 20.4 8 7.3 14.5 7.2 15.1 9.7 9.5 11.8 8.3 11.4 11.3 12.7 4.8 8.2 7.9 9.2 11.2 5.9 10.3 6 8.8 12.9 10.1 14.2 19.8 15.8 11 11.5;
enddata
n=@size(cities); fl(n)=0;
@for(cities(i)|i#lt#n:fl(i)=@min(roads(i,j):w(i,j)+fl(j)));
@for(roads(i,j):p(i,j)=@if(fl(i)#eq#w(i,j)+fl(j),1,0));
end
Feasible solution found.
Total solver iterations: 0
Variable Value N 53.00000 FL( A35) 36.00000 FL( A34) 27.80000 FL( A33) 23.70000 FL( A32) 30.20000 FL( A31) 22.10000 FL( A30) 35.70000 FL( A29) 20.80000 FL( A28) 22.20000 FL( A27) 28.40000 FL( A26) 20.60000 FL( A25) 31.80000 FL( A24) 44.30000 FL( A23) 39.00000 FL( A22) 49.00000 FL( A21) 39.60000 FL( A20) 38.30000 FL( A19) 46.20000 FL( A18) 52.90000 FL( A17) 53.50000 FL( A16) 60.30000 FL( A15) 69.90000 FL( A14) 72.70000 FL( A13) 64.10000 FL( A12) 67.30000 FL( A11) 55.90000 FL( A10) 65.90000 FL( A9) 49.50000 FL( A8) 49.70000 FL( A7) 34.50000
FL( A6) 27.20000
FL( A5) 17.50000
FL( A4) 34.90000
FL( A3) 14.00000
FL( A2) 9.200000
FL( A1) 6.000000
FL( R) 12.90000
FL( Q) 28.00000
FL( P) 10.10000
FL( N) 31.10000
FL( M) 19.80000
FL( L) 39.00000
FL( K) 43.70000
FL( J) 54.30000
FL( I) 61.10000
FL( H) 77.50000
FL( G) 62.70000
FL( F) 55.10000
FL( E) 41.70000
FL( D) 22.20000
FL( C) 11.50000
FL( B) 11.90000
FL( A) 16.30000
FL( O) 0.000000
程序二.环路一的最短路程
model:
sets:
city/O,I,J,K,L,M,N,P,15,16,17,18,19,20,21,22,23,24,25,26,27/:u;
links(city,city):dist,x;
endsets
data:
dist=0, 61.1, 55.7, 43.7, 43.8, 19.8, 31.1, 10.1, 69.9, 60.3, 53.5, 52.9, 47.6, 38.3, 39.6, 49.0, 39.0, 44.3, 31.8, 20.6, 28.4
61.1, 0, 15.8, 17.4, 31.1, 41.3, 38.1, 59.1, 8.8, 11.8, 18.6,
8.2, 23.9, 29.4, 21.5, 25.3, 30.6, 39.5, 29.3, 48.6, 56.4
55.7, 15.8, 0, 17.4, 15.3, 35.9, 32.7, 53.7, 24.6, 27.6, 27.2,
8.2, 8.1, 17.4, 21.5, 27.5, 30.6, 39.5, 23.9, 43.2, 51.0
43.7, 17.4, 17.4, 0, 17.5, 23.9, 20.7, 41.7, 26.2, 16.6, 9.8,
9.2, 21.3, 12.0, 4.1, 10.1, 13.2, 22.1, 11.9, 31.2, 39.0
43.8, 31.1, 15.3, 17.5, 0, 24.0, 20.8, 41.8, 39.9, 34.1, 27.3,
23.5, 7.2, 5.5, 13.4, 27.6, 22.5, 31.4, 12.0, 31.3, 39.1
19.8, 41.3, 35.9, 23.9, 24.0, 0, 14.2, 29.9, 50.1, 40.5, 33.7,
33.1, 27.8, 18.5, 19.8, 32.1, 22.1, 27.4, 12.0, 24.7, 32.5
31.1, 38.1, 32.7, 20.7, 20.8, 14.2, 0, 21.0, 46.9, 31.4, 24.6, 29.9, 24.6, 15.3, 16.6, 17.9, 7.9, 13.2, 8.8, 10.5, 18.3
10.1, 59.1, 53.7, 41.7, 41.8, 29.9, 21.0, 0, 67.9, 52.4, 45.6, 50.9, 45.6, 36.3, 37.6, 38.9, 28.9, 34.2, 29.8, 10.5, 18.3
69.9, 8.8, 24.6, 26.2, 39.9, 50.1, 46.9, 67.9, 0, 20.6, 27.4, 17.0, 32.7, 38.2, 30.3, 34.1, 39.4, 48.3, 38.1, 57.4, 65.2
60.3, 11.8, 27.6, 16.6, 34.1, 40.5, 31.4, 52.4, 20.6, 0, 6.8, 20.0, 35.7, 28.6, 20.7, 13.5, 23.5, 32.4, 28.5, 41.9, 49.7
53.5, 18.6, 27.2, 9.8, 27.3, 33.7, 24.6, 45.6, 27.4, 6.8, 0, 19.0, 31.1, 21.8, 13.9, 6.7, 16.7, 25.6, 21.7, 35.1, 42.9
52.9, 8.2, 8.2, 9.2, 23.5, 33.1, 29.9, 50.9, 17.0, 20.0, 19.0, 0, 16.3, 21.2, 13.3, 19.3, 22.4, 31.3, 21.1, 40.4, 48.2
47.6, 23.9, 8.1, 21.3, 7.2, 27.8, 24.6, 45.6, 32.7, 35.7, 31.1, 16.3, 0, 9.3, 17.2, 31.4, 26.3, 35.2, 15.8, 35.1, 42.9
38.3, 29.4, 17.4, 12.0, 5.5, 18.5, 15.3, 36.3, 38.2, 28.6, 21.8, 21.2, 9.3, 0, 7.9, 22.1, 17.0, 25.9, 6.5, 25.8, 33.6
39.6, 21.5, 21.5, 4.1, 13.4, 19.8, 16.6, 37.6, 30.3, 20.7, 13.9, 13.3, 17.2, 7.9, 0, 14.2, 9.1, 18.0, 7.8, 27.1, 34.9
49.0, 25.3, 27.5, 10.1, 27.6, 32.1, 17.9, 38.9, 34.1, 13.5, 6.7, 19.3, 31.4, 22.1, 14.2, 0, 10.0, 18.9, 22.0, 28.4, 36.2
39.0, 30.6, 30.6, 13.2, 22.5, 22.1, 7.9, 28.9, 39.4, 23.5, 16.7, 22.4, 26.3, 17.0, 9.1, 10.0, 0, 8.9, 16.7, 18.4, 26.2
44.3, 39.5, 39.5, 22.1, 31.4, 27.4, 13.2, 34.2, 48.3, 32.4, 25.6, 31.3, 35.2, 25.9, 18.0, 18.9, 8.9, 0, 22.0, 23.7, 18.8
31.8, 29.3, 23.9, 11.9, 12.0, 12.0, 8.8, 29.8, 38.1, 28.5, 21.7, 21.1, 15.8, 6.5, 7.8, 22.0, 16.7, 22.0, 0, 19.3, 27.1
20.6, 48.6, 43.2, 31.2, 31.3, 24.7, 10.5, 10.5, 57.4, 41.9, 35.1, 40.4, 35.1, 25.8, 27.1, 28.4, 18.4, 23.7, 19.3, 0, 7.8
28.4, 56.4, 51.0, 39.0, 39.1, 32.5, 18.3, 18.3, 65.2, 49.7, 42.9, 48.2, 42.9, 33.6, 34.9, 36.2, 26.2, 18.8, 27.1, 7.8, 0;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
环路二的最短路程
model:
sets:
city/O,A,B,C,D,Q,R,1,2,3,4,28,29,30,31,32,33,34,35/:u;
links(city,city):dist,x;
endsets
data:
dist=0, 16.3, 11.9, 11.5, 22.2, 28.0, 12.9, 6.0, 9.2, 14.0, 34.9, 36.3, 20.8, 35.7, 22.1, 30.2, 23.7, 27.8, 36.0
16.3, 0, 12.2, 21.5, 37.6, 23.9, 8.8, 10.3, 25.5, 29.4, 50.3,
32.2, 16.7, 31.6, 14.7, 22.8, 7.4, 11.5, 19.7
11.9, 12.2, 0, 11.0, 27.1, 36.1, 21.0, 5.9, 21.1, 18.9, 39.8,
44.4, 28.9, 43.8, 26.9, 35.0, 19.6, 17.6, 25.8
11.5, 21.5, 11.0, 0, 16.1, 39.5, 24.4, 11.2, 12.7, 7.9, 28.8,
47.8, 32.3, 47.2, 33.6, 41.7, 28.9, 28.6, 36.8
22.2, 37.6, 27.1, 16.1, 0, 50.2, 35.1, 27.3, 13.0, 8.2, 12.7,
58.5, 43.0, 57.9, 44.3, 52.4, 45.0, 44.7, 52.9
28.0, 23.9, 36.1, 39.5, 50.2, 0, 15.1, 34.0, 37.2, 42.0, 62.9,
8.3, 7.2, 7.7, 24.3, 18.0, 31.3, 35.4, 32.9
12.9, 8.8, 21.0, 24.4, 35.1, 15.1, 0, 18.9, 22.1, 26.9, 47.8,
23.4, 7.9, 22.8, 9.2, 17.3, 16.2, 20.3, 28.5
6.0, 10.3, 5.9, 11.2, 2
7.3, 34.0, 1
8.9, 0, 15.2, 1
9.1, 40.0,
42.3, 26.8, 41.7, 25.0, 33.1, 17.7, 21.8, 30.0
9.2, 25.5, 21.1, 12.7, 13.0, 37.2, 22.1, 15.2, 0, 4.8, 25.7,
45.5, 30.0, 44.9, 31.3, 39.4, 32.9, 37.0, 45.2
14.0, 29.4, 18.9, 7.9, 8.2, 42.0, 26.9, 19.1, 4.8, 0, 20.9,
50.3, 34.8, 49.7, 36.1, 44.2, 36.8, 36.5, 44.7
34.9, 50.3, 39.8, 28.8, 12.7, 62.9, 47.8, 40.0, 25.7, 20.9, 0,
71.2, 55.7, 70.6, 57.0, 65.1, 57.7, 57.4, 65.6
36.3, 32.2, 44.4, 47.8, 58.5, 8.3, 23.4, 42.3, 45.5, 50.3, 71.2, 0, 15.5, 16.0, 32.6, 26.3, 39.6, 43.7, 41.2
20.8, 16.7, 28.9, 32.3, 43.0, 7.2, 7.9, 26.8, 30.0, 34.8, 55.7,
15.5, 0, 14.9, 17.1, 25.2, 24.1, 28.2, 36.4
35.7, 31.6, 43.8, 47.2, 57.9, 7.7, 22.8, 41.7, 44.9, 49.7, 70.6,
16.0, 14.9, 0, 18.4, 10.3, 25.7, 33.4, 25.2
22.1, 14.7, 26.9, 33.6, 44.3, 24.3, 9.2, 25.0, 31.3, 36.1, 57.0,
32.6, 17.1, 18.4, 0, 8.1, 7.3, 26.2, 23.0
30.2, 22.8, 35.0, 41.7, 52.4, 18.0, 17.3, 33.1, 39.4, 44.2, 65.1,
26.3, 25.2, 10.3, 8.1, 0, 15.4, 23.1, 14.9
23.7, 7.4, 19.6, 28.9, 45.0, 31.3, 16.2, 17.7, 32.9, 36.8, 57.7,
39.6, 24.1, 25.7, 7.3, 15.4, 0, 18.9, 20.3
27.8, 11.5, 17.6, 28.6, 44.7, 35.4, 20.3, 21.8, 37.0, 36.5, 57.4,
43.7, 28.2, 33.4, 26.2, 23.1, 18.9, 0, 8.2
36.0, 19.7, 25.8, 36.8, 52.9, 32.9, 28.5, 30.0, 45.2, 44.7, 65.6,
41.2, 36.4, 25.2, 23.0, 14.9, 20.3, 8.2, 0 ;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
环路三的最短路程
model:
sets:
city/O,E,F,G,H,2,5,6,7,8,9,10,11,12,13,14/:u;
links(city,city):dist,x;
endsets
data:
dist= 0 41.7000 55.1000 62.7000 77.5000 9.2000
17.5000 27.2000 34.5000 49.7000 49.5000 65.9000 55.9000 67.3000 71.3000 79.9000
41.7000 0 13.4000 21.0000 35.8000 32.5000
24.2000 14.5000 7.2000 8.0000 7.8000 24.2000 14.2000
25.6000 29.6000 38.2000
55.1000 13.4000 0 20.0000 22.4000 45.9000
37.6000 27.9000 20.6000 21.4000 5.6000 10.8000 26.8000 12.2000 28.6000 32.3000
62.7000 21.0000 20.0000 0 18.0000 53.5000
45.2000 35.5000 28.2000 29.0000 25.6000 30.8000 6.8000 7.8000 8.6000 17.2000
77.5000 35.8000 22.4000 18.0000 0 68.3000
60.0000 50.3000 43.0000 43.8000 28.0000 33.2000 24.8000 10.2000 18.5000 9.9000
9.2000 32.5000 45.9000 53.5000 68.3000 0
8.3000 18.0000 25.3000 40.5000 40.3000 56.7000 46.7000 58.1000 62.1000 70.7000
17.5000 24.2000 37.6000 45.2000 60.0000 8.3000
0 9.7000 17.0000 32.2000 32.0000 48.4000 38.4000
49.8000 53.8000 62.4000
27.2000 14.5000 27.9000 35.5000 50.3000 18.0000
9.7000 0 7.3000 22.5000 22.3000 38.7000 28.7000 40.1000 44.1000 52.7000
34.5000 7.2000 20.6000 28.2000 43.0000 25.3000
17.0000 7.3000 0 15.2000 15.0000 31.4000 21.4000 32.8000 36.8000 45.4000
49.7000 8.0000 21.4000 29.0000 43.8000 40.5000
32.2000 22.5000 15.2000 0 15.8000 32.2000 22.2000
33.6000 37.6000 46.2000
49.5000 7.8000 5.6000 25.6000 28.0000 40.3000
32.0000 22.3000 15.0000 15.8000 0 16.4000 22.0000
17.8000 34.2000 37.9000
65.9000 24.2000 10.8000 30.8000 33.2000 56.7000
48.4000 38.7000 31.4000 32.2000 16.4000 0 37.6000
23.0000 39.4000 43.1000
55.9000 14.2000 26.8000 6.8000 24.8000 46.7000
38.4000 28.7000 21.4000 22.2000 22.0000 37.6000 0
14.6000 15.4000 24.0000
67.3000 25.6000 12.2000 7.8000 10.2000 58.1000
49.8000 40.1000 32.8000 33.6000 17.8000 23.0000 14.6000 0 16.4000 20.1000
71.3000 29.6000 28.6000 8.6000 18.5000 62.1000
53.8000 44.1000 36.8000 37.6000 34.2000 39.4000 15.4000
16.4000 0 8.6000
79.9000 38.2000 32.3000 17.2000 9.9000 70.7000
62.4000 52.7000 45.4000 46.2000 37.9000 43.1000 24.0000
20.1000 8.6000 0;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
题二
最小生成树程序
a(2,5)=11.5; a(2,15)=19.8; a(2,17)=10.1;
a(2,19)=12.9;a(2,20)=12.9;a(2,21)=9.2;
a(3,4)=12.2;a(3,19)=8.8; a(3,20)=8.3;
a(3,52)=7.4;a(3,53)=11.5;
a(4,5)=11; a(4,20)=5.9;a(4,53)=17.6;
a(5,20)=11.2;a(5,22)=7.9;
a(6,22)=8.2;a(6,23)=12.7;a(6,24)=11.3;a(6,26)=15.1;
a(7,26)=7.2;a(7,27)=8;a(7,28)=7.8;a(7,30)=14.2;
a(8,28)=5.6;a(8,29)=10.8;a(8,31)=12.2;
a(9,30)=6.8;a(9,31)=7.8;a(9,32)=8.6;
a(10,31)=10.2;a(10,33)=9.9;
a(11,12)=15.8;a(11,32)=16.4;a(11,34)=8.8;a(11,35)=11.8;a( 11,37)=8.2;
a(12,30)=13.2;a(12,32)=9.8;a(12,37)=8.2;a(12,38)=8.1;
a(13,36)=9.8;a(13,37)=9.2;a(13,40)=4.1;a(13,41)=10.1;
a(14,25)=11.8;a(14,26)=14.5;a(14,38)=7.2;a(14,39)=5.5;
a(15,16)=14.2;a(15,24)=11.4;a(15,25)=9.5;a(15,44)=12;
a(16,42)=7.9;a(16,43)=13.2;a(16,44)=8.8;a(16,45)=10.5;
a(17,45)=10.5;a(17,47)=12.1;a(17,48)=15.2;
a(18,47)=8.3;a(18,48)=7.2;a(18,49)=7.7;
a(19,48)=7.9;a(19,50)=19.2;a(21,22)=4.8;a(21,24)=8.3;
a(23,27)=20.4;a(24,25)=9.7;a(25,26)=7.3;a(32,33)=8.6;
a(33,34)=15;a(35,36)=6.8;a(36,41)=6.7;a(38,39)=9.3;
a(39,40)=7.9;a(39,44)=6.5;a(40,42)=9.1;a(40,44)=7.8;
a(41,42)=10;a(42,43)=8.9;a(43,46)=18.8;a(45,46)=7.8;
a(46,47)=7.8;a(49,51)=10.3;a(50,51)=8.1;a(50,52)=7.3;
a(51,52)=19;a(51,54)=14.9;a(52,54)=20.3;a(53,54)=8.2; [i,j,b]=find(a);
data=[i';j';b'];index=data(1:2,:);
loop=max(size(a))-1;
result=[];
while length(result)<loop
temp=min(data(3,:));
flag=find(data(3,:)==temp);
flag=flag(1);
v1=data(1,flag);v2=data(2,flag);
if index(1,flag)~=index(2,flag)
result=[result,data(:,flag)];
end
index(find(index==v2))=v1;
data(:,flag)=[];
index(:,flag)=[];
end
result
一
model:
sets:
city/O,K,M,N,P,16,17,21,22,23,24,25,26,27,28/:u;
links(city,city):dist,x;
endsets
data:
dist= 0 43.7000 19.8000 31.1000 10.1000 60.3000 53.5000 39.6000 49.0000 39.0000 44.3000 31.8000 20.6000 28.4000
22.2000
43.7000 0 23.9000 20.7000 41.7000 16.6000 9.8000
4.1000 10.1000 13.2000 22.1000 11.9000 31.2000 39.0000 46.9000
19.8000 23.9000 0 14.2000 29.9000 40.5000 33.7000
19.8000 32.1000 22.1000 27.4000 12.0000 24.7000 32.5000
40.4000
31.1000 20.7000 14.2000 0 21.0000 31.4000 24.6000
16.6000 17.9000 7.9000 13.2000 8.8000 10.5000 18.3000
26.2000
10.1000 41.7000 29.9000 21.0000 0 52.4000 45.6000
37.6000 38.9000 28.9000 34.2000 29.8000 10.5000 18.3000
12.1000
60.3000 16.6000 40.5000 31.4000 52.4000 0 6.8000
20.7000 13.5000 23.5000 32.4000 28.5000 41.9000 49.7000
57.6000
53.5000 9.8000 33.7000 24.6000 45.6000 6.8000 0
13.9000 6.7000 16.7000 25.6000 21.7000 35.1000 42.9000
50.8000
39.6000 4.1000 19.8000 16.6000 37.6000 20.7000 13.9000 0 14.2000 9.1000 18.0000 7.8000 27.1000 34.9000 42.8000
49.0000 10.1000 32.1000 17.9000 38.9000 13.5000 6.7000
14.2000 0 10.0000 18.9000 22.0000 28.4000 36.2000
44.1000
39.0000 13.2000 22.1000 7.9000 28.9000 23.5000 16.7000
9.1000 10.0000 0 8.9000 16.7000 18.4000 26.2000 34.1000
44.3000 22.1000 27.4000 13.2000 34.2000 32.4000 25.6000
18.0000 18.9000 8.9000 0 22.0000 23.7000 18.8000
26.7000
31.8000 11.9000 12.0000 8.8000 29.8000 28.5000 21.7000
7.8000 22.0000 16.7000 22.0000 0 19.3000 27.1000 35.0000
20.6000 31.2000 24.7000 10.5000 10.5000 41.9000 35.1000
27.1000 28.4000 18.4000 23.7000 19.3000 0 7.8000
15.7000
28.4000 39.0000 32.5000 18.3000 18.3000 49.7000 42.9000
34.9000 36.2000 26.2000 18.8000 27.1000 7.8000 0
7.9000
22.2000 46.9000 40.4000 26.2000 12.1000 57.6000 50.8000
42.8000 44.1000 34.1000 26.7000 35.0000 15.7000 7.9000
0;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
二
model:
sets:
city/O,H,I,J,K,L,M,2,5,6,13,14,15,18,19,20,21,25/:u;
links(city,city):dist,x;
endsets
data:
dist= 0 82.6000 61.1000 54.3000 43.7000 39.0000 19.8000
9.2000 17.5000 27.2000 64.1000 72.7000 69.9000 52.9000 46.2000 38.3000 39.6000 31.8000
82.6000 0 33.7000 28.3000 45.7000 43.6000 64.2000
73.4000 65.1000 55.4000 18.5000 9.9000 24.9000 36.5000
36.4000 45.7000 49.8000 52.2000
61.1000 33.7000 0 15.8000 17.4000 31.1000 41.3000
60.9000 52.6000 42.9000 16.4000 23.8000 8.8000 8.2000
23.9000 29.4000 21.5000 29.3000
54.3000 28.3000 15.8000 0 17.4000 15.3000 35.9000
45.1000 36.8000 27.1000 9.8000 18.4000 24.6000 8.2000
8.1000 17.4000 21.5000 23.9000
43.7000 45.7000 17.4000 17.4000 0 17.5000 23.9000
43.6000 35.3000 29.3000 27.2000 35.8000 26.2000 9.2000
21.3000 12.0000 4.1000 11.9000
39.0000 43.6000 31.1000 15.3000 17.5000 0 21.3000
29.8000 21.5000 11.8000 25.1000 33.7000 39.9000 23.5000
7.2000 5.5000 13.4000 12.0000
19.8000 64.2000 41.3000 35.9000 23.9000 21.3000 0
19.7000 11.4000 9.5000 45.7000 54.3000 50.1000 33.1000
27.8000 18.5000 19.8000 12.0000
9.2000 73.4000 60.9000 45.1000 43.6000 29.8000 19.7000 0 8.3000 18.0000 54.9000 63.5000 69.7000 52.8000 37.0000
35.3000 39.5000 31.7000
17.5000 65.1000 52.6000 36.8000 35.3000 21.5000 11.4000
8.3000 0 9.7000 46.6000 55.2000 61.4000 44.5000 28.7000 27.0000 31.2000 23.4000
27.2000 55.4000 42.9000 27.1000 29.3000 11.8000 9.5000
18.0000 9.7000 0 36.9000 45.5000 51.7000 35.3000
19.0000 17.3000 25.2000 21.5000
64.1000 18.5000 16.4000 9.8000 27.2000 25.1000 45.7000
54.9000 46.6000 36.9000 0 8.6000 23.6000 18.0000
17.9000 27.2000 31.3000 33.7000
72.7000 9.9000 23.8000 18.4000 35.8000 33.7000 54.3000
63.5000 55.2000 45.5000 8.6000 0 15.0000 26.6000
26.5000 35.8000 39.9000 42.3000
69.9000 24.9000 8.8000 24.6000 26.2000 39.9000 50.1000
69.7000 61.4000 51.7000 23.6000 15.0000 0 17.0000
32.7000 38.2000 30.3000 38.1000
52.9000 36.5000 8.2000 8.2000 9.2000 23.5000 33.1000
52.8000 44.5000 35.3000 18.0000 26.6000 17.0000 0
16.3000 21.2000 13.3000 21.1000
46.2000 36.4000 23.9000 8.1000 21.3000 7.2000 27.8000
37.0000 28.7000 19.0000 17.9000 26.5000 32.7000 16.3000
0 9.3000 17.2000 15.8000
38.3000 45.7000 29.4000 17.4000 12.0000 5.5000 18.5000
35.3000 27.0000 17.3000 27.2000 35.8000 38.2000 21.2000
9.3000 0 7.9000 6.5000
39.6000 49.8000 21.5000 21.5000 4.1000 13.4000 19.8000
39.5000 31.2000 25.2000 31.3000 39.9000 30.3000 13.3000
17.2000 7.9000 0 7.8000
31.8000 52.2000 29.3000 23.9000 11.9000 12.0000 12.0000
31.7000 23.4000 21.5000 33.7000 42.3000 38.1000 21.1000
15.8000 6.5000 7.8000 0;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
三
model:
sets:
city/O,A,B,C,Q,R,1,29,30,31,32,33,34,35/:u;
links(city,city):dist,x;
endsets
data:
dist= 0 82.6000 61.1000 54.3000 43.7000 39.0000 19.8000
9.2000 17.5000 27.2000 64.1000 72.7000 69.9000 52.9000 46.2000 38.3000 39.6000 31.8000
82.6000 0 33.7000 28.3000 45.7000 43.6000 64.2000
73.4000 65.1000 55.4000 18.5000 9.9000 24.9000 36.5000
36.4000 45.7000 49.8000 52.2000
61.1000 33.7000 0 15.8000 17.4000 31.1000 41.3000
60.9000 52.6000 42.9000 16.4000 23.8000 8.8000 8.2000
23.9000 29.4000 21.5000 29.3000
54.3000 28.3000 15.8000 0 17.4000 15.3000 35.9000
45.1000 36.8000 27.1000 9.8000 18.4000 24.6000 8.2000
8.1000 17.4000 21.5000 23.9000
43.7000 45.7000 17.4000 17.4000 0 17.5000 23.9000
43.6000 35.3000 29.3000 27.2000 35.8000 26.2000 9.2000
21.3000 12.0000 4.1000 11.9000
39.0000 43.6000 31.1000 15.3000 17.5000 0 21.3000
29.8000 21.5000 11.8000 25.1000 33.7000 39.9000 23.5000
7.2000 5.5000 13.4000 12.0000
19.8000 64.2000 41.3000 35.9000 23.9000 21.3000 0
19.7000 11.4000 9.5000 45.7000 54.3000 50.1000 33.1000
27.8000 18.5000 19.8000 12.0000
9.2000 73.4000 60.9000 45.1000 43.6000 29.8000 19.7000 0 8.3000 18.0000 54.9000 63.5000 69.7000 52.8000 37.0000
35.3000 39.5000 31.7000
17.5000 65.1000 52.6000 36.8000 35.3000 21.5000 11.4000
8.3000 0 9.7000 46.6000 55.2000 61.4000 44.5000 28.7000 27.0000 31.2000 23.4000
27.2000 55.4000 42.9000 27.1000 29.3000 11.8000 9.5000
18.0000 9.7000 0 36.9000 45.5000 51.7000 35.3000
19.0000 17.3000 25.2000 21.5000
64.1000 18.5000 16.4000 9.8000 27.2000 25.1000 45.7000
54.9000 46.6000 36.9000 0 8.6000 23.6000 18.0000
17.9000 27.2000 31.3000 33.7000
72.7000 9.9000 23.8000 18.4000 35.8000 33.7000 54.3000
63.5000 55.2000 45.5000 8.6000 0 15.0000 26.6000
26.5000 35.8000 39.9000 42.3000
69.9000 24.9000 8.8000 24.6000 26.2000 39.9000 50.1000
69.7000 61.4000 51.7000 23.6000 15.0000 0 17.0000
32.7000 38.2000 30.3000 38.1000
52.9000 36.5000 8.2000 8.2000 9.2000 23.5000 33.1000
52.8000 44.5000 35.3000 18.0000 26.6000 17.0000 0
16.3000 21.2000 13.3000 21.1000
46.2000 36.4000 23.9000 8.1000 21.3000 7.2000 27.8000
37.0000 28.7000 19.0000 17.9000 26.5000 32.7000 16.3000
0 9.3000 17.2000 15.8000
38.3000 45.7000 29.4000 17.4000 12.0000 5.5000 18.5000
35.3000 27.0000 17.3000 27.2000 35.8000 38.2000 21.2000
9.3000 0 7.9000 6.5000
39.6000 49.8000 21.5000 21.5000 4.1000 13.4000 19.8000
39.5000 31.2000 25.2000 31.3000 39.9000 30.3000 13.3000
17.2000 7.9000 0 7.8000
31.8000 52.2000 29.3000 23.9000 11.9000 12.0000 12.0000
31.7000 23.4000 21.5000 33.7000 42.3000 38.1000 21.1000
15.8000 6.5000 7.8000 0;
enddata
n=@size(city);
min=@sum(links:dist*x);
@for(city(k):@sum(city(i)|i#ne#k:x(i,k))=1;
@sum(city(j)|j#ne#k:x(k,j))=1;);
@for(city(i):@for(city(j)|j#gt#1#and#i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1););
@for(city(i):u(i)<=n-1);
@for(links:@bin(x));
end
四
model:
sets:
city/O,C,D,E,F,G,2,3,4,5,6,7,8,9,10,11,12/:u;
links(city,city):dist,x;
endsets
data:
dist= 0 11.5000 22.2000 41.7000 55.1000 62.7000 9.2000
14.0000 34.9000 17.5000 27.2000 34.5000 49.7000 49.5000
65.9000 55.9000 67.3000
11.5000 0 16.1000 38.4000 51.8000 59.4000 12.7000
7.9000 28.8000 21.0000 30.7000 31.2000 46.4000 46.2000 62.6000 52.6000 64.0000
22.2000 16.1000 0 22.3000 35.7000 43.3000 13.0000
8.2000 12.7000 11.3000 21.0000 15.1000 30.3000 30.1000 46.5000 36.5000 47.9000
41.7000 38.4000 22.3000 0 13.4000 21.0000 32.5000
30.5000 28.4000 24.2000 14.5000 7.2000 8.0000 7.8000
24.2000 14.2000 25.6000
55.1000 51.8000 35.7000 13.4000 0 20.0000 45.9000
43.9000 41.8000 37.6000 27.9000 20.6000 21.4000 5.6000
10.8000 26.8000 12.2000
62.7000 59.4000 43.3000 21.0000 20.0000 0 53.5000
51.5000 49.4000 45.2000 35.5000 28.2000 29.0000 25.6000
30.8000 6.8000 7.8000。