可以使用双向广度优先搜索来枚举未加权的定向(无环?)图中两个特定节点之间的所有最短路径?

问题描述 投票:0回答:1
BI方向变体,它在许多情况下据称更快。 但是,所谓的双向BFS似乎只能找到最短的路径,至少根据NetworkX的Python实现

bidirectional_shortest_pathbidirectional_dijkstra(其中Dijkstra的算法,所有重量的所有边缘都归类为BFS)。 (请注意,这两个实现不限于无方向的图。)自然问题是:可以修改双向广度的搜索算法,以便能够返回未加权的digraph中两个特定顶点之间的最短路径? (1)从理论上讲,YES

.
LETu
v
之间的最短路径具有长度d。双向BFS实质上可以在距离d/2distance和距离的所有顶点处找到所有顶点,并且这两组具有非空交点

u
algorithm graph-theory shortest-path path-finding bidirectional-search
1个回答
0
投票
当我们存储了此过程时,我们可以列举如下的所有最短路径。列举所有

d-d/2的顶点。对于v

中的每个顶点

S

,convateNate(笛卡尔产物)从
u
v
的每条路径从
S
w
的每个路径。在两种情况下,可以从
S
开始恢复路径的一半。这将准确地提供最短的道路。
(2)在实施方面,您可能必须弄脏手,因为这似乎不是一个普遍的问题。
(3)一对顶点之间的最短路径数可能是指数级的。在这种情况下,查找最短路径的速度将由算法输出单个路径的速度主导。那么,您使用的是单向还是二向BF并不重要。仅当您知道这样的途径很少时,此选择才重要。
    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.