消防队选址模型的建立与分析
李志坚 郑钢锤 孟宪宇
本文就给定的城市交通图,对城市消防站三类选址问题进行了探讨,并分别建立了相应模型,较好的解决了消防队选址问题。对解决目前各个城市消防站增建选址问题有一定指导意义。
模型Ⅰ:提出了一个完整的消防队选址评估模型。通过对不同影响因素的分析,利用加权方式平衡了防火单位差别和道路差别。根据选址问题的特点和要求,在时间最短的基础上,构造了火灾损失最小的数学模型。把Floy-Warshall 算法引入到该模型的求解中,顺利解决了求防火单位最短距离问题。通过计算机编程,求得了模型的最优解,验证了模型的正确性。实例求解表明,该模型可以有效、快速地求得消防队选址问题的全局最优解。
模型Ⅱ:在对模型Ⅰ求得的结果充分分析的基础上,将模型进行了合理的简化。顺利解决了消防队的数目扩大到两个时变量过多模型求解困难的问题。
模型Ⅲ:综合模型Ⅰ与模型Ⅱ,通过分阶段选址,提出了改进的模型,顺利解决了新增消防站选址问题。
关键词:消防站选址 最短路Floy-Warshall 算法
(一)问题重述
1.1 基本情况
专职消防队是指在城市新区、经济开发区、工业集中区及经济较为发达的中心乡镇, 根据《中华人民共和国消防法》,按照质量建队的要求, 建立的承担区域性火灾扑救任务的市办、县办专职的消防队。消防队的任务是在发生火灾时及时赶到火灾现场,扑救火灾,抢救人的生命和重要物资。因此消防站的选址一定要科学合理,在火灾发生时及时尽快赶到火灾现场,减小损失。
1.2 问题的由来
总体来说全国大部分城市,消防站布点少,保护面积过大,如规划前广州市消防站所服务的最小责任区达11.8平方公里,最大责任区面积达700平方公里。从2001年的统计资料看,全国266个地级以上城市应有公安消防站2655个,实有1548个,欠账41.7%。不少城市已建的消防站责任区保护面积过大,难以满足消防车5min 到达责任区边缘的要求,有些地区,甚至连一个消防站都没有。因此,在资源有限的条件下,消防队的选址显得尤为重要。另外,在一座城市中,有重点防火单位,一级防火单位,一般防火单位之分。道路也有主干道和一般街道之分。所以消防队的选址不能简单的定在城市中心,而应当根据各单位分布,道路交通状况,综合考虑选址地点,必要时应当增加消防队的数目,保证在火灾发生时消防队的及时到达。
1.3 问题的要求
有一座城市,需要建立消防队,城市地图如下,其中实线为主干道,虚线为一般街道,标A 的地方为重点防火单位所在地。标B 的地方为一级防火单位。其他地方为一般防火单位,均匀分布在主干道和一般街道两旁。图中数字为相应路线长度,单位为公里。
(1)请你为消防队选一个合适的建队地址。 (2)若要同时建两个消防队,地址该如何选?
(3)若第二个消防队在前面已建好一个后再建,该如何选择地址?(可以类似自画图,考虑复杂程度,本图街道画得较少)
(二)基本假设
为简化模型,便于量化与计算,现作假设如下:
1. 不考虑消防队的反应时间,假设接到火情的瞬间,消防队即出发救火。
2. 不考虑路况,转弯,各路段加减速情况,假设消防车一直匀速运动。因此行车时间的衡量可简化为距离的衡量。主干路与一般街道的区别用路长的加权表示。
(三)符号设定
i , j ——城市地图中的各防火单位,5≤用于标定具体位置 。当1≤, i j 1
i , j 时,
代表防火单位A i , A j ;当16≤i , j ≤27时,i , j 代表防火单位B i -15, B j -15。
R ——城市地图防火单位邻接矩阵。R (i , j )表示点i , j 之间道路实际距离,
若无直连道路,赋值为inf ,代表无穷大。
W ——赋权矩阵。当i =j =k 时,W (i , j )表示防火单位k 的重要度加权;当
i ≠j 且i , j 有直连道路时,W (i , j )表示此道路加权值;当i ≠j 且i , j 无直连道路
时,W (i , j )赋值inf 。
W , A (i , j )表示防火单位i , j 之A ——加权后的道路邻接矩阵。定义A =R
间加权后道路距离,若无直连道路,赋值为inf ,代表无穷大
D ——最短距离矩阵,D (i , j )表示i , j 间最短距离。
B ——火灾损失。
n ——防火单位总个数。
s (k ) ——防火单位k 距离消防队的最短距离。
M (i , j ),N (i , j )——火灾损失指标函数。
(四)模型的建立与问题解决
4.1.问题的初步分析
通常选址问题只考虑到距离因素的影响,而消防队选址则还需要考虑到目标的重要性和时间因素。消防目标分布较为分散、地域跨度大,这对消防队位置的确定产生了较大的影响。其实影响消防站选址的因素很多, 例如交通条件、自然地理条件、道路状况、地价、城市功能分区要求等。显然,其中一些因素只能由人进行主观判断,而有些因素则可以利用计算机进行分析。事实上,要使火灾损失达到最小,最重要的是消防队接到火警后应能够尽快到达火灾现场。因此,在以往的研究中,一般都将消防车辆的行车时间作为评判消防站选址优劣的原则。本文则在此基础上,结合各单位防火级别的不同,火灾时间与损失的关系,建立了一个更为合理的评估模型体系。
在确立了以行车距离为基础作为消防站选址原则后,如何计算行车距离就成
了关键问题。对于一般防火单位,均匀分布在道路两旁,最明显的计算方法是积分法。设消防站位于(x 0, y 0)处,火灾发生点为(x , y ),s (x , y x 0, y 0)表示从消防站到火灾现场的最短距离,为了体现不同单位防火级别的不同,例如易燃易爆物品工厂,仓库与一般的住宅区火灾危险性不同。用W (x , y )表示火灾现场(x , y )处的火灾重要性权重,对一般地区可取W (x , y )为1,对重要地区可取W (x , y )为大于1的实数, 则位于(x 0, y 0)处的消防站至该区内所有假设火灾发生点的总行车距离为
S =∑⎰W (x , y )s (x , y x 0, y 0)dxdy
i =1l i
n
其中l i 为各路段。上述积分法理论上简单,但在实际应用中却并不实用。这是因为积分表达式中的W (x , y )和s (x , y x 0, y 0)并不是简单的连续函数,且这种对整个责任区段进行积分的过程也不容易编程实现。对于本题而言,一般防火单位均匀分布在主干道和一般街道两旁,因此只要能够有效到达重点防火单位和一级防火单位(也即图中各节点),就也能有效到达一般防火单位。故将模型合理简化为考虑有限个防火单位的选址问题。
4.2模型Ⅰ:单个消防队选址模型 4.2.1模型初步分析
根据题目所提供的城市图,提取数据,给出道路邻接矩阵R (具体数据见附录一)。其中R (i , j )表示防火单位i , j 之间道路实际距离,若无直连道路,赋值为
inf ,代表无穷大
为便于量化求解,将题目中的重点防火单位,一级防火单位,主干路,一般街道赋权处理。防火单位的处理以一级防火单位为基准,权重为1,重点防火单位赋权ω,ω>1可以适度照顾重点防火单位;道路的处理以一般道路为基准,权重为1,主干路赋权v ,v
阵W (具体数据见附录二)。当i =j =k 时,W (i , j )表示防火单位k 的重要度加权;当i ≠j 且i , j 有直连道路时,W (i , j )表示此道路加权值;当i ≠j 且i , j 无直连道路时,W (i , j )赋值inf 。
定义加权后的道路邻接矩阵
A =R W
A (i , j )表示防火单位i , j 之间加权后道路距离,若无直连道路,赋值为inf ,代表无穷大。
定义最短距离矩阵D ,其中D (i , j )表示道路加权后i , j 间最短距离。显然,要求出D 并不容易,逐条计算的方法繁复且不具有通用性,借助计算机求解是可行的方案。在图论中有许多求节点间最短距离的算法,在这里我们采用Floy-Warshall 算法编程求解。
Floy-Warshall 算法是基于动态规划的一种求有向图G =(V , E )顶点间最短路径的解决方案。它的运行时间为Θ(V 3),并且允许权值为负的边存在,但我们假设不存在权值为负的边。该算法利用最短路径结构的一个特征,即考虑最短路径上的中间顶点,其中简单路径p =(v 1, v 2, , v l )上的中间顶点是除v 1,v l 之外p 上的任何一个顶点,即任何属于集合(v 2, , v l -1)的顶点。[2]具体算法分析见参考文献[2]。
本文在Matlab 环境下采用Floy-Warshall 算法编程,圆满实现了矩阵D 的求解(程序代码见附录三,程序文件为floyd.m )
4.2.2模型的建立与求解 不妨假设消防队建在道路(i , j )之间的某个点上(i
s (k ) =min {D (i , k )+x (i , j ), D (j , k )+A (i , j )-x (i , j )}
一般而言,火灾发生后,火势以失火点为中心,以均匀速度向四周呈圆形蔓延,所以蔓延的半径r 与时间t 成正比。故火灾损失B 与t 2成正比,在速度v 一定的情况下,s 与t 成正比,故损失B 与s 2成正比。结合防火防火单位的重要度加权,建立火灾损失指标函数如下:
⎧n ⎫
M (i , j )=min ⎨∑W (k , k )s 2(k ) ⎬
⎩k =1⎭
根据指标函数依次对图中的道路进行分析,可以得到一个有限点的集合。量
化火灾损失
B min =min {M (i , j )}
可求得i , j 值。
到此为止,模型所要求的消防队地址可由i , j , x (i , j )三个量所唯一确定。由于计算量较大,繁杂,反复,再次利用计算机编程,可求得最佳地点(程序代码见附录四,程序文件为GetResult1a.m )。
城市道路的设计车速一般低于公路的设计车速。城市主干道设计车速为每小时40~60公里;次干道为每小时30~40公里。[3]故v 在0.5到1之间。 我们取ω=2, v =0.8,代入题目的数据。 程序运行结果:
最优的边为由节点i=2,j=21所组成的边:
由i=2,j=21所组成的最优边上X(2,21)=0.000060
分析以上结果,由于x (2,21)=0.00006≈0,我们可以说A 2即为最优点。编写程序求出A 2相关参数(程序代码见附录四,程序文件为GetResult1b.m )。
最合适的选址地为A2
救火目标 救火距离 救火路径
A2->A1: 2.460 A2---->B2---->B1---->A1 A2->A2: 0.000 A2
A2->A3: 1.200 A2---->B2---->A3
A2->A4: 2.400 A2---->B2---->A3---->A4
A2->A5: 3.200 A2---->B2---->A3---->A4---->A5 A2->A6: 1.280 A2---->B6---->A6
A2->A7: 1.680 A2---->B6---->A6---->B7---->A7
A2->A8: 2.320 A2---->B6---->A6---->B7---->A7---->A8 A2->A9: 2.240 A2---->B6---->A6---->A9 A2->A10: 1.120 A2---->A10
A2->A11: 2.400 A2---->B5---->A11
A2->A12: 3.020 A2---->A10---->B12---->A12 A2->A13: 1.760 A2---->A10---->A13
A2->A14: 2.800 A2---->B6---->A6---->A9---->A14
A2->A15: 3.120 A2---->B6---->A6---->B7---->A7---->A8---->B10---->A15 A2->B1: 0.860 A2---->B2---->B1 A2->B2: 0.560 A2---->B2
A2->B3: 1.680 A2---->B6---->A6---->B3
A2->B4: 2.480 A2---->B6---->A6---->B7---->A7---->B4 A2->B5: 0.800 A2---->B5 A2->B6: 0.560 A2---->B6
A2->B7: 1.520 A2---->B6---->A6---->B7 A2->B8: 1.760 A2---->A10---->B8
A2->B9: 2.560 A2---->B6---->A6---->A9---->B9
A2->B10: 2.560 A2---->B6---->A6---->B7---->A7---->A8---->B10 A2->B11: 2.880 A2---->A10---->A13---->B11 A2->B12: 1.520 A2---->A10---->B12
至此模型Ⅰ求解完毕,最佳地点为A 2。
从城市图中可以看到A 2处在城市中心地带,且在多条道路交汇点,交通便利,的确是个选址的好地点。模型求得的结果符合一般经验的认知。
4.2模型Ⅱ:两个消防队选址模型
当模型Ⅰ中消防队的数目变为两个时,模型变得比较复杂,难于求解。改进的指标函数变为
⎧n ⎫
M (i , j )=min ⎨∑W (k , k )[s 12(k ) +s 22(k )]⎬
⎩k =1⎭
s 1(k ) =min {D (i 1, k )+x (i 1, j 1), D (j 1, k )+A (i 1, j 1)-x (i 1, j 1)}
s 2(k ) =min {D (i 2, k )+x (i 2, j 2), D (j 2, k )+A (i 2, j 2)-x (i 2, j 2)}
需要求解的未知量过多,模型过于复杂,难于求解。我们可以结合模型Ⅰ得出的结论将模型合理简化。对城市的每条街道作分析后,我们发现消防队的地址几乎都选在了防火单位处。 部分x (i , j ) 数据如下:
x (1,3)=1.5990≈1.6=A (1,3)x (2,10)=0.0004≈0x (2,17)=0.0006≈0
x (1,3)=1.5990≈1.6=A (1,3)
(完整的数据参看附录五)
这并不是巧合,从经验选址的角度考虑,节点处不仅是现成的重点防火单位,也是最为交通便利的地点。因此,我们不妨将消防站的选址地点限定在有限的防
火单位处。建立改进的指标函数如下:
2⎫⎧n
N (i , j )=min ⎨∑W (k , k )min {D (i , k ), D (j , k )}⎬
⎩k =1⎭
()
其中i , j 为未知量。对此时的模型编程求解。(程序代码见附录六,程序文件为GetResult2.m )
代入数据,程序运行结果为:两个防火单位为A10和B3
防火单位分配 救火距离 A10->A2: 1.120 A10->A10: 0.000 A10->A11: 1.840 A10->A12: 1.900 A10->A13: 0.640 A10->B5: 1.920 A10->B8: 0.640 A10->B11: 1.760 A10->B12: 0.400
B3->A1: 3.100 B3->A3: 1.840 B3->A4: 1.360 B3->A5: 2.160 B3->A6: 0.400 B3->A7: 0.800 B3->A8: 1.440 B3->A9: 1.360 B3->A14: 1.920 B3->A15: 2.240 B3->B1: 1.500 B3->B2: 1.200 B3->B3: 0.000 B3->B4: 1.200 B3->B6: 1.120 B3->B7: 0.640 B3->B9: 1.680 救火路径 A10---->A2 A10
A10---->B12---->A11 A10---->B12---->A12 A10---->A13
A10---->A2---->B5 A10---->B8
A10---->A13---->B11 A10---->B12 B3---->B2---->B1---->A1 B3---->B2---->A3 B3---->A4
B3---->A4---->A5 B3---->A6
B3---->A6---->B7---->A7
B3---->A6---->B7---->A7---->A8 B3---->A6---->A9
B3---->A6---->A9---->A14
B3---->A6---->B7---->A7---->A8---->B10---->A15 B3---->B2---->B1 B3---->B2 B3
B3---->B4
B3---->A6---->B6 B3---->A6---->B7
B3---->A6---->A9---->B9
B3->B10: 1.680 B3---->A6---->B7---->A7---->A8---->B10
故最佳选址地点为i =A 10, j =B 3
A 10, B 3分别位于城市图的左下部和右上部,隐隐将城市分为两个部分,且亦都处于交通便利的防火单位之上,符合一般经验结论。具体责任区划分如下图所示:
4.3模型Ⅲ: 在已建好一个消防站的情况下再建一个消防站的选址模型
模型Ⅰ解决了单个消防站选址问题,模型Ⅱ解决了两个消防队选址问题,模
型Ⅲ需要解决的是已有一个消防站新增一个消防站选址问题。故将模型Ⅱ中一个消防队的位置固定,则另一个消防队的位置不难求出。改进的指标函数为:
2⎫⎧n
N (i 0, j )=min ⎨∑W (k , k )min {D (i 0, k ), D (j , k )}⎬
⎩k =1⎭
()
其中的i 0为已知的一个消防队地址。假设建的第一个消防队建在了单个消防站最优处,在本文中也即模型Ⅰ求得的结果A 2。以在A 2的基础上再建一个消防队为例,代入数据i 0=A 2,编程求解(程序代码见附录七,程序文件为GetResult3.m )。
程序运行结果为:
两个防火单位为A2和A7
防火单位分配 救火距离 救火路径
A2->A1: 2.460 A2---->B2---->B1---->A1 A2->A2: 0.000 A2
A2->A3: 1.200 A2---->B2---->A3 A2->A10: 1.120 A2---->A10
A2->A11: 2.400 A2---->B5---->A11
A2->A12: 3.020 A2---->A10---->B12---->A12 A2->A13: 1.760 A2---->A10---->A13 A2->B1: 0.860 A2---->B2---->B1 A2->B2: 0.560 A2---->B2 A2->B5: 0.800 A2---->B5 A2->B6: 0.560 A2---->B6
A2->B8: 1.760 A2---->A10---->B8 A2->B12: 1.520 A2---->A10---->B12
A7->A4: 2.160 A7---->B7---->A6---->B3---->A4 A7->A5: 2.400 A7---->B4---->A5 A7->A6: 0.400 A7---->B7---->A6 A7->A7: 0.000 A7
A7->A8: 0.640 A7---->A8
A7->A9: 1.200 A7---->A8---->B9---->A9
A7->A14: 1.760 A7---->A8---->B9---->A9---->A14 A7->A15: 1.440 A7---->A8---->B10---->A15 A7->B3: 0.800 A7---->B7---->A6---->B3 A7->B4: 0.800 A7---->B4 A7->B7: 0.160 A7---->B7
A7->B9: 0.880 A7---->A8---->B9 A7->B10: 0.880 A7---->A8---->B10
A7->B11: 2.320 A7---->A8---->B9---->A9---->A14---->B11
最终求得j A 7
A 7处在城市右半部分,恰好弥补了A 2在右半部分的缺失。具体责任区划分如下图所示:
4.4 模型评价及推广 1.模型的优点:
(1)本文所建立的模型均有成熟的理论算法基础,可信度高。
(2)本文所建模型均采用计算机编程求解,通用性好,较好的解决了消防站的选址问题。
(3)本文建立的模型不仅可解决消防站选址问题,而且可以推广到解决其他类似问题。
2.模型的缺点:
(1)模型部分数据做过适度简化,与实际情况可能有一定出入。
(2)模型对一般防火单位的细化研究不够充分,防火单位加权方式有待改进。
(五) 结语
本文对消防站的选址原则,责任区划分原则进行了科学的分析,使得消防站的规划建设不再仅依据经验进行。文中提出的方法又是简易的,其责任区模型的建立,点与点之间行车距离的确定,既保证了准确性,又避免了繁杂的不必要的大量计算过程,该方法易于推广普及,仅需一幅城市地图,并利用,的二次开发技术即可实现,所述的实例即是利用的二次开发技术实现的。另外,该方法同样适用于诸如医院急救站,巡逻警点等类似公共设施的规划建设。
参考文献
[1] 姜启源,谢金星,叶俊编著. 数学模型[M]. 北京:高等教育出版社,2003:
66-67.
[2] Thomas H.Cormen Charles E.Leiserson,Ronald L.Rivest Clifford Stein 著. 算法
导论[M].北京:机械工业出版社,2008:386-389.
[3] 互动百科. 城市道路系统. http://www.hudong.com/wiki/%E5%9F%8E%E5%B8 %82%E9%81%93%E8%B7%AF%E7%B3%BB%E7%BB
消防队选址模型的建立与分析
李志坚 郑钢锤 孟宪宇
本文就给定的城市交通图,对城市消防站三类选址问题进行了探讨,并分别建立了相应模型,较好的解决了消防队选址问题。对解决目前各个城市消防站增建选址问题有一定指导意义。
模型Ⅰ:提出了一个完整的消防队选址评估模型。通过对不同影响因素的分析,利用加权方式平衡了防火单位差别和道路差别。根据选址问题的特点和要求,在时间最短的基础上,构造了火灾损失最小的数学模型。把Floy-Warshall 算法引入到该模型的求解中,顺利解决了求防火单位最短距离问题。通过计算机编程,求得了模型的最优解,验证了模型的正确性。实例求解表明,该模型可以有效、快速地求得消防队选址问题的全局最优解。
模型Ⅱ:在对模型Ⅰ求得的结果充分分析的基础上,将模型进行了合理的简化。顺利解决了消防队的数目扩大到两个时变量过多模型求解困难的问题。
模型Ⅲ:综合模型Ⅰ与模型Ⅱ,通过分阶段选址,提出了改进的模型,顺利解决了新增消防站选址问题。
关键词:消防站选址 最短路Floy-Warshall 算法
(一)问题重述
1.1 基本情况
专职消防队是指在城市新区、经济开发区、工业集中区及经济较为发达的中心乡镇, 根据《中华人民共和国消防法》,按照质量建队的要求, 建立的承担区域性火灾扑救任务的市办、县办专职的消防队。消防队的任务是在发生火灾时及时赶到火灾现场,扑救火灾,抢救人的生命和重要物资。因此消防站的选址一定要科学合理,在火灾发生时及时尽快赶到火灾现场,减小损失。
1.2 问题的由来
总体来说全国大部分城市,消防站布点少,保护面积过大,如规划前广州市消防站所服务的最小责任区达11.8平方公里,最大责任区面积达700平方公里。从2001年的统计资料看,全国266个地级以上城市应有公安消防站2655个,实有1548个,欠账41.7%。不少城市已建的消防站责任区保护面积过大,难以满足消防车5min 到达责任区边缘的要求,有些地区,甚至连一个消防站都没有。因此,在资源有限的条件下,消防队的选址显得尤为重要。另外,在一座城市中,有重点防火单位,一级防火单位,一般防火单位之分。道路也有主干道和一般街道之分。所以消防队的选址不能简单的定在城市中心,而应当根据各单位分布,道路交通状况,综合考虑选址地点,必要时应当增加消防队的数目,保证在火灾发生时消防队的及时到达。
1.3 问题的要求
有一座城市,需要建立消防队,城市地图如下,其中实线为主干道,虚线为一般街道,标A 的地方为重点防火单位所在地。标B 的地方为一级防火单位。其他地方为一般防火单位,均匀分布在主干道和一般街道两旁。图中数字为相应路线长度,单位为公里。
(1)请你为消防队选一个合适的建队地址。 (2)若要同时建两个消防队,地址该如何选?
(3)若第二个消防队在前面已建好一个后再建,该如何选择地址?(可以类似自画图,考虑复杂程度,本图街道画得较少)
(二)基本假设
为简化模型,便于量化与计算,现作假设如下:
1. 不考虑消防队的反应时间,假设接到火情的瞬间,消防队即出发救火。
2. 不考虑路况,转弯,各路段加减速情况,假设消防车一直匀速运动。因此行车时间的衡量可简化为距离的衡量。主干路与一般街道的区别用路长的加权表示。
(三)符号设定
i , j ——城市地图中的各防火单位,5≤用于标定具体位置 。当1≤, i j 1
i , j 时,
代表防火单位A i , A j ;当16≤i , j ≤27时,i , j 代表防火单位B i -15, B j -15。
R ——城市地图防火单位邻接矩阵。R (i , j )表示点i , j 之间道路实际距离,
若无直连道路,赋值为inf ,代表无穷大。
W ——赋权矩阵。当i =j =k 时,W (i , j )表示防火单位k 的重要度加权;当
i ≠j 且i , j 有直连道路时,W (i , j )表示此道路加权值;当i ≠j 且i , j 无直连道路
时,W (i , j )赋值inf 。
W , A (i , j )表示防火单位i , j 之A ——加权后的道路邻接矩阵。定义A =R
间加权后道路距离,若无直连道路,赋值为inf ,代表无穷大
D ——最短距离矩阵,D (i , j )表示i , j 间最短距离。
B ——火灾损失。
n ——防火单位总个数。
s (k ) ——防火单位k 距离消防队的最短距离。
M (i , j ),N (i , j )——火灾损失指标函数。
(四)模型的建立与问题解决
4.1.问题的初步分析
通常选址问题只考虑到距离因素的影响,而消防队选址则还需要考虑到目标的重要性和时间因素。消防目标分布较为分散、地域跨度大,这对消防队位置的确定产生了较大的影响。其实影响消防站选址的因素很多, 例如交通条件、自然地理条件、道路状况、地价、城市功能分区要求等。显然,其中一些因素只能由人进行主观判断,而有些因素则可以利用计算机进行分析。事实上,要使火灾损失达到最小,最重要的是消防队接到火警后应能够尽快到达火灾现场。因此,在以往的研究中,一般都将消防车辆的行车时间作为评判消防站选址优劣的原则。本文则在此基础上,结合各单位防火级别的不同,火灾时间与损失的关系,建立了一个更为合理的评估模型体系。
在确立了以行车距离为基础作为消防站选址原则后,如何计算行车距离就成
了关键问题。对于一般防火单位,均匀分布在道路两旁,最明显的计算方法是积分法。设消防站位于(x 0, y 0)处,火灾发生点为(x , y ),s (x , y x 0, y 0)表示从消防站到火灾现场的最短距离,为了体现不同单位防火级别的不同,例如易燃易爆物品工厂,仓库与一般的住宅区火灾危险性不同。用W (x , y )表示火灾现场(x , y )处的火灾重要性权重,对一般地区可取W (x , y )为1,对重要地区可取W (x , y )为大于1的实数, 则位于(x 0, y 0)处的消防站至该区内所有假设火灾发生点的总行车距离为
S =∑⎰W (x , y )s (x , y x 0, y 0)dxdy
i =1l i
n
其中l i 为各路段。上述积分法理论上简单,但在实际应用中却并不实用。这是因为积分表达式中的W (x , y )和s (x , y x 0, y 0)并不是简单的连续函数,且这种对整个责任区段进行积分的过程也不容易编程实现。对于本题而言,一般防火单位均匀分布在主干道和一般街道两旁,因此只要能够有效到达重点防火单位和一级防火单位(也即图中各节点),就也能有效到达一般防火单位。故将模型合理简化为考虑有限个防火单位的选址问题。
4.2模型Ⅰ:单个消防队选址模型 4.2.1模型初步分析
根据题目所提供的城市图,提取数据,给出道路邻接矩阵R (具体数据见附录一)。其中R (i , j )表示防火单位i , j 之间道路实际距离,若无直连道路,赋值为
inf ,代表无穷大
为便于量化求解,将题目中的重点防火单位,一级防火单位,主干路,一般街道赋权处理。防火单位的处理以一级防火单位为基准,权重为1,重点防火单位赋权ω,ω>1可以适度照顾重点防火单位;道路的处理以一般道路为基准,权重为1,主干路赋权v ,v
阵W (具体数据见附录二)。当i =j =k 时,W (i , j )表示防火单位k 的重要度加权;当i ≠j 且i , j 有直连道路时,W (i , j )表示此道路加权值;当i ≠j 且i , j 无直连道路时,W (i , j )赋值inf 。
定义加权后的道路邻接矩阵
A =R W
A (i , j )表示防火单位i , j 之间加权后道路距离,若无直连道路,赋值为inf ,代表无穷大。
定义最短距离矩阵D ,其中D (i , j )表示道路加权后i , j 间最短距离。显然,要求出D 并不容易,逐条计算的方法繁复且不具有通用性,借助计算机求解是可行的方案。在图论中有许多求节点间最短距离的算法,在这里我们采用Floy-Warshall 算法编程求解。
Floy-Warshall 算法是基于动态规划的一种求有向图G =(V , E )顶点间最短路径的解决方案。它的运行时间为Θ(V 3),并且允许权值为负的边存在,但我们假设不存在权值为负的边。该算法利用最短路径结构的一个特征,即考虑最短路径上的中间顶点,其中简单路径p =(v 1, v 2, , v l )上的中间顶点是除v 1,v l 之外p 上的任何一个顶点,即任何属于集合(v 2, , v l -1)的顶点。[2]具体算法分析见参考文献[2]。
本文在Matlab 环境下采用Floy-Warshall 算法编程,圆满实现了矩阵D 的求解(程序代码见附录三,程序文件为floyd.m )
4.2.2模型的建立与求解 不妨假设消防队建在道路(i , j )之间的某个点上(i
s (k ) =min {D (i , k )+x (i , j ), D (j , k )+A (i , j )-x (i , j )}
一般而言,火灾发生后,火势以失火点为中心,以均匀速度向四周呈圆形蔓延,所以蔓延的半径r 与时间t 成正比。故火灾损失B 与t 2成正比,在速度v 一定的情况下,s 与t 成正比,故损失B 与s 2成正比。结合防火防火单位的重要度加权,建立火灾损失指标函数如下:
⎧n ⎫
M (i , j )=min ⎨∑W (k , k )s 2(k ) ⎬
⎩k =1⎭
根据指标函数依次对图中的道路进行分析,可以得到一个有限点的集合。量
化火灾损失
B min =min {M (i , j )}
可求得i , j 值。
到此为止,模型所要求的消防队地址可由i , j , x (i , j )三个量所唯一确定。由于计算量较大,繁杂,反复,再次利用计算机编程,可求得最佳地点(程序代码见附录四,程序文件为GetResult1a.m )。
城市道路的设计车速一般低于公路的设计车速。城市主干道设计车速为每小时40~60公里;次干道为每小时30~40公里。[3]故v 在0.5到1之间。 我们取ω=2, v =0.8,代入题目的数据。 程序运行结果:
最优的边为由节点i=2,j=21所组成的边:
由i=2,j=21所组成的最优边上X(2,21)=0.000060
分析以上结果,由于x (2,21)=0.00006≈0,我们可以说A 2即为最优点。编写程序求出A 2相关参数(程序代码见附录四,程序文件为GetResult1b.m )。
最合适的选址地为A2
救火目标 救火距离 救火路径
A2->A1: 2.460 A2---->B2---->B1---->A1 A2->A2: 0.000 A2
A2->A3: 1.200 A2---->B2---->A3
A2->A4: 2.400 A2---->B2---->A3---->A4
A2->A5: 3.200 A2---->B2---->A3---->A4---->A5 A2->A6: 1.280 A2---->B6---->A6
A2->A7: 1.680 A2---->B6---->A6---->B7---->A7
A2->A8: 2.320 A2---->B6---->A6---->B7---->A7---->A8 A2->A9: 2.240 A2---->B6---->A6---->A9 A2->A10: 1.120 A2---->A10
A2->A11: 2.400 A2---->B5---->A11
A2->A12: 3.020 A2---->A10---->B12---->A12 A2->A13: 1.760 A2---->A10---->A13
A2->A14: 2.800 A2---->B6---->A6---->A9---->A14
A2->A15: 3.120 A2---->B6---->A6---->B7---->A7---->A8---->B10---->A15 A2->B1: 0.860 A2---->B2---->B1 A2->B2: 0.560 A2---->B2
A2->B3: 1.680 A2---->B6---->A6---->B3
A2->B4: 2.480 A2---->B6---->A6---->B7---->A7---->B4 A2->B5: 0.800 A2---->B5 A2->B6: 0.560 A2---->B6
A2->B7: 1.520 A2---->B6---->A6---->B7 A2->B8: 1.760 A2---->A10---->B8
A2->B9: 2.560 A2---->B6---->A6---->A9---->B9
A2->B10: 2.560 A2---->B6---->A6---->B7---->A7---->A8---->B10 A2->B11: 2.880 A2---->A10---->A13---->B11 A2->B12: 1.520 A2---->A10---->B12
至此模型Ⅰ求解完毕,最佳地点为A 2。
从城市图中可以看到A 2处在城市中心地带,且在多条道路交汇点,交通便利,的确是个选址的好地点。模型求得的结果符合一般经验的认知。
4.2模型Ⅱ:两个消防队选址模型
当模型Ⅰ中消防队的数目变为两个时,模型变得比较复杂,难于求解。改进的指标函数变为
⎧n ⎫
M (i , j )=min ⎨∑W (k , k )[s 12(k ) +s 22(k )]⎬
⎩k =1⎭
s 1(k ) =min {D (i 1, k )+x (i 1, j 1), D (j 1, k )+A (i 1, j 1)-x (i 1, j 1)}
s 2(k ) =min {D (i 2, k )+x (i 2, j 2), D (j 2, k )+A (i 2, j 2)-x (i 2, j 2)}
需要求解的未知量过多,模型过于复杂,难于求解。我们可以结合模型Ⅰ得出的结论将模型合理简化。对城市的每条街道作分析后,我们发现消防队的地址几乎都选在了防火单位处。 部分x (i , j ) 数据如下:
x (1,3)=1.5990≈1.6=A (1,3)x (2,10)=0.0004≈0x (2,17)=0.0006≈0
x (1,3)=1.5990≈1.6=A (1,3)
(完整的数据参看附录五)
这并不是巧合,从经验选址的角度考虑,节点处不仅是现成的重点防火单位,也是最为交通便利的地点。因此,我们不妨将消防站的选址地点限定在有限的防
火单位处。建立改进的指标函数如下:
2⎫⎧n
N (i , j )=min ⎨∑W (k , k )min {D (i , k ), D (j , k )}⎬
⎩k =1⎭
()
其中i , j 为未知量。对此时的模型编程求解。(程序代码见附录六,程序文件为GetResult2.m )
代入数据,程序运行结果为:两个防火单位为A10和B3
防火单位分配 救火距离 A10->A2: 1.120 A10->A10: 0.000 A10->A11: 1.840 A10->A12: 1.900 A10->A13: 0.640 A10->B5: 1.920 A10->B8: 0.640 A10->B11: 1.760 A10->B12: 0.400
B3->A1: 3.100 B3->A3: 1.840 B3->A4: 1.360 B3->A5: 2.160 B3->A6: 0.400 B3->A7: 0.800 B3->A8: 1.440 B3->A9: 1.360 B3->A14: 1.920 B3->A15: 2.240 B3->B1: 1.500 B3->B2: 1.200 B3->B3: 0.000 B3->B4: 1.200 B3->B6: 1.120 B3->B7: 0.640 B3->B9: 1.680 救火路径 A10---->A2 A10
A10---->B12---->A11 A10---->B12---->A12 A10---->A13
A10---->A2---->B5 A10---->B8
A10---->A13---->B11 A10---->B12 B3---->B2---->B1---->A1 B3---->B2---->A3 B3---->A4
B3---->A4---->A5 B3---->A6
B3---->A6---->B7---->A7
B3---->A6---->B7---->A7---->A8 B3---->A6---->A9
B3---->A6---->A9---->A14
B3---->A6---->B7---->A7---->A8---->B10---->A15 B3---->B2---->B1 B3---->B2 B3
B3---->B4
B3---->A6---->B6 B3---->A6---->B7
B3---->A6---->A9---->B9
B3->B10: 1.680 B3---->A6---->B7---->A7---->A8---->B10
故最佳选址地点为i =A 10, j =B 3
A 10, B 3分别位于城市图的左下部和右上部,隐隐将城市分为两个部分,且亦都处于交通便利的防火单位之上,符合一般经验结论。具体责任区划分如下图所示:
4.3模型Ⅲ: 在已建好一个消防站的情况下再建一个消防站的选址模型
模型Ⅰ解决了单个消防站选址问题,模型Ⅱ解决了两个消防队选址问题,模
型Ⅲ需要解决的是已有一个消防站新增一个消防站选址问题。故将模型Ⅱ中一个消防队的位置固定,则另一个消防队的位置不难求出。改进的指标函数为:
2⎫⎧n
N (i 0, j )=min ⎨∑W (k , k )min {D (i 0, k ), D (j , k )}⎬
⎩k =1⎭
()
其中的i 0为已知的一个消防队地址。假设建的第一个消防队建在了单个消防站最优处,在本文中也即模型Ⅰ求得的结果A 2。以在A 2的基础上再建一个消防队为例,代入数据i 0=A 2,编程求解(程序代码见附录七,程序文件为GetResult3.m )。
程序运行结果为:
两个防火单位为A2和A7
防火单位分配 救火距离 救火路径
A2->A1: 2.460 A2---->B2---->B1---->A1 A2->A2: 0.000 A2
A2->A3: 1.200 A2---->B2---->A3 A2->A10: 1.120 A2---->A10
A2->A11: 2.400 A2---->B5---->A11
A2->A12: 3.020 A2---->A10---->B12---->A12 A2->A13: 1.760 A2---->A10---->A13 A2->B1: 0.860 A2---->B2---->B1 A2->B2: 0.560 A2---->B2 A2->B5: 0.800 A2---->B5 A2->B6: 0.560 A2---->B6
A2->B8: 1.760 A2---->A10---->B8 A2->B12: 1.520 A2---->A10---->B12
A7->A4: 2.160 A7---->B7---->A6---->B3---->A4 A7->A5: 2.400 A7---->B4---->A5 A7->A6: 0.400 A7---->B7---->A6 A7->A7: 0.000 A7
A7->A8: 0.640 A7---->A8
A7->A9: 1.200 A7---->A8---->B9---->A9
A7->A14: 1.760 A7---->A8---->B9---->A9---->A14 A7->A15: 1.440 A7---->A8---->B10---->A15 A7->B3: 0.800 A7---->B7---->A6---->B3 A7->B4: 0.800 A7---->B4 A7->B7: 0.160 A7---->B7
A7->B9: 0.880 A7---->A8---->B9 A7->B10: 0.880 A7---->A8---->B10
A7->B11: 2.320 A7---->A8---->B9---->A9---->A14---->B11
最终求得j A 7
A 7处在城市右半部分,恰好弥补了A 2在右半部分的缺失。具体责任区划分如下图所示:
4.4 模型评价及推广 1.模型的优点:
(1)本文所建立的模型均有成熟的理论算法基础,可信度高。
(2)本文所建模型均采用计算机编程求解,通用性好,较好的解决了消防站的选址问题。
(3)本文建立的模型不仅可解决消防站选址问题,而且可以推广到解决其他类似问题。
2.模型的缺点:
(1)模型部分数据做过适度简化,与实际情况可能有一定出入。
(2)模型对一般防火单位的细化研究不够充分,防火单位加权方式有待改进。
(五) 结语
本文对消防站的选址原则,责任区划分原则进行了科学的分析,使得消防站的规划建设不再仅依据经验进行。文中提出的方法又是简易的,其责任区模型的建立,点与点之间行车距离的确定,既保证了准确性,又避免了繁杂的不必要的大量计算过程,该方法易于推广普及,仅需一幅城市地图,并利用,的二次开发技术即可实现,所述的实例即是利用的二次开发技术实现的。另外,该方法同样适用于诸如医院急救站,巡逻警点等类似公共设施的规划建设。
参考文献
[1] 姜启源,谢金星,叶俊编著. 数学模型[M]. 北京:高等教育出版社,2003:
66-67.
[2] Thomas H.Cormen Charles E.Leiserson,Ronald L.Rivest Clifford Stein 著. 算法
导论[M].北京:机械工业出版社,2008:386-389.
[3] 互动百科. 城市道路系统. http://www.hudong.com/wiki/%E5%9F%8E%E5%B8 %82%E9%81%93%E8%B7%AF%E7%B3%BB%E7%BB