如何找到图表中最长的路径?我以为我可以使用深度优先搜索,但我找不到任何更简单的实施?图表最长路径
图表最长路径
回答
由于brainjam在评论中指出这是NP完整。如果图是非循环的,它只是多项式。如果它的DAG甚至是线性的。请参阅the wikipage了解更多信息。
为一个相当简单的平面图很容易实现获取所有路径(=>获取最长的路径)。看看这里: http://stackoverflow.com/questions/2500877/count-of-distinct-acyclic-paths-from-aa-b-to-ac-d/2532646#2532646 (并只使用路径是最长的),这应该给你一个关于如何用一般图表做的事情的想法:只遍历当前顶点的所有边而不是4 nextCell()调用 – Karussell 2010-03-28 12:02:09
尝试使用用于向图拓扑排序之间的路径的长度/重量。 它是专为任务调度的目的意...
如果它是一个DAG G =(V,E),你可以简单的做一个拓扑排序。
然后您将某个节点标记为s和t。
然后你可以使用动态编程,其中opt(I)= max(opt(j)+1)
其中j
边缘(J,I)是E.
只需设置选择(S)= 0和他人-INF和S前后忽略节点t的拓扑排序(你不能从s到达这个节点,并且在你传递t之后,你不能返回)。
请注意,其工作只适用于DAG(定向非循环图)。
请注意,如果它不是DAG,那么您可以将每条边乘以-1,然后使用Bellman Ford,但是(!)如果您有负循环,它将不起作用。
- 1. 最长路径
- 2. 有序图中最长的路径
- 3. 计算最长路径
- 4. Deduce最长的路径
- 5. 如何在图表中找到最长的简单路径?
- 6. 最长最短路径(不完全)
- 7. 图最短路径?
- 8. 地图API:在两个给定路径中查找最长的公共路径
- 9. 如何拆分图形以最小化最长路径的长度
- 10. Boost:从最短路径创建图表
- 11. 给定最大长度的最长路径
- 12. 算法 - 最长路径电网益智
- 13. Dijkstra在DAG中的最长路径
- 14. 查找最长递增路径矩阵
- 15. BST的最长路径的平均值
- 16. 两点之间最长的路径
- 17. 的Python:寻找最长路径
- 18. 为什么我们不能把最长路径变成最短路径?
- 19. JGraphT图最短路径
- 20. 查找图表和打印路由的最短路径表
- 21. 循环图中最长路径问题的优化
- 22. 无向图解决方案中最长路径(边权重= 1)?
- 23. 在有向非循环图中寻找最长路径
- 24. 如何在图中找到最长的路径?
- 25. 稀疏循环图中最长的简单路径
- 26. 直接非循环图中最长的路径
- 27. 定向未加权图中最长的非循环路径
- 28. 加权有向非循环图的最长路径
- 29. 替代Directory.CreateDirectory(路径)支持长路径
- 30. 长文件路径
你确定你不是指两个节点之间的最大距离吗? – 2010-03-27 11:49:39
这可能取决于图的规则和特征。你允许重新访问节点吗?你允许回缩边缘吗?该图可以脱节吗?它是否被定向?它是无环的吗? – 2010-03-27 11:52:11
这似乎是旅行推销员的变化。它甚至可以解决吗? – 2010-03-27 11:56:14