闭路电视监控系统的优化设计摘要:本题主要解决的问题是选择安装摄像头的位置,并且在保证所有区域被监控的条件下安装摄像头数目最少。我们首先将这一问题转化为0—1整数规划问题,并用LINDO软件求解。由于每条街道的两端基本(也有极少数街道只有一端可以安装摄像头)都是可以安装摄像头的位置,我们可以把街道看做线段,安装摄像头的位置看作点,这样工业区的布局图就转化为一个图论模型,本题就转化为求图的最小点覆盖的问题了。利用图的关联矩阵求出最小覆盖的点,这些点就是安装摄像头的位置!关键字:0—1整数规划关联矩阵最小点覆盖Abstract:Theaimofthistermistochoosetheplacesoffixingweb-cameras,andmakesurethewholeaerasareunderthecontrol.Underthiscondition,weshouldmakesurethatthenumberoffixedweb-camerasisminimal.Firstly,weconvertthisproblemtothecaseofzero–oneintegerprogramming,andLINDOcansolvethischangingcase.Secondly,wecanchangeourideatothinkaboutthisproblem.Becausethetwopointsofeachstreetareavailableplacesforfixingweb-cameras(onlyaveryfewstreetshaveoneavailablepointtofixweb-cameras),wecanrespondthestreetstolinesegments,atthesametime,theplaceoffixingweb-camerasrespondingtovertices,thenthelayoutofthisindustrialparkbecamesamodelofgraphtheory.Hencetheoriginaltermtransformstosolvetheminimalvertexcoveringproblemsofgraph.Wecanusethecorrelativematrixtofindouttheminimalvertexcoveringconcourse,thesolvingpointsarethefinalplacesforfixingKeywords:zero—oneintegrallayoutcorrelativematrixminimalvertexcovering1.问题重述某市的工业区发生多起夜间入室行窃案件,此工业区有保安巡逻,但保安人数太少,因此负责此区域安全的相关市政部门决定安装监控摄像头,以协助保安工作。下图给出了该工业区的地图,其中给出了需要用闭路电视进行监控的区域范围,并标记44个可以安装摄像头的位置,要求设计一种安装方案使安装的摄像头数目最少但保证需监控的区域全在监控范围。图一工业区示意图•图一623435871910111213141716241819202122231525262728293031323334353637383940414243442.名词和符号说明(1)xn二值变量,取0或1(2)(,)nmSTREETS表示位置n和m在同一条街道上(3)关联矩阵R=()ijnmr(n为定点数,m为边数),其中ijr=即仅当以i为顶点的邻边是je时,ijr=1(4)覆盖:若图G的每条边都至少有一个端点在顶点集V的一个子集K之中,则称K为G的覆盖。(5)一个图可以有很多覆盖,含顶点个数最少的覆盖称为最小覆盖。3模型假设(1)所安装的监控摄像头都可以360度旋转,因此在几条街道的交汇处安装一个摄像头就可以同时对这些街道进行监控(2)可以安装摄像头的地方都是一条街道的末端,即一般可以安装摄像头的相邻的地点之间是一条街道(3)转化为图论问题时假定所有的路口都是可以安装摄像头的位置3.问题分析与模型建立题目给我们提供了可以安装摄像头进行监控的地方,我们只需要考虑在某地方是否安装摄像头。安与不安是两个方面,我们考虑用0—1规划来解决此问题。定义二值变量xn(n=1,2,…,43,44),当且仅当在位置n处设置了摄像头此时的变量踩取1,否则为0.要使安装的摄像头数量最少,即441nxn的值最小!为了保证监控到位,必须限定每条街道都应至少处于一个摄像头监控之下。因此,如果位置n和m之间存在一条街道,则需要在位置n上()或位置m上()安装一个摄像头,或者在这两个位置上都安装摄像头。可以同时用两个摄像头监控一条街道,并且有些时候这样做能够带来一些好处:在图一中,在位置4和位置8上同时安装摄像头似乎对这条街道显得有些多余,但这两个摄像头同时能够对位置5,6和7方向的死胡同进行监控。经过上述分析我们可以建立一个非常简单的0—1整数规划模型:Minimize441nxn(,)nmSTREETS:xm+xn=1{1,0}xnn=1,2,3,….,43,444.模型求解要求解上述0—1整数规划模型,我们首先要把约束条件满足的等式全部找出来,即每条街道上安装摄像头的位置的xn值之和大于等于1.这个过程比较繁琐,但使用计算机求解就必须先完成这个步骤。通过人工查找共有52条街道,即可写出52个约束不等式,因为这些不等式没有规律,故只能一个一个的写出。我们知道解50个以下的变量的0—1规划问题LINDO比较方便,本题只有44个变量故用LINDO软件求解将根据题目列出的不等式带入上面建立的0—1规划模型,并输入LINDO:MINX1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13+X14+X15+X16+X17+X18+X19+X20+X21+X22+X23+X24+X25+X26+X27+X28+X29+X30+X31+X32+X33+X34+X35+X36+X37+X38+X39+X40+X41+X42+X43+X44SUBJECTTOX43=1X41+X43=1X41+X42=1X42+X44=1X40+X39=1X39+X38=1X38+X37=1X43+X42=1X42+X38=1X44=1X44+X37=1X41+X39=1X37+X35=1X34+X36=1X32+X33=1X33+X34=1X34+X35=1X35+X10=1X10+X9=1X3+X10=1X3+X1=1X3+X4=1X4+X5=1X4+X8=1X8+X7=1X8+X6=1X33+X31=1X31+X28=1X28+X29=1X29+X30=1X23+X24=1X24+X25=1X25+X26=1X26+X27=1X34+X15=1X15+X18=1X18+X19=1X19+X20=1X20+X21=1X21+X22=1X21+X25=1X18+X12=1X19+X16=1X10+X12=1X12+X16=1X11+X12=1X11+X13=1X13+X16=1X13+X14=1X14+X17=1X14+X2=1X1+X2=1ENDINT44最后一行表示44个决策变量全部为0—1变量运行程序得到的结果x1=x4=x8=x10=x12=x13=x14=x18=x19=x21=x24=x26=x28=x30=x33=x34=x37=x39=x42=x43=x44=1由此可见最佳方案需要安装21个摄像头,即在标号为1,4,8,10,12,13,14,18,19,21,24,26,28,30,33,34,37,39,42,43,44的道口安装摄像头就可保证整个工业区的道路全在监控范围!图二用椭圆标记出了这些摄像头的位置。摄像头安装位置示意图•图二623435871910111213141716241819202122231525262728293031323334353637383940414243445.尝试转化为图论中的最小点覆盖问题5.1问题分析与模型建立上面我们已经用0—1整数规划求出了最优解,再仔细观察该工业区的布局图,不难发现基本每条街道的路口都是可以安装摄像头的位置,但有且仅有一个路口不是,我们考虑大量位置的时候可以忽略这个位置,假设它也可以安装摄像头。我们可以把该工业区的布局图转化成一个图论模型,每条街道表示边,街道两端的路口表示顶点。我们把每条边和每个顶点分别标号,可以得到下面的点边图(图三)•图三6234358719101112131417162418192021222315252627282930313233343536373839404142434445我们必须先介绍覆盖和最小覆盖两个概念:(1)若图G的每条边都至少有一个端点在顶点集V的一个子集K之中,则称K为G的覆盖。(2)一个图可以有很多覆盖,含顶点个数最少的覆盖称为最小覆盖。换言之在本道题目中就是要求每条街道都至少有一个路口安装摄像头,并且保证安装摄像头的数目最小。我们可以清晰的看到摄像头的安置问题实际为求图的最小点覆盖。5.2模型求解因为关联矩阵表示的是顶点和边之间的关系,所以关联矩阵与覆盖密切相关。顶点集V的子集K是图G的一个覆盖,当且仅当G的关联矩阵K中的各顶点所对应的行内,每列至少存在一个元素“1”。从关联矩阵可以找出一个最小覆盖。最小点覆盖问题没什么高效的算法,先就以一个简化的图的为例子说明最小点覆盖的求解方法。ⅠⅡⅢⅣⅤⅥ⒈⒉⒊⒋⒌Ⅶ该图的关联矩阵为R=1001000111001002011001030011001400001115ⅠⅡⅢⅣⅤⅥⅦ下面从该矩阵出发求对应图的最小点覆盖,步骤如下(1)在矩阵中取恰有两个“1”的那一列中“1”所在的行(如3行),令3∈k,划去3行及3行中元素所在的Ⅱ,Ⅲ,Ⅵ列,得11001101020101400115ⅠⅣⅤⅦ(2)在上面新矩阵中再取恰有两个“1”的那一列中“1”所在的行(如5行),令5∈k,划去5行及5行中元素“1”所在的列Ⅴ,Ⅶ,得111102014ⅠⅣ(3)因为1’大于’2,1‘大于‘4(若对所有的j有,记j大于k),划去2,4行,1∈k,过程结束,最小覆盖k=(1,3,5)通过上面的例子我们可以简单的概括最小点覆盖的启发式算法:在关联矩阵中找出恰有两个“1“的那一列中”1“所在的行,选取其中任意的一行i,i点就归属最小覆盖集,划去i行及i行中元素”1“所在的列,这样便得到一个新的矩阵。对新矩阵重复上述操作直到不能继续进行此操作。用此算法可以求解出图三的最小点覆盖集,即k={X1,X4,X8,X10,X12,X13,X14,X18,X19,X21,X24,X26,X28,X30,X33,X34,X37,X39,X41,X42,X45},要注意特殊点位置45也在其中,我们把位置45附近的点集做细微的调整,把位置41和位置45换成位置43和位置44也可以满足题目的要求。所以最终安装摄像头的位置是点1,4,8,10,12,13,14,18,19,21,24,26,28,30,33,34,37,39,42,43,44,和0—1规划的求解相同。6总结本题主要解决的问题是选择安装摄像头的位置,并且在保证所有区域被监控的条件下安装摄像头数目最少。我们首先将这一问题转化为0—1整数规划问题,并用LINDO软件求解,求出的值为1的点的位置就是安装摄像头的位置。由于每条街道的两端基本(也有极少数街道只有一端可以安装摄像头)都是可以安装摄像头的位置,我们可以把街道看做线段,安装摄像头的位置看作点,这样工业区的布局图就转化为一个图论模型,本题就转化为求图的最小点覆盖的问题了。利用图的关联矩阵求出最小覆盖的点集,这些点就是安装摄像头的位置!我们发