《消防队选址(共16页).doc》由会员分享,可在线阅读,更多相关《消防队选址(共16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上消防队选址模型的建立与分析摘要:随着我国经济的腾飞,现代化城市应急系统和消防布局规划建设显得尤为重要, 为了保证消防救灾的时间要求与经济性要求,消防站点的选址设计必须合理布局优化配置。本文结合所给数据资料,针对消防站点的选址问题进行了科学合理的分析求解优化了布局配置。问题一:题目要求在已有一个消防队的情况下,再新建一个消防队,要求当火灾点发生火灾时,采用就近原则派出消防队救援,对此问题,本文采用了Floyd最短路径算法模型,并利用数学软件matlab进行求解,最后求得K乡镇为新建消防队最佳地址。问题二:该问题在问题一的基础上,新增了一些要求,县,乡镇和村的大火和小火的
2、发生比例以及他们的火警比都不一样,并且大火时需要两个消防队,小火时只需要一个消防队,这样在对新建一个消防队的时候就要考虑到这些因素,同样,和问题一一样,我们采用Floyd算法模型,得出目标函数,并利用数学软件matlab进行求解,最后求得M乡镇为最佳新建消防队位置。问题三:该问题建立在问题二的基础上,总共可以新建两个消防队,和问题二的不同之处就是当大火时要从三个消防站选择两个,小火时从中选择一个消防站,问题解法同问题二,采用的仍然是Floyd算法模型,并通过matlab软件求解,最后得出G,M乡镇为两个新建消防队的最佳位置。问题四: 该题目要求,消防队接到火警报警后30 分钟之内赶到现场,消防
3、车平均时速为60公里,在问题三得出G,M最佳选址位置时,我们在问题三基础上,加上一个,都要小于30公里即可,通过matlab求解得出16,17,22和30,32,35六个村发生火灾时,三个消防队都无法在30分钟内赶到,在地图上观察得到,16,17,22三个村相邻且位于图中左上方边缘,30,32,35三个村相邻位于图中右上方边缘,通过观察和数据分析,很容易得出,要满足当每个火灾点发生火灾时,消防队必须30分钟赶到,需要在K和R乡镇分别新建一个消防队,所以总共要新建四个消防队,分别位于G,M,K,R乡镇。关键字:消防站选址 最短路Floyd算法 图论一、问题重述随着国民素质的提高,消防安全知识日益
4、得到普及,但是近几年来,我国每年仍发生火灾约4万起,死亡2000多人,伤残30004000人,每年火灾造成的直接10多亿元。为了在发生紧急事件后, 有相应的服务中心能及时到达现场进行服务,城市规划建设过程中需要全面考虑诸如医疗救护中心、报警中心110、消防中心等设施的优化选址问题。其中消防站点的选址是应急系统中重要的长期决策之一,选址的好坏直接影响到消防安全的服务方式、质量以及服务成本等,进而影响到公民的人身利益和财产安全,更影响城市应急能力的有效发挥和资源的合理配置。在发生火灾时及时赶到火灾现场,扑救火灾,抢救人的生命和重要物资。因此消防站的选址一定要科学合理,在火灾发生时及时尽快赶到火灾现
5、场,减小损失。假定火警不会同时发生,消防队的主要运载工具为消防车,它的平均时速为60 公里。1. 如果仅一处着火时(各地火警等概率),只就近动用一个消防队即可,你如何规划?2. 如果县、乡(镇)府所在地的大火和小火的比例为1:5,村里的比例为1:10,县、乡(镇)和村的火警比为5:5:1,并且大火时需要两个消防队,小火时只需要一个消防队,你又如何进行规划?3. 对于问题2,若可新建两个消防队又如何规划?4. 若要求接到火警报警后30 分钟之内赶到现场,请问最少需增加几个消防队,建在哪几个乡镇?二、问题分析问题一: 在县城已有一个消防队的基础上,再选择一个乡镇新建一个消防队,这是一个最优选址问题
6、。首先,我们建立各乡镇与村的邻接矩阵,再运用Floyd算法求出各乡镇与村的最短距离矩阵,然后假设消防队建立在第个乡镇上,再通过比较每个火灾点到第个乡镇与县城O最短距离的大小来确定该火灾点由哪个消防队管辖,即取(,),然后将两个消防队到各自管辖的火灾点的最短距离求和,取假设的18个乡镇中距离之和最小的乡镇,即为最优地址。 问题2:在问题一建立的模型基础上,考虑到县,乡镇,村火警比以及发生大火小火的比,火警发生的比越大,消防队到该火灾点的次数越多,那么就要求消防队到该点的距离要近,我们将火警比与发生大火小火的比作为最短距离上的权重,这样就能体现火警比对消防队到火灾点的距离影响。问题3:针对问题二,
7、新建两个消防队,在问题二建立的模型下,考虑到大火需要在三个消防队中选择两个负责,所以再求最短距离时,我们通过比较三个消防队中任意两个消防队到火灾点的最短距离的最小值,然后选择最短距离之和最小的两个消防队负责,发生小火时,根据就近原则,由最短距离最近的消防队负责,然后再求得各消防队到每个火灾点的最短距离,从而确定建消防队的所在位置。问题4:在问题三的基础上,我们把接到火警30分钟内赶到火灾点的问题转化为消防队到火灾点的最远距离为30公里的问题,我们找出已有的三个消防队到达的消防点距离小于等于30公里的乡镇和村,通过观察分析得出哪些乡镇与村是这三个消防队在30分钟内是无法赶到的,然后再通过观察分析
8、再需新建几个消防队。三、基本假设与符号说明 3.1 基本假设为简化模型,便于量化与计算,现作假设如下:1、不考虑灾情蔓延速度,即火灾点不会转移和增加。2、不考虑消防队的反应时间,假设接到火情的瞬间,消防队即出发救火。3、不考虑路况,转弯,各路段加减速情况,假设消防车一直匀速运动。此行车时间的衡量可简化为距离的衡量。 4、假设消防队的行车速度为平均60公里/小时。3.2符号说明 表示新建的消防队所在第个乡镇。k地图中的各火灾点,当时,代表乡镇;当时,代表村。地图中乡镇与村的邻接矩阵。表示点之间道路实际距离,若无直连道路,赋值为,代表无穷大。乡镇与村在发生火警时,消防队所走距离的权重。 最短距离矩
9、阵,表示间最短距离。火灾点的总个数。说明:我们将乡镇A , BR重新编号为1,218,村135重新编号为19.53。四、模型的建立及求解4.1模型:针对问题一的消防队选址模型 4.1.1 最短路径矩阵的建立根据题目所提供的城市图,提取数据,给出道路邻接矩阵(具体数据见附录一)。其中表示防火单位之间道路实际距离,若无直连道路,赋值为,代表无穷大 定义最短距离矩阵,其中表示间最短距离。显然,要求出并不容易,逐条计算的方法繁复且不具有通用性,借助计算机求解是可行的方案。在图论中有许多求节点间最短距离的算法,在这里我们采用Floyd算法编程求解(程序见附录)。 求最短距离矩阵的方法:把带权邻接矩阵W作
10、为距离矩阵的初值,即D(0)=W()D(1)= ,其中是从vi到vj的只允许以v1作为中间点的路径中最短路的长度。(2)D(2)= ,其中是从vi到vj的只允许以v1 、 v2作为中间点的路径中最短路的长度 (v)=,其中是从vi到vj的只允许以v1、v2、作为中间点的路径中最短路的长度即是从vi到vj中间可插入任何顶点的路径中最短路的长,因此,即是最短距离矩阵。本文在Matlab环境下采用Floyd算法编程,圆满实现了矩阵的求解。4.1.2 目标函数的建立不防假设,新建的一个消防队建在乡镇(=1,2,3.18)处,K(K=1,2,.53)为一个防火单位,为火灾点到消防队的最短距离,表示火灾点
11、到消防队的最短距离。如果消防队假设取定某一处时,又因为当一处防火单位发生火灾时,只就近动用一个消防队,于是取与中的较小值,较小值的那个点即为派出的救火的消防队。然后取每个火灾点到消防队的最短距离求和。 即: (,)为了有一个好的消防队建设规划,使消防队建在一个最佳的地方,我们应该选择假设的消防队中求得的最短距离中的最小值的那个点即 目标函数 = (,)到此为止,模型所要求的消防队地址可由,五个量所唯一确定。由于计算量较大,繁杂,再次利用Matlab编程,可求得最佳地点。4.1.3 模型一的求解 通过Matlab编程求解到假设的18(AR)个乡(县)镇分别建立消防队到各自相应的火灾点所得到的最短
12、距离如下表: 表1.1 假设各县镇建消防队到各火灾点的最短距离 (单位:公里)城镇ABCDEFGHI最短距离1728.51766.91704.81493.41248.81317.71251.51389.51234乡镇JKLMNOPQR最短距离1233.61199.91271.11222.11397.31830.51665.21685.31723.1通过上表分析可以得出,消防队建立在K乡镇时,根据目标函数所求的值最小,为1199.9公里。考虑到发生火灾时,消防队应尽快赶到火灾点,我们根据就近原则,我们得出了两个消防队所负责的火灾点如下表. 表1.2 各乡(县)镇所在消防队负责的火灾点K乡镇567
13、89101112142425262728293031323334353637383940414243O县镇12341315161718192021222344454647484950515253至此,模型求解完毕,求得最佳地点为乡镇处。从城市地图中可以看出乡镇在图中的左上方,已有的消防队在图中的右下方,并且K乡镇周围的乡镇和村较多,这也很好的验证模型的结果,K乡镇为最佳地点。4.2模型:针对问题二的消防队选址模型4.2.1 模型的建立在问题一的基础上,又要考虑到县、乡(镇)府所在地的大火和小火的比例为1:5,村里的比例为1:10,县、乡(镇)和村的火警比为5:5:1的情况,并且要求大火时需要两
14、个消防队,小火时只需要一个消防队。为了便于量化求解,我们把县、乡(镇)和村的火警比看做在原有最短距离上的权重分别为5,5和1,不妨假设为火灾点的权重,于是有表达式:5 (118) 1 (19k53)所以,在求解的过程中,我们分两种情况,即118和1953两种情况。火灾分有大火和小火两种情况,在求最短距离时,要考虑到大火和小火各自发生的概率,县、乡(镇)发生大火的概率为=1/6,发生小火的概率为=5/6;村里发生大火和小火的概率分别为=1/11和=10/11。根据以上分析,假设新建消防点在乡镇,我们建立以下目标函数: 当发生火灾的地方为县、乡(镇),即118时,目标函数 同样,当发生的火灾点在村
15、里,即1953时,目标函数将,求和并取的最小值,得到目标函数:4.2.2 模型二的求解 通过Matlab编程求解到假设的18(AR)个乡(县)镇分别建立消防队到各自相应的火灾点所得到的最短距离如下表: 表2.1 假设各县镇建消防队到各火灾点的最短路径城镇ABCDEFGHI最短路径4509.44558.84407.53950.13426.23716.23480.94000.43538.7乡镇JKLMIOPQR最短路径3493.13415.13558.33314.53863.94585.84415.84605.44531 通过上表分析可以得出,消防队建立在M乡镇时,根据目标函数所求的值最小,为33
16、14.5公里。考虑到发生火灾时,消防队应尽快赶到火灾点,我们根据就近原则,我们得出了两个消防队所负责的火灾点如下表: 表2.2 各乡(县)镇所在消防队负责的火灾点M乡镇456789101112131420222324252627282930313233343536373839404142434445O乡镇1231516171819214647484950515253 至此,模型二求解完毕,求得最佳地点为M乡镇处。从城市地图中可以看出M乡镇位于图的中间,已有的消防队在图中的中间偏右,这样很好的保证了当发生大火时,两消防队能够及时赶到火灾点,由一般经验也能验证M乡镇为最佳地点。4.3模型:针对问题
17、三的消防队选址模型 4.3.1 模型三的建立 针对问题二,在已有一个消防队的基础上,我们考虑再新建两个消防队,在问题二中,发生大火时,已有的两个消防队都必须出动,而该问共有三个消防队,在发生大火时,我们选择三个消防队中任意两个消防队到火灾点k距离之和最小的两个消防队;发生小火时,按就近原则,选择离火灾点最近的消防队。我们假设两个消防队分别建在点和m点,根据以上分析,我们建立以下目标函数:当发生火灾的地方为县、乡(镇),即118时,目标函数 同样,当发生的火灾点在村里,即1953时,目标函数将,求和并取的最小值,得到目标函数: 4.3.2 模型三的求解 通过Matlab编程求解到假设在18(AR
18、)个乡(县)镇同时建立两个消防队到各自相应的火灾点所得到的最短距离如下表:表3.1 假设两个消防队建在各乡(县)镇所求得最短距 乡镇乡镇ABCDEFGHIA4476.54438.64162.33611.62983.23100.52936.73280.12935.5B4438.64535.54239.73683.73053.63164.43001.833442998.9C4162.34239.74364.43758.4309731582995.73322.22970.7D3611.63683.73758.43838.13082.53041.52912.63152.42797.6E2983.230
19、53.630973082.53219.52968.82926.430252710.7F3100.53164.431583041.52968.83519.13207.13482.92993.3G2936.73001.82995.72912.62926.43207.13261.23222.92880.1H3280.133443322.23152.430253482.93222.93828.13186.7I2935.52998.92970.72797.62710.72993.32880.13186.73321.6J2933.72997.32992.62900.22818.93024.12955.63
20、111.33060.2K2951.43015.32999.728392634.22680.82632.42833.62858.4L3141.33212.43217.73182.52866.52804.12727.42898.72744.2M2991.43062.23107.830202682.52588.22525.92685.22539.3N35133574.23530.632042773.12781.32677.429422797.8O4356.64427.84289.33810.33175.33262.23106.83432.83111.7P41584179.34024.13534.12
21、946.23038.32893.13210.92927Q4254.74271.940893593.52985.53118.72943.43312.22979.2R4370.74364.54139.63600.92979.831022931.83284.12942.8 乡镇乡镇JKLMNOPQRA2933.72951.43141.32991.435134356.641584254.74370.7B2997.33015.33212.43062.23574.24427.84179.34271.94364.5C2992.62999.73217.73107.83530.64289.34024.14089
22、4139.6D2900.228393182.5302032043810.33534.13593.53600.9E2818.92634.22866.52682.52773.13175.32946.22985.52979.8F3024.12680.82804.12588.22781.33262.23038.33118.73102G2955.62632.42727.42525.92677.43106.82893.12943.42931.8H3111.32833.62898.72685.229423432.83210.93312.23284.1I3060.22858.42744.22539.32797
23、.83111.729272979.22942.8J3275.92845.12845.72628.82796.73111.32922.62960.92938.9K2845.13207.52941.42754.92991.93145.23010.43003.82958.7L2845.72941.43380.72995.13158.53343.63182.63179.83139.7M2628.82754.92995.13113.93003.73194.63068.53021.42989.7N2796.72991.93158.53003.73742.937133621.23582.83518.2O31
24、11.33145.23343.63194.637134585.84260.14311.44349.6P2922.63010.43182.63068.53621.24260.143714241.74199.9Q2960.93003.83179.83021.43582.84311.44241.74568.24337.8R2938.92958.73139.72989.73518.24349.64199.94337.84497.3通过分析,我们可以得到,当消防队建立在M乡镇和G乡镇时,消防队所走的距离是最短的为2525.9公里。 考虑到发生火灾时,消防队应尽快赶到火灾点,我们根据就近原则,我们得出了三
25、个消防队所负责的火灾点如下表:表3.2 各乡(县)镇所在消防队负责的火灾点G乡镇56789262728293031323334O县城1231516171819214647484950515253M乡镇4101112131420222324253536373839404142434445至此,模型三求解完毕,求得最佳地点为G乡镇和M乡镇处。从城市地图中可以看出M乡镇位于图的中间,G乡镇位于图的左下方,已有的消防队在图中的中间偏右,这样很好的保证了当发生大火和小火时,各个消防队能够很好的配合及时赶到火灾点,由一般经验也能验证G乡镇与M乡镇为最佳地点。4.4针对问题四的消防队选址模型4.4.1 问题
26、的分析针对问题四,要求接到报警后消防队在30分钟之内赶到事发现场,由于不考虑消防队的反应时间,消防车的行车速度为60公里/小时,故把接到报警后消防队在30分钟之内赶到事发现场的问题转化为消防队到火灾点的距离最远为30公里的问题。在问题三中,我们已经新建了两个消防队,我们根据最短路径矩阵,找出已有的三个消防队到各个火灾点之间的最短距离小于30公里的乡镇和村,把这些乡镇和村分配给三个消防队管辖,再综合分析,找出三个消防队都无法管辖到得城镇和村,然后再根据需要新建消防队。4.4.2 问题的求解通过编程(程序见附录)求解到三个消防队所管辖的区域如下表: 表4.1 各乡(县)镇消防队到火灾点距离小于30
27、公里的火灾点M乡镇5678910242526272829303132333637G乡镇4511121314151920212223242527293738394142434445O县城12341315161718192021232443444647495152 由上表我们可以综合分析得出,三个消防队都无法管辖的区域为:34 ,35 ,40 ,48 ,50 ,53 六个村。在地图上可以观察得到,34,35,40(即为图上16,17,22)三个村位于较偏远的左上角,48,50,53(即为图上30,32,35)三个村位于较偏远的右上角,因此,要满足要求,我们还需新建两个消防队,通过观察分析,分别建立
28、在K乡镇与R乡镇。综上,我们一共需要新建四个消防队,分别建立在G, M, K, R四个乡镇。五、模型的评价及改进一、模型的优点:(1)本文所建立的模型均有成熟的理论算法基础,可信度高。(2)本文所建模型均采用计算机编程求解,通用性好,较好的解决了消防站的选址问题。(3)本文建立的模型不仅可解决消防站选址问题,而且可以推广到解决其他类似问题。二、模型的缺点:(1)模型部分数据做过适度简化,与实际情况可能有一定出入。(2)模型对一般火灾点的细化研究不够充分,火灾点加权方式有待改进。六、参考文献1、李学文,李炳照,王宏洲 数学建模优秀论文精选与点评 清华大学出版社 【2011年9月】2、陈光婷 裘哲
29、勇数学建模 高等教育出版社 【2010年2月】3、马莉 MATLAB数学实验与建模 清华大学出版社 【2010年1月】4、杨根星 徐雷 MATLAB从入门到精通人民邮电出版社 【2010年6月】5、百度文库 百度知道 附录% Floyd算法程序function D,Path=floyd(A)D=A; n=length(D);for i=1:n for j=1:n Path(i,j)=i; endendfor k=1:n for i=1:n for j=1:n if D(i,k)+D(k,j)D(i,j) D(i,j)=D(i,k)+D(k,j); Path(i,j)= Path(k,j); e
30、nd end end hl=0; for i=1:n if D(i,i)0 hl=1; break; end end if(hl=1) fprintf(有负回路) break; endend 问题一程序:clear;clcAdjoin_matrix=xlsread(shuju.xls,1,A1;BA53);n=size(Adjoin_matrix,1);Distance_matrix=zeros(1,18);D=floyd(Adjoin_matrix);for i=1:18 j=15; dmin=0; for k=1:n d=min(D(i,k),D(j,k); dmin=dmin+d; en
31、d Distance_matrix(1,i)=dmin;end Distance_matrix% 确定每个消防队负责的火灾点 i=find(Distance_matrix=min(Distance_matrix); j=15; dmin=0; for k=1:n if D(i,k)D(j,k) A=A k; else B=B k; end end A % 建立在i乡镇的消防队所负责的火灾点 B % 县城O所在的消防队负责的火灾点问题二程序:clear;clcAdjoin_matrix=xlsread(shuju.xls,1,A1;BA53);n=size(Adjoin_matrix,1);Di
32、stance_matrix=zeros(1,18);D=floyd(Adjoin_matrix);for i=1:18j=15; dmin=0;for k=1:nif k=18d=5/6*(5*min(D(i,k),D(j,k)+D(i,k)+D(j,k);elseif 18k=nd=1/11*(10*min(D(i,k),D(j,k)+D(i,k)+D(j,k);enddmin=dmin+d;endDistance_matrix(1,i)=dmin;endDistance_matrix% 确定消防队所负责的火灾点 A=;B=;C=; j=15; dmin=0; p=7;q=13; for k
33、=1:n if (D(p,k)D(j,k)&(D(p,k)D(q,k) A=A k; elseif (D(j,k)D(p,k)&(D(j,k)D(q,k) B=B k; elseif (D(q,k)D(j,k)&(D(q,k)D(p,k) C=C k; end end A % 建立在i乡镇的消防队负责的火灾点 B % 县城的消防队负责的火灾点 C % 建立在m乡镇的消防队负责的火灾点% 问题三程序clear;clcAdjoin_matrix=xlsread(shuju.xls,1,A1;BA53);n=size(Adjoin_matrix,1);Distance_matrix=zeros(18
34、,18);D=floyd(Adjoin_matrix);for i=1:18 j=15; for m=1:18 dmin=0; for k=1:n if k=18 d=5/6*(5*min(min(D(i,k),D(j,k),D(m,k)+. min(min(D(i,k)+D(j,k),(D(i,k)+D(m,k),(D(j,k)+D(m,k); elseif 18k=n d=1/11*(10*min(min(D(i,k),D(j,k),D(m,k)+. min(min(D(i,k)+D(j,k),(D(i,k)+D(m,k),(D(j,k)+D(m,k); end dmin=dmin+d;
35、end Distance_matrix(i,m)=dmin; endend Distance_matrixDmin=min(min(Distance_matrix)i,v=find(Distance_matrix=Dmin)% 确定消防队所负责的火灾点 A=;B=;C=; j=15; dmin=0; p=7;q=13; for k=1:n if (D(p,k)D(j,k)&(D(p,k)D(q,k) A=A k; elseif (D(j,k)D(p,k)&(D(j,k)D(q,k) B=B k; elseif (D(q,k)D(j,k)&(D(q,k)D(p,k) C=C k; end end A % 建立在i乡镇的消防队所负责的火灾点 B % 建立在县城的消防队所负责的火灾点 C % 建立在m乡镇的消防队所负责的火灾点问题四程序:clear;clcAdjoin_matrix=xlsread(shuju.xls,1,A1;BA53);D=floyd(Adjoin_matrix);A=find(D(:,7)=30)B=find(D(:,13)=30)C=find(D(:,15)=30)专心-专注-专业