【基本名词】
搜索:利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。
特点:相比于单纯的枚举算法有了一定的方向性和目标性。
算法:在解的空间里,从一个状态转移到其他状态,这样进行下去,将解的空间中的状态遍历,找到答案。
状态:是对问题在某一时刻进展情况的数学描述,或者是数学抽象。
状态转移:问题从一个状态转移到另一状态,这样进行一步步延伸,最后得到的解是其中的一个状态。
【原理】
- 根据初始条件和扩展规则构造一棵“解答树”并寻找符合目标状态的节点的过程。
- 所有的搜索算法都可以化为控制结构(扩展节点的方式)与产生系统(扩展节点)两部分。
- 所有的算法优化和改进主要都是通过修改其控制结构来完成的。
【搜索树】
初始状态对应着根节点,目标状态对应着目标结点。
排在前的结点叫父结点,其后的结点叫子结点,同一层中的结点是兄弟结点。
由父结点产生子结点叫扩展。
完成搜索的过程就是找到一条从根结点到目标结点的路径,找出一个最优的解。
由上形成的树叫搜索树,搜索算法的实现类似于图或树的遍历。