状态空间搜索策略教材(PPT 65页).ppt_第1页
状态空间搜索策略教材(PPT 65页).ppt_第2页
状态空间搜索策略教材(PPT 65页).ppt_第3页
状态空间搜索策略教材(PPT 65页).ppt_第4页
状态空间搜索策略教材(PPT 65页).ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五章状态空间搜索策略 S0 Sg 问题全状态空间 问题的搜索空间 解路径 主要内容 状态空间的搜索问题 5 1搜索的概念及种类5 2盲目搜索5 3启发式搜索 5 1搜索的概念及种类 搜索的概念 找到从初始事实到问题最终答案的一条推理路线 找到的这条路线是时间和空间复杂度最小的求解路线搜索种类 盲目搜索 即系统根据事先确定好的某种固定排序 依次或随机 调用规则 启发式搜索 即考虑问题领域可应用的知识 根据具体情况动态地确定规则的排序 优先调用较合适的规则使用 搜索例子 回溯搜索算法 BACKTRACK DATA DATA 当前状态 返回值 成功 返回从当前状态到目标状态的路径 以规则表的形式表示 失败 返回FAIL 四皇后问题 皇后问题在一个4 4的国际象棋棋盘上 一次一个地摆布四枚棋子 摆好后满足每行 每列和对角线上只允许出现一枚棋子 即棋子之间不许相互攻击 四皇后问题 续 综合数据库 DATA L 表 L的元素属于 ij 1 i j 4 DATA非空 其表元素表示棋子所在的行和列规则集 if1 i 4且在i 1行上有一个皇后then在第ij位置放上皇后 搜索策略固定次序 R11 R12 R13 R21 R22 R44 Q 1 1 Q Q 1 1 1 1 2 3 Q 1 1 1 1 2 3 Q Q 1 1 1 1 2 3 1 1 2 4 Q Q 1 1 1 1 2 3 1 1 2 4 Q 1 1 2 4 3 2 Q Q 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 Q 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 Q 1 2 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 Q 1 2 Q 1 2 2 4 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 Q 1 2 Q 1 2 2 4 Q 1 2 2 4 3 1 1 1 1 1 2 3 1 1 2 4 1 1 2 4 3 2 Q 1 2 Q 1 2 2 4 Q 1 2 2 4 3 1 Q 1 2 2 4 3 1 4 3 5 1搜索的概念及种类5 2盲目搜索5 3启发式搜索 5 2 1状态空间图的一般搜索算法5 2 2宽度优先搜索策略5 2 3深度优先搜索策略5 2 4代价树的宽度优先搜索策略5 2 5代价树的深度优先搜索策略 5 2盲目搜索策略5 2 1状态空间图的一般搜索算法 状态空间表示法 用来表示问题及其搜索过程的一种方法 P62 主要构成 1 状态 描述问题求解过程中不同时刻状况的数据结构 2 算符 使问题由一个状态变为另一个状态的操作 3 状态空间 一个问题的全部状态及一切可用算符构成的集合 一般包括3部分 初始状态集合S 算符集合F 目标状态集合G 4 问题的求解 从S出发经过一系列的算符运算 到达目标状态 由初始状态到目标状态所用算符的序列构成了问题的一个求解 状态空间图 把状态空间的问题求解过程用图的形式表示出来 节点代表状态 弧代表算符 5 2 1状态空间图的一般搜索算法 几个概念 扩展 用合适的算符对某个节点进行操作 生成一组后继节点 扩展过程就是求后继节点的过程 已扩展节点 已经求出了其后继节点的节点 未扩展节点 尚未求出后继节点的节点 OPEN表 存放未扩展的节点 记录当前节点及其父节点 CLOSED表 存放已扩展节点 记录编号 当前节点及其父节点 图2 26的节点 1 1 能生成两个后继节点 2 1 3 1 状态空间的一般搜索算法 一般搜索算法的描述 建立一个只含有初始节点S0的搜索图G 把S0放入OPEN表中建立CLOSED表 且置为空表判断OPEN表是否为空表 若为空 则问题无解 退出选择OPEN表中的第一个节点 把它从OPEN表移出 并放入CLOSED表中 将此节点记为节点n考察节点n是否为目标节点 若是 则问题有解 成功退出 问题的解就是沿着n到S0的路径得到 若不是转 扩展节点n生成一组不是n的祖先的后继节点 并将它们记为集合M 将M中的这些节点作为n的后继节点加入图G中对未在G中出现过的 OPEN和CLOSED表中未出现过的 集合M中的节点 设置一个指向父节点n的指针 并把这些节点放入OPEN表中 对于已在G中出现过的M中的节点 确定是否需要修改指向父节点的指针 对于已在G中出现过并已在closed表中的M中的节点 确定是否需要修改通向他们后继节点的指针 按某一任意方式或某种策略重排OPEN表中节点的顺序转 特例 图的一些概念 1 节点深度 根节点深度 0 其它节点深度 父节点深度 1 2 路径设一节点序列为 n0 n1 nk 对于i 1 k 若节点ni 1具有一个后继节点ni 则该序列称为从n0到nk的路径 3 路径的消耗值一条路径的消耗值等于连接这条路径各节点间所有消耗值的总和 用C ni nj 表示从ni到nj的路径的消耗值 0 1 2 3 节点类型说明 扩展点n 产生mk 没在OPEN和CLOSED表中出现过mj 在OPEN表中出现过ml 在CLOSED表中出现过 将要扩展节点6 修改4节点的返回指针 将要扩展节点1 修改2和4的返回指针 5 2无信息图搜索过程 盲目搜索策略 5 2 2宽度优先搜索5 2 3深度优先搜索5 2 4代价树的宽度优先5 2 5代价树的深度优先 1 定义如果搜索是以接近起始节点的程度依次扩展节点的 那么这种搜索就叫做宽度优先搜索 breadth firstsearch 2 特点这种搜索是逐层进行的 在对下一层的任一节点进行搜索之前 必须搜索完本层的所有节点 5 2 2宽度优先搜索策略 3 宽度优先搜索算法 1 把起始节点放到OPEN表中 如果该起始节点为一目标节点 则求得一个解答 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把第一个节点 节点n 从OPEN表移出 并把它放入CLOSED的扩展节点表中 4 扩展节点n 如果没有后继节点 则转向上述第 2 步 5 把n的所有后继节点放到OPEN表末端 并提供从这些后继节点回到n的指针 6 如果n的任一个后继节点是个目标节点 则找到一个解答 成功退出 否则转向第 2 步 例 把宽度优先搜索应用于八数码难题时所生成的搜索树 这个问题就是要把初始棋局变为如下目标棋局的问题 12384765 5 2 2宽度优先搜索策略 23184765 1 2 5 6 7 3 目标 8 4 宽度优先搜索的性质 当问题有解时 一定能找到解 当问题为单位消耗值 且问题有解时 一定能找到最优解 算法与问题无关 具有通用性 时间效率和空间效率都比较低 1 定义在此搜索中 首先扩展最新产生的 即最深的 节点 深度相等的节点可以任意排列 这种盲目 无信息 搜索叫做深度优先搜索 depth firstsearch 2 特点首先 扩展最深的节点的结果使得搜索沿着状态空间某条单一的路径从起始节点向下进行下去 只有当搜索到达一个没有后裔的状态时 它才考虑另一条替代的路径 3 深度界限为了避免考虑太长的路径 防止搜索过程沿着无益的路径扩展下去 往往给出一个节点扩展的最大深度界限 任何节点如果达到了深度界限 那么都将把它们作为没有后继节点处理 5 2 3深度优先搜索策略 3 深度优先搜索算法 1 把起始节点放到OPEN表中 如果该起始节点为一目标节点 则求得一个解答 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把第一个节点 节点n 从OPEN表移出 并把它放入CLOSED的扩展节点表中 4 考察节点n是否为目标节点 若是 则找到问题的解 用回溯法求解路径 退出 5 如果没有后继节点 则转向上述第 2 步 6 扩展节点n 把n的所有后继节点放到OPEN表前端 并提供从这些后继节点回到n的指针 转向第 2 步 23184765 1 2 3 4 5 6 7 8 9 10 11 12 13 目标 深度优先搜索的性质 一般不能保证找到最优解 当深度限制不合理时 可能找不到解 最坏情况时 搜索空间等同于穷举 1 定义状态空间图中各节点之间有向边的代价是不同的 有向边上标有代价的搜索树成为代价搜索树 2 特点每次从OPEN表中选择一个代价最小的节点 移入CLOSED表 3 C i j 从节点i到其后继节点j的连线代价 g x 从初始节点到任意节点x的路径代价 g j g i C i j 5 2 4代价树的宽度优先搜索 4 代价树的宽度优先搜索算法 1 把起始节点放到OPEN表中 令g S0 0 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把OPEN表中代价最小的节点 即排在最前端的节点n 移入CLOSED的扩展节点表中 4 如果n是目标节点 问题得解 退出 否则继续 5 判断节点n是否可扩展 若否则转向第 2 步 若是则转向 6 6 对节点n进行扩展 将他们的所有后继节点放到OPEN表中 并对每个后继节点j计算其总代价g j g j C i j 为每个后继节点指向n节点的指针 然后根据节点的代价大小对OPEN表中的所有节点进行从小到大的排序 7 转向第 2 步 例子 推销员旅行问题P193 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 节点扩展顺序 A B C D D E路线 A C E 代价树的宽度优先搜索每次从OPEN表中的全体节点中选择代价最小的节点移入CLOSED表进行扩展或判断 代价树的深度优先搜索从刚刚扩展的节点的后继节点中选择一个代价最小的节点移入CLOSED表中 并进行扩展或判断 5 2 5代价树的深度优先搜索 4 代价树的深度优先搜索算法 1 把起始节点放到OPEN表中 令g S0 0 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把OPEN表中的第一个节点 代价最小的节点n 移入CLOSED表 4 如果n是目标节点 问题得解 退出 否则继续 5 判断节点n是否可扩展 若否则转向第 2 步 若是则转向 6 6 对节点n进行扩展 并将其后继节点按有向边代价 C i j 从小到大排序后放到OPEN表前端 并为每个后继节点设置指向n节点的指针 7 转向第 2 步 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 A C B D E 7 6 8 7 6 5 节点扩展顺序 A B C D E路线 A B D E A C B D E 7 6 8 7 6 5 节点扩展顺序 A B C D D E路线 A C E 5 1搜索的概念及种类5 2盲目搜索5 3启发式搜索 5 3 1启发信息与估价函数5 3 2最佳优先搜索5 3 3A 搜索算法 5 3启发式图搜索5 3 1启发信息与估价函数 定义利用与问题有关的知识 即 启发信息 来引导搜索 达到减少搜索范围 降低问题复杂度的搜索过程称为启发式搜索方法 核心问题 启发信息应用 启发能力度量和如何获得启发信息 启发信息的强度强 降低搜索工作量 但可能导致找不到最优解 弱 一般导致工作量加大 极限情况下变为盲目搜索 但可能可以找到最优解 希望 引入启发知识 在保证找到最佳解的前提下 尽可能减少搜索范围 提高搜索效率 搜索算法的效果 可以用启发能力的强弱来度量 考虑解路径的消耗值和求得路径所需搜索的消耗值两者的某种组合最小 考虑搜索方法对求解所有可能遇见的问题 其平均的组合消耗最小 问题的关键 如何寻找最有希望的节点启发搜索过程中 要对OPEN表进行排序 这就需要有一种方法来计算待扩展节点有希望通向目标节点的不同程度 我们总希望能找到最有希望通向目标节点的待扩展节点优先扩展 基本思想 定义一个估价函数f EvaluationFunction 对当前的搜索状态进行评估 找出一个 最有希望 的节点来扩展 估价函数的格式 f n g n h n f n 估价函数g n 代价函数 初始节点到节点n已实际付出的代价h n 启发函数 从节点n到目标节点的最优路径的估计代价 5 3 2最佳优先搜索 局部最佳优先搜索全局最佳优先搜索 局部最佳优先搜索 1 把起始节点放到OPEN表中 并计算估价函数f S0 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把OPEN表中的第一个节点 股价函数最小的节点n 移入CLOSED表 4 如果n是目标节点 问题得解 退出 否则继续 5 判断节点n是否可扩展 若否则转向第 2 步 若是则转向 6 6 对节点n进行扩展 并对其所有后继节点计算估价函数f n 的值 并按其值从小到大排序后放到OPEN表前端 并为每个后继节点设置指向n节点的指针 7 转向第 2 步 全局最佳优先搜索 1 把起始节点放到OPEN表中 并计算估价函数f S0 2 如果OPEN是个空表 则没有解 失败退出 否则继续 3 把OPEN表中的第一个节点 股价函数最小的节点n 移入CLOSED表 4 如果n是目标节点 问题得解 退出 否则继续 5 判断节点n是否可扩展 若否则转向第 2 步 若是则转向 6 6 对节点n进行扩展 并对其所有后继节点计算估价函数f n 的值 并为每个后继节点设置指向n节点的指针 把这些后继节点都送入OPEN表 然后对OPEN表中的全部节点按照估价函数值从小到大的顺序排序 7 转向第 2 步 例子 定义评价函数 f n g n h n d n h n d n 代表节点的深度 表示从初始节点到当前节点的消耗值 h n 为当前节点 不在位

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论