搜索算法层级结构的资源概述?

我想更好地理解各种常见的搜索算法是如何相互关联的。有人知道相关的资源吗?例如层级图表或关于此的简洁文字描述。

举个小例子,我想要的是这样的:

A* 搜索 -> 统一代价搜索是 A* 的一个变体,其中启发式函数是一个常数函数 -> Dijkstra 算法是无目标的统一代价搜索的一个变体 -> 广度优先搜索是 A* 的一个变体,其中所有步进代价都是正数且相同

等等。

谢谢!


回答:

实际上并没有这样的层级结构,只有一堆具有不同特征的不同算法。

例如,A* 可以被认为是基于 Dijkstra 算法的,并添加了一个启发式函数。或者可以被认为是基于启发式最佳优先搜索的,并额外考虑了到目前为止的路径代价。

类似地,A* 的实现方式与典型的广度优先搜索非常相似(即使用节点队列)。迭代加深的 A* (IDA*) 基于 A*,因为它使用相同的代价和启发式测量,但实际上是作为深度优先搜索方法实现的。

这里与优化算法也有很大的交叉。有些人认为遗传算法是一堆复杂的爬山尝试,但另一些人认为它是一种束搜索。

搜索和优化算法通常从多个来源借鉴属性,混合和匹配方法,使其更适合搜索领域或计算需求。因此,你不会找到方法的层级结构,而是会发现各种方法中出现的一系列主题。

Related Posts

L1-L2正则化的不同系数

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

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

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

f1_score metric in lightgbm

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

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

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

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

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

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

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

发表回复

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