Dijkstra 算法伪代码混淆
Posted
技术标签:
【中文标题】Dijkstra 算法伪代码混淆【英文标题】:Dijkstra's Algorithm Pseudocode Confusion 【发布时间】:2021-12-21 07:59:53 【问题描述】:我正在尝试为旅行商问题实现 Dijkstra 算法的一个版本,我发现了这篇论文:https://www.researchgate.net/figure/Dijkstras-algorithm-for-many-targets-with-a-pruning-heuristic-An-upper-bound-B-for-d-v_fig2_257428759
我理解算法,但我对这个伪代码中的“免费”意味着什么感到困惑。谁能给我解释一下?
即在以下几行中:
如果你有空,那么就停下来
如果 v 是空闲的,那么 B = minc, b fl
A Heuristic for Dijkstra's Algorithm with Many Targets (Pseudocode)
【问题讨论】:
【参考方案1】:您链接到的论文似乎没有处理旅行推销员问题,而是处理二分匹配:
两个版本的问题都可以通过求解来解决 n,n=max(|A|,|B|),单源多目标最短路径(SSMTSP) 派生图中的问题,请参阅第 4 节。
free
节点是指与二分图中的任何其他节点都不匹配的节点。这在链接论文的第 4 节(第 87 页标签)中说明,脚注5
:
如果 M 中没有边与该节点相关,则该节点是空闲的。
M
定义为需要在上一页计算的匹配。
这个算法似乎只对这个匹配问题有用,它需要你多次运行它。这只是对二分匹配的多次运行的改进,它不是一个独立的算法。
【讨论】:
哦,好吧,这更有意义!非常感谢您的清晰解释!以上是关于Dijkstra 算法伪代码混淆的主要内容,如果未能解决你的问题,请参考以下文章