前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最短路问题与标号算法(label setting algorithm)研究(1) - 开篇介绍

最短路问题与标号算法(label setting algorithm)研究(1) - 开篇介绍

作者头像
用户1621951
发布2020-04-24 14:16:08
1.9K0
发布2020-04-24 14:16:08
举报
文章被收录于专栏:数据魔术师

序言

本系列推文重在从算法基本原理、复杂度分析、优缺点、代码实现、算法扩展等方面科普Label Correcting Algorithm(最短路算法重要分支),同时给出了下一步学习内容建议。

本文在周学松教授的指导下完成,特别感谢周学松教授的全程指导,感谢姚宇、牛志强、张宇丰在文章结构、内容安排、内容校对等方面提出的宝贵建议。

前言

最短路问题是图论理论的一个经典问题,其目的在于寻找网络中任意两个节点间的最短路径,这里的最短可以衍生为距离最短、费用最小、时间最短等一系列度量。

交通领域最短路径问题有着广泛应用场景,例如交通流分配问题可以看作一对多(one to all)的单源最短路问题,智能导航系统可以看作实时路况条件下一对一(one to one)的多源最短路问题。

通常在求解问题时我们不仅要关注结果,更要关注求解过程,即算法的效率,因为它关系到解决问题的成本。

F. Benjamin Zhan和Charles E. Noon[1]以实际路网数据做了大量数据实验,对15种最短路径算法的效率做出了客观评估,这里直接引用其研究成果(如表1-1,1-2)。

表1-1 Relative Performance Summary for Data Set2 with a Scaling Factor of 1000

表1-2 Relative Performance Summary for Data Set2 with a Scaling Factor of 1000

注释:

  1. NE1,AL1,…GA1,LA2,MS2,…GA2为实际路网编号
  2. CPU TIME Of Minimum为最佳最短路径算法的最小平均CPU运算时间(单位:毫秒),与算法对应的每一行给出了相应算法在求解不同路网最短路径时平均CPU运算时间与最小平均CPU运算时间的比值。例如表1-1中PAPE算法是求解NE1网络的最佳算法,其最小平均CPU运算时间为0.46毫秒,DIKF是求解NE1路网的最差算法,其平均CPU运算时间为0.46*7.59=3.49毫秒;
  3. Total Time列为算法求解所有路网单源最短路径的CPU运算时间之和,Ratio为每个算法的Total Time与最佳算法的Total Time比值,代表算法总体速度
  4. Average Max-to-Mean Ratio为在重复实验中最大CPU运算时间与平均运算时间的比值(该实验结果是由100次独立重复试验得到的)。

表1-1和表1-2是在不同实际路网上的统计结果,其中TWO_Q又称Deque Label Correcting Algorithm,而DIXX则是不同版本的Dijkstra algorithm实现。

根据实验结果我们可以得知在两种不同的数据集上TWO_Q都表现出了较好的性能,而Dijkstra algorithm的性能不太令人满意

因此,我们有必要学习诸如TWO_Q一样高效的算法来更好的解决实际问题。

此外,含有负环的网络在实际应用中也是极为常见(例如,鼓励拼车和使用不同类型的(负)拉格朗日乘数来确保每个乘客在车辆路径问题中只被服务一次[2]),因此在选择算法时也必须考虑算法对含有负环网络的适用性。

本系列推文将围绕Label Correcting Algorithm(标号更新法或标号更正法)展开,主要介绍一些基本的Label Correcting Algorithms,为读者后续深入学习网络最短路问题以及其他网络流问题提供支撑。

后续安排

本系列推文后续章节安排如下

第二章节主要介绍最短路问题及其数学模型、最短路径求解算法及其分类;

第三章节主要介绍单源及多源Label Correcting Algorithms的核心内容与相应代码实现;

第四章节主要介绍如何利用本文介绍的算法求解多目标最短路径问题以及如何处理大规模网络;

附录1部分补充了Label Correcting Algorithm如何处理含有负环的网络最短路径问题,附录2给出了本文所研究的简单有向图,附录3提供了由周学松老师开发的NeXTA软件,辅助最短路问题学习。

为了更好的理解本文所介绍内容建议读者具备一定的图论知识以及计算机编程能力(Python or Matlab)

建议

完成本文内容学习以后,读者可以学习以下深层次最短路径的相关问题:

  1. 算法性能分析(Algorithm analysis);
  2. 最小费用流问题(Minimum cost flow);
  3. 拉格朗日松弛问题(Lagrangian relaxation);
  4. 多商品流问题(Multicommodity flows)

资源网站

Data and source code folder:

https://github.com/marcolee19970823/label_correcting

https://github.com/PariseC/Shortest_Path_Algorithm/tree/master/label_correcting_algorithm

Our github sites:

https://github.com/marcolee19970823

https://github.com/PariseC

Nexta network editor:

https://github.com/xzhou99/NeXTA-GMNS

Advanced content learning materials:

https://ocw.mit.edu/courses/sloan-school-of-management/15-082j-network-optimization-fall-2010/assignments/

本文档内容主要参考《NETWORK FLOWS》[3]完成,另外上述进阶内容也可参考该文献进行学习。

另外,关于本文档介绍的基础算法也可参考《Development and testing of dynamic traffic assignment and simulation procedures for ATIS/ATMS applications》[4]进行学习。

参考文献:

[1].Noon F B Z E . Shortest Path Algorithms: An Evaluation using Real Road Networks[J]. Transportation Science, 1998, 32(1):65-73.

[2].Yao Y, Zhu X, Dong H, et al. ADMM-based problem decomposition scheme for vehicle routing problem with time windows[J]. Transportation Research Part B: Methodological, 2019, 129: 156-174.

[3].Ahuja R K , Ahuja R K , Ahuja R K . Network Flows[M]. Optimization. Elsevier North-Holland, Inc. 1989.

[4].Mahmassani, Hani S. Development and testing of dynamic traffic assignment and simulation procedures for ATIS/ATMS applications[J]. 1994.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据魔术师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 后续安排
  • 建议
  • 资源网站
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档