交通建模中的最短路径算法分析

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

交通建模中的最短路径算法分析与测试

任 刚,张 永,周竹萍

(东南大学江苏省交通规划与管理重点实验室,南京 210096)

摘 要:交通建模一直以来就是最短路径算法极为重要的应用领域。介绍主流的最短路径算法——标号算法,通过交通网络特征分析和实际城市道路网络中的算法测试,给出如何选择适合交通网络的一般最短路径算法的建议。分析交通建模中各类特殊最短路径算法的研究需求,包括带转向约束的算法,带时窗约束的算法,动态、随机、自适应算法,k-最短路径算法,启发式搜索算法,再优化算法等。最后对未来研究趋势作出展望。

关键词:交通运输规划与管理;交通建模;最短路径算法;分析与测试

中图分类号:U491文献标识码:A 文章编号:1673-7180(2009)10-0708-6

Analysis and testing of shortest path algorithms

in transportation modeling

Ren Gang,Zhang Yong,Zhou Zhuping

(Jiangsu Provincial Key Laboratory of Transportation Planning and Management, Southeast University,

Nanjing 210096, China)

Abstract: Transportation modeling is an important application field of shortest path (SP) algorithms. In this paper, labeling algorithms are introduced. Some suggestions on selecting the general SP algorithms suitable for realistic transportation networks are proposed according to analysis of transportation network characteristics and to experimental results over realistic road networks. Some special cases of SP algorithms in transportation modeling, including algorithms with turning constraints, algorithms with time-window constraints, dynamic, stochastic and adaptive algorithms, k-shortest path algorithms, heuristic search algorithms, and reoptimization algorithms, are reviewed. Future researches are prospected at last.

Key words: transportation planning and management;transportation modeling;shortest path algorithms;analysis and testing

0引 言

自20世纪50年代以来,经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得各种最短路径算法不断涌现[1-3]。交通建模一直以来就是最短路径研究成果极为重要的应用领域,其应用内涵包括2部分:①一般的最短路径算法在交通建模中的直接应用;②针对交通建模的特殊要求设计和应用一些特殊类型的算

基金项目:高等学校博士学科点专项科研基金(20070286006);住房和城乡建设部科学技术项目(2008-K5-11);东南大学优秀青年教师教学科研资助计划

作者简介:任刚(1976-),男,研究员,rengang@

法(如带转向约束的最短路径问题等)。这两部分彼此联系,前者是基础,解决的是交通网络区别于一般抽象网络的共性问题;后者是拓展,解决的是交通网络针对不同特殊需要的个性问题。本文在介绍主流的标号算法基础上,对交通网络中一般最短路径算法的效率进行测试、比较并给出算法选取建议,回顾交通建模中各类特殊最短路径算法的研究进展,最后对未来研究情况作一展望。

1 最短路径算法的主流技术——标号算法

根据路径源点和终点的数目,最短路径问题可分为单源单汇、单源多汇、多源多汇等类型,其核心是单源多汇问题。求解最短路径问题的大部分算法都基于如下事实:网络中从某个源点到其余所有节点的最短路径集,构成该网络以源点为根的生成树即最短路径树。主流的最短路径算法是标号算法,核心思想是通过节点扫描不断更新生成树和节点标号最终获得最短路径树。

根据节点选取策略的不同,标号算法又可以分为标号设定和标号修正2类。标号设定算法基于最短优先搜

索,当弧长非负时每一步都能得到一条从源点到当前扫描节点的最短路径,由此若仅需要单源单汇最短路径,则一旦终点被扫描即可结束。而标号修正算法是基于列表搜索,算法不管弧长的正负,即使单源单汇问题也需等到算法完全结束时才能得到。

常用的标号技术包括数据结构、节点存取策略和生成树更新技术等。数据结构中,一类是适合于标号设定算法的各种优先队列,如堆、桶以及组合结构,另一类是适合于标号修正算法的各种列表,如队列、栈、门限以及组合结构deque 等。除了由数据结构本身决定的存取策略之外,用以提高算法效率的辅助存取策略还包括阈值设置、拓扑排序等。生成树更新技术(包括标号更新)通过子树分解关系,将标号更新范围扩展到相应子树中的所有节点,而不局限于当前的扫描节点。已知的标号算法均可以视为一个统一的原型算法基于各种标号技术的不同实现形式,这有助于更好地理解所有标号算法之间的联系和差异,并拓展出更多有效算法。表1列出了主要标号算法的相关信息。

表1 主要的标号算法一览表 Table 1 The major labeling algorithms

分类

算法名称 主要结构和技术 时间复杂度 备注

Dijkstra 无序列表 O (n 2) S-heap

二叉堆

O (m log n ) S-h e

ap-F Fibonacci 堆 O (m +n log n ) 非负弧长 S-heap-R1

单层基数堆 O (m +n log C *) S-heap-R2 双层基数堆

O (m +n log C */loglog C *) S-heap-R3 基数堆+Fibonacci 堆

(O m +

S-bucket 桶

O (m +nC *) S-bucket-M 限制桶的个数 O (m +n (C */B +B )) 标号设定算法

S-bucket-D 双桶 O (m +n (C */Δ+Δ)) L-bucket-A 近似桶 O (m Δ+n (C */Δ+Δ)) 非负整数弧长 L-queue 队列 O (nm ) L-deque

队列+栈 O (n 2n ) L-2queue 双队列 O (n 2m ) L-threshold 队列+阀值指针 O (nm ) Topological Ordering 队列+拓扑排序 O (nm ) 标号修正算法

SLF

队列+首元素比较

O (nm )

任意弧长

注:m 为弧数,n 为节点数,C *为最大弧长,B 为桶数,Δ为桶间距,时间复杂度在备注要求 的情况下取得。

相关文档
最新文档