我的图不包含将顶点连接到自身的此类边。两个顶点之间只有一条边。从维基百科我了解了一些用于根据给定条件计算最短路径的算法。最著名的算法之一是Dijkstra's algorithm
,它找到从源顶点到图中所有其他顶点的最短路径。
但是通过使用Dijkstra's algorithm
,我没有必要探索所有的顶点,但是我的目标只是找到从单一来源到单一目的地的最短路径。我应该在这里使用哪种策略?这样我就不需要探索所有其他顶点。
我的一种方法是使用bidirectional bfs
. bidirectional bfs
我的意思是申请两个bfs
来自,source node
另一个来自。destination node
当我第一次child
在两棵树中找到相同的东西时,我可以停止两者bfs
。现在从源到子union
路径从子路径到目的地的路径将是我从源到目的地的最短路径。
但是在 Wikipedia 和 描述的所有方法中 bidirectional bfs
,哪一种最适合我的图表?