深度优先搜索算法

发布于 2024-10-11 08:25:30 字数 135 浏览 4 评论 0原文

boost 库中实现的深度优先算法仅访问每个顶点一次。

是否有任何解决方法可以停用此选项。我希望只要任何顶点有分支,就可以访问顶点。

任何建议...

编辑:该图是非循环的。

the depth-first algorithm implemented in the boost library visits each vertex just one time.

Is there any work around to deactivate this option. I want that the vertexes can be visited whenever there is a branch in any vertex.

any suggestion...

EDIT: The graph is acyclic.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我乃一代侩神 2024-10-18 08:25:30

如果您想枚举非循环图中的所有路径,那么我认为您无法轻松修改深度优先搜索来做到这一点。有专门为此目的设计的算法,特别是:Rubin, F.; ,“枚举图中的所有简单路径”,电路与系统,IEEE Transactions,第 25 卷,第 8 期,第 641-642 页,1978 年 8 月。

如果您了解 Floyd-Warshall 算法,则可以轻松修改它计算矩阵每个元素中的路径列表,而不是最小距离,这将完成这项工作。上面的文章使用了一些位操作来使其运行得更快一些。

If you want to enumerate all paths in an acyclic graph, then I don't think you can easily modify depth-first search to do that. There are algorithms specifically designed for this purpose, in particular: Rubin, F.; , "Enumerating all simple paths in a graph," Circuits and Systems, IEEE Transactions on , vol.25, no.8, pp. 641- 642, Aug 1978.

If you know the Floyd-Warshall algorithm, you can easily modify it to compute a list of paths in each element of the matrix, instead of min distance, which will do the job. The above article uses some bit operations to make this run a bit faster.

澜川若宁 2024-10-18 08:25:30

希望顶点可以被访问
每当任何地方有一个分支
顶点。

您建议迭代器在到达顶点的分支时做什么?

深度优先搜索只是这个问题的一个答案。 这里还有其他一些。

但你必须选择一些东西。这不是关掉DFS的问题。

want that the vertexes can be visited
whenever there is a branch in any
vertex.

What do you propose that an iterator do when it reaches a branch at a vertex?

Depth first search is just one answer this question. Here are some others.

But you have to choose something. It's not a matter of turning off DFS.

糖粟与秋泊 2024-10-18 08:25:30

我认为这在设计上是不可能的。因为如果你的图包含循环(当你说顶点可以被多次访问时,你就有它们了),算法将最终陷入无限循环。

I think that is impossible by design. Because if your graph contains cycles (and you have them there, when you say, that the vertex can be visited more than once), the algorithm will end up in endless loop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文