数学建模论文之灾情巡视路线

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

最佳灾情巡视路线问题的研究
摘要
本文分析的是最佳的巡视路线问题,我们用Kruskral 算法对原路线图进行处理,求得其最小生成树,并以巡视总路程、各组巡视时间和路程(时间)均衡度为目标函数建立模型,通过图论软件包、Matlab 软件求解,并对结果进行均衡度检验,设计出了最佳巡视路线,而且对影响最佳巡视路线的因素进行了定量分析。

针对问题一:问题一我们运用了用Kruskral 算法对原路线图进行处理,求得其最小生成树,提出了分块准则,我们根据分块准则,建立了以巡视总路程和路程均衡度为目标函数的多目标标模型,并通过分析比较和路程均衡度检验,最终得出了最佳巡视路线,此时巡视总路程公里5.622=S ,路程均衡度为%3.6=s α具体巡视路线见表三。

针对问题二:我们通过分析可知在此种情况下至少需分四组巡视,并在题一得出的最小生成树的基础上,提出分块准则,建立了以个组巡视总时间和时间均衡度为目标函数的多目标模型,并通过分析比较和时间均衡度检验,得出了最佳巡视路线,此时25.2124.22,27.22,05.224321====T T T T 小时,小时小时小
时,时间均衡度%7.6=t α,具体巡视路线见图二。

针对问题三:我们通过图论软件包求出了所有的点到点O 的最短距离,以及离O 最远的点为H 点,我们以巡视H 点的最短时间为各组各组巡视时间的上限,运用图论软件包和自己分析判断,最终制订了最佳巡视路线,此分组组数为23组,具体数据和巡视路线见表五。

针对问题四:我们假设该问题是已经定分为三组的情形,且在乡镇停留时间为在村停留时间整数倍情况下讨论V t T 和,的改变对最佳巡视路线的影响。

由问题一的求解结果可知,第三组巡视路线较第一组、第二组巡视路线长,所以我们只讨论在V t T 和,改变时对第三组巡视路线的影响进行分析以说明问题。

最终得出结论:停留时间的改变对最佳巡视路线影响较大;汽车时速的改变对最佳巡视路线的确定影响较小。

关键词:Kruskral 算法 图论软件包 最小生成树
1.问题重述
1.1问题的提出
下图为某县的乡镇、村公路网络示意图,公路边的数字为该路段的公里数。

今年夏天某县遭受水灾。

为考察灾情、组织自救,县领导决定,带领有关部门负责人到全县各乡镇、村巡视,巡视路线指从县政府所在地出发,走遍各乡镇、村,又回到县政府所在地的路线。

1.2需要解决的问题
问题1:若分三组(路)巡视,试设计总路程最短且各组尽可能均衡的巡视路线图
问题2:假定巡视人员在各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。

要在24小时内完成巡视,至少应分几组;给出这种分组下你认为最佳的巡视路线。

问题3:在上述关于T , t 和V 的假定下,如果巡视人员足够多,完成巡视的最短时间是多少;给出在这种最短时间完成巡视的要求下,你认为最佳的巡视路线。

问题4:若巡视组数已定(如三组),要求尽快完成巡视,讨论T ,t 和V 改变对最佳巡视路线的影响。

2.问题分析
2.1问题一的分析
此题要求我们分三组巡视路线,使三组的总路程最小且各组尽可能的均衡,为此我们可以考虑建立以三组巡视路线总路程值最小和三组路程的均衡度两个目标函数的模型。

首先我们可以运用Kruskral 算法构造巡视图的最小生成树,然后以最小生成树的主干将生成树分成三组,分别构造出每组总路线值最小的回路,如果以上两个目标值不佳,我们还可以重新分组,进过多次调整达到较为合理的结果。

2.2问题二的分析
此问在第一问基础上增加了时间限制,要求在二十四小时内完成巡视,我们算得完成巡视所需的总停留时间为69小时,如果按照第一问中分三组巡视,完成巡视所需的总停留时间应该不大于72243=⨯小时,则每辆汽车行驶的时间不能超过()136972=-小时,而车行驶速度为35公里/每小时,这显然不能满足需求,为此我们考虑至少需要分四组,如果分四组,完成巡视所需的总停留时间应该不大于96244=⨯小时,则每辆汽车行驶的时间不能超过()96996=-小时,在这种情况下,巡视的总路程的最大值为()1015356996=⨯-公里,我们以题一巡视总路程622.5公里为参考值,将巡视人员分为四组是可行的,然后我们分别以四组巡视的总路程、四组路程均衡度、四组完成巡视的停留时间和时间均衡度为目标函数建立模型,并重点考虑四组完成巡视的停留时间和时间均衡度为目标函数建立模型。

