第3章 搜索推理技术
合集下载
智能控制-第三章--搜索推理技术概要PPT课件

第三章 搜索推理技术
3.1 图搜索策略 3.2 盲目搜索 3.3 启发式搜索 3.4 消解原理 3.5 规则演绎系统
3.6 产生式系统 3.7 系统组织技术 3.8 小结
3.1 图搜索策略
❖ 图搜索控制策略 一种在图中寻找路径的方法。 图中每个节点对应一个状态,每条连线对应 一个操作符。这些节点和连线又分别由产生 式系统的数据库和规则来标记。求得把一个 数据库变换为另一数据库的规则序列问题就 等价于求得图中的一条路径问题。
5)若n为一目标节点,则有解并成功退出,此 解是追踪图G中沿着指针从n到S这条路径而 得到的(指针将在第7步中设置)。
.
3.1 图搜索策略
6)扩展节点n,同时生成不是n的祖先的那些后 继节点的集合M。把M的这些成员作为n的后 继节点添入图G中。
7)对那些未曾在G中出现过的M成员设置一个 通向n的指针。把M的这些成员加进OPEN表。 对已经在OPEN或CLOSED表上的每一个M成 员,确定是否需更改通到n的指针方向。对已 在CLOSED表上的每个M成员,确定是否需 要更改图G中通向它的每个后裔节点的指针方 向。
是否有后继节点 为目标节点?
否
是 成功
图3.2 宽度优先算法框图
.
❖ 例子
八数码难题(8-puzzle problem)
3.2 盲目搜索
28 3
1
4
76 5
(初始状态)
12 3
8
4
76 5
(目标状态)
规定:将棋子移入空格的顺序为:从空格左边开 始顺时针旋转。不许斜向移动,也不返回先辈节 点。从图可见,要扩展26个节点,共生成46个 节点之后才求得解(目标节点)。
.
深度优先搜索示意图
3.1 图搜索策略 3.2 盲目搜索 3.3 启发式搜索 3.4 消解原理 3.5 规则演绎系统
3.6 产生式系统 3.7 系统组织技术 3.8 小结
3.1 图搜索策略
❖ 图搜索控制策略 一种在图中寻找路径的方法。 图中每个节点对应一个状态,每条连线对应 一个操作符。这些节点和连线又分别由产生 式系统的数据库和规则来标记。求得把一个 数据库变换为另一数据库的规则序列问题就 等价于求得图中的一条路径问题。
5)若n为一目标节点,则有解并成功退出,此 解是追踪图G中沿着指针从n到S这条路径而 得到的(指针将在第7步中设置)。
.
3.1 图搜索策略
6)扩展节点n,同时生成不是n的祖先的那些后 继节点的集合M。把M的这些成员作为n的后 继节点添入图G中。
7)对那些未曾在G中出现过的M成员设置一个 通向n的指针。把M的这些成员加进OPEN表。 对已经在OPEN或CLOSED表上的每一个M成 员,确定是否需更改通到n的指针方向。对已 在CLOSED表上的每个M成员,确定是否需 要更改图G中通向它的每个后裔节点的指针方 向。
是否有后继节点 为目标节点?
否
是 成功
图3.2 宽度优先算法框图
.
❖ 例子
八数码难题(8-puzzle problem)
3.2 盲目搜索
28 3
1
4
76 5
(初始状态)
12 3
8
4
76 5
(目标状态)
规定:将棋子移入空格的顺序为:从空格左边开 始顺时针旋转。不许斜向移动,也不返回先辈节 点。从图可见,要扩展26个节点,共生成46个 节点之后才求得解(目标节点)。
.
深度优先搜索示意图
第三章-推理技术PPT课件

.
34
举例如下:
目标表达式被化成与或形:
~P(f(y))∨{Q(f(y),y)∧[~P(f(y))∨~S(y)]}
式中,f(y)为一Skolem函数。
对目标的主要析取式中的变量分离标准化可得:
~P(f(z))∨{Q(f(y),y)∧[~P(f(y))∨~S(y)]}
应注意不能对析取的子表达式内的变量y改名
将下列谓词演算公式化为一个子句集
( x){P(x)→{( y)[P(y)→P(f(x,y))]∧~( y)[Q(x,y)→P(y)]}}
.
9
3.1.2 消解推理规则
1、消解式 已知两子句L1∨α和~L2∨β,如果L1和L2具有
最一般合一者σ,那么通过消解可以从这两个父辈 子句推导出一个新子句α∨β。这个新子句叫做消 解式。它是由取这两个子句的析取,然后消去互补
可见目标子句是文字的合取,而这些子句的析取 是目标公式的子句形。
2.与或图的B规则变换 B规则:即逆向推理规则。 B规则是建立在确定的蕴涵式基础上的,我们把B 规则限制为:
W→L
其中,W为任一与或形公式,L为文字,
把B规则限制为这种形式的蕴涵式还可以简化匹配,
可以把像W→ (L1∧L2)这样的蕴涵式化为两个规则
W→L1和W→L2。
.
37
3.作为终止条件的事实节点的一致解图 逆向系统中的事实表达式均限制为文字合取
形,它可以表示为一个文字集。当一个事实文字 和标在该图文字节点上的文字相匹配时,就可把 相应的后裔事实节点添加到该与或图中去。这个 事实节点通过标有mgu的匹配弧与匹配的子目标文 字节点连接起来。
而使每个析取式具有不同的变量。
.
35
与或形的目标公式也可以表示为与或图。不过,与 事实表达式的与或图不同的是,对于目标表达式, 与或图中的k线连接符用来分开合取关系的子表达 式。上例所用的目标公式的与或图如下所示:
3章搜索与推理

