2011年国赛高教杯数学建模
B题 交巡警服务平台的设置与调度
有困难找警察”,是家喻户晓的一句流行语。警察肩负着刑事执法、治安管理、交通管理、服务群众四大职能。为了更有效地贯彻实施这些职能,需要在市区的一些交通要道和重要部位设置交巡警服务平台。每个交巡警服务平台的职能和警力配备基本相同。由于警务资源是有限的,如何根据城市的实际情况与需求合理地设置交巡警服务平台、分配各平台的管辖范围、调度警务资源是警务部门面临的一个实际课题。
试就某市设置交巡警服务平台的相关情况,建立数学模型分析研究下面的问题:
(1)附件1中的附图1给出了该市中心城区A的交通网络和现有的20个交巡警服务平台的设置情况示意图,相关的数据信息见附件2。请为各交巡警服务平台分配管辖范围,使其在所管辖的范围内出现突发事件时,尽量能在3分钟内有交巡警(警车的时速为60km/h)到达事发地。
对于重大突发事件,需要调度全区20个交巡警服务平台的警力资源,对进出该区的13条交通要道实现快速全封锁。实际中一个平台的警力最多封锁一个路口,请给出该区交巡警服务平台警力合理的调度方案。
根据现有交巡警服务平台的工作量不均衡和有些地方出警时间过长的实际情况,拟在该区内再增加2至5个平台,请确定需要增加平台的具体个数和位置。
(2)针对全市(主城六区A,B,C,D,E,F)的具体情况,按照设置交巡警服务平台的原则和任务,分析研究该市现有交巡警服务平台设置方案(参见附件)的合理性。如果有明显不合理,请给出解决方案。
如果该市地点P(第32个节点)处发生了重大刑事案件,在案发3分钟后接到报警,犯罪嫌疑人已驾车逃跑。为了快速搜捕嫌疑犯,请给出调度全市交巡警服务平台警力资源的最佳围堵方案。
附件1:A区和全市六区交通网络与平台设置的示意图。
附件2:全市六区交通网络与平台设置的相关数据表(共5个工作表)。
整体求解过程概述(摘要)
在我国13年前就开始有了交巡警,现行的交巡警制度是在整合警力资源的基础上,有机融合刑事执法、治安管理、交通管理、服务群众四大职能的新型防控体系。其对城市的治安有着重要的意义,本文即对交巡警服务平台的设置、调度进行了研究。分析题意结合实际情况,交通事故发生在路经上(相比在节点)有更高的概率。故本文假设交通事故是发生在路经上,节点发案率是由与节点的相连的路求和计算而来。对于服务平台管辖区域的划分,因假设事故点是在路上,故本问题转化为将路径分配给服务平台的问题。首先,分别计算各条路径的长度与属性,计算中发现某些路是任意一个服务平台三分钟之内无法全部走遍的。为了将路径分配的更加合理,先将路径依据其属性分类,再将距离服务平台较远的路径,从中间分开,形成新的图。对新的图再做一次分类,将仍然不能满足条件的路,定义与到达平台的距离相关的罚函数为目标函数,做0-1规划求解最小的目标函数值,对于已经满足三分钟的路,运用模拟退火算法,优化最长出警时间最短与交巡警服务平台工作量的均衡度,对路径进行分配。综合两部分结果得到路径最优分配方案。
对于交通要道的封锁,以最长的节点封堵时间最短为目标函数,进行多对少的0-1规划,求解即得A区交巡警服务平台警力的最优调度方案。平台与路口对应关系是:{(2,38),( 4,62),( 5,45),( 7,29),( 8,30),( 9,16),( 10,22),( 11,24),( 12,12),( 13,23),(14,21),( 15,29),( 16,14)}。所需的最短的时间为8.015min。对于增加交巡警服务平台与其选址的问题,考虑到现有方案存在工作量不均衡与出警时间过长的问题。给出增加交巡警服务平台的原则:对于偏离3min较多的地区增加服务平台,而后在平台工作量分配较重的地区,增加服务平台以减小区域内工作量的均值,比较增加后产生的影响,根据影响的变化优化增加的地点与数量,得到结果。共需增加3个服务平台,其具体位置分别为(29,39,88)。
对于全市交巡警服务平台设置的评价问题。为了评价各个交巡警服务平台的工作量与出警时间本文给出了四个量化指标:发案率(工作量)、路程长(出警时间)、3分钟后路程长(平台综合最长出警时间)、满意度(平台上单条路最长出警时间)。通过给定每一个平台的服务覆盖面计算其评价指标。对于分区,给出以上四个指标的方差,以评价分区中交巡警服务平台的职能分配的均匀程度;再以均值综合同一分区的平台特征;而后统计平台服务覆盖面未覆盖到的节点,得到分区的九个量化的指标。分析发现现有的交巡警服务平台设置方案存在明显不合理。后依据每个分区评价出的最不合理因素给出针对不合理因素的分区优化方案,如C分区:增加(203209241262303)为服务平台、删去原(166172)两个服务平台。
对于逃犯的围堵问题,分析题意可知,题目并未给出罪犯车速与行车目标,且联系实际情况,交巡警也不能事先得知罪犯车速与行车目标。故需将车速与行车目标作为黑箱,给出最佳的围堵方案。本文通过建立基于0-1规划的围堵模型,分别根据题意及假设在对不同的逃犯速度进行仿真后给出了对于逃犯的静态以及动态的围堵方案。并对动态围堵方案进行了计算机模拟检验。
模型假设:
1)假设事故一般发生在路经上,节点上的发案率为所有与其相连的路径的发案率相加和计算而来;
2)所有交巡警服务平台的配置是基本相同的;
3)假设两个节点之间的路径为两点间的直线距离;
4)当时间超过3分钟时,假设距离函数(满意度罚函数)指数变大;
5)假设巡警的几个职能是等权重。
6)交巡警围堵逃犯时的最重要目标为围堵时间最短,且所有交巡警服务平台均可随时调用。
问题分析:
问题一:依据实际情况,交通事故等一些突发情况一般均发生在路上,只有很少的情况下,是刚好发生在节点上。故将路径分配给交巡警平台比仅仅把节点分配给交巡警平台更具有合理性。因此,本文需完成A区所有路径的分配。
首先,可将A区内的所有路径做出来,并分别计算其长度。若出现某些路经是任意一个服务平台三分钟之内都无法全部走遍的情况。为了将路径分配的更加合理,可先将路径分类,再将距离服务平台较远的路径,从中间分开,增加新的节点,形成新图。可再对新的图再做一次分类,将仍然不能满足条件的路,定义与距离相关的罚函数为目标函数,做0-1规划求解最小的目标函数值,对于已经满足三分钟的路,运用模拟退火算法,优化工作量以及最长出警时间得出分配方案。
问题二:问题属于最优指派(调度)问题,可以运用lingo软件进行0-1非线性规划求解得出最优方案。
问题三:问题要求增设新的服务平台,依据实际情况交巡警服务平台为一种公共服务系统,且公众对其的服务要求迅速,即交巡警必须尽快的到达事发地。为此,优化交巡警出警时间的最大值就特别的重要。故本文将因目的性不同而增设成服务平台的节点分为两个类别。对于类别一(优化最长出警时间),必须增加服务平台,对于类别二(优化平台工作量),比较增加平台后对总体工作量均衡度产生的影响确定其个数与位置。
问题四:问题涉及两个方面,评价与优化方案的给出。对于全市的交巡警服务平台设置的评价问题。为了评价各个交巡警服务平台的工作量与出警时间,可以给出了四个量化指标:发案率(工作量)、路程长(出警时间)、3分钟后路程长(平台综合最长出警时间)、满意度(单条路最长出警时间)。通过给出每一个平台的服务覆盖面计算其评价指标。对于分区,以均值,方差综合同一分区的平台特征,可得到九个量化的指标。而后可通过对指标进行分析来评价合理性,并给出对于不合理指标的改进方法。
问题五:问题涉及对逃犯的围堵,分析题意可知,题目并未给出罪犯车速与行车目标,且联系实际情况,交巡警也不能事先得知罪犯车速与行车目标。故需将车速与行车目标作为黑箱,给出最佳的围堵方案。可通过0-1规划构建出了一种较优的围堵方案,而后通过分别对不同车速与行车目标进行计算机模拟,对方案进行检验与确定。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码:
load zuobiao;
k=1; load fananlv;load aaaa;
for i=1:169
if jieg2(i,3)==2
luxian(k,:)=[jieg2(i,[1 2]) i];
fananlv1(k,:)=fananlv(i,4);k=k+1;
end
end
save luxian luxian;
[pp1,pp]=size(luxian); save pp1 pp1;
for i=1:pp1
p=zeros(1,20*pp1);
p(i:pp1:pp1*19+i)=1;
xuqiu(i,:)=p;
end
for i=1:20
f((i-1)*pp1+1:i*pp1,1)=fananlv1;
end
Aep=xuqiu;
[a,b]=size(xuqiu);
Bep=ones(a,1);
%%x0=zeros(20*pp1,1);
%%x0(1:pp1)=1;xm=zeros(20*pp1,1);xM=ones(20*pp1,1);intlist=ones(20*pp1,1);
%%ix=(intlist==1);xm(ix)=ceil(xm(ix));xM(ix)=floor(xM(ix));
%%[aa,bb,cc]=bnb20('fun2',x0,intlist,xm,xM,[],[],Aep,Bep);
[X,a]=bintprog(f,[],[],Aep,Bep);
% if length(eer)==0,x=round(x(xi)),end
aa=find(X==1);
for i=1:pp1
xt=floor((aa(i)/(pp1+0.00001)));
yt=aa(i)-pp1*xt;
jiegq(i,:)=[xt+1 luxian(yt,:)];
end
%function jieguo(jieg4,jieg3,pingtai);
clear jieg;
n1=size(jieg4,1);n2=size(jieg3,1);
jieg4(n1+1:n1+n2,:)=jieg3;
[ac,bb]=sort(jieg4(:,1));
jieg(:,1)=ac;
for i=2:5
jieg(:,i)=jieg4(bb,i);
end
load ju2;
mm1=size(pingtai,2);
mm2=size(jieg,1);
jieg
for j=1:mm2
ss(j,:)=[pingtai(jieg(j,1)),min(ju2(pingtai(jieg(j,1)),jieg(j,2)),ju2(pingtai(jieg(j,1)),jieg(j,3)))+ju2(jieg(j,2),jieg(j,3)),j];
end
for i=1:mm1
abc=ss(find(ss(:,1)==pingtai(i)),3);
[S(i,1),lh]=max(ss(find(ss(:,1)==pingtai(i)),2));
lh1(i)=abc(lh);
S(i,2:3)=jieg(lh1(i),2:3);
end
S
clear;%%0-1规划
load ju;load zuobiao
for i=1:20
for j=21:92
n=j-20;
w(i,n)=exp((ju(i,j)-3000)/500)-1;
end
end
w(find(w<0))=0;
%%0-1规划
for i=1:20
for j=1:72
f((i-1)*72+j,1)=w(i,j);
end
end
for i=1:72
p=zeros(1,20*72);
p(i:72:72*19+i)=1;
xuqiu(i,:)=p;
end
Aep=xuqiu;
[a,b]=size(xuqiu);
Bep=ones(a,1);
[X,a]=bintprog(f,[],[],Aep,Bep);
% [X,a]=bintprog(f,[],[],Aep,Bep,X);
aa=find(X==1);
for i=1:72
xt=floor(aa(i)/72.0001);
yt=aa(i)-72*xt;
jieg=[xt+1 yt+20 w(xt+1,yt)]
end
save jieg jieg