状态空间搜索
人工智能[第五章状态空间搜索策略]山东大学期末考试知识点复习
![人工智能[第五章状态空间搜索策略]山东大学期末考试知识点复习](https://img.taocdn.com/s3/m/90a7eb54dd36a32d73758188.png)
第五章状态空间搜索策略搜索是人工智能的一个基本问题,是推理不可分割的一部分。
搜索是求解问题的一种方法,是根据问题的实际情况,按照一定的策略或规则,从知识库中寻找可利用的知识,从而构造出一条使问题获得解决的推理路线的过程。
搜索包含两层含义:一层含义是要找到从初始事实到问题最终答案的一条推理路线;另一层含义是找到的这条路线是时间和空间复杂度最小的求解路线。
搜索可分为盲目搜索和启发式搜索两种。
1.1 盲目搜索策略1.状态空间图的搜索策略为了利用搜索的方法求解问题,首先必须将被求解的问题用某种形式表示出来。
一般情况下,不同的知识表示对应着不同的求解方法。
状态空间表示法是一种用“状态”和“算符”表示问题的方法。
状态空间可由一个三元组表示(S,F,Sg)。
利用搜索方法求解问题的基本思想是:首先将问题的初始状态(即状态空间图中的初始节点)当作当前状态,选择一适当的算符作用于当前状态,生成一组后继状态(或称后继节点),然后检查这组后继状态中有没有目标状态。
如果有,则说明搜索成功,从初始状态到目标状态的一系列算符即是问题的解;若没有,则按照某种控制策略从已生成的状态中再选一个状态作为当前状态,重复上述过程,直到目标状态出现或不再有可供操作的状态及算符时为止。
算法5.1 状态空间图的一般搜索算法①建立一个只含有初始节点S0的搜索图G,把S放入OPEN表中。
②建立CLOSED表,且置为空表。
③判断OPEN表是否为空表,若为空,则问题无解,退出。
④选择OPEN表中的第一个节点,把它从OPEN表移出,并放入CLOSED表中,将此节点记为节点n。
⑤考察节点n是否为目标节点,若是,则问题有解,并成功退出。
问题的解的这条路径得到。
即可从图G中沿着指针从n到S⑥扩展节点n生成一组不是n的祖先的后继节点,并将它们记作集合M,将M中的这些节点作为n的后继节点加入图G中。
⑦对那些未曾在G中出现过的(即未曾在OPEN表上或CLOSED表上出现过的)M中的节点,设置一个指向父节点(即节点n)的指针,并把这些节点加入OPEN 表中;对于已在G中出现过的M中的那些节点,确定是否需要修改指向父节点(n 节点)的指针;对于那些先前已在G中出现并且已在COLSED表中的M中的节点,确定是否需要修改通向它们后继节点的指针。
第五章 状态空间搜索策略PPT课件

Step6:扩展节点n,将其后继节点放到OPEN表的前端, 并为其设置指向节点n的指针,然后转Step2。
深度优先搜索算法的流程图如图7所示。
21
开始
把S0放入OPEN
OPEN表是空表吗?
Y 无解,退出
N 把OPEN表中的第一个节点(n)移入CLOSED表
述,每个节点旁边的数字表示节点扩展的顺序(按逆 时针方向移动空格)。
从图5中可以看出,其解的路径为: S0→3→8→16→27。
缺点:宽度优先搜索的盲目性较大,当目标节点 距离初始节点较远时,将会产生大量的无用节点。 搜索效率低。
优点:深度优先搜索策略是完备的,即只要问题有 解,用宽度优先搜索总可以找到它的解,而且是搜 索树中,从初始节点到目标节点的路径最短的解。
8
并将它们记作集合M,将M中的这些节点作为n的后继 节点加入图G中。 Step7:对那些未曾在G中出现过的(即未曾在OPEN表 上或CLOSED表上出现过的)M中的节点,设置一个指 向父节点(即节点n)的指针,并把这些节点加入OPEN 表中;对于已在G中出现过的M中的那些节点,确定是 否需要修改指向父节点(即节点n)的指针;对于那些先 前已在G中出现并已在CLOSED表中的那些M中的节点, 确定是否需要修改通向它们后继节点的指针。
5.2盲目搜索策略
在状态空间表示法中,可以采用图示的方式表示, 即状态空间图。状态空间图是一个有向图。当把一个 待求解的问题表示为状态空间以后,就可以通过对状 态空间的搜索,实现对问题的求解。
如果从状态空间图的角度来看,则对问题的求解 就相当于在有向图上寻找一条从某一节点(初始状态节 点)到另一节点(目标状态节点)的路径。
状态空间的搜索策略

扩展:用合适算符对一个节点 扩展 : 进行操作,生成一组子节点。 进行操作,生成一组子节点。 存放刚生成的节点。 存放刚生成的节点。 不同搜索策略, 节点在OPEN 不同搜索策略 , 节点在 OPEN 表中的排列顺序不同。 表中的排列顺序不同。
COLSE表 COLSE表 编号 状态节点 父节点 OPEN表 OPEN表 状态节点 父节点
当搜索树不再有末被扩展的端节点时, 表为空, 当搜索树不再有末被扩展的端节点时,即OPEN表为空, 表为空 搜索过程失败,从初始节点达不到目标节点。 搜索过程失败,从初始节点达不到目标节点。一般搜索过程的几点说明
4. 步骤⑥的说明 步骤⑥ 一个节点经一个算符操作通常指生成一个子节点。 一个节点经一个算符操作通常指生成一个子节点。 由于适用于一个节点的算符可能有多个, 由于适用于一个节点的算符可能有多个 , 此时就会 生成一组子节点。 生成一组子节点。 判断子节点是否是当前扩展节点的父节点、 判断子节点是否是当前扩展节点的父节点 、 祖父节 点等,若是,则删除。 点等,若是,则删除。 余下的子节点记做集合M,加入图 中 余下的子节点记做集合 ,加入图G中。 扩展节点时,生成该节点的所有后继节点。 扩展节点时,生成该节点的所有后继节点。
CLOSED: CLOSED:已扩展节点表
存放将扩展或已扩展节点。 存放将扩展或已扩展节点。
一般搜索过程算法流程
建立只含有初始节点S的搜索图G, 放到OPEN表中; 表中; ① 建立只含有初始节点 的搜索图 ,把S放到 放到 表中 建立CLOSED表,其初始值为空表; ② 建立 表 其初始值为空表; 表是空表, ③ 若OPEN表是空表,则失败退出; 表是空表 则失败退出; ④ 选择 选择OPEN表中第一个节点,把它从 表中第一个节点, 表中第一个节点 把它从OPEN表移出并放进 表移出并放进 CLOSED表中,称此节点为节点 ; 表中, 表中 称此节点为节点n; 为目标节点, ⑤ 若n为目标节点,则有解并成功退出,解是追踪图 中沿 为目标节点 则有解并成功退出,解是追踪图G中沿 指针从 到 这条路径得到 指针在第⑦步中设置) 这条路径得到( 指针从n到S这条路径得到(指针在第⑦步中设置); 扩展n,生成不是n的祖先的那些后继节点的集合 的祖先的那些后继节点的集合M, ⑥ 扩展 , 生成不是 的祖先的那些后继节点的集合 , 把 M的这些成员作为 的后继节点添入图 中; 的这些成员作为n的后继节点添入图 的这些成员作为 的后继节点添入图G中
Ch5状态空间搜索策略new

估价函数f(n):用于估计节点代价的函数
定义为从初始节点S0出发,经过节点n约束后,到达 目标节点Sg的所有路径中最优路径的代价估计值。 一般形式为
f(n)=g(n)+h(n)
g(n)是从初始节点S0到节点n的实际代价。可以从节 点n反向跟踪到初始节点S0,得到一条当前最小代价路 径,把这条路径上所有有向边的代价相加,就得到 g(n)的值。 ; h(n)是从节点n到目标节点S0的最优路径的估计代价。 需要根据问题自身的特性来确定,体现了问题自身的 启发性信息,因此也称为启发函数。
17 5
28 3 16 4 75
28 3 16 75 4
83 214 76 5
5
813 24 76 5
28 3 74 6 15
6
9
28 3 71 4 65
10
12 3 84 76 5
12 3 78 4
65
14 Sg
八数码难题的有界深度优先搜索
上面讨论的搜索方法都没有用到问题本身的特性信息, 只是按事先设定的线路进行搜索,具有较大的盲目性。 事实上,如果能利用搜索过程所得到的问题自身的一些 特性信息来指导搜索过程,则对搜索将是非常有益的。 这种利用问题自身的特性来引导搜索过程,提高搜索效 率的搜索策略称为启发式搜索或有信息搜索。
Sk S0k , S1k ,
操作符:使问题从一个状态变为另一个状态的操作
问题的全部状态(包含初始状态和目标状态)及
一切可用操作符所构成的集合称为问题的状态
空间。
S, F, S0 ,G
初始状态
中间状态1 中间状态2
目标状态
状态空间例:二阶梵塔问题
设有三根钢针,它们的编号分别是1号、2号和 3号。在初始情况下,l号钢针上穿有A、B两个 金片,A比B小,A位于B的上面。要求把这两个 金片全部移到另一根钢针上,而且规定每次只 能移动一个金片,任何时刻都不能使大片位于 小片的上面。
人工智能状态空间搜索策略56

安全象只弓,不拉它就松,要想保安 全,常 把弓弦 绷。21 .2.904 :07:0 304:0 7Feb- 219-F eb-21
加强交通建设管理,确保工程建设质 量。04 :07:0 304:0 7:030 4:07T uesda y, February 09, 2021
安全在于心细,事故出在麻痹。21.2 .921.2 .904: 07:03 04:07 :03Fe bruary 9, 2021
5.3 启发式搜索策略
5.3.1 启发信息与估价函数 5.3.2 最佳优先搜索 5.3.3优先搜索和深度优先搜索求解八数 码问题;
用代价树的宽度优先搜索和深度优先搜索 求解推销员旅行问题;
用全局最佳优先搜索八数码问题。
状态空间搜索策略
搜索是人工智能的基本问题,是推理不可 分割的一部分
作业标准记得牢,驾轻就熟除烦恼。 2021年 2月9 日星期 二4时7 分3秒0 4:07: 039 February 2021
好的事情马上就会到来,一切都是最 好的安 排。上 午4时7 分3秒 上午4时 7分04 :07:0 321.2. 9
专注今天,好好努力,剩下的交给时 间。21 .2.921 .2.90 4:070 4:07: 0304: 07:03 Feb-2 1
让自己更加强大,更加专业,这才能 让自己 更好。 2021年 2月上 午4时7 分21. 2.904: 07Feb ruary 9, 2021
这些年的努力就为了得到相应的回报 。2021 年2月 9日星 期二4时 7分3 秒04:0 7:039 February 2021
科学,你是国力的灵魂;同时又是社 会发展 的标志 。上午 4时7分 3秒上 午4时7 分04:0 7:032 1.2.9
第四章状态空间搜索

初始状态:任何状态都可以被指定为初始状态。注意要到 达任何一个给定的目标,可能的初始状态中恰好只有一半 可以作为开始。
后继函数:用来产生通过四个行动(把空位向Left,Right ,Up或Down移动)能够达到的合法状态。
目标测试:用来检测状态是否能匹配所要求的目标格局。
路径耗散:每一步的耗散值为1,因此整个路径的耗散值为 路径中的步数。
Department of Computer Science & Technology, Nanjing University Artificial Intelligence Spring
4
4.2 问题实例
1. 二阶梵塔问题 2. 设有三根钢针,它们的编号分别是1号、2号和3号。在初
始情况下,1号钢针上穿有A、B两个金片,A比B小,A 位于B的上面。要求把这两个金片全部移到另一根钢针 上,而且规定每次只能移动一个金片,任何时刻都不能 使大的位于小的上面。
Department of Computer Science & Technology, Nanjing University Artificial Intelligence Spring
4.1 用搜索法对问题求解
一个问题可以形式化地定义为四个组成部分: 初始状态 可能行动的描述 目标测试 路径耗散 问题的解就是从初始状态到目标状态的路径
14
4. 八皇后问题
*
* *
* *
*
* *
Department of Computer Science & Technology, Nanjing University Artificial Intelligence Spring
15
状态空间搜索策略

❖实质 • 选择OPEN表上具有最小f值的节点作为下一 个要扩展的节点。
•开始
❖算法
•把S放入OPEN表, 计算估价函数 f (s)
•OPEN表为空表?
•是
•否 •选取OPEN表中f值最小的节点i放入CLOSED表
•i为目标节点吗?
•是
•否
•扩展i,得后继节点j,计算f(j),提供返 回节点i的指针,利用f(j)对OPEN表重新排
虽然问题求解可通过搜索方法,也可用逻辑推理 ,但二者的侧重点是不一样的。前者着重于寻求问 题解答的过程,而后者强调前提(初始)问题空间 (公理集合)与问题解答间连接的逻辑正确性。或 者简单地讲,搜索着重于发现(Discovery),而 推理强调证明(Proof)。
• 搜索
– 在状态图中寻找目标或路径的基本方法
•扩展n,把n的后继节点放入OPEN 表的末端,提供返回节点n的指针
•是否有后继节点
•是
•为目标节点?
•否
•图3.2 宽度优先算法框图
•失败 •成功
• 例子 八数码难题(8-puzzle problem)
•2 •8 •3
•1
•4
•7 •6 •5
•1 •2 •3
•8
•4
•7 •6 •5
•(目标状态)
– 优先在同一级节点中考察,只有当同一级节点 考察完毕之后,才考察下一级节点
– 自顶向下一层一层逐渐生成的
• 宽度优先搜索算法
•步1 :把初始节点So放入OPEN表中。 •步2 :若OPEN表为空, 则搜索失败,退出。 •步3 :取OPEN表中前面第一个节点N放在CLOSED表中, 并冠以顺序编号n。 •步4 :若目标节点Sg=N,则搜索成功, 结束。 •步5 :若N不可扩展, 则转步2。 •步6 :扩展N, 将mj子节点配上指向N的指针依次放入OPEN表尾部, 转步2。
第三章状态空间搜索策略

第三章 状态空间搜索策略
3.2 盲目搜索策略
3.2.1 状态空间图的搜索策略
状态空间表示法:是一种用状态和算符表示问题的方法。
当把一个待求解的问题表示为状态空间以后,就可以通过对 状态空间的搜索,实现对问题的求解。
状态空间图:状态空间的图示表示问题形式。状态空间图是 一个有向图,节点表示状态,有向边(弧)表示算符。
第三章 状态空间搜索策略
算法3.1 状态空间图的一般搜索算法
(1)建立一个只含有初始节点S0的搜索图G, 把S0放人OPEN表中。
(2)建立CLOSED表,且置为空表。
(7)对那些未曾在G中出现过的M中的 节点,设置一个指向父节点(即节 点n)的指针,并把这些节点加入
(3)判断OPEN表是否为空表,若为空,则问 题无解,退出。
第三章 状态空间搜索策略
3.1.2 搜索的种类
搜索分为盲目搜索和启发式搜索两种。
盲目搜索:又称无信息搜索。即在搜索过程中,只按预先规 定的搜索控制策略进行搜索。问题本身的特性对搜索控制策 略没有任何影响,搜索带有盲目性,效率不高,只用于解决 比较简单的问题。
启发式搜索:又称有信息搜索。指在搜索求解过程中,根据 问题本身的特性来不断地改变或调整搜索的方向,使搜索朝 着最有希望的方向前进,加速问题的求解,并找到最优解。 搜索求解的效率高,易于求解复杂的问题,但抽取出问题的 相关特性和信息难。
否则继续第(7)步。
(7)扩展节点n,将其后继节点放入OPEN表的前端,并为其 设置指向节点的指针,转第(2)步。
第三章 状态空间搜索策略
第三章 状态空间搜索策略
例3.3 设八数码难题的初始状态及目标状态分别如下图(a) 和图(b)所示,试用有界深度优先搜索策略求解问题。深度 界限dm=5。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优化理论与应用
如何设计可采纳的启发式函数?
❖根据问题特征设计h,例如八数码问题
➢ h1位置不一致的棋子数目 ➢ h1 (n)=1+1+0+1+1+0+0+0=4 ➢ h2所有棋子到其目标位置的距离和 ➢ h2 (n)=1+2+0+1+1+0+0+0=5
283
123
结点n 1 6 4 目标 8 4
计算机与信息学院 刘勇
最优化理论与应用
八数码问题
令g *(n)为初始结点到结点n的深度 令h * (n)为位置不正确的数字个数
283 164 75
123 84 765
h*(n) 1
123 84
765
计算机与信息学院 刘勇
最优化理论与应用
1+5 283 164 75
0+4 2 8 3
164
7
5
left
75
765
计算机与信息学院 刘勇
最优化理论与应用
如何设计可采纳的启发式函数?
❖组合启发式函数:如果已有h1, h2 ,······, hm等可 采纳启发式函数,那么:
h = max(h1, h2 ,······, hm)
❖ 从但经 不验 知中 道学 具习 体:的已关知系某,些那特么征可以x1与定x义2和h有关, h=c1x1 +c2x2
可把状态空间记为三元状态(S,F,G)。
计算机与信息学院 刘勇
最优化理论与应用
2、状态空间的搜索策略
计算机与信息学院 刘勇
最优化理论与应用
3. 状态空间的一般搜索过程
➢ 对一个确定的具体问题来说,与解题有关的状态空 间往往只是整个状态空间的一部分,因此只要能生成并 存储这部分状态空间就可求得问题的解。 ➢ 人工智能采用的基本思想:首先把问题的初始状态( 即初始节点)作为当前状态,选择适用的算符对其进行 操作,生成一组子状态(或称后继状态、后继节点、于 节点),然后检查目标状态是否在其中出现。若出现, 则搜索成功,找到了问题的解;若不出现,则按某种搜 索策略从已生成的状态中再选一个状态作为当前状态。 重复上述过程,直到目标状态出现或者不再有可供操作 的状态及算符时为止。
f *(n) g *(n) h*(n)
f *(n) f (n)
S
g *(n)
n
h * (n)
G
计算机与信息学院 刘勇
最优化理论与应用
启发式搜索
H1 局部择优搜索
局部择优搜索是一种启发式搜索方法,是对深 度优先搜索方法的一种改进。其基本思想是:当一 个节点被扩展以后,按f(x)对每一个子节点计算估价 值,并选择最小者作为下一个要考察的节点,由于 它每次都只是在子节点的范围内选择下一下要考察 的节点,范围比较狭窄,所以称为局部择优搜索, 下面给出它的搜索过程。
B2 深度优先搜索(depth-first search)
❖A B C D E F G H I
A
新扩展出的节 点先被考察
B CDE
计算机与信息学院 刘勇
F GI H
最优化理论与应用
深度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点
2. 将S 放入open表中 3. 如果open表为空,则搜索失败,否则从open表中
计算机与信息学院 刘勇
最优化理论与应用
2、搜索的定义和分类?
定义:根据问题的实际情况不断寻找可利用的知识, 从而构造一条代价较少的推理路线,使问题得到圆满 解决的过程称为搜索。 分类:盲目搜索和启发式搜索。
➢ 盲目搜索是按预定的控制策略进行搜索,在搜索过程中获 得的中间信息不用来改进控制策略。效率不高,不便于复杂问 题的求解。 ➢ 启发式搜索是在搜索中加入了与问题有关的启发性信息, 用以指导搜索朝着最有希望的方向前进,加速问题的求解过程 并找到最优解。
在与或树的搜索过程中将反复使用这两个过 程,直到初始节点(即原始问题)被标示为可解或不 可解节点为止。
计算机与信息学院 刘勇
最优化理论与应用
计算机与信息学院 刘勇
最优化理论与应用
通过学习调整c1与c2。 ❖ ABSOLVER程序能自动生成启发式。魔方的第
一个有用的启发式就是它找到的
计算机与信息学院 刘勇
最优化理论与应用
三. 与或树搜索法
由可解子节点来确定父节点、祖父节点等为 可解节点的过程称为可解标示过程;由不可解子 节点来确定其父节点、祖父节点等为不可解节点 的过程称为不可解标示过程。
❖ 关键技术:搜索
计算机与信息学院 刘勇
最优化理论与应用
问题实例——八数码问题
❖ 状态:8个棋子在3×3 的棋盘上的任意一个 摆放
❖ 初始状态:右上图 ❖ 算子(后继函数):
left、right、up、down ❖ 目标函数:右下图 ❖ 路径代价:1
计算机与信息学院 刘勇
127 583 46
初始状态
❖ 根据与问题相关的知识问 题,引入启发式信息。
❖ 定义:f(n)为经过结点n的 且从起点到目标的最短路 径函数。 f(n)的值越小,表 示路径越短
❖ 策略:从初始结点S出发, 选择f(n)最小的子结点
S
BCDE FGH
…… G
计算机与信息学院 刘勇
最优化理论与应用
引入f(n)的搜索过程
S 434
取出第一个结点N,将N放入到close表中。 4. 如果N是目标结点,搜索成功,返回N 5. 对N的每一个子结点 i,如果open表和close表中
都没有结点i,那么将结点i其追加到open表的最 后一个元素之后 6. goto 3
计算机与信息学院 刘勇
最优化理论与应用
广度优先搜索
open
close
最优化理论与应用
B1 广度优先搜索
❖breadth-first search,BFS
❖A B F C D E G I
A
先扩展出的节 点先被考察
B
F
CDE G I H
计算机与信息学院 刘勇
最优化理论与应用
广度优先搜索算法
1. 初始化open表、close表为空,定义S为初始状态 结点
2. 将S放入到open表中 3. 如果open表为空,则搜索失败,否则从open表中
43 4 44 4 G
S
f(n)
… n…
n0
… n1
nk
G
计算机与信息学院 刘勇
最优化理论与应用
引入f(n)的搜索过程
S 0,3
S
g(n)
1,4
1,3
1,4
n
2,2
2,1
2,2
h(x)
G
f (n) g(n) h(n)
3,1
3,1
4,1
G 3,0
计算机与信息学院 刘勇
最优化理论与应用
f(n)=?
up
1+3
283
1
4
765
right
1+5 283 164 75
3+3 83
214
765
2+3
left
up
2+3
right
283
2
3
14
184
765
765
up
down
3+4
283
left
right
3+2
23
714
184
65
765
down
4+1 123
84
765
5+0
right 5+1down
123
123
最优化理论与应用
常用搜索策略
➢ 基础知识 ➢ 状态空间搜索法 ➢ 与或树搜索法 ➢ 博弈树搜索法 ➢ 随机搜索-遗传算法 ➢ 分析与讨论
计算机与信息学院 刘勇
最优化理论与应用
一. 基础知识
1、为何要搜索?
➢ 人工智能所要解决的问题大部分是结构不良或非 结构化的问题,对这样的问题一般不存在成熟的算法 可供利用,而只能是利用已有的知识一步丛地摸索着 前进。如何确定推理路线,使其付出的代价尽可能的 少,而问题又能得到较好的解决? ➢ 在人工智能中,即使对结构性能较好,理论上有 算法可依的问题,由于问题本身的复杂性以及计算机 在时间、空间上的局限性,也需要通过搜索来求解。
计算机与信息学院 刘勇
最优化论与应用
3、基于搜索的问题求解模式
❖ 问题的形式化:将环境状态简化为适于问题求解 的状态,用状态空间图描述问题。
➢ 给出初始状态 ➢ 设计算子:对动作建模 ➢ 目标函数:目标的形式化 ➢ 给出路径代价函数
❖ 求解过程:在状态空间图中找到一条从初始结点
到达目标的路径。这条路径上的所有边对应算子 组成的序列,就是解决问题的一个方案
1A
2 B,F
A
3 F,C,D,E A,B
4 C,D,E,G,I A,B,F
5 D,E,G,I A,B,F,C
6 E,G,I
A,B,F,C,D
7 G,I
A,B,F,C,D,E
8 I,H
A,B,F,C,D,E,G
9H
A,B,F,C,D,E,G,I
A
B
F
CDE G I H
计算机与信息学院 刘勇
最优化理论与应用
计算机与信息学院 刘勇
最优化理论与应用
H2 全局择优搜索
每当要选择一个节点进行考察时,局部择优搜 索只是从刚生成的子点节中进行选择,选择的范围 比较狭窄,因而又提出了全局择优搜索方法。这种 方法搜索时,每次总是从0PEN表的全体节点中选择 一个估价值最小的节点。