成功
是
失败
把具有最小g(i)值的节点i从OPEN表移 至CLOSED表
是否有后继节点 为目标节点?
否
是
成功
扩展i,计算其后继节点j的g(j), 并把后继节点放入OPEN表
17
3.3 启发式搜索 特点:重排OPEN表,选择最有希望的节 点加以扩展 种类:有序搜索、A*算法等
3.3.1 启发式搜索策略和估价函数
A*算法的定义: 定义1 在图搜索过程中,如果第8步 的重排OPEN表是依据f(x)=g(x)+h(x) 进行的,则称该过程为A算法。 定义2 在A算法中,如果对所有的x存 在h(x)≤h*(x),则称 h(x) 为 h*(x) 的下界, 它表示某种偏于保守的估计。 定义3 采用h*(x)的下界h(x)为启发函 数的A算法,称为A*算法。当h=0时, A*算法就变为有序搜索算法。
27
1 2 3 8 4 7 6 5
14
8 1 3 3 1 4 2 4 6 5 7 6 5
2 8 3 2 8 3 4 7 1 4 7 6 1 5 6 5
图3.4 八数码难题的宽度优先搜索树
3.2.2 深度优先搜索
定义
首先扩展最新产生的(即最深的)节点。
算法
防止搜索过程沿着无益的路径扩展下去, 往往给出一个节点扩展的最大深度——深度界 限。 与宽度优先搜索算法最根本的不同在于: 将扩展的后继节点放在OPEN表的前端。
开始
算法
把S放入OPEN表, 计算估价函数 f (s)
OPEN表为空表?
是
失败
否 选取OPEN表中f值最小的节点i放入CLOSED表
i为目标节点吗?
是
成功
否 扩展i,得后继节点j,计算f(j),提供返回 节点i的指针,利用f(j)对OPEN表重新排 序,调整亲子关系及指针
人工智能课件-搜索推理技术

(3) 對變數標準化 對啞元(虛構變數)改名,以保證每個量詞 有其自己唯一的啞元。
1
3.4 消解原理
(4) (x){~P(x)∨{(y)[~P(y)∨P(f(x,y))]
∧[Q(x,g(x))∧~P(g(x))]}}
式中,w=g(x)為一Skolem函數。
(4) 消去存在量詞
以Skolem函數代替存在量詞內的約束變數,
❖ 實質
❖ 把一棵根部有NIL的反演樹變換為根部帶有回 答 語句的一棵證明樹。
1
3.5 規則演繹系統
—— g是g*的估計 ,h是h*的估計
❖ A*演算法的定義:
定義1 在GRAPHSEARCH過程中,如果第8步的重排OPEN表
是依據f(x)=g(x)+h(x)進行的,則稱該過程為A演算法。
定義2 在A演算法中,如果對所有的x存在h(x)≤h*(x),則稱h(x)
為h*(x)的下界,它表示某種偏於保守的估計。
子句(4) {a/x,b/y}
子句(7) ~M(b)
子句(5)
圖3.12 儲蓄問題反演樹
NIL
1
3.4 消解原理
❖ 反演求解過程 ❖從反演樹求取答案步驟
❖把由目標公式的否定產生的每個子句添加到目 標公式否定之否定的子句中去。
❖按照反演樹,執行和以前相同的消解,直至在 根部得到某個子句止。
❖用根部的子句作為一個回答語句。
❖ 種類:有序搜索、A*演算法等
3.3.1 啟發式搜索策略和估價函數
❖盲目搜索可能帶來組合爆炸 ❖啟發式資訊
用來加速搜索過程的有關問題領域的特徵資訊。
1
3.3 啟發式搜索
❖ 估價函數 為獲得某些節點“希望”的啟發資訊,提供一
1
3.4 消解原理
(4) (x){~P(x)∨{(y)[~P(y)∨P(f(x,y))]
∧[Q(x,g(x))∧~P(g(x))]}}
式中,w=g(x)為一Skolem函數。
(4) 消去存在量詞
以Skolem函數代替存在量詞內的約束變數,
❖ 實質
❖ 把一棵根部有NIL的反演樹變換為根部帶有回 答 語句的一棵證明樹。
1
3.5 規則演繹系統
—— g是g*的估計 ,h是h*的估計
❖ A*演算法的定義:
定義1 在GRAPHSEARCH過程中,如果第8步的重排OPEN表
是依據f(x)=g(x)+h(x)進行的,則稱該過程為A演算法。
定義2 在A演算法中,如果對所有的x存在h(x)≤h*(x),則稱h(x)
為h*(x)的下界,它表示某種偏於保守的估計。
子句(4) {a/x,b/y}
子句(7) ~M(b)
子句(5)
圖3.12 儲蓄問題反演樹
NIL
1
3.4 消解原理
❖ 反演求解過程 ❖從反演樹求取答案步驟
❖把由目標公式的否定產生的每個子句添加到目 標公式否定之否定的子句中去。
❖按照反演樹,執行和以前相同的消解,直至在 根部得到某個子句止。
❖用根部的子句作為一個回答語句。
❖ 種類:有序搜索、A*演算法等
3.3.1 啟發式搜索策略和估價函數
❖盲目搜索可能帶來組合爆炸 ❖啟發式資訊
用來加速搜索過程的有關問題領域的特徵資訊。
1
3.3 啟發式搜索
❖ 估價函數 為獲得某些節點“希望”的啟發資訊,提供一
第3章搜索推理技术3与或树搜索

