0

我想更好地了解各种常见的搜索算法是如何相互关联的。有谁知道资源,例如层次图或对此的简明文字描述?

我的意思的一个小例子是:

A* Search
  -> Uniform-cost is a variant of A* where the heuristic is a constant function
        -> Dijkstra's is a variant of uniform-cost search with no goal
  -> Breadth-first search is a variant of A* where all step costs are +ve and identical

等等

谢谢!

4

2 回答 2

1

试试这个http://en.wikipedia.org/wiki/Search_algorithm#Classes_of_search_algorithms

于 2010-11-03T11:17:35.707 回答
1

没有这样的层次结构,只有一堆具有不同特征的不同算法。

例如。A* 可以被认为是基于 Dijkstra 的,增加了启发式。或者它可以被认为是基于启发式的最佳优先搜索,到目前为止还有一个额外的路径成本因素。

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

这里还有一个与优化算法的大交叉。有些人认为遗传算法是一堆复杂的爬山尝试,但其他人认为它是一种波束搜索形式。

搜索和优化算法通常会从多个来源中提取属性,混合和匹配方法以使它们与搜索域或计算需求更相关,因此您会找到一系列方法而不是方法的层次结构各种方法中出现的主题。

于 2010-11-03T11:38:33.257 回答