数学建模论文.docx
- 文档编号:23421251
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:27
- 大小:1.30MB
数学建模论文.docx
《数学建模论文.docx》由会员分享,可在线阅读,更多相关《数学建模论文.docx(27页珍藏版)》请在冰豆网上搜索。
数学建模论文
交巡警服务平台的设置与调度
摘要:
本文在充分理解题意的基础上,忽略了一些次要的客观因素,提出了合理的假设。
通过深入的分析,将本题归纳为一个带有约束条件的优化问题,约束条件为警车三分钟左右行驶的路程。
问题一:
由于城市的复杂性,便不能确定具体路径,因此针对该问题我们没有采用常规的迪杰斯特拉算法,而是采用了动态规划法。
基本思路是通过Matlab编程,确定离某个路口节点最近的服务平台的位置,从而确定其所在的管辖范围。
忽略路线的影响,以某个服务平台为中心,遵循3分钟左右可以到达的原则,在其附近逐个寻找节点,从而确定管辖范围。
对警力的调度问题建立了数学模型:
已知两组点的坐标,A组13个点,B组20个点。
现在要求在B组中不重复的选择13个点,使其到达A组中相对应的某个点的距离最小,并达到最优。
利用附件以及简单的处理大量的数据之后再次编写程序得出结果,并且将计算比较得到的结果后得出最优解。
由于前面得出了大量的结论,很容易在原图中可以看出一些不合理的地方,对其简单的修改管辖范围和增设平台服务区,使之较合理化。
问题二:
对于合理性分析来说,要通过大量的数据证明来分析。
首先要确定一个判断的依据。
本文的基本思思路是:
在60个服务平台中,通过计算彼此之间的距离确定服务平台的密集程度并结合该地段的案件发生率进行判断合理性。
原则是密集度高案发率相对高就为合理。
全程追捕的模型采用了模糊数学分析法,通过对路程的计算,得出案犯不能短时间内到达的路口,并封锁该路口。
然后再往回逼近将其逮捕。
这个模型建立的前提是案犯选择各个路口的概率相同,而且使用普通车辆,时速正常,在这些情况下建立模型对匪车进行围堵。
关键词:
交巡警平台;动态规划;图论算法;C语言编程;路口节点
一、问题重述
试就某市设置交巡警服务平台的相关情况,本文分析且研究了以下的问题:
1.a、该市中心城区A的交通网络和现有的20个交巡警服务平台的设置情况示意图,相关的数据信息见附件。
现为各交巡警服务平台分配管辖范围,使其在所管辖的范围内出现突发事件时,尽量能在3分钟内有交巡警(警车的时速为60km/h)到达事发地。
b、对于重大突发事件,需要调度全区20个交巡警服务平台的警力资源,对进出该区的13条交通要道实现快速全封锁(交通要道已在图中标明)。
实际中一个平台的警力最多封锁一个路口,现要合理的调度该区交巡警服务平台的警力。
c、根据现有交巡警服务平台的工作量不均衡和有些地方出警时间过长的实际情况,拟在该区内再增加2至5个平台,确定需要增加平台的具体个数和位置。
2.a、针对全市(主城六区A,B,C,D,E,F)的具体情况,按照设置交巡警服务平台的原则和任务,分析研究该市现有交巡警服务平台设置方案(参见附件)的合理性。
如果有明显的不合理,给出解决方案。
b、如果该市地点P(第32个节点)处发生了重大刑事案件,在案发3分钟后接到报警,犯罪嫌疑人已驾车逃跑。
为了快速搜捕嫌疑犯,请给出调度全市交巡警服务平台警力资源的最佳围堵方案。
二、问题分析及基本算法
通过对题目的探讨和数据的分析,可以得出以下几点结论:
1.在市中心的案件发生率比较高,相对的交巡警服务台相对较多,而且比较的密集;
2.交巡警服务台的管辖范围大致可以确定在以服务台为圆心,半径为3km的圆形范围内,通过编写C语言程序在坐标轴上找出符合条件的点,程序的结果是手动输入一个坐标会提示该点在某个服务台的管辖范围,相当于一个简单的查询系统,比较方便。
当然有一定的误差,所以在求解时在圆外接一个正方形,确定大致的坐标范围以减小误差。
为了方便观看,用matlab把各台的管辖范围标出;
3.市中心的服务台比较多,相对于郊区其管辖范围会小点;
4.当突发重大案件时,在20个服务台中调动13个服务台进行道路的封锁,这时只要这13个服务台的位置到达指定地点的时间最短,考虑到时间的叠加性,即最后一个平台封锁完毕时所有的时间为整个路口封锁的时间。
针对这个问题我们分别建立了两个模型:
一个是建立数据库表格分别算出每个路口到达各个服务台的距离,找出最短点,并建表显示。
另一个是编写C程序让其自行运行得出结论,将两个模型求解的结果进行比较得出最优解;
5.由于郊区路面及人口相对较少的原因,还有案件发生率低等一系列原因,所以相对服务台会少一点,从而导致了出警时间过长,案件得不到有效的处理。
这时我们采用了以节点来找“服务台”的原理来确定即将设置的服务台的位置。
通过对数据的处理得出发案率较高却没有被之前20个服务台覆盖的路口节点,再以它们为中心画圆,找出交集点,从而确定新的交巡警服务台。
通过对数据的处理也可以看出某几个路口节点的不合理性。
对这个小问题的处理结果大致可根据上述的结论得出。
6.对于最后的合理性分析,采用了这样的一种思想:
针对需要分析的五个市区(A区除外)的所有的服务平台进行距离之间的计算,得出它们公共的点,并根据该点案件发生率来确定这样设置的合理性。
原则是:
距离近的平台或多个平台公共的地点案件发生率高就为合理,否则不合理(距离近或者远以60为标准)。
7.调度全市的警力对案犯进行追捕,由于案犯的去向不定,但路径确定。
可采用模糊数学的思想进行分类讨论法,结合算数和实际对其进行调度。
运用图论算法,得出各路程段的距离和案犯通过某个节点需要的最小时速。
P点周围的路口节点确定,把时间差考虑在内,综合运用图论法,结合各个节点的坐标得出最佳的调度围堵方案。
三、模型的基本假设
1.警务人员出警时道路畅通,道路都是双行线,警车行驶正常,不会有绕路的现象出现;
2.该市的所有地点都可以用二维坐标系来表示,不受地形的影响;
3.各个划分区域内较短时间内,只有一起案件发生;
4.警员全力配合不会有晚点出发的现象;
5.警车都在路上巡逻,去处理案件的时间不算;
6.计算出来的坐标点可以还原到现实中的具体地点;
7.案犯在逃跑时不会在市区内迂回,不会走“回头路”;
8.在整个路途中,转弯处花费的时间不记;
9.案犯对市区不熟悉,选择各个路口的概率相同。
四、数字符号说明
1.各个服务台的说明
A1服务区表示坐标为(413.0,359.0)的点
A2服务区表示坐标为(403.0,343.0)的点
A3服务区表示坐标为(383.5,351.0)的点
A4服务区表示坐标为(381.0,377.5)的点
A5服务区表示坐标为(339.0,376.0)的点
A6服务区表示坐标为(335.0,383.0)的点
A7服务区表示坐标为(317.0,362.0)的点
A8服务区表示坐标为(334.5,353.5)的点
A9服务区表示坐标为(333.0,342.0)的点
A10服务区表示坐标为(282.0,325.0)的点
A11服务区表示坐标为(247.0,301.0)的点
A12服务区表示坐标为(219.0,316.0)的点
A13服务区表示坐标为(225.0,270.0)的点
A14服务区表示坐标为(280.0,292.0)的点
A15服务区表示坐标为(290.0,335.0)的点
A16服务区表示坐标为(337.0,328.0)的点
A17服务区表示坐标为(415.0,335.0)的点
A18服务区表示坐标为(432.0,371.0)的点
A19服务区表示坐标为(418.0,374.0)的点
A20服务区表示坐标为(444.0,394.0)的点
2.各个路口的相关说明
第1个路口表示标号为12的路口第2个路口表示标号为14的路口
第3个路口表示标号为16的路口第4个路口表示标号为21的路口
第5个路口表示标号为22的路口第6个路口表示标号为23的路口
第7个路口表示标号为24的路口第8个路口表示标号为28的路口
第9个路口表示标号为29的路口第10个路口表示标号为30的路口
第11个路口表示标号为38的路口第12个路口表示标号48的路口
第13个路口表示标号为62的路口
五、模型的建立与求解
5.1服务平台的模型建立
1.
(1)建立二维直角坐标系,将题目附图1中的服务台和路口节点的坐标标在坐标系中。
(2)、将20个服务台划分为20个点,以它们为中心坐标,半径为3km用matlab开始画圆,划分每个服务台的大致范围,图表见附件(附图1)。
(3)为了减小误差,在圆的外部外接一个正方形,确定了一定的范围坐标,根据这些坐标编写程序。
(4)编写程序将数据中的路口节点归类,使输入一个路口节点的坐标时,就会相应的输出并确定该点在某个服务台的管辖范围。
程序源代码见附件(附录1)。
例如坐标为(440,400)的地点发生了交通案件,将该地点的坐标输入之后就可以得到以下的结果:
该点和A1服务区中心相距49.091751
该点和A2服务区中心相距67.955868
该点和A3服务区中心相距74.788034
该点和A4服务区中心相距63.144675
该点和A5服务区中心相距103.812331
…………
该点和A20服务区中心相距7.211103
该点在A20服务区内
详细运行结果剪切图见附件(附图2)。
将数据中给出的72个路口节点依次输入之后就可以大致知道其所在的管辖范围,有可能出现一个节点在多个服务台的管辖范围内,这时我们需要再次进行比较距离,得出最近的一个服务台。
各个范围确定了之后,当某个地点发生了交通案件,总部只要输入坐标查询就知道它属于哪个服务台的管辖了。
(5)上述程序没有考虑到一个案发地点可能会同时出现在几个甚至多个服务台的范围内,当出现这种情况的时候就无法确定其在哪个服务台的管辖范围。
因此,针对这种情况对上述程序进行优化,优化程序见附件(附录2)。
最终的输出结果是该点同时在几个服务台的圆形区域内并给出了距离,自己很容易就能选择出距离最短的一个服务台。
输出结果如下:
在输出的结果中很容易就可以判断出该点距离A8最近,所以能够确定其在A8服务台的管辖范围内。
2.
(1)现在需要对13个路口进行封锁,我们可以这样考虑:
如下图是12×20组数据的部分excle表
用matlab软件先算出第一个交通要道点到20个交巡平台的距离,找出最短距离,此时的交通平台在突发事件发生时立即赶到此处进行封锁。
如下图,按照标号大小顺序排列:
再计算第二个到剩下的19个交巡平台的距离,找出最短距离,,此时的交通平台在突发事件发生时立即赶到此处进行封锁。
再算第三个,第四个…….依次类推。
最终计算的结果可得出如下的结论:
当发生突发事件时应该按照下面的调度方法进行调度警力:
标号为12的路口由A12服务区负责封堵
标号为14的路口由A14服务区负责封堵
标号为16的路口由A16服务区负责封堵
标号为21的路口由A11服务区负责封堵
标号为22的路口由A13服务区负责封堵
标号为23的路口由A10服务区负责封堵
标号为24的路口由A15服务区负责封堵
标号为28的路口由A7服务区负责封堵
标号为29的路口由A9服务区负责封堵
标号为30的路口由A8服务区负责封堵
标号为38的路口由A3服务区负责封堵
标号为48的路口由A6服务区负责封堵
标号为62的路口由A4服务区负责封堵
制成表格后详见附件(附表1)
(2)我们还可以这样来建立一个思想相似的模型:
调度20个交巡警服务平台快速封锁13条交通要道可以将问题转化成用最短的时间将13条交通要道进行封锁,用最短的时间能分析出离各交通要道最近的服务平台。
总结以上所述可以用算法将离各路口最近服务平台找出。
可以编写程序进行计算,将数据输入,编写程序见附件(附录3):
运行之后就可以清楚的看出结果如下:
标号为12的路口由A12服务区负责封堵
标号为14的路口由A14服务区负责封堵
标号为16的路口由A16服务区负责封堵
标号为21的路口由A11服务区负责封堵
标号为22的路口由A13服务区负责封堵
标号为23的路口由A10服务区负责封堵
标号为24的路口由A15服务区负责封堵
标号为28的路口由A7服务区负责封堵
标号为29的路口由A9服务区负责封堵
标号为30的路口由A8服务区负责封堵
标号为38的路口由A3服务区负责封堵
标号为48的路口由A6服务区负责封堵
标号为62的路口由A4服务区负责封堵
运行窗口剪切图见附件(附图3)
比较得出和之前的算法结果相同。
在编写程序和对数据的处理过程中发现,运行时没有考虑到服务台的先后顺序,在第二次选择服务台时九只剩下19个可以选择了,就是说有可能服务台在被某个路口选择之前被另一个稍远的路口选择而无法被更近的路口选择。
所以该模型还有待改进。
由于两种模型得出的结果的相同,所以认为其为最佳的方案,有一定的误差,但是误差不大。
如要对其进一步优化的话,可以从克鲁斯卡尔(Kruskal)算法中得到启示。
3.由前面的结果可以得出,市区可以用警力过盛来形容,市区服务台的管辖范围重叠的现在很明显,可以适当的撤除几个服务台,当然这和市区出现交通案件的概率过高有关。
而郊区的警力有些薄弱,有的地区很明显没有被任何的服务台覆盖,所以就会导致出警时间过久。
由大量的处理数据可以看出坐标为(246,337)和坐标为(334,336)的节点在发生交通案件时,服务台的警力不能在3分钟内到达处理案件,所以以这两个点为圆心,以3km为半径画两个圆,在这两个圆的范围内分别设置一个服务台都是合理的,效果图可以清楚的看出要增设的位置和个数,详见附件(附图4)。
5.2建立全市服务平台合理化分析模型
1.对全市平台合理性的分析问题,可以建立这样的模型:
首先将全市大约60个服务平台进行量化,得到60组数据见附件(附表2),在excel表格中运用基本的小计算可以计算出距离较近的各个平台之间的距离,并且可以给出各点案件发生率,制成部分可以说明问题的数据表格详见附件(附表3)。
按照距离和案件发生率的比例满足一定的条件判断其合理性。
通过对表格的数据分析可以得出结论:
B区合理:
相对较远的平台范围内案发率较低,相对较近的平台范围内案发率高;
C区不合理:
相对较远的平台范围内案发率较高;
D区较为合理:
部分相对较远的平台范围内案发率较低,也有部分相对较远的平台范围内案发率高;
E区不合理:
相对较远的平台范围内案发率较高;
F区不合理:
相对较远的平台范围内案发率较高。
2.突发案件的处理过程分析如下:
由于在三分钟后接到报警,加之出警的时间,确定案犯逃离的初始时间为3.5(min)。
经计算得出各个节点之间的路程。
经过讨论设定现实中100km/h为案犯的极限速度,最终得到在地图上离p点的路程超过58mm的点为案犯在规定时间无法到达的点,在此封锁路口即可……以此类推,最终将案犯“逼”到一条路上对其进行逮捕。
当案件发生后案犯有三条路程可以选择(节点用数字代替)。
(1)32-31-15-28-39(出A区),计算各个路口节点彼此之间的路程依次为(11.2mm,25.2mm,54mm,128mm)。
经过计算得出案犯到不了28节点,所以在接到报警后调动警力对28路口进行封锁并沿28-15路线进行追捕。
(2)这条路又有很多个分支,详细见附件(附表4)。
看表分析可以得出,案犯可以到达15点,但15点不安全(由第一种假设得出)。
再次分析,案犯可以到达36点,但到不了16点,所以可以派警力把14路口封锁沿16-36路线进行追捕,案犯在短时间也到达不了3节点,安排警力封锁3路口并延3-45、55-46路线方向追捕。
(3)案犯从32-7-30-48逃出A区,或者从32-7-47仍在A区迂回。
接到报警后在C区安排警力从30、48进行围堵并且将60点封死。
综上所述,案发接到报警后,在D区调动部分警力对28、29口进行封堵,并沿相应的路线向A区内追捕;在A区内调动部分警力封锁16点,逐个扫节点向北追捕;还有封锁60路口向内追捕逃犯,如果案犯在A区,他将会在A区市中心某个路口节点被捕。
另外在C区调动部分警力将C区的外围封锁,沿着30、48追捕。
最终的结果是案犯将在A区或C区被捕。
六、模型的检验及优化
1.模型检验
本文始终以“出警时间最短,到达现场最快”为原则、以3分钟为限制条件建立了数个模型,编写程序得到了一个查询系统来确定服务平台的管辖范围,实用性比较高,查询时也比较方便。
在计算求解第二个模型时,通过克鲁斯卡尔(Kruskal)算法的启示对其进行优化,并用程序算法得出结果,将两个结果进行比较得出最终的结论也很合理。
前面两个模型是合理的,从而在此基础上进行的分析和增设服务平台位置也相对合理。
对于合理性的分析,模型的建立和判断标准依然遵循“出警时间最短,到达现场最快”的原则,还附加了案件发生率的条件,最终的分析结果也相对准确。
追捕和封锁路口之所以用的是相似一个数学模型是因为其原理大致相同,追捕考虑的更多的是在规定的时间内案犯是否能以一个正常的速度通过某个节点,如果要通过某个节点的速度大的离谱,显然只要在该节点围堵即可,最终的结果也是合理的。
整个模型的建立思路清晰,遵循可操作原则,科学性原则,可比性原则,模型建立出了在较理想下交警服务平台的最优设置和最优的调度方案。
2.模型优化
这几个模型的建立没有考虑到道路的畅通性,和现实中的地形影响。
特别是现实社会中的客观因素很多,不能保证能够满足限制条件,为了贴近实际,则应考虑道路的畅通性,对交通点进行细分。
在建立模型的时候,算的是路径,而不是路程。
但现实中警车应按照路线行驶,这样就会造成时间增加,误差增大。
因此只要将模型中算的路径距离转化成路程距离就会得出最优解。
用图论算法找出各路口到各个地块的最优线路以及最优线路的路称之,并将其存为数据文件,见附件(附表5)、(附表6)。
最后再用matlab求出最优路程值。
七、模型的应用及推广
本次建模解决了交巡警平台的最优选址问题,并给出了遇到紧急状况时的出警方案,当事故发生时,交巡警可以第一时间到达事发地点,有效的改善了交警的执行力。
在经济快速发展的今天,并伴随人口的快速增长,交通事故的发生率增长的很快,有效的设置服务平台可以给市民的人生安全一个有效保障。
该模型还可以推广到公交车的调度和市区中超市的分布等一些宏观调度的问题。
八、参考文献
[1]唐策善、黄刘生,《数据结构—用C语言描述》,北京:
高等教育出版社,1995年。
[2]薛定宇、陈阳泉,《初等运用数学效果的matlab求解》,北京:
清华大学出版社,2004年。
[3]孙霞林,用最优化选择原则求最短路径及长度,湖南师范学院学报,自然科学版,2002第2期。
[4]朱道远等编著,《数学建模案例精选》,科学出版社,2006年。
[5]姜启源、谢金星、叶俊,《数学建模》,高等教育出版社,2010年。
[6]谭浩强,《C语言程序设计》,北京:
清华大学出版社,2008年。
[7]胡红亮、赵芳玲、辛小龙,《数学建模与竞赛辅导》,西安:
西北大学出版社,2010年。
[8]任善强、雷鸣、叶俊,《数学建模》,重庆:
重庆大学出版社,1998年。
九、附件
(附录1):
服务台管辖范围程序编写如下:
#include
#include
#include
floatdim(floata,floatb,floatc,floatd)
{
returnsqrt((a-c)*(a-c)+(b-d)*(b-d));
}
voidmain()
{
floatfw[20][2]={
{413.0,359.0},
{403.0,343.0},
{383.5,351.0},
{381.0,377.5},
{339.0,376.0},
{335.0,383.0},
{317.0,362.0},
{334.5,353.5},
{333.0,342.0},
{282.0,325.0},
{247.0,301.0},
{219.0,316.0},
{225.0,270.0},
{280.0,292.0},
{290.0,335.0},
{337.0,328.0},
{415.0,335.0},
{432.0,371.0},
{418.0,374.0},
{444.0,394.0}
};
floatr=30.0;
floati,j;
intk;
printf("请输入需要判断的点的X,Y的坐标并用空格分割\n");
scanf("%f%f",&i,&j);//需要判断的点的坐标
printf("当前X:
%f,Y:
%f\n",i,j);
for(k=0;k<20;k++)
{
floatl=sqrt((i-fw[k][0])*(i-fw[k][0])+(j-fw[k][1])*(j-fw[k][1]));
printf("和第%d个服务区中心相距%f\n",k+1,l);
if(l<=r)
{
printf("在服务区A%d点内。
\n",k+1);
break;
}
}
if(k>=20)
printf("不在任何服务区内。
\n");
}
附录
(2):
改进后的程序:
#include
#include
#include
floatdim(floata,floatb,floatc,floatd)
{
returnsqrt((a-c)*(a-c)+(b-d)*(b-d));
}
voidmain()
{
floatfw[20][2]={
{413.0,359.0},
{403.0,343.0},
{383.5,351.0},
{381.0,377.5},
{339.0,376.0},
{335.0,383.0},
{317.0,362.0},
{334.5,353.5},
{333.0,342.0},
{282.0,325.0},
{247.0,301.0},
{219.0,316.0},
{225.0,270.0},
{280.0,292.0},
{290.0,335.0},
{337.0,328.0},
{415.0,335.0},
{432.0,371.0},
{418.0,374.0},
{444.0,394.0}
};
floatr=30.0;
floati,j;
intk,mark=0;
printf("请输入需要判断的点的X,Y的坐标并用空格分割\n");
scanf("%f%f",&i,&j);//需要判断的点的坐标
printf("当前X:
%f,Y:
%f\n",i,j);
for(k=0;k<20;k++)
{
floatl=sqrt((i-fw[k][0])*(i-fw[k][0])+(j-fw[k][1])*(j-fw[k][1]));
//printf("和第%d个服务区中心相距%f\n",k+1,l);
if(l<=r)
{
mark=1;
printf("在服务区A%d点内。
距离为%f\n",k+1,l);
}
}
if(mark==0)
printf("不在任何服务区内。
\n");
}
(附录3):
路口封堵的相关程序:
#include
#include
#include
v
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数学 建模 论文