2.3问题三的分析
此题在第二问基础上放宽了条件,即巡视人员不受限制,此时完成巡视的时间由离县政府最远的乡(镇)或村决定要求完成巡视的最短时间,我们只要求离O 点最短距离最大的巡视点,然后算出行驶时间与在巡视点停留的时间之和即
为完成巡视的最短时间,在最短巡视时间要求下,如果我们可以分足够多的组,必定能完成巡视人物,但考虑到这在现实生活中是不可能的,所以我们应该在满足条件的基础上尽量减少巡视组数,然后求出最小生成树后可以对每个结点进行遍历,借助图论软件包进行协助,这样可以求出最佳的巡视路线,
2.4问题四的分析
假设该问题是己定分三组的情形,且要求在尽快完成巡视的情况下讨论,的改变对最佳巡视路线的影响。

由问题一的求解结果可知,第三组巡视V
T和
t
路线较第一组、第二组巡视路线费时,故我们不妨讨论在V
,改变时对第三
t
T和
组巡视路线的影响进行分析以说明问题。

3.模型假设
假设一:汽车在路上的速度时一定的,不会出现抛锚等现象;
假设二:巡视过程中,在每个乡镇、村停留时间一定,不因特殊情况而延误时间;假设三:每个小组的汽车行书速度基本相同;
假设四:分组后,各小组只能走自己区内的路,不能走其它小组的路,出公路外。

假设五:村镇被巡视一次后,再次经过时不会停留。

假设六:巡视时可以经过一条路多次
4.符号约定
i M 乡(镇)的巡视数(() 2,1=i )
i m 村的巡视数
m ax S
是各巡视组中最长的路程
t α
各组时间均衡度
5.数据处理
为了便于制定出最佳的巡视路线,首先我们运用Kruskral 求得巡视路线图的最小生成树:
图1 最小生成树
6.问题一的解答
针对问题一我们建立模型一 6.1模型一的建立 6.1.1确定目标函数
根据题意,根据题目信息,我们将巡视路线图抽象为一个赋权无向连通图()E V G ,,现要分三组进行巡视,则需要将()E V G ,分成三个子图()3,2,1=i G i ,在每个子图I G 中寻找路程最小的回路()3,2,1i S ,于是我们以汽车行驶总路程和各组行驶路程的均衡度为目标函数:
⎩⎨⎧s
S
Min α 6.1.2 确定约束条件
各组行驶路线路程最小值:
()3,2,1,=i S Min i 则行驶路线总路程最小值:
∑=3
i i S Min S Min
根据路线巡视图可知,除县政府意外有52个巡视点,则各组巡视点之和应该满足
523
=∑i
i
V
且各组行驶路程的均衡度s α应该小于0.1才算比较均衡即
()()()1.0<-=i i i s S Max S Min S Max α
6.1.3 综上所述,得到问题一的模型
⎩⎨⎧s
S
Min α ()()()⎪⎪⎪
⎩⎪⎪
⎪⎨⎧
=-=
=∑∑52.3
3i i
i I i s i i
V S Max S Min S Max S Min S Min t s α
6.2 模型一的求解 6.2.1确定准则
为了设计出更为合理的巡视路线,我们规定了以下准则 准则一:尽量使同一支干上集分支上的点分在同一组; 准则二:尽量使相邻干支上的点分到同一组; 准则三:尽量将长的干支与短的干支分到同一组
6.2.2求解过程
在以上准则前提下,我们根据最小树分块原则,将图(),G V E 初步分块成三个子图i G ()1,2,3i =,提出了三种设计方案,每种方案是在前种方案基础上进行调整,最终确定方案三时最佳的。

设计方案一:
我们根据分组原则确定第一条分组方案,方案一如下(具体路线图见附图一)
表一:巡视路线图1
5.5783
==∑i i
S Min S Min 公里,
路程的均衡度为:
()()
()
%6.35=-=
i i i s S Max S Min S Max α
方案一结果分析
由计算结果可知,行驶总路程5.578=S Min ,结果较满意,但均衡度%10%6.35<=s α,说明此分组方案明显不能达到均衡的要求,故需重新调整分组方案,为此我们考虑第二种分组方案。

设计方案二:
鉴于方案一不能满足要求,故我们提出来方案二,方案二如下(具体路线图见附图二)
表二:巡视路线图2
5.6003
==∑i i
S Min S Min 公里,
路程的均衡度为:
()()
()
%0.17=-=
i i i s S Max S Min S Max α
方案二结果分析
此结果虽然较第一种行驶总路程有所增加,但均衡度明显有所改善,考虑到此时均衡度i α仍然大于0.1,故我们需进一步改进。

