当前位置: 首页 > 知识库问答 >
问题:

Dijkstra算法寻找大图中两个节点之间的最短路径?

董高畅
2023-03-14

Dijkstra算法说

对于图中给定的源节点,算法找到该节点和其他节点之间的最短路径

我得到了算法来找到那个节点和其他节点之间的最短路径。但是我的问题是,如果我需要为Linkedin/facebook这样的大图找到两个特定节点(比如N1和N2)的最短路径,我需要计算该节点N1和领英上其他节点(用户,意味着十亿用户)之间的距离吗首先,将其存储在高速缓存中,然后在询问两个节点的最短距离时从高速缓存中返回?
是dijkstra算法在那里执行得更好,还是像BFS这样的任何其他算法在那里更有意义?

我遇到了类似的问题Java-在距离加权地图中查找2点之间的最短路径,但此问题涉及非常小的样本集,并在此处使用dijkstra算法。

共有1个答案

谭正谊
2023-03-14

我同意Dijkstra算法不是解决这类问题的最佳选择。既然你没有权重,我看不出有什么理由让解决方案复杂化。一个简单的BFS对你来说是完美的,也是最佳的。

 类似资料:
  • 本文向大家介绍java实现dijkstra最短路径寻路算法,包括了java实现dijkstra最短路径寻路算法的使用技巧和注意事项,需要的朋友参考一下 【引用】迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径。  它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止。 基本思想 通过Dijkstra计算图G中的最短路径时,需要指

  • 假设我有一个节点表示位置的图。从某些节点N开始,我想经由可能的最短路径到达另一个节点M。问题是我想避免一些节点,与它们保持一定的距离(比如至少有D个节点)。 是否有一种图算法可以解决具有节点回避要求的最短路径问题?加权图(从待避免节点发出无限长边)是这里的解决方案吗?

  • 我正在寻找最有效的算法,根据大O符号,在未加权有向图中找到两个节点之间的最短路径。 我主要分为带堆的Dijkstra和呼吸优先搜索,如果图加权,我通常会使用堆。 在这种情况下,未加权的图是否会使Dijkstra的使用效率低于BFS?

  • 我想写一个算法,在有向图和无向图中找到两个特定顶点(源和目标)之间的最短路径。 我知道dijkstra算法,该算法用于寻找所有最短路径图。但是你会修改这个算法,只找到两个顶点之间的最短路径吗?

  • 我试图通过一个节点图进行广度优先搜索遍历,然后我将尝试找到一个节点和另一个节点之间的最短距离。这就是维基百科的BFS算法: 我有自己的节点类,节点的距离设置为最大。我的版本基于第一个代码的风格: 我试图让这段代码也能找到一个节点和另一个节点之间的最短路径。例如 我如何修改BFS代码来实现这一点?如果在这个循环中是不可能的,那么还有什么其他的方法呢? 如果我的代码或我的要求有任何混淆,请通知我。非常

  • 我试图通过在MST中添加新顶点来更新MST。为此,我一直在关注Chin和Houck的“更新生成树”。http://www.computingscience.nl/docs/vakken/al/WerkC/UpdatingSpanningTrees.pdf 论文中的一个步骤要求我在两个给定顶点之间的路径中找到最大的边。我的想法是找到顶点之间所有可能的路径,然后从这些路径中找到最大的边。我一直在尝试在