OPEN表的末端 5、无叶节点,转到3步
OPEN= { 2,3 } CLOSED= { 1 }
第二大循环(3、4、5步): 3、从OPEN表中取出节点2,并送到CLOSED表 4、扩展节点2,生成后继节点4、5,并送到OPEN
表的末端 5、无叶节点,转到3步
OPEN= { 3, 4, 5 } CLOSED= { 1, 2 }
1、没有后裔的非终叶节点是不可解节点
2、如果某一个非终叶节点含有“或”后继节点, 那么,只要当所有的后继节点都不可解时,这一 个非终叶节点才是不可解的
3、如果某一个非终叶节点含有“与”后继节点, 那么,只要有一个后继节点是不可解的,这一个 非终叶节点就是不可解的
可解标志过程与不可解标志过程:
根据可解与不可解节点的递归定义,用递归的方 式作用于某一个与或图,以标出所有的可解节点 与不可解节点
注意
由于深度限制,深度优先搜索算法有可能找不 到解
例: 深度界限为4
√
1
√
√
2
6
√
3
ⅩA 7 √ C
Ⅹ
4
√
5
√
8
t√
ⅩB
t
t
t
t
√
√
√
√
注:后生成的节点画在左边
课堂练习:用宽度和深度优先搜索算法找出解树
提示:对于宽度优先搜索,先生成的节点画在左; 对于深度优先搜索,后生成的节点画在左
2 4
算法结束的条件:
➢ 若初始节点被标志为可解节点,算法成 功结束(有解)
➢ 若起始节点被标志为不可解节点,则搜 索失败结束(无解)
与或图的解图: 由最少的可解节点所构成的子图,这些节 点能够使问题的起始节点是可解的
OPEN= { 2,3 } CLOSED= { 1 }
第二大循环(3、4、5步): 3、从OPEN表中取出节点2,并送到CLOSED表 4、扩展节点2,生成后继节点4、5,并送到OPEN
表的末端 5、无叶节点,转到3步
OPEN= { 3, 4, 5 } CLOSED= { 1, 2 }
1、没有后裔的非终叶节点是不可解节点
2、如果某一个非终叶节点含有“或”后继节点, 那么,只要当所有的后继节点都不可解时,这一 个非终叶节点才是不可解的
3、如果某一个非终叶节点含有“与”后继节点, 那么,只要有一个后继节点是不可解的,这一个 非终叶节点就是不可解的
可解标志过程与不可解标志过程:
根据可解与不可解节点的递归定义,用递归的方 式作用于某一个与或图,以标出所有的可解节点 与不可解节点
注意
由于深度限制,深度优先搜索算法有可能找不 到解
例: 深度界限为4
√
1
√
√
2
6
√
3
ⅩA 7 √ C
Ⅹ
4
√
5
√
8
t√
ⅩB
t
t
t
t
√
√
√
√
注:后生成的节点画在左边
课堂练习:用宽度和深度优先搜索算法找出解树
提示:对于宽度优先搜索,先生成的节点画在左; 对于深度优先搜索,后生成的节点画在左
2 4
算法结束的条件:
➢ 若初始节点被标志为可解节点,算法成 功结束(有解)
➢ 若起始节点被标志为不可解节点,则搜 索失败结束(无解)
与或图的解图: 由最少的可解节点所构成的子图,这些节 点能够使问题的起始节点是可解的
人工智能-第3章 搜索技术

其中,初 始状态集 合和操作 符集合定 义了问题 的搜索空 间。
5
搜索问题包括:
搜索什么(目标) 在哪里搜索(搜索空间)
和通常的搜索空间不同,人工智能 中大多数问题的状态空间在问题求 解之前不是全部知道的。
6
搜索分成:
状态空间的生成阶段 在该状态空间中对所求问题状态的搜 索
搜索可以根据是否使用启发式信息 分为
51
策略说明:
(1)深度限制dm很重要。当问题有解, 且解的路径长度小于或等于dm时, 则搜索过程一定能够找到解,但是 和深度优先搜索一样这并不能保证 最先找到的是最优解。 但是当dm取得太小,解的路径长度 大于dm时,则搜索过程中就找不到 解,即这时搜索过程甚至是不完备 的。
((1,1))
20
Q () Q
((1,1))
((1,1) (2,3))
21
Q ()
((1,1))
((1,1) (2,3))
22
Q () Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
23
Q () Q Q
((1,1))
((1,1) (2,3))
((1,1) (2,4))
((1,1) (2,4) (3.2))
2 8 3 7 1 4 6 5
2 8 1 4 3 7 6 5
2 8 3 1 4 5 7 6
目标
50
3.2.3 迭代加深搜索
有界深度优先搜索过程总体上按深度 优先算法方法进行,但对搜索深度 需要给出一个深度限制dm,当深度 达到了dm的时候,如果还没有找到 解答,就停止对该分支的搜索,换 到另外一个分支进行搜索。
47
初始节点放到栈中,栈指针指向栈的最上边的元素。 为了对该节点进行检测,需要从栈中弹出该节点, 如果是目标,该算法结束,否则把其子节点以任何 顺序压入栈中。该过程直到栈变成为空。 深度 遍历一棵树的过程(下图)。
第3章搜索推理策略人工智能