设计方案三:
第三组方案如下(具体路线图见下图2)
5.6223
==∑i i
S Min S Min
路程的均衡度为:
()()
()
%3.6=-=
i i i s S Max S Min S Max α
方案三结果分析
经调整以后计算发现,总的行驶路程有所增加,但增加不大;路程的均衡度α已经满足要求,故我们认为方案三是合理的分组方案,下图2 =
3.6<
%
10
%
s
我们确定的具体的三组巡视路线图
图2 三组巡视路线图
7.问题二的解答
针对问题二,我们建立了模型二。

7.1模型二的建立 7.1.1确立目标函数
此题在要求在24小时内完成巡视,且各乡(镇)停留时间T=2小时,在各村停留时间t=1小时,汽车行驶速度V=35公里/小时。

所以我们建立以下目标函数:
⎩⎨⎧t
i T α 7.1.2确定约束条件
各组的巡视时间为
V S T Z t C T i i +⨯+⨯= 如果要在24小时内完成巡视,则
()3,2,1,24=<i T i 且分组的组数N 应满足下式
N V S t T ⨯<=+⨯+⨯243517
同样巡视的总地点数
523
=∑
i i
V
且时间均衡度也应当满足
()()
()
1.0<-=
i i i t S Max S Min S Max α
7.1.3综上所述,得到问题二的模型
⎩⎨⎧t
i T α
()()()()⎪⎪⎪⎪⎩⎪
⎪⎪⎪
⎨⎧==<⨯<=+⨯+⨯<-=+⨯+⨯=∑523,2,1,242435171.03
i i
i i i i t i i V i T N V S t T S Max S Min S Max V S T Z t C T α
7.2模型二的求解 7.2.1确定准则
首先,为了制定更加合理的巡视路线,在分组时应遵从以下准则:
准则一:尽量使同一干枝及其分枝上的点分在同一组; 准则二:应将相邻的干枝上的点分在同一组; 准则三:尽量将长的干枝与短的干枝分在同一组. 准则四:尽量使各组的停留时间相等. 7.2.2求解过程
由题意算得停留总时间小时690=T ,要在24小时内完成巡视,则应满足
N S ⨯<=+2469,
由问题一结果可知S 的值最小也有578公里,将S 带入前式得
56.3>=N ,
可见N 至少为4.
为此,我们同样采用问题一的准则,根据最小生成树的分块原则,我们将图()E V G ,分块成四个子图()4,3,2,1=i G i 。

并找出满足条件每个子图的最佳回路,
最终我们经过计算分析得到了4=N 是符合要求的,再此情况下设计方案和有关结果如下(其中用红色标记的是经过却不停留的村或乡镇,):
表四:巡视路线图4
8.6753==∑i
i
S Min S Min
路程的均衡度为:
()()
()%9.22=-=
i i i s S Max S Min S Max α
时间均衡度为:
()()
()
%7.6=-=
i i i t S Max S Min S Max α
巡视路线图如下:
图二,四组巡视路线图
7.3模型二结果分析 由结果可知,行驶的总路程叫第一问结果增大,由于此种情况会不可避免的走重复路,所以总路程增大时在情理之中;路程的均衡度%10%9.22>=s α,但此时我们主要考虑的是在规定时间内完成巡视,故时间和时间均衡度时考虑的主要因素,而路程的均衡度为次要因素,结果显示时间均衡度%10%7.6<=t α,符合题目要求,所以此时分四组巡视不仅满足要求,而且其设计方案也是最佳的。

8.问题三的解答
针对问题三,我们建立了模型三。

8.1模型三的建立 8.1.1确立目标函数
按照题意我们以完成巡视最短时间和各组巡视时间建立目标函数,目标函数为:
⎩⎨⎧i
n
i M T T 8.1.2确定约束条件
离O 点最远的最短距离为
D Max ,

