第三章搜索策略-PracticalReaso
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•1
•4
•1 •4
•7 •6 •5
•7 •6 •5
•f=
3
•1Hale Waihona Puke Baidu
•3
•f= 3
•1 •3
•8 •2 •4
•8 •2 •4
•7 •6 •5
•7 •6 •5
•f=
•f=
1
2
•8 •3
•2 •1 •4
•7 •6 •5
•f= 3
•8 •1 •3
•2 •4
•7 •6 •5
•f= 3
•8
•3
•2 •1 •4
•7 •6 •5
而得到的新节点,称为该节点的后继节点 – 指针:从每个后继节点返回指向其父辈节点 – 检查各后继节点看是否为目标节点. • 搜索过程扩展后继节点的次序
– 如果搜索是以接近起始节点的程度(由节点之间连结弧线的数目来 衡量)依次扩展节点,称为广(宽)度优先搜索
– 如果搜索时首先扩展最新产生的节点,称为深度优先搜索
•Q •Q
•Q
•( ) •((1,1)) •((1,1) (2,3)) •((1,1) (2,4)) •((1,1) (2,4) (3.2))
•Q •Q
•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))
S:问题所有的初始状态集合; F:算符集合; G:目标状态集合
算符: 引起状态中某些分量发生变化, 从而使问题由一个状 态变为另一个状态的操作称为算符.
状态空间表示法是用“状态”和“算符”表示问题的一种方法
状态空间图:状态空间的图式表示,称为状态空间图.其中节 点表示状态,有向边(弧)表示算符.
与/或树表示法(2)
• 例子:三阶梵塔问题 设有A,B,C三个金片以及三个钢针,三个金片按自上而下从小到大的 顺序穿在1号钢针上,要求把它们全部移到3号钢针上,而且每次只能 移到一个金片,任何时候都不能把大的金片压在小的金片上面.
▪ 用与/或树表示:问题分解 (1)为了把三个金片全部移到3号针上,必须先把C移到3号针上 (2)为了移到C,必须把A和B移到2号针上 (3)当C移到3针后,就可把A和B移到3针上,完成问题求解
第三章搜索策略PracticalReaso
2020年7月25日星期六
•搜索策略
主要内容
• 概述
• 状态空间搜索
状态空间的一般搜索过程 广度优先搜索 深度优先搜索 启发式搜索 A*算法
问题规约搜索 博弈
概述(1)
• 问题求解
▪ AI中每个研究领域都有其各自的特点和规律,但就求解问 的过程看,都可抽象为一个问题求解过程。
搜索控制策略(2)
• 不可撤回的控制策略 • 例:八数码问题 • 评价函数:f: (规定: 评价函数非增)
•2 •8 •3
•1 •6 •4
•7
•5
•1 •2 •3
•与 •8
•4 •的差异为4
•7 •6 •5
搜索控制策略(3)
• 不可撤回的控制策略
•2 •8 •3 •1 •6 •4
•2 •8 •3 •1 •2
▪ 目标状态集合G={S4,S8}.
▪ 算符:A( i,j):表示把金片A从第i号针移到第j号针上
B(i,j):表示把B从第i号针移到第j号针上
▪ 共12个算符:
▪ A(1,2), A(1,3), A(2,1) ,A(2,3), A(3,1),A(3,2) ▪ B(1,2), B(1,3), B(2,1), B(2,3), B(3,1), B(3,2)
▪ 问题求解过程实际上是一个搜索,广义地说,它包含了全部 计算机科学。
▪ 任何问题求解技术都包括两个重要的方面:表示和搜索 ▪ 表示是基本的,搜索必须要在表示的基础上进行。表示关
到搜索的效率。 ▪ 本章讨论的表示主要包括:
▪ 状态空间表示 ▪ 问题空间表示
概述(2)
1974年,Nilsson归纳出的AI研究的基本问题 • 知识的模型化和表示 • 常识性推理、演绎和问题解决 • 启发式搜索 • 人工智能系统和语言
▪ 设用Sk=(Sk0,Sk1)表示问题的状态,SK0表示金片A所在的钢针号,SK1表示金片B所在的 钢针号,全部可能的状态为:
▪ 问题初始状态集合S={S0},
S0=(1,1), S1=(1,2), S3=(1,3) S4=(2,1), S5=(2,2), S6=(2,3) S7=(3,1), S8=(3,2), S9=(3,3)
状态空间表示法(5)
• 用状态空间表示,首先必须定义状态的描述形式,把问题的一切状态都表 示出来,其次定义算符,完成状态的转换
• 问题的求解过程就是一个把算符不断地作用于状态的过程.如果在使用 某个算符后得到的状态就是目标状态,就得到了问题的解.这个解就是从 初始状态到目标状态所用算符构成的序列.
状态空间表示法(3)
• 路径
– 状态序列
• 搜索
– 寻找从初始状态到目标状态的路径;
•S0
•Sg
状态空间表示法(4)
• 例一:二阶梵塔问题
设有三个钢针,在一号钢针上穿有A,B两个金片,A小于B,A位于B的上面.要求把这两 个金片全部移到另一个钢针上,而且规定每次只能移动一片,任何时刻都不能使B位于 A的上面
• 算符的一次使用,就使问题由一种状态转变为另一种状态.可能有多个算 符序列都可使问题从初始状态变到目标状态,这就得到了多个解.
• 对任何一个状态,可使用的算符可能不止一个,这样由一个状态所生成的 后继状态可能有多个.如何选择下一步的操作,由搜索策略决定.
搜索控制策略(1)
搜索控制策略 – 不可撤回的控制策略; – 试探性控制策略 • 回溯型 • 图搜索
状态空间的一般搜索过程(1)
• 主要数据结构 – OPEN表:存放刚生成的节点,是还未扩展的节点.一般是 节点. – CLOSED表:存放将要扩展或已扩展的节点.或者是已被 展但还没有在搜索树中生成后继节点的端节点,或者是非 端节点
状态空间的一般搜索过程(2)
(1)把初始节点S0放入OPEN表,并建立目前只包含S0的图,记为G (2)检查OPEN表是否为空,若为空则问题无解,退出 (3)把OPEN表的第一个节点取出放入CLOSED表,记该节点为n (4)考察n是否为目标节点.如是,则问题得解,退出 (5)扩展节点n,生成一组子节点.把其中不是节点n先辈的那些节点记作集合M,并
•( ) •((1,1)) •((1,1) (2,3))
•Q •Q
•Q •( ) •((1,1))
•((1,1) (2,3))
•( ) •((1,1)) •((1,1) (2,3)) •((1,1) (2,4))
•Q •Q
•( ) •((1,1)) •((1,1) (2,3)) •((1,1) (2,4)) •((1,1) (2,4) (3.2))
▪ 状态是描述问题求解过程中任一时刻状况的数据结构.
•2 •3 •7
•
•5 •1
•4 •8 •6
•{A,B,C,
D}
•(2, 3,7 ,0 , 5, 2, 4, 8, 6 )
状态空间表示法(2)
状态空间:由问题的全部状态及一切可用算符所构成的集合称为问题的状态
空间.一般表示为: (S, F, G)
•f= 3
•8 •1 •3
•2
•4
•7 •6 •5
•f= 3
搜索控制策略(5)
• 不可撤回的控制策略 •可能无解
•1 •2 •5 •8 •4
•7 •6 •3
•1 •2 •3 •8 •4
•7 •6 •5
•f=
•目
2
标
搜索控制策略(6)
• 回溯策略 • 例:四皇后问题
•( )
•Q •( )
•((1,1))
状态空间搜索过程要点(2)
• 指针 • 调整指针 • 扩展一个节点
– 生成出该节点的所有后继节点。
• 弧的费用
– 有一条弧连接ni和nj两个节点, 用C(ni, nj)表示使用规则从ni到nj的 费用(耗散值)。
• 玉泉路---天安门
• 路径的耗散值
– 一条路径的耗散值等于连接这条路径各节点间所有耗散值的总和 。用C(ni, nj)表示从ni到nj的路径的耗散值。
?
搜索策略反映了状态空间或问题空间扩展的方法,也决定了状态或问 题的访问顺序。
在AI领域,状态空间图由初始状态和算子隐含地表示,经常是无限的 ,它的复杂度根据下面三个值来表达:
分支因子b:任何节点的后继的最大个数 最浅的目标节点的深度d 状态空间中任何路径的最大长度m
主要内容
• 概述
• 状态空间搜索
•((1,2) (2,4))
•((1,1) (2,4) (3.2))
•((1,2) (2,4) (3,1))
•((1,2) (2,4) (3,1) (4,3))
与/或树表示法(1)
基本概念
▪ 与/或树是用于表示问题及其求解过程的又一种形式化方 法.
▪ 复杂问题的简化方法 • 分解:把一个问题分解到不需再分解或不能再分解为 止,然后对每个子问题进行求解,然后把各子问题的解 复合起来,就得到原问题的解. • 等价变换:利用同构或同态的等价变换,把复杂问题转 换成若干个较为容易求解的新问题.若新问题中有一 个可求解,则就得到了原问题的解.
•3
•1
•4
•1 •8 •4
•7
•5
•7 •6 •5
•7 •6 •5
•f= 4
•1 •2 •3
•f= 3
•1 •2 •3
•f= 3
•2 •3
•8
•4
•8 •4
•1 •8 •4
•7 •6 •5
•7 •6 •5
•7 •6 •5
•f=
•f=
•f=
0
1
2
搜索控制策略(4)
• 不可撤回的控制策略
•2 •8 •3 •2 •2 •8 •3
▪ 得到三个子问题 (1)把A和B移到2号针的双金片问题 (2)把C移到3号针的单金片问题 (3)把A和B移到3号针的双金片问题
度量问题求解的性能
一般搜索策略可以通过下面四个准则来评价:
• 完备性:如果存在一个解答,该策略是否保证能够找到? • 时间复杂性:需要多长时间可以找到解答? • 空间复杂性:执行搜索需要多少存储空间? • 最优性:如果存在不同的几个解答,该策略是否可以发现最高质量的解答
状态空间的一般搜索过程 广度优先搜索 深度优先搜索 启发式搜索 A*算法 ▪ 问题规约搜索 ▪ 博弈
状态空间搜索过程要点(1)
• 求解一个能够满足目标条件的问题可以表达为搜索一个图以找到一个 满足目标状态描述的节点问题.搜索过程的要点如下:
– 起始节点:对应于初始状态描述 – 后继节点:把适用于某个节点状态描述的一些算符用来推算该节点
•( ) •((1,1))
•((1,2))
•Q •Q
•Q
•((1,1) (2,3)) •((1,1) (2,4))
•((1,2) (2,4))
•((1,1) (2,4) (3.2))
•((1,2) (2,4) (3,1))
•( ) •((1,1))
•((1,2))
•Q •Q
•Q •Q
•((1,1) (2,3)) •((1,1) (2,4))
这些子节点作为节点n的子节点加入G中 (6)针对M中子节点的不同情况,分别进行处理
1. 对于那些未曾在G中出现过的M成员设置一个指向父节点(即n)的指针 把它们放入OPEN表
2. 对于那些先前已在G中出现过的M成员,确定是否需要修改它指向父节 的指针
搜索是人工智能中的一个基本问题,是推理不可分割的一部分 直接关系到智能系统的性能和运行效率
AI为什么要研究search?
– 问题没有直接的解法; – 需要探索地求解;
搜索(3)
• 什么是搜索
▪ 根据问题的实际情况不断寻找可利用的知识,构造 出一条代价较少的推理路线,使问题得到圆满解决 的过程称为搜索 包括两个方面: --- 找到从初始事实到问题最终答案的一条推理 路径 --- 找到的这条路径在时间和空间上复杂度最小
搜索(4)
▪ 盲目搜索:也称为无信息搜索,即只按预定的控制策 略进行搜索,在搜索过程中获得的中间信息不用来改 进控制策略
▪ 启发式搜索: 在搜索中加入了与问题有关的启发性信 息,用于指导搜索朝着最有希望的方向进行,加速问题 的求解过程并找到最优解
状态空间表示法(1)
状态空间表示法:用来表示问题及其搜索过程的一种方法 状态
•Q •( )
•((1,1))
•((1,2))
•((1,1) (2,3)) •((1,1) (2,4))
•((1,1) (2,4) (3.2))
•( ) •((1,1))
•((1,2))
•Q •Q
•((1,1) (2,3)) •((1,1) (2,4))
•((1,2) (2,4))
•((1,1) (2,4) (3.2))