我想更好地了解各种常见搜索算法如何相互关联。有没有人知道资源,例如层次结构图或对此的简明文字描述?
我的意思的一个小例子是:
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
等
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
没有这样的层次结构,只是一堆具有不同特征的不同算法。
例如。 A *可以被认为是基于Dijkstra的,增加了启发式。 或者它可以被认为是基于启发式的最佳优先搜索,到目前为止还有一个额外的路径成本因素。
类似地,A *的实现方式与典型的广度优先搜索方式(即具有节点队列)的方式相同。迭代加深A *(IDA *)基于A *,因为它使用相同的成本和启发式测量,但实际上是作为深度优先搜索方法实现的。
这里还有一个与优化算法的大交叉。有些人认为遗传算法是一系列复杂的爬山尝试,但其他人认为它是一种光束搜索形式。
搜索和优化算法通常从多个来源绘制属性,混合和匹配方法,使它们与搜索域或计算要求更相关,因此,而不是您将找到的方法层次结构各种方法中出现的一系列主题。