第17讲应急设施的优化选址问题问题(AMCM-86B题)里奥兰翘镇迄今还没有自己的应急设施。
1986年该镇得到了建立两个应急设施的拨款,每个设施都把救护站、消防队和警察所合在一起。
图17-1指出了1985年每个长方形街区发生应急事件的次数。
在北边的L形状的区域是一个障碍,而在南边的长方形区域是一个有浅水池塘的公园。
应急车辆驶过一条南北向的街道平均要花15秒,而通过一条东西向的街道平均花20秒。
你的任务是确定这两个应急设施的位置,使得总响应时间最少。
图17-1 1985年里奥兰翘每个长方街区应急事件的数目(I)假定需求集中在每个街区的中心,而应急设施位于街角处。
(II)假定需求是沿包围每个街区的街道上平均分布的,而应急设施可位于街道的任何地方。
§1 若干假设1、图17-1所标出的1985年每个长方形街区应急事件的次数具有典型代表性,能够反映该街区应急事件出现的概率的大小。
2、应急车辆的响应时间只考虑在街道上行驶时间,其他因纱(如转弯时间等)可以忽略不计。
3、两个应急设施的功能完全相同。
在应急事件出现时,只要从离事件发生地点最近的应急设施派出应急车辆即可。
4、执行任何一次应急任务的车辆都从某一个应急设施出发,完成任务后回到原设施。
不出现从一个应急事件点直接到另一事件点的情况。
(这是因为,每一个地点发生事件的概率都很小,两个地点同时发生事故的概率就更是小得可以忽略不计)。
§2 假定(I )下的模在假定(I )下,应急需求集中在每个街区中心。
我们可以进一步假定应急车辆只要到达该街区四个街角中最近的一个,就认为到达了该街区,可以开始工作了。
按假定(I ),每个应急设施选在街角处,可能的位置只有6×11=66个。
两个应急设施的位置的可能的组合至多只有66×65/2=2145个。
这个数目对计算机来说并不大,可用计算机进行穷举,对每种组合一一算出所对应的总响应时间,依次比较得出最小的响应时间及对应的选址方案。
具体算法是:建立直角坐标系,以该镇的西北角为原点,从北到南为X -轴正方向,从西到东为Y -轴正方向,在南北、东西方向上分别以一个街区的长作为单位长,则街角的坐标),(Y X 是满足条件50,100≤≤≤≤Y X 的整数。
而每个街区中心的坐标具有形式)5.0,5.0(++j i ,其中j i ,是满足条件:40,90≤≤≤≤j i 的整数。
如果不考虑障碍和水塘的影响,同应急车辆从设在),(Y X 点的应急设施到以)5.0,5.0(++j i 为中心的街区的行驶时间等于)5.05.0(20)5.05.0(15),,,(---+---=j Y i X j i Y X t)5.17)5.0(20)5.0((15-+-++-=j Y i X 秒记),(j i p 为以)5.0,5.0(++j i 为中心的街区的事故发生频率(即在图上该街区所标的数字)。
如果应急设施设在),(),,(2211Y X Y X 这两点,总不妨设21X X ≤,则该设置方案的总响应时间为),,,(2211Y X Y X T∑∑===90402211)},,,(),,,,(min{),(i j j i Y X t j i Y X t j i p让1X 取遍0—10,2X 取遍101-X ,21,Y Y 分别独立地取遍0—4。
依次对四数组),,,(2211Y X Y X 的每一个值算出对应的总响应时间的最小值及对应的四数组。
以上算法不难用计算机编程实现。
由于数组的个数不算多(只有两千多个),计算机可很快得出答案。
答案是:两个应急设施分别设在点(2,3),(6,3)时最优。
这是在不考虑L 形障碍区域和水塘的影响的假定下得出的最优解,但从这两个点到任何街区都可避开L 形障碍区域和水塘,故它们也就是原题所需的最优选址。
§2 假定(II )下的模型在假定(II )下,由于允许应急设施设在街道上任何位置,这就有无穷多种可能位置,不能直接用计算机穷举。
不过,我们可证明:应急设施仍应设在街角处,才能使总响应时间最少。
对已选定的两个应急设施的位置A 和B ,我们先来看总响应时间怎样计算。
首先,我们将街道上所有的点的集合划分成两个责任区B A V V ,,分别由B A ,进行救助:街道上的点P 如果由A 点去救助比由B 点去救助的路程更近,就将P 划进A 的责任区A V ,反之就划进B V ,为叙述方便,我们将每个长方形街区的四条边中的每一条称为一条“街道”,街道的一段称为“街段”。
每条街道中属于A V 的点与属于B V 的点各组成一个街段,分别称为A 的或B 的“责任段”。
一条街道最多被分成两个责任段(也有可能整条街道属于同一个责任区,因而本身就是一个责任段),责任地段只有有限多条,对每个应急设施,我们分别算出它的每个责任段的总响应时间,将这些总响应时间求和就得到这个设施的责任区的总响应时间。
将两个责任区各自的总响应时间相加就得到这一选址方案的总响应时间。
下面需要知道:任一设施A 到它的一个责任段EF 的总响应时间怎样计算。
按假定(II ),街区出现事故的频率平均分布在它周围的四条街道上,每条街段的事故发生频率与它的长度成正比。
将应急车辆每秒钟行驶的路程作为长度单位,则当街区事故频率为p 、街段的长度为t 时,这一街段的事故频率为70,70/t p ⨯是街区的周长,即车辆绕街区行驶一周需70秒。
在大多数情况下,一条街段同时与两个街区相邻,两个街区的事故它都有份,它的事故频率应为q p t q p 、,70/)(⨯+分别是两个街区的事故的总频率(即原题图上标出的数)。
当然可以用积分的方法。
即插入分点将责任段EF 分成许多微小街段i δ,对每一小段i δ按其长度计算出它的事故发生频率i i kds p =,其中i ds 是i δ的长度,k 是与i 无关(但与EF 的选取有关)的常数。
取应急车辆人A 到i δ中任意一点的行驶时间i T 作为A 到i δ的时间,则微小街段i δ的响应时间近似地等于i i ds T 。
对这些微小的响应时间求和即得到EF 的总响应时间的近似值。
让每个0→i ds ,求和变成求积分即可。
但在这里,问题比较简单,可以不用积分。
事实上,由于EF 的每一小段的事故发生频率只与这一小段的长度有关,换句话说:频率密度是常数,只要求出EF 到A 的平均行驶时间T ,再乘以EF 的总的事故频率就行了。
当A 设在街角处时,平均行驶时间也就是A 到EF 的中点M 的行驶时间212015m Y m X T MA -+-=秒,这里),(),,(21m m Y X 分别是M A ,的坐标,而且不考虑障碍和水塘的影响。
将MA T 乘以EF 的事故频率,就得到EF 的总响应时间。
换句话说,就是将EF 的事故频率EF P 集中到M 点,认为M 按频率EF P 发生事故,而EF 的其他点都不发生事故。
这样不会改变EF 的总响应时间,却便于计算,如果应急设施A 不是设在街角处,而是设在某条街道CD 的两个端点D C 、之间,则可能出现这样的情况:从A 出发到EF 中的某些点的最短救助路线应向C 方向行驶,崦到另一些点去则应向D 方向行驶。
这时,平均时间就不等于A 到EF 中点M 的时间AM T ,而是比AM T 小。
在这样的情况下EF 可以分成两段GF EG 、,从A 到其中一段(比如EG )上的所有的点的最短救助路线应向C 方向行驶,而到另一段(比如GF )上的所有的点的点则应向D 方向行驶。
分别计算GF EG 、的事故发生频率GF EG P P ,,将这两个频率分别集中在GF EG 、各自的中点21,M M ,就可分别算出GF EG 、的总响应时间,再将它们相加就得到EF 的总响应时间。
下面证明:最短的总响应时间必可由设在街角处的应急设施B A 、来实现。
假定已选择两个应急设施B A 、的位置使总响应时间最短,且至少有一个设施(比如A )不是设在街角处,而是设在某一条街道CD 的两个端点D C 、之间。
我们证明:可以把这个设施从A 移到C 或D ,使总响应时间不增加,(而且很可能减少)。
证明的主要想法是:将设施迁移到街角后,它到某些街段缩短了一段路程,同时到另外某些街段增加同样长的一段路程。
如果路程缩短的那些街段的事故总频率大于路程增加的那些街段的事故总频率,则总响应时间缩短了,设施位置得到优化,说明原来的位置不是最优。
先考虑与街道CD 相邻的街区,也就是与急救站A 相邻的街区。
要使总响应时间最少,两个急救站B A ,的位置显然不应当靠得太近。
因此,可以假定与A 相邻的街区周界上所有的点到A 的路程都小于它们到B 的路程,因而都应当由A 负责救助。
这个街区的事故频率p 均匀分布在街区的周界上。
我们指出:救助这个街区的事故频率p 均匀分布在街区的周界上。
我们指出:救助这个街区的事故的总响应时间与A 在CD 上的位置选取无关。
事实上,无论A 处于街道CD 上哪一个位置,总存在一点A '将街区周界分成路程相等的两段,第一段由A 经C 到A ',第二段由A 经D 到A ',每一段的总行驶时间是7/2=35秒,事故总频率是2/p 。
由A 出发去救助每一段上各点的平均行驶时间等于35/2秒,因而两段的总响应时间为2)2/35()2/(⨯⨯p 秒,确实与A 点位置的选取无关。
因此,在讨论A 在CD 上的位置选取时,不需考虑到CD 相邻的街区的事故的影响,不妨暂时假定这样的街区的事故频率为0,特别是街道CD 上不发生事故,不需要救助。
设P 是A 的责任区A V 内需要救助的任一点,从A 出发到P ,有两种可能的最短救助路线AP :一种是沿AC 、经由C 点到P ,另一种是沿AD 、经由D 点到P 。
凡是AP 属于前一种情况的,这样的点P 组成的集合记作C U ;凡是AP 属于后一种情况的,这样的点P 组成的集合记作D U 。
这样就将A 的责任区按最短救助路线出发时的两个不同方向分成了两个区域(各由一些街段组成)。
比较D C U U ,这两个区域各自的事故总频率D C P P ,的大小。
如果C P 比D P 大,我们就将设施从A 移到C ,向C U 靠拢(同时远离D U );反之,当D P 比C P 大时,将设施由A 迁到D 去靠近D U (同时远离C U );当D C P P =时将设施任意迁到C 或D 都可以。
我们证明:将设施经过这样的迁移后,总响应时间只可能减少,不可能增加。
因此,假如迁移前的方案最优,迁移后一定还是最优(事实上,当D C P P ≠时,迁移后的方案一定比原来更优,说明原来不可能最优)。
不妨先假定D C P P ≥,设施从A 迁到C 点。