Skip to content

C++ implementation of "On an exact method for the constrained shortest path problem".

Notifications You must be signed in to change notification settings

lyandut/MyPulseForCSP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MyPulseForCSP

CSP: Constrained Shortest Path Problem

C++ implementation of the pulse algorithm as published in: "Lozano, L. and Medaglia, A. L. (2013). On an exact method for the constrained shortest path problem. Computers & Operations Research. 40 (1):378-384."

This paper is available at: http://dx.doi.org/10.1016/j.cor.2012.07.008.

ToDo List

# 目的 求解效果
✅ ​多线程 并行 dijkstra 算下界,提速初始化阶段 Zhu_Wilhelm 效果不佳,部分算例速度下降;SantosTestbed 速度能提升50%左右。
✅ 调整邻接表顺序(优先考虑距离当前节点近的) 优化分支顺序,使后续搜索可能提前剪枝 Zhu_Wilhelm 效果不明显;SantosTestbed 速度较多线程版本继续有小幅度提升。
⬜ 调整邻接表顺序(优先考虑距离终点近的) 优化分支顺序,使后续搜索可能提前剪枝 Zhu_Wilhelm 效果不明显;SantosTestbed 速度表现不稳定,个别算例会一直递归...
⬜ 初始化阶段 dijkstra 算完路由下界后检查,符合资源约束直接返回最短路。 特例:最短路 = 资源约束最短路 todo…

算例 & 结果

  • Instance/ ··· 算例文件
    • Zhu_Wilhelm_Testbed/ ··· 12个算例(最大规模500个点,5000±条边,10种资源)
    • Zhu_Wilhelm_DIMACS/ ··· 基于 Zhu_Wilhelm_Testbed 生成的 1200 个算例
    • SantosTestbed/ ··· 包含1050个算例,文件过大未同步(最大规模40000个点,800000条边,1种资源)
  • Solution/ ··· 计算结果

About

C++ implementation of "On an exact method for the constrained shortest path problem".

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages