一种快速疏散算法的制作方法

文档序号:6728487阅读:277来源:国知局
专利名称:一种快速疏散算法的制作方法
技术领域
本发明属于计算机应用领域,具体涉及疏散问题的一种快速算法,尤其是涉及一 种应用于大规模灾害发生时使用交通路网进行人员疏散的快速疏散算法。
背景技术
疏散算法(Evacuation Planning)是一类特殊的网络优化问题,它研究如何将给 定的危险地点的人尽快输送到给定的安全地点。如果遇到诸如地震、海啸等灾害,特别是当 这些灾害发生在大中型城市中时,往往需要把大量的人口,从其居住,工作的聚集地点,沿 着交通路网疏散到安全的避难营地。而最大的挑战就在于路网的容量有限,如果没有合理 的规划和引导,很容易造成不必要的拥堵。因此,研究大规模路网的合理疏散算法,有助于 决策者制订合理的计划,使城市的每个公民以“最优”的路径逃生。这里,“最优”的含义不 同于具体的对某个公民有利的最短路径,而是对整个城市的所有公民来讲,能够最大限度 地缩短所有人逃生时间的路径。疏散问题通常被抽象到一个时变的容量受限图G(N,E,S,D,P,T)中进行讨论。其 中,N表示图节点(Node)的集合,E表示边(Edge)集合,S表示源点(source)的集合,D表示 目标点(Destination)集合,P表示疏散者(evacuees)的集合,T表示疏散过程经历的时间 (Time)。每个源点表示危险地点,里面有数量不等的待疏散者(evacuee),需要通过将其疏 散到若干安全的地点(Destination)。路网由边(Edge)及节点(Node)构成,边有通过时间 (Travel Time)和边容限(Edge Capacity)两个属性,分别表示通过此边需要的时间和同时 进入某一个边的最大人数。节点有节点容限(Node Capacity),表示同一时刻不能有更多的 人进入该节点。在疏散过程中,会有一定的人流flow通过特定的路径Path从某源点出发到 达目标节点。不同源点,不同时刻出发的人流会在不同时刻占用部分边的容限。为了表示 每一个时刻的各个边和节点的可用容限,需要使用“可用容限表”Available_capacity[N] [Τ],Available_capacity[E] [Τ]来记录每一个时刻 t(t e Τ)的任一节点 η (η e N),和任 一边e(e e Ε)的可用容限。问题的定义如下给定拥有如下性质的交通路网G(N, Ε,S,D,P,Τ),包含:一个源点(Sources)集合S,每个源点上有若干待疏散人;一个目标点(Destination)集合 D ;每个边的长度(e. length)是其通过时间(Travel time);每个边和节点都有最大的容限(Capacity);输出一个疏散路径规划集合,其中每一个一个规划包括一组人通过的路网节点 和出发时间。约束主要的约束有两个1)路网的容限限制;S卩同时进入一条边的人数不能超过路网的最大容限 Capacity ;
2)先入先出准则FIFO;即进入同一条路段的人流,先进入该路段首节点的的人 抵达该路段末节点的时间必定不慢于后进入的人;目标优化的目标主要取决于两方面l)Min 总体逃逸时间(Egress Time);2)Min 规划的计算时间(Compilation Time);