推理的基本概念
推理方法及其分类
1.按推理的逻辑基础分:演绎,归纳,类比归纳推理
演绎推理与归纳推理的区别:
– 演绎推理是在已知领域内的一般性知识的前提下,通 过演绎求解一个具体问题或者证明一个结论的正确性。 它所得出的结论实际上早已蕴含在一般性知识的前提 中,演绎推理只不过是将已有事实揭露出来,因此它 不能增殖新知识。
Artificial Intelligence (AI)
人工智能
第3章: 确定性推理
主讲:何春梅
Email:xiaoxiao_he8@
内容提要
第三章:确定演绎推理
4.归结演绎推理
5.基于规则的演绎推理
内容提要
第三章:确定性推理
1.推理的基本概念
推理的基本概念
推理的控制策略及其分类
推理方向控制策略: – 混合推理:把正向推理和逆向推理结合起来所进行 的推理称为混合推理。是一种解决较复杂问题的方 法。 – 混合推理方法的三种类型: 1. 先正向后逆向:这种方法先进行正向推理,从 已知事实出发推出部分结果,然后再用逆向推理 对这些结果进行证实或提高它们的可信度。
推理的基本概念
推理方法及其分类
1.按推理的逻辑基础分:演绎,归纳,类比归纳推理
归纳推理:按照所选事例的广泛性可分为完全归纳
推理和不完全归纳推理。
– 完全归纳推理:在进行归纳时需要考察相应事物 的全部对象,并根据这些对象是否都具有某种属 性,推出该类事物是否具有此属性。 – 不完全归纳推理:在进行归纳时只考察了相应事 物的部分对象,就得出了关于该事物的结论。
内容提要
第三章:确定性推理
1.推理的基本概念
2.搜索策略
3.自然演绎推理
人工智能搜索推理技术消解原理-精选

