高教社杯全国大学生数学建模竞赛B题参考答案.docx
- 文档编号:8550436
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:34
- 大小:109.75KB
高教社杯全国大学生数学建模竞赛B题参考答案.docx
《高教社杯全国大学生数学建模竞赛B题参考答案.docx》由会员分享,可在线阅读,更多相关《高教社杯全国大学生数学建模竞赛B题参考答案.docx(34页珍藏版)》请在冰豆网上搜索。
高教社杯全国大学生数学建模竞赛B题参考答案
交巡警服务平台的设置与调度优化分析
摘要
本文以实现警察的刑事执法、治安管理、交通管理、服务群众四大职能为宗旨,利用有限的警务资源,根据城市的实际情况与需求合理地设置了交巡警服务平台、分配各平台的管辖范围及调度警务资源。
并分别对题目的各问,作了合理的解答。
问题一:
(1)、根据题目所给数据,确定各节点之间的相邻关系和距离,利用Floyd算法及matlab编程求出两点之间的最短距离,使其尽量满足能在3分钟内有交巡警平台警力到达案发结点的原则,节点去选择平台,把节点分配给离节点距离最近的平台管辖,据此,我们得到了平台的管辖区域划分。
(2)、我们对进出该区的13条交通要道实现快速全封锁的问题,我们认定在所有调度方案中,某种方案中耗时最长的的围堵时间最短即最佳方案,利用0-1变量确定平台的去向,并利用线性规划知识来求解指派问题,求得了最优的调度方案。
(3)、在确定增添平台的个数和具体位置的问题中,我们将尽量保证每个节点都有一个平台可以在三分钟内到达作为主要原则来求解。
我们先找出到达每个平台的时间都超过三分钟的节点,并尝试在这些节点中选取若干个作为新的平台,求出合理的添加方案。
问题二:
(1)、按照设置交巡警服务平台的原则和任务,分析现有的服务平台的设置是否合理,我们以各区覆盖率作为服务平台分布合不合理的评价标准,得到C、D、E、F区域平台设置不合理。
并尝试一些新的设置方案使得设置更为合理,最后以覆盖率最低的E区为例,使用一种修改方案得到一个比原方案更合理的交巡警服务平台的设置方案。
(2)、追捕问题要求在最快的时间内抓到围堵罪犯,在罪犯和警察的行动速度一致的前提假设下,我们先设定一个具体较小的时间,编写程序检验在这个时间内是否可以成功抓捕罪犯,不行则以微小时间间隔增加时间,当第一次成功围堵时,这个时间即为最佳围堵方案。
关健字:
MATLAB软件,0-1规划,最短路,Floyd算法,指派问题
一、问题重述
“有困难找警察”,是家喻户晓的一句流行语。
警察肩负着刑事执法、治安管理、交通管理、服务群众四大职能。
为了更有效地贯彻实施这些职能,需要在市区的一些交通要道和重要部位设置交巡警服务平台。
每个交巡警服务平台的职能和警力配备基本相同。
由于警务资源是有限的,如何根据城市的实际情况与需求合理地设置交巡警服务平台、分配各平台的管辖范围、调度警务资源是警务部门面临的一个实际课题。
试就某市设置交巡警服务平台的相关情况,建立数学模型分析研究下面的问题:
(1)附件1中的附图1给出了该市中心城区A的交通网络和现有的20个交巡警服务平台的设置情况示意图,相关的数据信息见附件2。
请为各交巡警服务平台分配管辖范围,使其在所管辖的范围内出现突发事件时,尽量能在3分钟内有交巡警(警车的时速为60km/h)到达事发地。
对于重大突发事件,需要调度全区20个交巡警服务平台的警力资源,对进出该区的13条交通要道实现快速全封锁。
实际中一个平台的警力最多封锁一个路口,请给出该区交巡警服务平台警力合理的调度方案。
根据现有交巡警服务平台的工作量不均衡和有些地方出警时间过长的实际情况,拟在该区内再增加2至5个平台,请确定需要增加平台的具体个数和位置。
(2)针对全市(主城六区A,B,C,D,E,F)的具体情况,按照设置交巡警服务平台的原则和任务,分析研究该市现有交巡警服务平台设置方案(参见附件)的合理性。
如果有明显不合理,请给出解决方案。
如果该市地点P(第32个节点)处发生了重大刑事案件,在案发3分钟后接到报警,犯罪嫌疑人已驾车逃跑。
为了快速搜捕嫌疑犯,请给出调度全市交巡警服务平台警力资源的最佳围堵方案。
二、模型假设及符号说明
2.1、模型假设
1、假设各服务台职能,警力配备足以处理辖区内正常事故。
2、假设不考虑人口密度对警察办案的具体影响。
3、假设突发事件只发生在路口节点。
4、假设警察出警的地点都是平台处,不考虑巡警的情况。
5、假设交巡警接到报警后立即出警,且不考虑路面交通状况。
6、假设嫌疑人逃跑速度与警车的速度相同。
2.2、符号说明
道路起点坐标
道路终点坐标
第
平台的坐标
各个节点的最短路距离
分配矩阵
第
条道路,起点到终点一步可达的距离
中间过渡矩阵
出口到平台的距离
案发率距离
增加节点矩阵
计数
每行中除了0以外的最小值
每行中除了0和mm的最小值
三、模型建立及求解
3.1、为了模型的建立与分析,先模拟出道路图
图1A区交通图
程序:
lp1003
图2全市交通图
程序:
shitu
3.2、问题1的模型建立及求解:
3.2.1、管辖范围的求解
此问要求我们利用数据及附图,将各路口节点划分给最适合的服务平台,并要求各服务台管辖的范围内有突发事件发生时,尽量能在3分钟内有交巡警到达事发地(此时交巡警的行驶距离为3km),换算到比例图上,也就是30mm。
本题,不考虑其他因素,只注重唯一因素——距离。
所以,我们第一步用floyd算法求出各个节点之间的最短距离D。
、根据题中所给的各个节点的坐标,用matlab计算出任意两点之间的距离,得到92*92的邻接距离矩阵:
其中
分两种情况:
当第i个节点与第j个节点相邻时,
为两个节点的相邻距离。
不相邻时,
为一个充分大的数。
②、运用Floyd算法,求出任意92个节点到任意92个节点的最短距离,得到最短距离矩阵,根据问题需要,我们截取所得矩阵前20行,即任意20个服务平台间到任意72个节点(没有建立平台的节点)的最短距离矩阵
:
因为服务平台的编号为1到20,所以取D的前二十行,后七十二列为观察对象。
在观察对象中,取出每列的最小值,计入到原本为设为全0的
的矩阵A的相应的位置。
对于每一列而言,每列的最小值是最有可能小于3分钟的,如果最小值都不满足这个条件,那么对于这列对应的节点而言,就不存在三分钟可以到达的平台。
程序:
pingtai
由此,最后每个节点都会归属于某个服务平台,用matlab编程得出结果并绘制了管辖区域图如表1
服务平台编号
管辖范围(节点编号)
管辖容量
1
1、67、68、69、71、73、74、75、76、78
10
2
2、39、40、43、44、70、72
7
3
3、54、55、65、66
5
4
4、57、60、62、63、64
6
5
5、49、50、51、52、53、56、58、59
9
6
6、47
2
7
7、30、32、48、61
5
8
8、33、46
3
9
9、31、34、35、45
5
10
10、26
2
11
11、27
2
12
12、25
2
13
13、22、23、24
4
14
14、21
2
15
15、28、29
3
16
16、36、37、38
4
17
17、41、42
3
18
18、80、81、82、83
5
19
19、77、79
3
20
20、84、85、86、87、88、89、90、91、92
10
表1服务平台管辖范围
3.2.2、调度方案的求解
本题,我们使用运筹学中的指派方法来解决。
如果发生重大突发事件,需要调度全区20个交巡警服务平台的警力资源,对进出该区的13条交通要道实现快速全面封锁。
在全面封锁时,既需要使用最短的时间,还必须保证一个平台的警力只能封锁一个路口,这样就必然会多出7个平台。
先根据给出的数据,设立出指派问题的条件矩阵C。
C为
,其中前十三列是A区13个出口到二十个平台的最短路距离,剩余的七列用零补齐。
得到C之后,使用linprog算法,就得到我们需要的调度方案。
程序:
zhipai
根据前一问的解答我们可以得出任意服务平台
到任意出口
的最短距离
,引入0-1变量
:
据此我们建立关于服务平台调度的目标函数Z:
约束条件:
第一个约束表示要求每个服务台只能去1个或0个出口。
第二个约束表示每个出入路口有且仅有一个服务平台的警力支持。
综上,我们利用linprog编程得出了最优调度方案(程序见附件),结果见表2:
平台编号
2
4
5
7
8
9
10
11
12
13
14
15
16
出口编号
38
62
48
30
29
14
22
24
12
23
21
28
16
距离:
mm
39
3.5
24
5.8
104
82
77
38
0
5
32
47
0
表2出口平台调度方案
通过分析这些线路,我们知道线路最长的组合为8号平台到达29号节点,它所花的时间即为封锁路口的最终时间,且这个时间约为10分钟。
3.2.3、平台增加个数及位置的求解
本问要求在第1小问的前提下,根据服务平台的工作量不均衡及出警时间的不合理来增加服务平台的具体个数及位置,使整个交巡警服务平台系统趋于合理化。
在第一小问中,我们选择D每一列的最小值,把该节点划分给离他最近的平台管辖。
但这样的话,一方面会导致一部分的平台管辖的节点过多,其辖区内部的总案发率过高,而现实中,各平台辖区案发率应该相差不大。
另一方面,少量节点到每个平台的最短距离都大于30mm,即到任何平台的时间都超过3min,所以,我们就需要增设一些平台。
对于平台添加的原则是添加平台后使得所有节点都有平台可以在三分钟内到达。
首先,我们以距离出发,选择D前二十行中,其最小值大于30的列,把这些节点之间的距离从D中提取出去,组成一个方阵。
在这个方阵中,选择两节点之间距离小于30mm,小于30说明此两点可以在3min内到达彼此。
故可以任意删去一列,删去先出现的列。
现在得到需要添加的最多平台数就是上面剩下的那些列对应的节点n。
提取这些节点D中所在行,加上之前的20行,组成一个新的最短距离矩阵B。
其中A,B均为20+n*92的矩阵,A是全0阵,B是D中的一部分,进行五次迭代,出现我们需要的平台及对应的辖区。
迭代的规则是:
在B中选取每列的最小值,赋给A中相应的行列位置。
找到A中不为0的位置对应的案发率,把每个位置的距离数字乘以各自的案发率,并除去速度10,平台自身案发率*0.5加上。
所得数字为每一个平台的判断数。
逐行判断,如果某行的判断上数大于所有节点案发率平均数*2的话,就把该行中的最大数字在B中置为0。
重复上述三步,五次。
图3迭代前综合指标曲线分布与直方图
服务平台编号
管辖范围(节点编号)
管辖容量
1
1、67、68、69、71、73、74、75、76、78
10
2
2、43、44、70、72
5
3
3、54、55、65、66
5
4
4、57、60、62、63、64
6
5
5、49、50、51、52、53、56、59
8
6
6、58
2
7
7、30、32、47、48
5
8
8、33、46
3
9
9、34、35、45
4
10
10、26
2
11
11、27
2
12
12、25
2
13
13、22、23、24
4
14
14、21
2
15
15、31
2
16
16、36、37
3
17
17、41、42、92
4
18
18、80、81、82、83、91
6
19
19、77、79
3
20
20、84、85、86、87、88、89、90
8
29
29、28
2
39
39、38、40
3
61
61
1
表3调整后服务平台管辖范围
程序:
lp1015,zengjia
3.3、问题2的模型建立及求解:
3.3.1、全市交巡警服务平台合理性评价及方案设定
1、首先需要强调的是:
各个区的平台是不能跨区的
各个平台的辖区是不能重合的
满足这两点后,设定全市交警服务平台合理性评价:
警情主导警务原则:
根据管区道路交通流量、拥堵状况、治安复杂情况、发案量高低,科学确定平台管控区域;
快速处警原则:
城区接警后确保快速到达现场
方便与安全原则:
按照醒目、规范,方便群众和确保安全的原则,科学设置平台。
平台设置在遵循上述三大原则的基础上,应当结合辖区地域特征、人口分布、交通状况、治安状况和未来城市发展规划等实际情况,在充分考虑现有警力和财力并确保安全的条件下,科学确定平台的数量和具体位置。
在评价合理性的时候,我们引入了最大覆盖率:
被平台三分钟覆盖的节点数在区总节点数中占的比重。
所以对该市各个区分别进行Floyd算法,得到各自的最短路矩阵。
在平台所在的行中进行每列的最小值选择。
最小值小于30mm,就是被覆盖。
用这种方法分别得到六个区的最大覆盖率,即:
区域
A
B
C
D
E
F
最大覆盖率
0.9348
0.9178
0.6948
0.7692
0.6311
0.6759
表4区域覆盖率
程序:
fugai
由表中覆盖率可以看出,A区,B区的平台设置较为合理,其余几个区的平台设置较为不合理其中E区最差。
对覆盖率较差的区,可以进行平台设置的调整,调整的方案有三种:
不变动原有平台的个数与位置,添加若干个新的平台。
不变动原有平台的个数,改变平台的位置。
改变平台的个数,也改变平台的位置,以合理的标准去设置合适的平台
2、调整方案:
在此我们选取E区,采取方案
加以调整。
调整的具体实施:
在E区的最短距离矩阵中取出每行的最小值和次小值,并取出最多的十五个,对应的十五个节点就是新的调整以后的平台。
运行程序后得到新的平台设置为:
405、408、412、423、429、435、436、444、455、457、461、462、467、472、474
这十五个平台覆盖了75个节点,调整后E区的覆盖率为:
0.7282,比旧的平台设置要更为合理。
程序:
LP1017
3.2.2、最佳围堵方案的确定:
在该题目中,首先需要有两点假设:
嫌疑人驾车逃逸速度和警察追堵速度一直,均为60km/h
嫌疑人逃逸时不走重复路段
此时调用的平台是没有改动之前原市区图中设立的平台点,警方在案发后3分钟才接到报警,假如警察用了
分钟追堵住嫌疑人,那么嫌疑犯逃跑时间是
分钟。
能把嫌疑人追堵住,就是在他还没到,但可以到的所有节点都已经被警察提前到了。
也就是说,嫌疑犯逃跑时间是
分钟逃到的节点,可以被距离他最近的平台在
分钟以内到达,这样,嫌疑人就是
分钟中成功被追堵住。
我们先对全市进行floyd,算出最短距,并提取出32行的那行数据,赋给K。
然后
从1开始,直到我们认为足够长的时间,定为6分钟,每次增加0.1分钟不断迭代。
每次都找到嫌疑人在
分钟,和
分钟之间可以到达的节点,然后检测这些节点到区内最近平台的时间是否在
分钟,若是,则成功追堵;如不是,则继续迭代,知道出现第一个满足。
程序:
p
四、模型的评价
4.1模型优点
1、对题目所给数据大部分都进行了合理的应用和处理,对于实际问题理解的较为到位。
2、模型建立的思路简单清晰,算法较为灵活、执行效率教高。
3、模型能应用于其他种类的应急设施设置,整个模型有很好的通用性。
4.2模型缺点
1、整个模型我们都化为了一个点的模型,如案发地点我们假定都在节点上,这在现实中是不可能的,可以进一步将点离散化,更为密集。
2、对模型的建立与求解,我们坚持的核心因素是三分钟到达节点,标准比较单一。
3、模型中我们没有考虑人口密度的问题,在实际中这是一个很重要的参考因素。
参考文献
[1]姜启元,《数学模型》第四版,北京:
高等教育出版社,2011年
[2]王沫然,《MATLAB与科学计算》,北京:
电子工业出版社,2003年
[3]胡运权《运筹学》,北京,清华大学出版社,第三版,2009年
程序:
lp1003
fork=1:
1:
928
n1=daolu(k,1);
n2=daolu(k,2);
ifn1<=92
ifn2<=92
a=jiedian(n1,2);
b=jiedian(n1,3);
c=jiedian(n2,2);
d=jiedian(n2,3);
plot([ac],[bd]);
holdon
end
end
end
x1=jiedian(1:
20,2);
y1=jiedian(1:
20,3);
plot(x1,y1,'ro');
holdon
forn=1:
1:
92
x=jiedian(n,2);
y=jiedian(n,3);
plot(x,y,'.');
holdon
end
form=1:
1:
13
t=churu(m,2);
a=jiedian(t,2);
b=jiedian(t,3);
plot(a,b,'r*');
holdon
end
程序:
shitu
fork=1:
928
n1=daolu2(k,1);
n2=daolu2(k,2);
ifn1<=92&n2<=92
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'g','linewidth',2);
holdon
else
ifn1<=165&n2<=165&n1>92&n2>92
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'y','linewidth',2);
holdon
else
ifn1<=319&n2<=319&n1>166&n2>166
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'linewidth',2);
holdon
else
ifn1<=371&n2<=371&n1>320&n2>320
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'k','linewidth',2);
holdon
else
ifn1<=474&n2<=474&n1>372&n2>372
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'m','linewidth',2);
holdon
else
ifn1<=582&n2<=582&n1>475&n2>475
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'c','linewidth',2);
holdon
else
a=jiedian2(n1,2);
b=jiedian2(n1,3);
c=jiedian2(n2,2);
d=jiedian2(n2,3);
plot([ac],[bd],'r');
end
end
end
end
end
end
end
x1=jiedian2(1:
20,2);
y1=jiedian2(1:
20,3);
plot(x1,y1,'ro');
holdon
x1=jiedian2(93:
100,2);
y1=jiedian2(93:
100,3);
plot(x1,y1,'ro');
holdon
x1=jiedian2(166:
182,2);
y1=jiedian2(166:
182,3);
plot(x1,y1,'ro');
holdon
x1=jiedian2(320:
328,2);
y1=jiedian2(320:
328,3);
plot(x1,y1,'ro');
holdon
x1=jiedian2(372:
386,2);
y1=jiedian2(372:
386,3);
plot(x1,y1,'ro');
holdon
x1=jiedian2(475:
485,2);
y1=jiedian2(475:
485,3);
plot(x1,y1,'ro');
holdon
forn=1:
582
x=jiedian2(n,2);
y=jiedian2(n,3);
plot(x,y,'.');
holdon
end
form=1:
1:
17
t=churu(m,1);
a=jiedian2(t,2);
b=jiedian2(t,3);
plot(a,b,'r*');
holdon
end
a=jiedian2(32,2);
b=jiedian2(32,3);
plot(a,b,'k^')
程序:
zuiduanju
functionD=zuiduanju()
loadjiedian.txt
loaddaolu.txt
a=jiedian;
b=daolu;
count=1;
n=length(a(:
1));
fori=1:
length(b(:
1))
ifb(i,1)<=92&&b(i,2)<=92
c(count,:
)=b(i,:
);
count=count+1;
end
end
fori=1:
length(c(:
1))d(i)=sqrt((a(c(i,1),2)-a(c(i,2),2))^2+(a(c(i,1),3)-a(c(i,2),3))^2);%A区路口两节点的距离
end
c=sort(c,2);
aa=zeros(n);
fori=1:
length(c(:
1))
aa(c(i,1),c(i,2))=d(i);
end
t=aa+aa';
M=max(max(t))*n^2;%M为充分大的正实数
t=t+((t==0)-eye(n))*M;
%Floyd算法求最小矩阵
path=zeros(n);
fork=1:
n
fori=1:
n
forj=1:
n
ift(i,j)>t(i,k)+t(k,j)
t(i,j)=t(i,k)+t(k,j);
path(i,j)=k;
end
end
end
end
fori=1:
length(t(:
1))
forj=1:
length(t(:
1))
ift(i,j)>=M
t(i,j)=0;
end
end
end
D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高教 全国大学生 数学 建模 竞赛 参考答案