⎪⎪⎩
⎪⎪⎨⎧+⨯+⨯=巡视点为村;巡视点为乡镇;,2,2t V D Max T V
D
Max T n
i M 各组巡视时间
() 2,1=+=i T V
S T i i i
如果要要在最短时间内完成巡视,则各组巡视时间必须满足:
n i M i T T < 同样巡视的地点总数也应满足
() 2,152==∑N V
i
N
i
8.1.3综上所述,得到问题三的模型
⎩⎨⎧i
n
i M T T ()()⎪⎪⎪⎪⎪⎪⎩⎪
⎪⎪⎪⎪⎪⎨⎧<===+=⎪⎪⎩⎪⎪⎨
⎧+⨯+⨯=∑n
i M i i N
i i i i n i M T T N V i T V S T t V D Max T V D
Max T 2,1522,1,2,2
8.2 模型三的求解
我们运用图论软件包求得离O 点距离最远的巡视点为H 点,由图值巡视点
H 为乡镇,从O 到H 最短距离为
公里9.76=D Max ,
则完成巡视的最短时间为
小时39.6235
2
9.76=+⨯=
n i M T O 到个巡视点的最短距离见附表一,然后我们在保证巡视每点距离最小,并满足各组巡视时间不超过6.39小时的前提下,尽量使各组巡视时间接近6.39,从而使各组的巡视地点数目尽量增加,减少分组数量,通过观察和主观判断,我们最终确定分23组进行巡视,各组巡视路线如下表:
8.3模型三的结果分析
由上表可以看出,所有组巡视的总时间都小于6.39小时,除了23组外,其它组的巡视时间基本在6小时附近波动,而且巡视点只有一个的只有第一组、第五组和第十一组,其它的巡视点都在两个以上,故认为上述设计的巡视路线认为是最佳的。

9.问题四的解答
针对问题四,我们建立了模型四。

9.1模型四的建立 9.1.1确立目标函数
由问题一的求解结果可知 ,第三组巡视路线较第一组 、第二组巡视路线长,故我们不妨讨论在V t T 和,改变时对第三组巡视路线的影响进行分析以说明问题。

假设乡(镇)停留时间是村停留时间的n 倍()0>n ,则以该组完成巡视需要的时间为目标函数:
3
T

()t m n M V
S
mt T M V S T ⨯++=++=
333333 9.1.3综上所述,得到问题四的模型
()t m n M V
S
mt T M V S T ⨯++=++=
333333 9.2 模型的求解
将第三组巡视的有关数据带入上式得:
()t n V
T ⨯++=1162.2160
9.3模型四的讨论分析
下面就V ,t 的改变即行程速度和停留时间的改变,对上式模型的分析如下:
(1)若t 为定值,则式中()116+n 是常数,V ,0T 分别是自变量和因变量,且V ,0T 之间为反比例函数。

假设,5.0,2==t n ,则0T V -如下:
050100150
200
250
V
T 0
由上图可知,此时提高汽车的时速V ,0T 变化很小,说明V 对0T 影响不明显,即增大时速V 对最佳巡视路线的选择影响不大。

(2)若V 为定值,则式中V 2
.216是常数,t ,0T 之间是正比例函数关系。


设小时公里/35=V ,2=n ,则0T t -如下:
500
10001500
2000
2500
t
T 0
由上图可知,此时停留时间t 减小,0T 成线性递减趋势,从而说明t 对0T 的影响明显,即停留时间t 对最佳巡视路线的选择影响较大。

综上所述,停留时间的改变对最佳巡视巡视路线影响比较大;汽车时速的改变对最佳巡视路线的确定影响很小。

10.模型优缺点
10.1 模型的优点
优点一:模型一和模型二分部采用了路程均衡度和时间均衡度进行了评估,提高了模型的实用性;
优点二:在模型的求解时,先进行了主观判断,再利用计算机软件进行求解,大大减少了计算量。

优点三:模型求解过程,对模型进行了逐步调整,增加了结果的准确度
10.2 模型的缺点
缺点一:由于本模型要分析比较,运算量较大,出现误差在所难免;
缺点二:本文是在假定汽车匀速行驶 ,巡视组在乡镇的停留时间为村的倍数等条件下建立模型 ,在操作时根据实际情况可以适当调整;
缺点三:在分块的过程中,没有明确的算法,只是通过主观判断来将子图的顶点进行调整;
11.模型的改进与推广
11.1模型的改进
(1)由于该模型采用网络图的最小树形图与以O为出发点的最短路树形图相结合的方法求解是比较好的 ,
(2)由于在建模过程中对实际可能发生的情况考虑较少所以在实际应用中,某些情况仍需进步讨论,使得到的方案更加实用
11.2模型的推广
这种设计最佳路线的问题在实际生活中有很多,所以此模型在日常中发挥了很重要的作用。

在解决多路旅行商,车辆路线组织、考察某地灾情和作业调度等方面的问题时可以用这些方法来解决。

12.参考文献
[1] 宋来忠,王志明,数学建模与实验,北京:科学出版社,2005。

[2] 韩中庚,数学建模方法及其应用,北京,高等教育出版社,2007。

[3] 杨学桢,数学建模方法,河北大学出版社,1999。

附录
附录一:
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';
a(find(a==0))=inf;
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
附图一:
附图二:
附图三:。

相关文档
最新文档