A*算法中的星号代表什么?

我相当确定A*算法中的* (星号)表示该算法是可接受的,即如果存在最短路径,它保证能在图中找到(当所使用的启发式方法是乐观的)。

我说的对吗?我一直在寻找关于这个话题的信息,但没有找到任何参考资料。希望社区中更有经验的用户能知道一些我不知道的关于A*历史的信息。

顺便说一下,我认为其他基于A*的算法,如IDA*、D*、SMA*、MOA*、NAMOA*等,也遵循相同的命名惯例。


回答:

原因是科学家们首先提出了Dijkstra算法的改进版本,称为A1。后来,A*的发明者发现了A1的改进版本,他们称之为A2。这些人随后证明了在某些关于所使用启发式的假设下,A2实际上是最优的。因为A2是最优的,所以它被重新命名为A*。在科学中,特别是在优化领域,” * “符号通常用来表示最优解。有些人还将” * “解释为“任何版本号”,因为已经证明不可能构建一个能超越A2/A*的“A3”算法。

顺便说一下,在这个语境中,“最优”并不意味着它达到了最优解,而是指它在探索最少数量的节点时达到了最优解。当然,A*也是完整的,这意味着它能达到最优解(如果我们使用可接受的启发式方法)。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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