2020/1/24
2、将前束范式转化为斯柯伦(Skolem)范式 ⑥ 得到斯科伦范式
3、将斯柯伦范式转化为子句集 ⑦ 消去前束(全称量词) ⑧ 消去合取连词 ⑨ 变量改名,得到子句集
2020/1/24
说明:
为了使斯科伦函数更简单一些,可以将合取关 系的各个谓词公式分别先分成前束范式、斯科 伦范式,再综合起来化成前束范式、前束合取 范式(后面的定理证明部分就采用了这一种化 法)
2020/1/24
3.6 消解原理 第2章中介绍: ➢ 谓词逻辑的基本知识 ➢ 合一算法(求最一般的一致置换或合一者
mgu) 本节: 消解原理(或者归结原理)
2020/1/24
3.6.1 子句集的求取 如何将谓词公式转化为子句集,作为合一算法 的输入(公式集) 3.6.1.1 若干基本概念 3.6.1.2 子句集的求取
量
2020/1/24
无量词公式
前束范式 = (前束) (母式)
全称量词串
2020/1/24
⑥ 将母式化成合取范式 利用分配律将前束范式化成前束合取范式: P∨(Q∧R) = (P∨Q)∧(P∨R) (析取 合取)
2020/1/24
⑦ 消去全称量词 谓词公式已经化成了前束合取范式,且只包含 全称量词,此时全称量词的次序也不重要了, 所以可以消去全部量词(即前束、前缀)
2020/1/24
求取子句集的步骤:
① 消去“蕴含”和“等价”连 结词 使用的公式:
AB = ~A∨B AB = (AB)∧(B A)
2020/1/24
② 减少“非”连结词的辖域 将“~”连结词直接作用到原子公式前,使得 每一个“非”联结词最多只能作用于一个原子 公式(谓词符号)
2020/1/24
2、将前束范式转化为斯柯伦(Skolem)范式 ⑥ 得到斯科伦范式
3、将斯柯伦范式转化为子句集 ⑦ 消去前束(全称量词) ⑧ 消去合取连词 ⑨ 变量改名,得到子句集
2020/1/24
说明:
为了使斯科伦函数更简单一些,可以将合取关 系的各个谓词公式分别先分成前束范式、斯科 伦范式,再综合起来化成前束范式、前束合取 范式(后面的定理证明部分就采用了这一种化 法)
2020/1/24
3.6 消解原理 第2章中介绍: ➢ 谓词逻辑的基本知识 ➢ 合一算法(求最一般的一致置换或合一者
mgu) 本节: 消解原理(或者归结原理)
2020/1/24
3.6.1 子句集的求取 如何将谓词公式转化为子句集,作为合一算法 的输入(公式集) 3.6.1.1 若干基本概念 3.6.1.2 子句集的求取
量
2020/1/24
无量词公式
前束范式 = (前束) (母式)
全称量词串
2020/1/24
⑥ 将母式化成合取范式 利用分配律将前束范式化成前束合取范式: P∨(Q∧R) = (P∨Q)∧(P∨R) (析取 合取)
2020/1/24
⑦ 消去全称量词 谓词公式已经化成了前束合取范式,且只包含 全称量词,此时全称量词的次序也不重要了, 所以可以消去全部量词(即前束、前缀)
2020/1/24
求取子句集的步骤:
① 消去“蕴含”和“等价”连 结词 使用的公式:
AB = ~A∨B AB = (AB)∧(B A)
2020/1/24
② 减少“非”连结词的辖域 将“~”连结词直接作用到原子公式前,使得 每一个“非”联结词最多只能作用于一个原子 公式(谓词符号)
2020/1/24
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能
第三章 搜索推理技术
3.1图搜索策略
1、图搜索策略 图搜索策略可看作一种在图中寻找路径的方 法。初始节点和目标节点分别代表初始数据库和 满足终止条件的数据库。求得把一个数据库变换 为另一数据库的规则序列问题就等价于求得图中 的一条路径问题。 2、图搜索算法中的几个重要名词术语 (1)OPEN表与CLOSE表 (2)搜索图与搜索树
3.3 启发式搜索
思考: 宽度优先搜索、等代价搜索和深度优先搜索与有 序搜索的关系。 有序搜索的有效性直接取决于f的选择,如果选择 的f不合适,有序搜索就可能失去一个最好的解甚至全 部的解。如果没有适用的准确的希望量度,那么f的选 择将涉及两个方面的内容:一方面是一个时间和空间 之间的折衷方案;另一方面是保证有一个最优的解或 任意解。
3.1图搜索策略
思考:图搜索是针对什么知识表示方法的问题 求解方法?
3.1图搜索策略
4、图搜索方法分析: 图搜索过程的第8步对OPEN表上的节点进行排序,以 便能够从中选出一个“最好”的节点作为第4步扩展用。这 种排序可以是任意的即盲目的(属于盲目搜索),也可以用以 后要讨论的各种启发思想或其它准则为依据(属于启发式搜 索)。 每当被选作扩展的节点为目标节点时,这一过程就宣告 成功结束。这时,能够重现从起始节点到目标节点的这条 成功路径,其办法是从目标节点按指针向S返回追溯。 当搜索树不再剩有未被扩展的端节点时,过程就以失 败告终(某些节点最终可能没有后继节点,所以OPEN表可 能最后变成空表)。在失败终止的情况下,从起始节点出发, 一定达不到目标节点。
3.3 启发式搜索
2.实质 选择OPEN表上具有最小f值的节点作为下一个要扩 展的节点,即总是选择最有希望的节点作为下一个要 扩展的节点。
3.3 启发式搜索
3.有序状态空间搜索算法 (1) 把起始节点S放到OPEN表中,计算f(S)并把其 值与节点S联系起来。 (2) 如果OPEN是个空表,则失败退出,无解。 (3) 从OPEN表中选择一个f值最小的节点i。结果 有几个节点合格,当其中有一个为目标节点时,则选 择此目标节点,否则就选择其中任一个节点作为节点i。 (4) 把节点i从OPEN表中移出,并把它放入CLOSED 的扩展节点表中。 (5) 如果i是个目标节点,则成功退出,求得一个 解。
3.2盲目搜索
3.2.1宽度优先搜索 1、定义 如果搜索是以接近起始节点的程度依次扩展节点 的,那么这种搜索就叫做宽度优先搜索 (breadth-first search)。 2、特点 这种搜索是逐层进行的;在对下一层的任一节点 进行搜索之前,必须搜索完本层的所有节点。
3.2盲目搜索
3、宽度优先搜索算法 (1) 把起始节点放到OPEN表中(如果该起始节点为 一目标节点,则求得一个解答)。 (2) 如果OPEN是个空表,则没有解,失败退出; 否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它 放入CLOSED的扩展节点表中。 (4) 扩展节点n。如果没有后继节点,则转向上述第 (2)步。 (5) 把n的所有后继节点放到OPEN表的末端,并提 供从这些后继节点回到n的指针。 (6) 如果n的任一个后继节点是个目标节点,则找到 一个解答,成功退出;否则转向第(2)步。
3.1图搜索策略
(6) 扩展节点n,同时生成不是n的祖先的那些后继 节点的集合M。把M的这些成员作为n的后继节点添入 图G中。 (7) 对那些未曾在G中出现过的(既未曾在OPEN表 上或CLOSED表上出现过的)M成员设置一个通向n的指 针。把M的这些成员加进OPEN表。 对已经在OPEN或CLOSED表上的每一个M成员, 确定是否需要更改通到n的指针方向。 对已在CLOSED表上的每个M成员,确定是否需要 更改图G中通向它的每个后裔节点的指针方向。 (8) 按某一任意方式或按某个探试值,重排OPEN 表。 (9) GO LOOP。
3.3 启发式搜索
3.估价函数 为获得某些节点“希望”的启发信息,提供一个 评定侯选扩展节点的方法,以便确定哪个节点最有可 能在通向目标的最佳路径上 。 f(n)——表示节点n的估价函数值 建立估价函数的一般方法:试图确定一个处在最 佳路径上的节点的概率;提出任意节点与目标集之间 的距离量度或差别量度;或者在棋盘式的博弈难题中 根据棋局的某些特点来决定棋局的得分数。这些特点 被认为与向目标节点前进一步的希望程度有关。
3.2盲目搜索
3、深度界限 为了避免考虑太长的路径(防止搜索过程沿着无益 的路径扩展下去),往往给出一个节点扩展的最大深度 深度界限。任何节点如果达到了深度界限,那么都将 把它们作为没有后继节点处理。 4、含有深度界限的深度优先搜索算法 (1) 把起始节点放到OPEN表中(如果该起始节点为 一目标节点,则求得一个解答)。 (2) 如果OPEN为一空表,则失败退出。 (3) 把第一个节点(节点n)从OPEN表移到CLOSED 的扩展节点表。
3.2盲目搜索
5、例:画出把宽度优先搜索应用于八数码难题时 所生成的搜索树。 2 1 7 8 3 4 6 5 1 2 3 8 4 7 6 5 目标棋局
初始棋局
3.2盲目搜索
3.2.2深度优先搜索 1、定义 在此搜索中,首先扩展最新产生的(即最深的)节点。 深度相等的节点可以任意排列。 这种盲目(无信息)搜索叫做深度优先搜索(depthfirst search)。 2、特点 首先,扩展最深的节点的结果使得搜索沿着状态 空间某条单一的路径从起始节点向下进行下去;只有 当搜索到达一个没有后裔的状态时,它才考虑另一条 替代的路径。
3.3 启发式搜索
其中:g是g*的估计;h是h*的估计。 对于g(n)来说,一个明显的选择就是搜索树 中从S到n这段路径的代价,这一代价可以由从n 到S寻找指针时,把所遇到的各段弧线的代价加 起来给出(这条路径就是到目前为止用搜索算法 找到的从S到n的最小代价路径)。 h*(n)的估计h(n)依赖于有关问题的领域的 启发信息。这种信息可能与八数码难题中的函 数W(n)所用的那种信息相似。把h叫做启发函数。
3.1图搜索策略
3、图搜索(GRAPHSEARCH)的一般过程 (1) 建立一个只含有起始节点S的搜索图G,把S放 到一个叫做OPEN的未扩展节点表中。 (2) 建立一个叫做CLOSED的已扩展节点表,其初 始为空表。 (3) LOOP:若OPEN表是空表,则失败退出。 (4) 选择OPEN表上的第一个节点,把它从OPEN表 移出并放进CLOSED表中。称此节点为节点n。 (5) 若n为一目标节点,则有解并成功退出,此解是 追踪图G中沿着指针从n到S这条路径而得3 A*算法 A*算法是一种有序搜索算法,其特点在于对估价 函数的定义上。 1.几个记号 令k(ni,nj)表示任意两个节点ni和nj之间最小代 价路径的实际代价(对于两节点间没有通路的节点,函 数k没有定义)。 于是,从节点n到某个具体的目标节点ti,某一条 最小代价路径的代价可由k(n,ti)给出。
3.2盲目搜索
3.等代价搜索算法 (1) 把起始节点放到OPEN表中。如果该起始节点为一 目标节点,则求得一个解;否则令g(S)=0。 (2) 如果OPEN是个空表,则没有解,失败退出; (3) 从OPEN表中选择一个节点i,使其g(i)最小。如果 有几个节点都合格,那么就要选择一个目标节点i(要是有 目标节点的话);否则,就从中选一个作为节点i。把节点 i从OPEN表移至扩展节点表CLOSED中。 (4)如果节点i为目标节点,则求得一个解。 (5) 扩展节点i。如果没有后继节点,则转向上述第(2) 步。 (6)对于节点i的每个后继节点j,计算g(j)=g(i)+c(i,j), 并把所有后继节点放到OPEN表,并提供回溯到节点i的指 针。 (7) 转向第(2)步。
2.估价函数的定义 定义g*为g*(n)=k(S,n) 定义函数f*,使得在任一节点n上其函数值f*(n)就 是从节点S到节点n的一条最佳路径的实际代价加上从 节点n到某目标节点的一条最佳路径的代价之和,即 f*(n)=g*(n)+h*(n) 希望估价函数f是f*的一个估计,此估计可由下式 给出: f(n)=g(n)+h(n)
3.3 启发式搜索
令h*(n)表示整个目标节点集合{ti}上所 有k(n,ti)中最小的一个,因此,h*(n)就是从n 到目标节点最小代价路径的代价,而且从n到目 标节点能够获得h*(n)的任一路径就是一条从n 到某个目标节点的最佳路径(对于任何不能到达 目标节点的节点n,函数h*没有定义)。
3.3 启发式搜索
3.2盲目搜索
5、例:画出把有界深度优先搜索应用于八数码 难题时所生成的搜索树,其中,深度界限为4。 2 8 3 1 4 7 6 5 初始状态 1 2 3 8 4 7 6 5 目标状态
3.2盲目搜索
3.2.3等代价搜索 1.定义 宽度优先搜索可被推广用来解决寻找从起始状态 至目标状态的具有最小代价的路径问题,这种推广了 的宽度优先搜索算法叫做等代价搜索算法。 2.等代价搜索中的几个记号 起始节点记为S; 从节点i到它的后继节点j的连接弧线代价记为c(i, j); 从起始节点S到任一节点i的路径代价记为g(i)。
3.2盲目搜索
4、宽度优先搜索方法分析: 宽度优先搜索是图搜索一般过程的特殊情 况,将图搜索一般过程中的第8步具体化为本算 法中的第6步,这实际是将OPEN表作为“先进 先出”的队列进行操作。 宽度优先搜索方法能够保证在搜索树中找 到一条通向目标节点的最短途径;这棵搜索树 提供了所有存在的路径(如果没有路径存在,那 么对有限图来说,我们就说该法失败退出;对 于无限图来说,则永远不会终止)。
3.2盲目搜索
(4)如果节点n的深度等于最大深度,则转向 步骤(2)。 (5)扩展节点n,产生其全部后裔,并把它们 放入OPEN表的前头。如果没有后裔,转向步骤 (2)。 (6) 如果n的任一个后继节点是个目标节点, 则找到一个解答,成功退出;否则转向第(2)步。 思考题:有界深度优先搜索方法能够保证在搜 索树中找到一条通向目标节点的最短途径吗?
第三章 搜索推理技术
3.1图搜索策略
1、图搜索策略 图搜索策略可看作一种在图中寻找路径的方 法。初始节点和目标节点分别代表初始数据库和 满足终止条件的数据库。求得把一个数据库变换 为另一数据库的规则序列问题就等价于求得图中 的一条路径问题。 2、图搜索算法中的几个重要名词术语 (1)OPEN表与CLOSE表 (2)搜索图与搜索树
3.3 启发式搜索
思考: 宽度优先搜索、等代价搜索和深度优先搜索与有 序搜索的关系。 有序搜索的有效性直接取决于f的选择,如果选择 的f不合适,有序搜索就可能失去一个最好的解甚至全 部的解。如果没有适用的准确的希望量度,那么f的选 择将涉及两个方面的内容:一方面是一个时间和空间 之间的折衷方案;另一方面是保证有一个最优的解或 任意解。
3.1图搜索策略
思考:图搜索是针对什么知识表示方法的问题 求解方法?
3.1图搜索策略
4、图搜索方法分析: 图搜索过程的第8步对OPEN表上的节点进行排序,以 便能够从中选出一个“最好”的节点作为第4步扩展用。这 种排序可以是任意的即盲目的(属于盲目搜索),也可以用以 后要讨论的各种启发思想或其它准则为依据(属于启发式搜 索)。 每当被选作扩展的节点为目标节点时,这一过程就宣告 成功结束。这时,能够重现从起始节点到目标节点的这条 成功路径,其办法是从目标节点按指针向S返回追溯。 当搜索树不再剩有未被扩展的端节点时,过程就以失 败告终(某些节点最终可能没有后继节点,所以OPEN表可 能最后变成空表)。在失败终止的情况下,从起始节点出发, 一定达不到目标节点。
3.3 启发式搜索
2.实质 选择OPEN表上具有最小f值的节点作为下一个要扩 展的节点,即总是选择最有希望的节点作为下一个要 扩展的节点。
3.3 启发式搜索
3.有序状态空间搜索算法 (1) 把起始节点S放到OPEN表中,计算f(S)并把其 值与节点S联系起来。 (2) 如果OPEN是个空表,则失败退出,无解。 (3) 从OPEN表中选择一个f值最小的节点i。结果 有几个节点合格,当其中有一个为目标节点时,则选 择此目标节点,否则就选择其中任一个节点作为节点i。 (4) 把节点i从OPEN表中移出,并把它放入CLOSED 的扩展节点表中。 (5) 如果i是个目标节点,则成功退出,求得一个 解。
3.2盲目搜索
3.2.1宽度优先搜索 1、定义 如果搜索是以接近起始节点的程度依次扩展节点 的,那么这种搜索就叫做宽度优先搜索 (breadth-first search)。 2、特点 这种搜索是逐层进行的;在对下一层的任一节点 进行搜索之前,必须搜索完本层的所有节点。
3.2盲目搜索
3、宽度优先搜索算法 (1) 把起始节点放到OPEN表中(如果该起始节点为 一目标节点,则求得一个解答)。 (2) 如果OPEN是个空表,则没有解,失败退出; 否则继续。 (3) 把第一个节点(节点n)从OPEN表移出,并把它 放入CLOSED的扩展节点表中。 (4) 扩展节点n。如果没有后继节点,则转向上述第 (2)步。 (5) 把n的所有后继节点放到OPEN表的末端,并提 供从这些后继节点回到n的指针。 (6) 如果n的任一个后继节点是个目标节点,则找到 一个解答,成功退出;否则转向第(2)步。
3.1图搜索策略
(6) 扩展节点n,同时生成不是n的祖先的那些后继 节点的集合M。把M的这些成员作为n的后继节点添入 图G中。 (7) 对那些未曾在G中出现过的(既未曾在OPEN表 上或CLOSED表上出现过的)M成员设置一个通向n的指 针。把M的这些成员加进OPEN表。 对已经在OPEN或CLOSED表上的每一个M成员, 确定是否需要更改通到n的指针方向。 对已在CLOSED表上的每个M成员,确定是否需要 更改图G中通向它的每个后裔节点的指针方向。 (8) 按某一任意方式或按某个探试值,重排OPEN 表。 (9) GO LOOP。
3.3 启发式搜索
3.估价函数 为获得某些节点“希望”的启发信息,提供一个 评定侯选扩展节点的方法,以便确定哪个节点最有可 能在通向目标的最佳路径上 。 f(n)——表示节点n的估价函数值 建立估价函数的一般方法:试图确定一个处在最 佳路径上的节点的概率;提出任意节点与目标集之间 的距离量度或差别量度;或者在棋盘式的博弈难题中 根据棋局的某些特点来决定棋局的得分数。这些特点 被认为与向目标节点前进一步的希望程度有关。
3.2盲目搜索
3、深度界限 为了避免考虑太长的路径(防止搜索过程沿着无益 的路径扩展下去),往往给出一个节点扩展的最大深度 深度界限。任何节点如果达到了深度界限,那么都将 把它们作为没有后继节点处理。 4、含有深度界限的深度优先搜索算法 (1) 把起始节点放到OPEN表中(如果该起始节点为 一目标节点,则求得一个解答)。 (2) 如果OPEN为一空表,则失败退出。 (3) 把第一个节点(节点n)从OPEN表移到CLOSED 的扩展节点表。
3.2盲目搜索
5、例:画出把宽度优先搜索应用于八数码难题时 所生成的搜索树。 2 1 7 8 3 4 6 5 1 2 3 8 4 7 6 5 目标棋局
初始棋局
3.2盲目搜索
3.2.2深度优先搜索 1、定义 在此搜索中,首先扩展最新产生的(即最深的)节点。 深度相等的节点可以任意排列。 这种盲目(无信息)搜索叫做深度优先搜索(depthfirst search)。 2、特点 首先,扩展最深的节点的结果使得搜索沿着状态 空间某条单一的路径从起始节点向下进行下去;只有 当搜索到达一个没有后裔的状态时,它才考虑另一条 替代的路径。
3.3 启发式搜索
其中:g是g*的估计;h是h*的估计。 对于g(n)来说,一个明显的选择就是搜索树 中从S到n这段路径的代价,这一代价可以由从n 到S寻找指针时,把所遇到的各段弧线的代价加 起来给出(这条路径就是到目前为止用搜索算法 找到的从S到n的最小代价路径)。 h*(n)的估计h(n)依赖于有关问题的领域的 启发信息。这种信息可能与八数码难题中的函 数W(n)所用的那种信息相似。把h叫做启发函数。
3.1图搜索策略
3、图搜索(GRAPHSEARCH)的一般过程 (1) 建立一个只含有起始节点S的搜索图G,把S放 到一个叫做OPEN的未扩展节点表中。 (2) 建立一个叫做CLOSED的已扩展节点表,其初 始为空表。 (3) LOOP:若OPEN表是空表,则失败退出。 (4) 选择OPEN表上的第一个节点,把它从OPEN表 移出并放进CLOSED表中。称此节点为节点n。 (5) 若n为一目标节点,则有解并成功退出,此解是 追踪图G中沿着指针从n到S这条路径而得3 A*算法 A*算法是一种有序搜索算法,其特点在于对估价 函数的定义上。 1.几个记号 令k(ni,nj)表示任意两个节点ni和nj之间最小代 价路径的实际代价(对于两节点间没有通路的节点,函 数k没有定义)。 于是,从节点n到某个具体的目标节点ti,某一条 最小代价路径的代价可由k(n,ti)给出。
3.2盲目搜索
3.等代价搜索算法 (1) 把起始节点放到OPEN表中。如果该起始节点为一 目标节点,则求得一个解;否则令g(S)=0。 (2) 如果OPEN是个空表,则没有解,失败退出; (3) 从OPEN表中选择一个节点i,使其g(i)最小。如果 有几个节点都合格,那么就要选择一个目标节点i(要是有 目标节点的话);否则,就从中选一个作为节点i。把节点 i从OPEN表移至扩展节点表CLOSED中。 (4)如果节点i为目标节点,则求得一个解。 (5) 扩展节点i。如果没有后继节点,则转向上述第(2) 步。 (6)对于节点i的每个后继节点j,计算g(j)=g(i)+c(i,j), 并把所有后继节点放到OPEN表,并提供回溯到节点i的指 针。 (7) 转向第(2)步。
2.估价函数的定义 定义g*为g*(n)=k(S,n) 定义函数f*,使得在任一节点n上其函数值f*(n)就 是从节点S到节点n的一条最佳路径的实际代价加上从 节点n到某目标节点的一条最佳路径的代价之和,即 f*(n)=g*(n)+h*(n) 希望估价函数f是f*的一个估计,此估计可由下式 给出: f(n)=g(n)+h(n)
3.3 启发式搜索
令h*(n)表示整个目标节点集合{ti}上所 有k(n,ti)中最小的一个,因此,h*(n)就是从n 到目标节点最小代价路径的代价,而且从n到目 标节点能够获得h*(n)的任一路径就是一条从n 到某个目标节点的最佳路径(对于任何不能到达 目标节点的节点n,函数h*没有定义)。
3.3 启发式搜索
3.2盲目搜索
5、例:画出把有界深度优先搜索应用于八数码 难题时所生成的搜索树,其中,深度界限为4。 2 8 3 1 4 7 6 5 初始状态 1 2 3 8 4 7 6 5 目标状态
3.2盲目搜索
3.2.3等代价搜索 1.定义 宽度优先搜索可被推广用来解决寻找从起始状态 至目标状态的具有最小代价的路径问题,这种推广了 的宽度优先搜索算法叫做等代价搜索算法。 2.等代价搜索中的几个记号 起始节点记为S; 从节点i到它的后继节点j的连接弧线代价记为c(i, j); 从起始节点S到任一节点i的路径代价记为g(i)。
3.2盲目搜索
4、宽度优先搜索方法分析: 宽度优先搜索是图搜索一般过程的特殊情 况,将图搜索一般过程中的第8步具体化为本算 法中的第6步,这实际是将OPEN表作为“先进 先出”的队列进行操作。 宽度优先搜索方法能够保证在搜索树中找 到一条通向目标节点的最短途径;这棵搜索树 提供了所有存在的路径(如果没有路径存在,那 么对有限图来说,我们就说该法失败退出;对 于无限图来说,则永远不会终止)。
3.2盲目搜索
(4)如果节点n的深度等于最大深度,则转向 步骤(2)。 (5)扩展节点n,产生其全部后裔,并把它们 放入OPEN表的前头。如果没有后裔,转向步骤 (2)。 (6) 如果n的任一个后继节点是个目标节点, 则找到一个解答,成功退出;否则转向第(2)步。 思考题:有界深度优先搜索方法能够保证在搜 索树中找到一条通向目标节点的最短途径吗?