第五章 状态空间的搜索策略
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
状态空间图的搜索策略
节点类型说明
状态空间图的搜索策略
修改指针的说明
状态空间图的搜索策略
状态空间图的搜索策略
状态空间图的搜索策略
宽度优先搜索策略
宽度优先
又称为是广度优先; 是一种盲目的搜索策略。
它的基本思想是:
从初始节点开始,逐层对节点进行依次扩展,并考 察它是否为目标节点。在对下层的节点进行扩展或 者是搜索之前,必须完成对当前层的所有节点的扩 展或者是搜索。
搜索方法的实现——递归实现 递归方法的特点
递归必须要有出口 递归公式中,每一次调用必须距出口更近一 些
回溯搜索
回溯搜索
算法步骤Backtrack(DATA)
①如果当前状态DATA为目标状态,则找到目 标。 ②该状态不合法,则过程返回失败信息 ,必须 回溯。 ③计算DATA(当前状态)的可应用规则集, 依某种原则(任意排列或按启发式准则)排列 后赋给RULES。 ④如果规则用完未找到目标,过程返回FAIL, 必须回溯。
回溯搜索
回溯搜索会出现的问题
深度问题 死循环问题
回溯搜索
回溯中失败原因的分析——多步回溯问 题 回溯搜索中知识的应用
盲目搜索策略
状态空间图的搜索策略 宽度优先搜索策略 深度优先搜索策略 代价树的宽度优先搜索 代价树的深度优先搜索 盲目搜索的性质总结
状态空间图的搜索策略
启发式搜索
人工智能领域中已有搜索方法
(1)求任一解路的搜索策略
回溯法(Backtracking) 爬山法(Hill Climbing) 宽度优先法(Breadth-first) 深度优先法(Depth-first) 限定范围搜索法(Beam Search) 好的优先法(Best-first)
宽度优先搜索策略
考察节点n是 否为目标节点,若是,则求解 结束,得到解路径。 若节点n不可扩展,则转到第2步,否则执行 第6步。 对节点n进行扩展,将它的所有后继节点放 入open表的末端,并为这些节点设置指向父 节点n的指针,然后转到第2步。
初始节点S放入到OPEN表 OPEN表为空? N OPEN表的第一个节点移出(节点 n),放入CLOSED表中 节点n为目标节点? N Y 节点n不可扩展? N 对节点n进行扩展 将它的所有后继节点放 入OPEN表的末端,并 为这些节点设置指向父 节点n的指针 Y 求解结束,回溯 得到解路径 Y 问题无解
深度优先搜索
深度优先搜索
算法:状态空间图的深度优先搜索算法
把初始节点S0放入到open表中来; 如果open表为空,则问题无解退出; 从open表中将第一个节点(节点n)移出,放入已扩 展节点表closed中; 考察节点n是否为目标节点,若是则找到问题的解, 给与相应的解路径,退出; 若节点n不可扩展,则转到第2步 扩展节点n,将其后继节点放到open表的前端,并为 其设置指向节点n的指针,然后转向第2步。
先进入open表中,先进入的节点排在前面,后进入 的节点排在后面。
Open表的节点排队准则:
宽度优先搜索策略
算法:状态空间图的宽度优先搜索算法
把初始节点S0放入到open表中 判断open表是否为空,若为空,则问题无解, 退出,否则继续。 选择open表中的第一个节点(标记为节点 n ),把它从open表中移出,并放入closed 表中。
宽度优先搜索框图
算法实现过程
OPEN表
ClOSED表
S—L—F
宽度优先搜索策略
宽度优先搜索策略
例题:八数码难题
设在一个3*3的方格模型上,摆放八个数码1、2、3、 4、5、6、7、8,其中有一个时空格,空格可以执 行如下操作:空格左移,空格上移,空格下移,空 格右移。初始状态和目标状态如下所示:
人工智能领域中已有搜索方法
(2)求最佳解路的搜索策略
大英博物馆法(British Museum) 分枝界限法(Branch and Bound) 动态规划法(Dynamic Programming) 最佳图搜索法(A﹡)
人工智能领域中已有搜索方法
(3)求与或关系解图的搜索法
状态空间图的搜索策略
图论中的几个术语
节点深度:
初始节点(根节点)的深度为0 任何其它节点的深度等于父节点的深度加1 设一节点的序列为(n0,n1…,ni,…,nk)i=1……k 若在任意一个节点ni-1都有一个后继的节点ni,则 称该节点序列为节点n0到nk长度为k的一条路径。
路径:
概述
搜索是人工智能中的基本问题 搜索中的知识表示
状态空间表示法 与/或树表示法
很多问题可以转化为搜索问题
搜索的概念以及分类
搜索的概念
根据问题的实际情况,按照一定的策略或者规 划,从知识库中寻找可以利用的知识,从而构 造出一条使得问题获得解决的推理路线的过程 要找到从初始事实到问题最终答案的一条推理 路线 找到的这条路线是时间和空间复杂度最小的求 解路线
宽度优先搜索策略
深度优先搜索
深度优先
是一种盲目的搜索策略
深度优先思想:
首先最先扩展最先产生的节点,即从初始节点S0开 始,在它的后继节点种选择一个节点,对其进行考 察。若它不是目标节点,则对该节点进行扩展,并 再度从它的后继节点种选择一个节点进行考察,以 此类推,一直搜索下去,当达到某个非目标节点又 无法继续扩展的点时,才选择兄弟节点进行考察
回溯搜索
⑤取头条可应用规则。 ⑥删去头条规则,减少可应用规则表的长度。 ⑦调用规则R作用于当前状态,生成新状态 (RDATA)。 ⑧对新状态递归调用本过程。 ⑨当PATH=FAIL时,递归调用失败,则转 移回第四步,调用另一规则进行测试。 ⑩过程返回解路径规则表(或局部解路径子 表)。
状态空间的搜索策略
北京师范大学 信息科学与技术学院 王醒策
概述
教学内容
搜索的概念及种类 盲目搜索策略 启发式搜索策略 宽度优先搜索、深度优先搜索及代价树的搜索算法, A*搜索算法 利用各种搜索算法解决实际问题,尤其是估价函数 的选取
教学重点
教学难点
概述
有哪些常用的搜索算法。 问题有解时能否找到解。 找到的解是最佳的吗? 什么情况下可以找到最佳解? 求解的效率如何。
思想:
任何节点如果到达了深度限制,就把它作为没 有后继节点进行处理,对另一个分支进行搜索。
有界深度优先搜索
有界深度优先算法
1 把初始节点S0放入open表中 2 如果open表为空,则问题无解,退出 3 把open表中的第一个节点(节点n)从 open表中移到closed表中。 4 考察节点n是否为目标节点,若是则求得 问题的解,并退出;否则继续执行第5步
已扩展节点
未扩展节点
状态空间图的搜索策略
一般来讲,习惯于将未扩展的节点存放于一个 名为open的表中,而将已扩展的节点存放于名 为closed的表中。 Open 表和closed表的数据结构如下所示:
状态空间图的搜索策略
状态空间的搜索算法:
1 建立一个只含有初始节点S0的搜索图G, 把S0放入到open表中 2 建立closed表,并且将其置为空表 3 判断open表是否为空表,若为空,则问题 无解,退出。 4 若open表非空,则选择open表中的第一个 节点,把它从open表中移出,并放入closed 表中,将此节点标记为节点n。
状态空间图的搜索策略
路径耗散值:
令C( ni, nj)为节点ni到nj这段路径(或弧线)的 耗散值,一条路径的耗散值等于连接这条路径各 节点间所有弧线耗散值的总和。 初始节点S0到任意节点的x的路径耗散值称为路 径代价,记为g(x) 路径耗散值可按如下递归公式计算: g(nj)=g(ni)+C(ni,nj)
深度优先搜索
深度优先和宽度优先的区别
对节点n进行扩展的时候,其后继节点在 open表中存在的位置。宽度优先搜索的将后 继节点放入open表的末端而深度优先搜索则 是将后得到的节点放入open表的前端。
有界深度优先搜索
产生原因 :
深度优先搜索对于有限状态空间图来说,总能 够找到解。但是对于无限图来讲就未必。并且 相对来讲搜索效率会比较低。所以为了防止在 无解的分支上进行无效的搜索,需要对搜索深 度做一些限制。
搜索的两层含义
搜索的种类
搜索可以分为盲目搜索和启发式搜索两种 盲目搜索
又称为无信息搜索。也就是在搜索的过程中只按预 先的搜索控制策略进行搜索,而没有任何中间信息 来改变这些控制策略 称为有信息搜索。它是指在问题搜索过程中,根据 问题本身的特征或者搜索过程中产生出来的一些信 息来不断地改变或者调整搜索方向,使搜索朝着最 有希望的方向前进,加速问题的求解,并找到最优 解。
状态空间图的搜索策略
已扩展节点和未扩展节点
扩展节点
所谓已扩展节点就是用合适的算符对某个节点操作后生成 的一组后继节点。扩展的过程实际上就是求得后继节点的 过程。 对状态空间图中的某个节点,如果求出了它的后继节点, 则此节点称为已扩展节点。 对状态空间图中的某个节点,如果未求出它的后继节点, 则称此节点为未扩展节点。
算法思想:
首先将问题的初始状态(即状态空间中的初始节点) 当作是当前状态。 选择一个合适的算符作用于当前状态,生成一组后 继状态(或称为)后继节点, 然后检查这组后继状态中有没有目标状态。 如果有,则说明搜索成功,从初始状态到目标状态 的一系列算符即是问题的解;若没有,则按照某种 控制策略从已生成的状态中再选一个状态作为当前 状态, 重复上述的过程直到目标状态不在出现或者不再有 可供操作的状态及算符为止。
回溯搜索
举例说明:四皇后问题
在一个4×4的国际象棋棋盘上,一次一个地 摆布四枚皇后棋子,摆好后要满足每行、每 列和对角线上只允许出现一枚棋子,即棋子 间不许相互俘获。
回溯搜索
给出棋盘的几个势态,其中a,b满足目标条 件,c,d,e为不合法状态,即不可能构成 满足目标条件的中间态势
回溯搜索
一般与或图搜索法(AO﹡) 极小极大法(Minimax) α-β剪枝法(Alpha-beta Pruning) 启发式剪枝法(Heuristic Pruning)
回溯搜索
(Backtracking strategies)
回溯搜索策略是盲目搜索中的一种。思想为:
首先将规则给出一个固定的排序; 在搜索时,对当前状态(搜索开始时,当前状态是 初始状态)依次检测每一条规则; 在当前状态未使用过的规则中找到第一条可触发规 则,被应用于当前状态; 得到的新状态重新设置为当前状态,并重复以上搜 索; 如果当前状态无规则可用,或者所有规则已经被试 探过仍未找到问题的解,则将当前状态的前一个状 态(即直接生成该状态的状态)设置为当前状态。 重复以上搜索,直到找到问题的解,或者试探了所 有可能后仍找不到问题的解为止。
状态空间图的搜索策略
5 考察节点n是 否为目标节点,如果是,则 问题有解,并且成功退出。问题的解既可从 图G中沿着指针从n到S0的这条路径得到。 6 扩展节点n生成一组不是n的祖先的后继节 点,并将它们记为集合M,将M中的这些节 点作为n的后继节点加入图G中。
状态空间图的搜索策略
7 对于那些未曾在G中出现过的(即未曾在open表上 或closed表上出现过的)M中的节点,设置一个指向 父节点(即节点n)的指针,并把这些节点加入到 open表中;对于已在G中出现过的M中的那些节点, 确定是否需要修改指向父节点(n节点)的指针; 对于那些先前已经在G中出现并且已在closed表中的 那些M中的节点,确定是否需要修改通向它们后继 点的指针。 8 按照某一种方式或者某种策略重排open表中的节 点的顺序 9 转到第(3)步。
状态空间图的搜索策略
解释;
这里给出的是一个图搜索的一般框架,不是一个具 体的算法, 关键是算法的第8步,按不同的原则对open表进行 排序,将得到不同的图搜索算法。 上面的搜索过程实际上就是问题的求解过程。在利 用状态空间搜索法来求解问题时,并不是将问题的 状态空间图全部输入计算机,而只是存入与问题有 关的部分状态空间图,这种部分状态空间图是在搜 索过程中生成的,并且每计算一步都要检查是否达 到了目标节点,这样就可能尽量少地生成与问题无 关的状态。