2.1 搜索的基本概念
搜索:一种求解问题的一般方法
问题求解的基本方法:搜索法、归约法、归结法、推理法及产生式
基本问题:
1、是否一定能找到一个解
2、找到的是否是最佳解
3、时间和空间复杂度
4、是否会终止运行or死循环
主要过程:
1、从初始或目的状态出发,并将其作为当前状态
2、扫描操作算子集,将适用当前状态的一些操作算子作用于当前状态而得到新的状态,并建立指向父节点的指针
3、检查所生成的新状态是否满足结束状态。若满足,反向得出解答路径;否则将新状态定义为当前状态返回2
概念术语
搜索方向
(1)数据驱动:初始状态出发正向搜索
(2)目的驱动:从目的状态出发逆向搜索
(3)双向搜索 找到汇合点
盲目搜索与启发式搜索
(1)盲目搜索:不针对特定问题任何有关信息,按照固定步骤搜索
(2)启发式搜索:考虑特定问题可应用的知识,动态确定算子,优先选择合适算子,减少步骤
状态
表示系统状态、事实等叙述性知识的一组变量或数组
操作
表示引起状态变化的过程型知识的一组关系或函数
2.2 状态空间的搜索策略
状态空间:利用状态变量和操作符号,标识系统或问题的有关知识的符号体系,三元组(S、F、G)
S:状态集合 F:操作算子的集合 G:目的状态集合
求解路径
从S0到G结点的路径,状态空间的一个解是一个有限的操作算子序列
表示方法:图描述
八数码问题的图描述
TSP问题的图描述
2.3 盲目搜索
回溯策略
从初始状态出发不停试探路径,直到到达目的或“不可解节点”。若遇到不可解节点就回溯到路径中最近的父节点上,查看该节点是否还有其他子节点未被扩展。
算法:
1、PS表:保存当前搜索路径上的状态,如果找到目的,PS就是解路径上的状态有序集
2、NPS表:新的路径状态表,包含等待搜索的状态,后裔状态还未被搜索到
3、NSS表:不可解状态集,列出找不到接替路径的状态。如果在搜索中扩展出他的元素,可立即排除
图搜索算法(DFS BFS 最好优先搜索)的回溯思想
(1)用NPS使算法可以回归到任意状态
(2)用NSS避免算法重新搜索无解路经