【问题标题】:K longest paths in a DAGDAG 中的 K 条最长路径
【发布时间】:2018-10-11 01:43:15
【问题描述】:

我想在有向无环图 (DAG) 中找到 K 条最长的路径。我已经阅读了几篇关于它的文章,但我找不到任何实现它的实际代码。有人可以帮我写一个 python 或伪代码吗?

这是一个有趣的算法解释: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3009499/

【问题讨论】:

  • 它不太可能是最快的,但实现起来非常简单:对所有最短路径使用Floyd-Washall,否定所有边权重。然后在结果中寻找最负的路径长度。
  • 新浪,这篇论文似乎是在寻找最可能的 HMM 路径,而不是最长的路径。

标签: python algorithm shortest-path longest-path viterbi


【解决方案1】:

试试https://baoilleach.blogspot.ca/2013/11/the-shortest-route-to-longest-path.html

您还可以对权重求反,并为加权图中的 k 个最短路径应用一些现有的包,支持负权重。

如果不支持负数,您可以使用 Johnson 算法中的图形权重重写(参见维基百科或/和 https://www.researchgate.net/publication/275645125_Weighted_graph_algorithms_with_Python,然后应用 k 最短路径,例如 Dijkstra 的 Python Dijkstra k shortest paths

【讨论】:

  • Dijkstra 的算法不适用于负边权重。
  • 解释了如何为 Dijkstra 的算法重写权重
猜你喜欢
  • 1970-01-01
  • 2014-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
相关资源
最近更新 更多