交通网络有效路径的一种搜索算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通网络有效路径的一种搜索算法

摘要:基于图论中Dijkstra算法的思想,建立了一种搜索交通网络OD对间所有有效路径的方法。当不考虑有效路径的限制时,该方法可按路径长度递增的顺序依次搜索出有向图中的所有通路。针对具有24个节点、77条路段的某交通网络,我们进行了大量仿真,结果表明该算法是十分有效的。本文提出的方法可用于简化交通网络OD估计中监测点定位的算法。

关键词:OD矩阵;路径搜索;仿真

A Search Algorithm for Effective Paths in Traffic Networks

LIN Yong, CAI YuanLi, HUANG YongXuan

( School of Electronic and Information Engineering, Xi’an Jiaotong University, Xi’an 710049,China )

Abstract:Based on the Dijkstra methodology in graph theory, an algorithm to search all the effective paths between OD pairs in traffic networks is proposed. This algorithm is also generalized to determine all the paths in a directional graph in the ascending order of paths length. A lot of simulations have been conducted on a traffic network with 24 nodes and 77 links. It is shown that the search algorithm is effective and efficient. The algorithm can be applied to simplify the surveillance points positioning in the OD matrix estimate of traffic networks. Keywords: OD matrix; path search; simulation

1 引言

OD矩阵,或称OD表,是交通网络中所有起点(Origin)与终点(Destination)之间出行交换数量的表格,其中的每个元素反映了特定OD对间在一定时间段内的出行量。它是交通网络规划和交通管理的重要依据。历史上,OD矩阵是作大量的交通调查得到的,代价十分高昂。1978年,Vdnzuylon 和Wllumsen通过交通网络中一定数量的路段流量观测值来估计OD矩阵,使OD估计的研究有了一个突破口[1]。之后,经过国内外学者的不断努力,建立了各种OD估计模型[2]。然而,几乎所有的OD估计模型均未讨论如何设置交通量观测点,使得任意OD 对间的出行量均能被某个观测点检测到。文献[3~5]对此进行了专门研究,提出观测点设置应当满足的4个规则,并建立0-1整数规划模型进行求解。但上述方法需已知各OD 对间的有效出行路径。文献[6]为避免列举这些有效路径,根据检测点应当满足的规则,建立了关于其分布的非线性规划模型。在已知极点间转移概率的前提下,将检测点的分布问题描述成一个平均报酬Markov决策过程,并通过转化为一个等价的整数线性规划问题求解。为此,本文运用仿真的思想来搜索OD对间的所有有效路径,以简化上述的OD量观测点定位算法。

2 有效路径的搜索算法

2.1 有效路段与有效路径[7]

有效路段)

,(j

i定义为路段终点j比路段起点i更靠近出行目的地s的路段,即沿该路段前进能更接近出行终点。因此,有效路段的判别条件为:对于路段)

,(j

i,若

)

,(

)

,

(

mi n

mi n

s

i

L

s

j

L ,则为有效路段。

),(min b a L 为节点a 至b 的最短路权,可采

用Dijkstra 算法得到。有效路段是相对于OD 对),(s r 而言的,某一路段在某一OD 对下为有效路段,而在另一OD 对下可能为非有效路段。有效路径必须由一系列的有效路段组成,每个OD 对的出行量只在它相应的有效路径上进行分配。

对于通常的城市交通网络,交叉口相交道路数多数为4条,各节点的有效路段及有效路径一般为1~3条。在区域公路网中,一般交通节点与城市交通节点相同,但对于交通枢纽(城市),连接道路可多达8~10条,有效路段可达5条左右。

2.2 算法的基本思想

在具有非负权值的图中,Dijkstra 算法是求取两点间最短路问题的有效方法之一。其基本思想是[8]:从起点s 沿一切可能的弧派遣使者,这些使者均以相同的速度匀速前进,看谁首先到达一个新的顶点;当一个使者到达第一个新顶点时,则给他作记号,以表示他是从顶点s 来的,同时记录下历经的路径长度;而后又毫无延迟地再派遣使者,沿一切可能的弧以原速匀速前进……,重复前面的过程,一直到达要求的终点为止。把从s 到t 最快的使者历经的路径,作为t s 的最短路径。上述思想稍加整理,即可得到Dijkstra 算法。

对Dijkstra 算法的思想稍加变通,即只对满足有效路段约束条件的下游弧派遣使者,便可按路径长度递增的顺序搜索交通网络中特定的OD 对间的全部有效路径。不加约束条件,算法按路径长度递增的顺序可依次得到从起点s 到其它各点的所有通路。对于大规模的交通网络,这或许会导致“组合爆炸”;但在计算能力容许的前提下,至少可按路径长度递增的顺序,一次找出某起点s 到其它节点间的所有长度小于L 的通路。和常用的通路搜索算法相比,如邻接矩阵乘方逐步回溯法[9],转化为最短路、次短路、次次短路、……的搜索方法[10],该方法的思路直观简洁、易于实现;而且,仿真中可根

据需要设定搜索条件,如上文所述的有效路

径搜索,极大地减少了计算量。

将上述思想用仿真的方法实现,即可得到期望的结果。

2.3 仿真流程

仿真系统中,交通网络的各路段信息存放在数据库中。各路段的属性为:上游节点、下游节点、路段长度等;各使者的属性有:指向其父使者的指针,历经的路径上的各节点顺序表,所在路段的下游节点,当前时间,到达下游节点的时间。所有使者的信息存放在一条使者链表中,链表中的每个节点存放一个使者的信息。各使者的速度假定均为1m/s ,故通过一条路段所需时间数值上与该路段长度相等。仿真流程如下

1) 仿真数据初始化。包括生成交通网络

(有向图)邻接矩阵,设置OD 对起点、终点号,仿真钟置0等;调用Dijkstra 算法计算各节点到终点的最短距离并存于缓冲区中,为后续仿真步中判断可行路段提供依据。

2) 从起点往下游各可行路段派遣使者,每

个使者记录下其将历经的路段的下游节点号,存放在节点顺序表中。

3) 调度最先到达下游节点的使者作为当

前使者。

4) 若仿真钟大于预设的仿真时间段长度

或所有使者均已到达目标节点,则输出统计结果,仿真结束;否则,仿真钟置为该使者到达下游节点的时刻,并将该使者作为父使者。如果父使者所处的当前节点不是终点,则生成子使者并向下游各可行路段派遣,同时在使者链表中增加一个新的节点以存储与该使者相关的信息;否则,输出父使者所历经路径的节点顺序表。 5) 注销父使者。记录下父使者的节点顺序

表后,从使者链表中删除对应节点,并释放其占有的内存空间。

6) 各子使者将父使者节点顺序表中的各

节点号,以及该子使者即将通过的路段的下游节点号添加到其对应的节点顺

相关文档
最新文档