Graph 有效地查找有向图中两个节点之间某条路径上的所有节点

Graph 有效地查找有向图中两个节点之间某条路径上的所有节点,graph,graph-theory,graph-traversal,Graph,Graph Theory,Graph Traversal,我目前正试图找到一种有效的方法来找到两个节点之间某条路径上的所有节点,比如有向图中的X和Y 我的第一个想法是从X运行BFS,从Y运行BFS,并获取访问节点的交点。请注意,我不需要枚举X和Y之间的所有路径,只需查找位于从X到Y的路径上的所有节点 我的问题是,有没有更优化的方法 优化可以在获得更好的运行时或使用更少的内存方面进行,或者找到一个好的解决方案,有时局部最大值是可以的 你可以看看,看看这是否适用于你的问题。如果可以应用这一点,您可以节省内存并缩短运行时间。我不确定如何将从X到Y的所有路径上

我目前正试图找到一种有效的方法来找到两个节点之间某条路径上的所有节点,比如有向图中的X和Y

我的第一个想法是从X运行BFS,从Y运行BFS,并获取访问节点的交点。请注意,我不需要枚举X和Y之间的所有路径,只需查找位于从X到Y的路径上的所有节点


我的问题是,有没有更优化的方法

优化可以在获得更好的运行时或使用更少的内存方面进行,或者找到一个好的解决方案,有时局部最大值是可以的


你可以看看,看看这是否适用于你的问题。如果可以应用这一点,您可以节省内存并缩短运行时间。

我不确定如何将从X到Y的所有路径上的所有节点的查找框定为目标状态;我只在查找到目标状态的最短/最优路径(即从X到Y的最短/最小成本路径)的上下文中使用了A*。如果我了解您,X和Y之间的节点将与将在该路径上遍历的节点相同。那么这个问题在寻找X和Y之间的任何路径时都是一样的,找到从X到Y的最短路径可以吗?也许我不理解你的问题。是的,找到最短路径可能是问题的一部分,但我需要找到从X到Y的所有路径上的所有节点。从X到Y可能有多条不同长度的路径。A*会巧妙地引导搜索,以避免搜索其他路径的某些部分。在这种情况下,你可以忘记A*搜索,这里回答了与你相同的问题。你的问题是:某条路径上的所有节点。是的,某条路径上的所有节点都是任意路径,而不是特定路径。查找所有路径是指数型的,但我想知道的是,是否有一种优化的方法来解决查找路径上节点的问题。我的BFS解决方案已经是线性时间-您发送给我的链接将以指数形式列出所有路径。