【发布时间】:2009-12-02 04:12:26
【问题描述】:
感谢大家回复的想法和替代解决方案。更有效的解决问题的方法总是受欢迎的,并且提醒我质疑我的假设。也就是说,我希望你暂时忽略我试图用算法解决的问题,并帮助我分析我的算法的复杂性,因为我已经编写了它——所有简单的路径在使用深度限制搜索的图中,如here 所述,并实现了here。谢谢!
编辑:这是作业,但我已经提交了这个作业,我想知道我的答案是否正确。当涉及到递归时,我对 Big-O 复杂性感到有些困惑。
原问题如下:
我试图找出this 算法给出的全路径搜索的复杂性。 给定两个顶点,我使用深度优先搜索找到它们之间的所有简单路径。
我知道 DFS 的时间复杂度是 O(V+E),它的空间复杂度是 O(V),我的直觉是全路径搜索的复杂度会更多,但是我'我无法确定它会是什么。
更新(回应下面的评论):
我正在尝试解决six degrees of Kevin Bacon 问题。这通常需要找到一对演员之间的最低分离度,但我必须找到所有的分离度(目前,小于 6,但这可以改变)。
【问题讨论】:
-
我的实现实际上类似于 [here][1] 的描述,如果这有助于分析(这实际上是一个 DFS,即使它声称是一个 BFS!)。 [1]:stackoverflow.com/questions/58306/…
-
路径可能呈指数级增长(例如,一个完整的图),因此仅输出将花费指数级时间。为什么要查找所有路径?
-
@ShreevatsaR:更大作业的一部分。我需要找到所有路径,我使用了这个算法。现在我很难表达它的复杂性(就 Big-Oh 而言)。另外,如果有更有效的方法来解决这个问题,那么我想知道。
-
如果你只想找到“所有分离度数”,这只有 n 个可能的输出,并且比找到所有路径要简单得多。确定要查找所有路径吗?
-
@ShreevatsaR,我改写为“找到两个演员在 # 度内连接的所有可能方式”(其中 # 在最坏的情况下 = 演员的数量)怎么样。那不是万能的吗?
标签: algorithm graph big-o depth-first-search