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

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

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

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

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


回答:

尝试了才知道。

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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