给定一个图,如何在图中的两个节点之间找到长度为X的路径。理想情况下,路径访问边缘的次数不应超过一次。
您可以实现一个改进的BFS算法。一旦你找到从A到B的第一条路径,你就有了所说路径的最小长度,所以如果X小于这个值,你就已经知道现在有路径了。
如果X比这个值大,就像这样进行:检查你刚刚找到的从A到B的路径,并用它到B的距离注释每个节点。
然后,继续BFS搜索,直到覆盖整个图形。
每次您的搜索到达一个已经使用的节点时,您都可以看到它是否指向B,如果指向B,则距离B有多远。这允许您知道刚刚找到的新路径的长度,并且可以与X进行比较。
同样,用它到B的距离来注释这条路径中的每个节点。你应该允许一个节点被注释多次,一旦你遇到了一个通向B的使用过的节点,就使用该节点的所有注释值进行比较。
每当您遇到长度大于X的路径时,可以停止搜索。
我想要一个算法或指针,以进一步研究如何找到一个固定长度的路径之间的两个节点在一个加权无向图。
我有一个有向加权图
我有一个有向加权图G,其中权重是过渡的持续时间。 我使用DFS编写了两个顶点之间的所有路径搜索算法,并进行了修改:搜索将继续,直到路径的总权重(其各部分的权重之和)小于某个值。 我的代码在小图中工作,但在大图中(| V |=1800,| E |=50870)它会冻结。
我试图找到一种实现DFS搜索的方法,通过使用堆栈,而不是使用递归,在表示为邻接列表的有向图上找到从给定节点开始的最长路径的长度。具体地说,我希望实现DFS搜索,以便在运行时,如下图所示填充堆栈。。 如果这还不清楚的话,这段视频是我希望在程序运行时如何构建堆栈的(DFS大约在12:45开始:https://www.youtube.com/watch?v=pcKY4hjDrxk 但我正在努力找到一种方
你知道如何克服这个问题吗?
我需要帮助在一个未加权无向图中找到两个节点之间的所有最短路径。 我能够使用BFS找到一条最短路径,但到目前为止,我还不知道如何找到并打印出所有路径。 知道我可以使用的算法/伪代码吗?