寻找500+航点/节点的 Dijkstra 等最短路径算法?

我在这里询问了一个最短路径算法:2D 航点路径规划:从当前位置到目标位置的航点组合

(为了理解我的情况,请阅读该问题以及这个问题。)

看起来 Dijkstra 最短路径算法能够满足我的需求。但是,我的路线图中大约有 500 到 1000 个节点。

到目前为止,我所见过的实现将节点数量限制在 50 个以下。我的问题是:我是否应该继续使用 Dijkstra 最短路径算法,还是选择其他算法?是否有任何 Java 实现?


回答:

尝试了才知道。

1000 个节点实际上并不算多。Dijkstra 算法的复杂度与边的数量呈线性关系,而边的数量最多是节点数量的二次方。从你对图的描述来看,很难说有多少条边,但即使是完整的 1,000,000 条边也不是很大。

主要问题是你是否正确地实现了它,使用了优先级队列

编辑: Russell & Norvig,第二版,在第 3 章和第 4 章中描述了一组通用搜索算法。他们所说的统一代价图搜索本质上就是 Dijkstra 算法。如果你按照他们的指示,如果需要,你可以很容易地将该算法扩展到 A* 搜索。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注