考虑到警车配置和巡逻方案需要满足:警车在接警后叁分钟内赶到普通部位案发现场的比例不低于90%,赶到重点部位必须控制在两分钟之内的要求。设计算法的目标就是求解出在满足D1情况下,总的警车数目最小,即每个区域都尽可能多地覆盖道路节点。由于警车的初始位置是未知的,我们可设警车初始停靠点在道路上的任一点,即分布在图4所示的762个离散点中的某些点节点上,总体思路是让每两辆车之间尽量分散地分布,一辆警车管辖一个分区,用这些分区覆盖整个区域。
于是我们设计算法1,步骤如下所示:
Step1:将整个区域预分配为个分区,每个分区分配一辆警车,警车的初始停靠位置设在预分配区中心的道路节点上,假设区域的中心不在道路节点上,那么将警车放在离中心最近的道路节点上;
Step2:统计分区不能覆盖的节点,调整警车的初始停靠点,使分区覆盖尽可能多的道路节点,调整分为区内调整和区间调整方案:〔1〕区内调整按照模拟退火思想构造的函数,在区间调整调整车辆初始点的位置〔后文中有详细说明〕,当分区内节点数较多时,调整的概率小些,分区内节点数较少时,调整的概率大些,〔2〕当区域中存在未被覆盖的节点或节点群〔大于等于叁个节点集中在一个范围内〕时,将警车初始位置的调整方向为朝着这些未被覆盖的节点按一定的规那么〔在
对算法的几点说明:
〔1〕该算法所取的车辆数是由多到少进行计算的,初始值设为20,这个值的选取是根据区域图估算的。
(2)预分区的优点在于使警车的初始位置尽可能均匀地分散分布,警车的初始停靠点在一个分区的中心点附近寻找得到,比起在整个区域随机生成停靠点,计算效率明显得到提高。
预分配之后,需要对整个区域不断地进行调整,调整时需要考虑调整方向和调整概率。
警车调整借鉴的是模拟退火算法的方法,为了使分区内包含道路节点数较多的分区的初始停车点调整的概率小些,而分区内包含道路节点数的少的分区内的初始停车点调整的概率大些,我们构造了一个调整概率函数,
〔1〕
〔1〕式中,均为常数,为整个区域车辆数,为第分区内覆盖的节点数,为时间,同时也能表征模拟退火的温度变化情况:初始温度较高,区域调整速度较快,随着时间的增加,温度不断下降,区域调整速度逐渐变慢,这个调整速度变化也是比拟符合实际情况的。
由式〔1〕可以得出调整概率函数,假设在相同的温度〔时间〕的条件下,由于总的车辆数目是定值,当时,即第分区内的节点数大于第分区的节点数时,分区调整的概率大些,分区的调整概率小些。分析其原因:当分区内包含了较多的节点个数时,该分区的警车初始停靠位置选取地比拟适宜了,而当分区内包含的道路节点数较少时,说明警车的初始停靠位置没有选好,需要更大概率的调整,这样的结论也是比拟客观的。
对于所有分区外未被覆盖的道路节点和很多节点〔称之为节点群〕,用来调整警车位置迁移的方向,其分析示意图如图5所示。调整方案目标是使未被覆盖的节点数尽量的少。在设计调整方向函数时,需要考虑:〔1〕节点群内节点的数目;〔2〕警车距离节点群的位置。优先考虑距离,所以在公式〔2〕中,用距离的平方来描述调整方向函数。
由于某一个区域范围内的未被覆盖节点数,整个区域未被覆盖的节点总数,分区域与未被覆盖的节点或节点群的距离等几个因素会影响到调整的方案,所以要综合考虑这些因素。于是设计了区间调整函数,
式中,表示第个分区内未被覆盖的节点数,表示第分区域与未被覆盖的节点或节点群的距离,表示未被覆盖的节点和节点群个数。
现在简要分析第分区按区间调整函数的调整方案,当某两节点群的节点数目相等,但是距离不等时,如,由区间调整公式可知,该区间向节点群方向调整。当某个分区与两个节点群的距离相等,但节点群的内节点个数不相等,如时,由〔4〕可知,该分区域会想节点群方向调整。
注意在整个调整过程中,调整几率控制是否调整,调整方向函数控制调整的方向,寻找在这种调整方案下的最优结果。
图5调整分区域示意图
〔3〕在step3中,使用Floyd算法计算出警车初始停靠点到周边各节点的最短距离,目的是当区域内有情况发生
-->>(第5/7页)(本章未完,请点击下一页继续阅读)