可求得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,我们可以说A2即为最优点。编写程序求出A2相关参数(程序代码见附录四,程序文件为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
至此模型Ⅰ求解完毕,最佳地点为A2。
从城市图中可以看到A2处在城市中心地带,且在多条道路交汇点,交通便利,的确是个选址的好地点。模型求得的结果符合一般经验的认知。
4.2模型Ⅱ:两个消防队选址模型
当模型Ⅰ中消防队的数目变为两个时,模型变得比较复杂,难于求解。改进的指标函数变为
?n?22M?i,j??min??W?k,k?[s1(k)?s2?k?]?
?k?1?
s1(k)?min?D?i1,k??x?i1,j1?,D?j1,k??A?i1,j1??x?i1,j1??
s2(k)?min?D?i2,k??x?i2,j2?,D?j2,k??A?i2,j2??x?i2,j2??
需要求解的未知量过多,模型过于复杂,难于求解。我们可以结合模型Ⅰ得出的结论将模型合理简化。对城市的每条街道作分析后,我们发现消防队的地址几乎都选在了防火单位处。 部分x(i,j)数据如下:
x(1,3)?1.5990?1.6?A(1,3)x(2,10)?0.0004?0x(2,17)?0.0006?0x(1,3)?1.5990?1.6?A(1,3)?
(完整的数据参看附录五)
这并不是巧合,从经验选址的角度考虑,节点处不仅是现成的重点防火单位,也是最为交通便利的地点。因此,我们不妨将消防站的选址地点限定在有限的防火单位处。建立改进的指标函数如下:
?nN?i,j??min??W?k,k?min?D?i,k?,D?k?1??j,k???2???
其中i,j为未知量。对此时的模型编程求解。(程序代码见附录六,程序文件为GetResult2.m)
代入数据,程序运行结果为:
两个防火单位为A10和B3
防火单位分配 救火距离 救火路径 A10->A2: 1.120 A10---->A2 A10->A10: 0.000 A10
A10->A11: 1.840 A10---->B12---->A11 A10->A12: 1.900 A10---->B12---->A12 A10->A13: 0.640 A10---->A13
A10->B5: 1.920 A10---->A2---->B5 A10->B8: 0.640 A10---->B8
A10->B11: 1.760 A10---->A13---->B11 A10->B12: 0.400 A10---->B12
B3->A1: 3.100 B3---->B2---->B1---->A1 B3->A3: 1.840 B3---->B2---->A3 B3->A4: 1.360 B3---->A4 B3->A5: 2.160 B3---->A4---->A5 B3->A6: 0.400 B3---->A6
B3->A7: 0.800 B3---->A6---->B7---->A7
B3->A8: 1.440 B3---->A6---->B7---->A7---->A8 B3->A9: 1.360 B3---->A6---->A9
B3->A14: 1.920 B3---->A6---->A9---->A14
B3->A15: 2.240 B3---->A6---->B7---->A7---->A8---->B10---->A15 B3->B1: 1.500 B3---->B2---->B1 B3->B2: 1.200 B3---->B2 B3->B3: 0.000 B3
B3->B4: 1.200 B3---->B4 B3->B6: 1.120 B3---->A6---->B6 B3->B7: 0.640 B3---->A6---->B7
B3->B9: 1.680 B3---->A6---->A9---->B9
B3->B10: 1.680 B3---->A6---->B7---->A7---->A8---->B10
故最佳选址地点为i?A10,j?B3
A10,B3分别位于城市图的左下部和右上部,隐隐将城市分为两个部分,且亦
都处于交通便利的防火单位之上,符合一般经验结论。具体责任区划分如下图所示:
2 A1 A3 1.5 A4 1 A5 2 0.3 B1 B2 0.8 1.2 B3 1.7 2.0 B4 3 1.5 0.7 0.7 B5 A2 B6 0.5 0.9 A6 1 0.2 B7 A7 0.3 0.8 2 1.8 0.5 B121.4 0.8 A10B8 1.2 1.2 A9 B9 0.8 A11A8 0.4 0.3 0.3 B101 1.5 0.8 0.7 0.7 2 A12A131.4 B110.7 A141.2 A15
4.3模型Ⅲ: 在已建好一个消防站的情况下再建一个消防站的选址模型
模型Ⅰ解决了单个消防站选址问题,模型Ⅱ解决了两个消防队选址问题,模型Ⅲ需要解决的是已有一个消防站新增一个消防站选址问题。故将模型Ⅱ中一个消防队的位置固定,则另一个消防队的位置不难求出。改进的指标函数为:
?nN?i0,j??min??W?k,k?min?D?i0,k?,D?k?1??j,k???2???
其中的i0为已知的一个消防队地址。假设建的第一个消防队建在了单个消防站最优处,在本文中也即模型Ⅰ求得的结果A2。以在A2的基础上再建一个消防队为例,代入数据i0?A2,编程求解(程序代码见附录七,程序文件为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?A7
A7处在城市右半部分,恰好弥补了A2在右半部分的缺失。具体责任区划分如