图1是一个简单的疏散网络示意图,对应的疏散方案如表1所示。
权利要求
一种应用于大规模灾害发生时使用交通路网进行人员疏散的快速疏散算法,包括如下步骤A.根据网络拓扑初始化网络图;B.根据实时路况初始化边与节点的可用容限表Available_capacity[N][T]和Available_capacity[E][T],对其中每一个元素Available_capacity[n][t]以及Available_capacity[e][t]以边和节点的容限进行赋值;其中e为边E的元素,t为T的元素,T为预定义的疏散时间;C.初始化存储各个源点最短路径的优先队列;D.为所有疏散者安排疏散路径;其特征在于, 所述步骤C中,设置两个同构的优先队列PreRQ和RQ,其保存的键值对为<最早到达时间,源ID>,记作<EA,S>;同时将源点分为两类,已经有预留路径的源点放入RQ队列,尚没有预留路径的源点放入PreRQ队列; 所述步骤D的实现方法为D1.如果PreRQ和RQ均不为空,则对PreRQ和RQ执行取顶操作,得到顶端元素分别为P1<EA1,S1>和Q1<EA1,S1>;如果PreRQ为空,所有的源点都已经有了至少一条可预留路径,即都进入了RQ,这时设置P1.EA1为无穷大INF;如果RQ为空,说明所有的源点里的所有疏散者都已经找到了合适的路径,算法结束;D2.比较P1.EA1与Q1.EA1的大小,a)如果P1.EA1小于或等于Q1.EA1,对EA1对应的S1的最早到达路径P1中的每一条路段进行可用性检验,方法是遍历该路径的每一条边e∈P1,检查通过该边的时刻t,其可用边表对应的值是否为0,a1).如果有任意一条边e的可用边表值Avaialble_capacity[e][t]为0,则更新S1的下一条可用路径P1’,重新以P1’对应的时间EA1’<EA1’,S1>插入PreRQ队列;转步骤D1;a2).如果检验结果P1路径的各个路段都可用,则将<EA1,S1>放入RQ中,转步骤D1;b)如果P1.EA1大于Q1.EA1,那么对RQ再进行一次访问顶端操作得到Q2<EA1,S1>;将Q1预留的路径上的人流安排疏散,如果Q1对应的源点S1中已经没有疏散者,转步骤D1;否则从Q1的源点S1开始更新下一条可预留路径Q1’<EA1′,S1>;c)比较Q1’.EA1’和Q2.EA1的大小,c1).如果Q1’.EA1’小于等于Q2.EA1,将Q1’预留的路径上的人安排疏散;如果Q1’对应的源点S1中已经没有疏散者,转步骤D1;否则继续S1开始更新下一条可预留路径作为新的Q1’<EA1′,S1>,转步骤c);c2).否则,将Q1’<EA1’,S1>插入RQ队列中,转步骤D1。
2.如权利要求1所述的快速疏散算法,其特征在于,所述步骤al)中,更新可用路径 ΡΓ的算法为使用Dijkstra算法寻找从源点出发抵达各个节点的最早时间EA(η) (η e N)),在计算 节点nl通过边e抵达节点n2时,引用边e的可用容限表Available^apacity [e] [t],检查 边e在t时刻的值1)如果AVailable_CapaCity[e][t] > 0,说明边e在t时刻有可用容限,则修改e的 末节点n2的抵达时间为EA(n2) = EA(nl)+e. length ;2)如果AVailable_CapaCity[e][t] = 0,说明边e在t时刻没有可用容限,则等待 时间wait累加;直到Available_capacity[e] [t] > 0,修改n2的抵达时间为EA(n2)= EA (η1)+e. length+wait ;3)从源点S到任意一个目标点集合D中的目标点d得到确定的最早到达时间EA(d), 把对应的路径记作ΡΓ,该路径即为所求新的可用路径。
3.如权利要求2所述的快速疏散算法,其特征在于,所述步骤cl)中更新下一条可预留 路径Q1’的算法为1)使用权利要求2所述的方法更新可用路径;2)确定可疏散人流大小取ΡΓ各个路段的可用容限的最小值,作为该路径ΡΓ的可 用容限;用可用容限与当前源点的剩余疏散者作比较,取两者的较小值做为人流flow的大3)预留该路径修改ΡΓ路径上的各个路段的边和节点可用容限表,将其中对应于到 达该边和节点时刻的可用容限减去flow。
4.如权利要求1所述的快速疏散算法,其特征在于,所述步骤C的实现方法为,使用 Dijkstra算法,不考虑边的可用容限,计算所有源点到距离其最近的目的节点的最短路径, 将所有源点及其最早到达时间作为键值,插入到优先队列PreRQ中;对PreRQ队列的顶端进 行一次取顶操作,将得到的元素插入到优先队列RQ中。
全文摘要
本发明提供了一应用于大规模灾害发生时利用交通路网进行人员疏散的快速疏散算法FastEvac,属于计算机应用领域。该算法是对传统快速疏散算法CCRP的重大改进,使用了双优先队列来保存每次迭代的计算结果以加速算法的运算效率,同时将源点分为两类,把已经有预留路径的源点和尚没有预留路径的源点分别放入两个优先队列中,每次迭代通过取两个优先队列的顶端元素的方法来得到需要进行单源最短路径计算的源点。这样避免了每次迭代在源点集和目标点集之间进行多源多目标点最短路径计算,相比于CCRP大幅提高了计算的效率。
文档编号G08G1/01GK101958044SQ20101027950
公开日2011年1月26日 申请日期2010年9月13日 优先权日2010年9月13日
发明者尹大朏, 方裕 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1