开发者

Resource outlining hierarchy of search algorithms?

I would like to better understand how the various common search algorithms relate to each other. Does anyone know of a resource, such as a hierarchy diagram or concise textual description of this?

A small example of what I mean is:

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

etc.

Thanks!


There is no hierarchy as such, just a bunch of different algorithms with different traits.

eg. A* can be considered to be based on Dijkstra's, with an added heuristic. Or it can be considered to be based on a heuristic-based best-first search, with an additional factor of the path cost so far.

Similarly, A* is implemented much the same way as a typical breadth-first search is (ie. with a queue of nodes). Iteratively-deepening A* (IDA*) is based on A* in that it uses the same cost and heuristic measurements, but is actually implemented as a depth-first search method.

There's also a big crossover with optimisation algorithms here. Some people think of genetic algorithms as a bunch of complex hill-climbing attempts, but others consider it a form of beam search.

It's common for search and optimisation algorithms to draw properties from more than one source, to mix and match approaches to make them more relevant either to the search domain or the computing requirements, so rather than a hierarchy of methods you'll find a selection of themes that crop up across various approaches.


Try this http://en.wikipedia.org/wiki/Search_algorithm#Classes_of_search_algorithms

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