1.搜索算法是很多优化和规划问题问题的基础,很多问题的解决都依赖于搜索策略。
2.把一个问题转化为搜索问题(即问题的形式化)需要:
将问题表示为状态(STATES)和操作算子(OPERATORS)的集合,操作算子可以将问题由一个状态转化为另一种状态。利用不同的操作算子将问题从初始状态转化到目标状态,所有这些操作算子的序列即为问题的一个解。因此,我们要想找到一个问题的解就是在状态空间中找到连接初始状态和目标状态操作算子序列。
盲目搜索(Uninformed Search、Blind Search)
深度优先搜索(Depth-first search):
按照深度优先方式遍历搜索空间,但是这种方式可能会使遍历一直在非目标状态方向上深度遍历,导致找不到解。
广度优先搜索(Breadth-first search):
广度优先搜索始终可以保证找到问题的解,但时间和空间消耗较大。
迭代搜索(Iterative deepening search):
考虑到深度优先搜索不一定可以找到问题的解,但是可以将深度优先和广度优先向结合,即为其添加深度限制。当深度遍历到一定的深度还是找不到解时使搜索方向转到其他状态分支继续深度遍历,使受限制的层数不断增加直到找到问题的解。</