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

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

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

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

等等。

谢谢!


回答:

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

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

类似地,A* 的实现方式与典型的广度优先搜索非常相似(即使用节点队列)。迭代加深的 A* (IDA*) 基于 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中创建了一个多类分类项目。该项目可以对…

发表回复

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