在有向加权图中找到n个最近节点到达给定节点的最快方法

时间:2013-11-27 19:59:42

标签: graph dijkstra shortest-path min-heap closest-points

现在我正在对整个图表执行Dijkstra算法,并通过距离原点节点的总距离形成节点的最小堆。然后我从堆中删除前n个元素。

这让我感到非常低效。假设我需要找到10个最近的节点,我的图表有超过100000个节点。然后在整个图表上执行Dijkstra似乎是浪费时间。但问题是我不知道在没有计算图中每个节点的最短路径的情况下,我能找到前10个最近的节点。

有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

Dijkstra通过迭代添加距离源最小的节点来工作。这是我们确定距离的节点,永远不会有更短的路径。因此,如果我们想要找到10个最接近的节点,我们可以在将10个节点添加到闭合集后简单地终止搜索。