与或图搜索问题
合集下载
与或图搜索问题

与或图搜索问题的特点
组合优化问题
与或图搜索问题是一个典型的组 合优化问题,因为解决方案空间 通常非常大,需要采用高效的搜 索策略来找到最优解。
逻辑约束
与或图中的节点之间存在逻辑约 束,即某些节点必须同时满足与 (AND)或(OR)关系。
决策变量
与或图中的节点代表决策变量, 需要确定它们的取值以最大化目 标函数或满足特定条件。
03
与或图搜索问题的求解算法
深度优先搜索算法
深度优先搜索是一种用于遍历或搜索树 或图的算法。该算法会尽可能深地搜索 树的分支,当节点v的所在边都己被探 寻过,搜索将回溯到发现节点v的那条
边的起始节点。
深度优先搜索算法适合求解与或图中的 AND-OR图问题,可以找到所有解或
最优解。
算法步骤:选择一个起始节点,标记为 已访问,然后递归地搜索与该节点关联 的所有未被访问的节点,直到所有节点
与或图搜索问题的求解目标
找到最优解
与或图搜索问题的求解目标是找到满足所有 逻辑约束的节点组合,以最大化目标函数或 满足特定条件。
高效求解
由于与或图搜索问题通常具有较大的解决方案空间 ,因此需要采用高效的搜索策略和启发式算法来快 速找到最优解。
实际应用
与或图搜索问题在许多实际应用中具有广泛 的应用,如电路设计、计划调度、物流优化 等。
路径规划
在路径规划问题中,与或图搜索问题可以用于寻找满足特定条件的路径, 如最短路径、最少花费路径等,使得路径能够连接起点和终点。
02
与或图搜索问题概述
与或图搜索问题的定义
与或图搜索问题是一种组合优化问题,旨在寻找满足一系列与 (AND)或(OR)逻辑关系的节点组合。
它通常由一个有向图表示,其中节点表示决策变量,边表示 逻辑关系。
与或图

与或图的搜索 及应用
北京信息科技大学 孙骏 2014.05.13
与或图的搜索策略
1 与或图的一般搜索过程 2 与或图的广度优先搜索
3 与或图的深度优先搜索
4 与或图的有序搜索 5 博弈树的启发式搜索
1 与或图的一般搜索过程
与图: 把一个原问题分解为若干个子问题,P1,P2, P3,…可用“与图”表示;P1,P2,P3,…对应的子问
S0 2
A 6 t1 5 t2 E C 1 t3 2 F 3 1 2 B 2
D 1 G 1
t4 2 t5
解:左边解树, 按和代价:h(A)=11 h(S0)=13; 按最大代价:h(A)=6 h(S0)=8; 右边解树, 按和代价:h(G)=3, h(D)=4, h(B)=6, h(S0)=8; 按最大代价:h(G)=2, h(D)=3, h(B)=5, h(S0)=7
P
E
F
2
G
0 0 2 2 0 0
H
3
2
h(N)=2, h(P)=7, h(C)=3, h(A)=8 左子树h(S0)=9
3
2
2
2
三阶梵塔问题
1 2 3 1 2 3
A
A
B C
B C
初始配置
目标配置
问题描述: 采用三元组表示状态: S=(i,j,k) 其中,i, j, k分别表示金片C,B,A所在的钢针号。 初始状态(1,1,1),目标状态(3,3,3)
a
4-5=-1 b
5-4=1
5-5=0
5-5=0
6-6=0
程可用一个“与或图”来表示
P P1 P11 P12 P2 P31 P3 P32 P33
北京信息科技大学 孙骏 2014.05.13
与或图的搜索策略
1 与或图的一般搜索过程 2 与或图的广度优先搜索
3 与或图的深度优先搜索
4 与或图的有序搜索 5 博弈树的启发式搜索
1 与或图的一般搜索过程
与图: 把一个原问题分解为若干个子问题,P1,P2, P3,…可用“与图”表示;P1,P2,P3,…对应的子问
S0 2
A 6 t1 5 t2 E C 1 t3 2 F 3 1 2 B 2
D 1 G 1
t4 2 t5
解:左边解树, 按和代价:h(A)=11 h(S0)=13; 按最大代价:h(A)=6 h(S0)=8; 右边解树, 按和代价:h(G)=3, h(D)=4, h(B)=6, h(S0)=8; 按最大代价:h(G)=2, h(D)=3, h(B)=5, h(S0)=7
P
E
F
2
G
0 0 2 2 0 0
H
3
2
h(N)=2, h(P)=7, h(C)=3, h(A)=8 左子树h(S0)=9
3
2
2
2
三阶梵塔问题
1 2 3 1 2 3
A
A
B C
B C
初始配置
目标配置
问题描述: 采用三元组表示状态: S=(i,j,k) 其中,i, j, k分别表示金片C,B,A所在的钢针号。 初始状态(1,1,1),目标状态(3,3,3)
a
4-5=-1 b
5-4=1
5-5=0
5-5=0
6-6=0
程可用一个“与或图”来表示
P P1 P11 P12 P2 P31 P3 P32 P33
与或图搜索问题

…...
K个
*
耗散值的计算
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值
…...
i个
n
n1
n2
ni
*
目标
目标
初始节点s
a
b
c
解图:
*
能解节点
终节点是能解节点
若非终节点有“或”子节点时,当且仅当其子节点至少有一能解时,该非终节点才能解。
f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路径的评价
01
n
02
s
03
普通图搜索的情况
04
*
与或图: 对局部图的评价
目标
目标
初始节点
a
b
c
*
两个过程
01
图生成过程,即扩展节点
03
计算耗散值的过程
02
从最优的局部途中选择一个节点扩展
04
对当前的局部图重新新计算耗散值
*
AO*算法举例
若非终节点有“与”子节点时,当且仅当其子节点均能解时,该非终节点才能解。
*
不能解节点
若非终节点有“或”子节点,当且仅当所有子节点均不能解时,该非终节点才不能解。
若非终节点有“与”子节点时,当至少有一个子节点不能解时,该非终节点才不能解。
没有后裔的非终节点是不能解节点。
*
2.2 与或图的启发式搜索算法AO*
第一阶段是完成自顶向下的图生成操作,先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终结点进行扩展,并对其后继结点赋估计耗散值和加能解标记。
第二章与或图搜索问题

15
耗散值(代价值)的计算:示例
• 解树:S0, A, t1和t2。S0, B, D, G, t4和t5。
S0
2
2
• 由左边的解树可得: • 和代价:h(A)=11,h(S0)=13
A
6
5
1
• 最大代价: h(A)=6,h(S0)=8
t1
t2
C
• 由右边的解树可得: • 和代价:h(G)=3,h(D)=4,h(B)=6,h(S0)=8
3
2
2
2
H(G)=7, h(H)=6, h(E)=7, h(D)=11, S0的右
子树算出的h(S0)=12,而左子树的h(S0)=9,
因此左子树为希望树
22
与或树的有序搜索:示例
S0
A
D
B L
C 3
M
E
F
2
G
H
0
0
2
2
3
2
2
2
h(L)=2, h(M)=6, h(B)=3, h(A)=8, L、B均为可解节点。但节
• 1. 把初始节点S0放入OPEN表。
• 2. 把OPEN表中的第一个节点(记为节点n)取出放入CLOSED 表。
• 3. 如果节点n可扩展,则作下列工作: • 3.1 扩展节点n,将其子节点放入OPEN 表的尾部,并为每
个子节点配置指向父节点的指针,以备标识过程使用。
• 3.2 考察这些子节点中有否终止节点。若有,则标识这些终 止节点为可解节点,并应用可解标识过程对其父节点、祖父 节点等先辈节点中的可解节点进行标识。如果初始节点S0也被 标识为可解节点,就得到了解树,搜索成果,退出搜索过程; 如辈果的不节能点确。定S0为可解节点,则从OPEN表中删去具有可解先
2.7 与或图法知识表示与问题求解

(111) (333)
(111) (122)
(122) (322)
(322) (333)
(113) (111)
(123) (113)
(122) (322) (321) (321) (331) (123)
(333) (331)
自动化系仪自教研室
2.2.6 问题归约法
[例]求解不定积分
A B C A B
1 1 2 3 1
1 C
自动化系仪自教研室
2
3
2.2.6 问题归约法
归约过程 (1)移动圆盘A和B至柱子2的双圆盘难题;
A B C
1
2 1 (111)
3
C
1 A
B
2 1 (122)
3
自动化系仪自教研室
2.2.6 问题归约法
(2)移动圆盘C至柱子3的单圆盘难题;
1 A
B C
2 1 (122)
自动化系仪自教研室
6.2.4 基于与或图的搜索
与或图的基本概念回顾
与树:当把一个复杂问题分解为若干个子问题时, 可用一个“与树”来表示这种分解。 或树:当把一个复杂问题变换为若干个与之等价的 新问题时,可用一个“或树”来表示这种变换。
A
A
B
C
D
B
C
23 或图自动化系仪自教研室
与图
6.2.4 基于与或图的搜索
2.2.6 问题归约法
本原问题:
指那种不能或不需要再进行分解或变换,且可以直 接解答的问题。 归约: 把一个复杂问题分解或变换为一组本原问题的过程。 问题的分解:是指把一个复杂问题分解为若干个子问题的过程。
问题的解是所有子问题解的“与”,即只有当所有子问题都有解时, 原问题才有解。
(111) (122)
(122) (322)
(322) (333)
(113) (111)
(123) (113)
(122) (322) (321) (321) (331) (123)
(333) (331)
自动化系仪自教研室
2.2.6 问题归约法
[例]求解不定积分
A B C A B
1 1 2 3 1
1 C
自动化系仪自教研室
2
3
2.2.6 问题归约法
归约过程 (1)移动圆盘A和B至柱子2的双圆盘难题;
A B C
1
2 1 (111)
3
C
1 A
B
2 1 (122)
3
自动化系仪自教研室
2.2.6 问题归约法
(2)移动圆盘C至柱子3的单圆盘难题;
1 A
B C
2 1 (122)
自动化系仪自教研室
6.2.4 基于与或图的搜索
与或图的基本概念回顾
与树:当把一个复杂问题分解为若干个子问题时, 可用一个“与树”来表示这种分解。 或树:当把一个复杂问题变换为若干个与之等价的 新问题时,可用一个“或树”来表示这种变换。
A
A
B
C
D
B
C
23 或图自动化系仪自教研室
与图
6.2.4 基于与或图的搜索
2.2.6 问题归约法
本原问题:
指那种不能或不需要再进行分解或变换,且可以直 接解答的问题。 归约: 把一个复杂问题分解或变换为一组本原问题的过程。 问题的分解:是指把一个复杂问题分解为若干个子问题的过程。
问题的解是所有子问题解的“与”,即只有当所有子问题都有解时, 原问题才有解。
与或图搜索

8
• 解图:
初始节点
目标
目标
该解图的耗散值为: (1+(1+1))+(1+1)=5
9
局部解图的耗散值计算
如果我们也将局部图的耗散值记为k(n,N),则: ① 若n是局部图的一个叶节点,则
k(n,N)=h(n);
② 若n是一个外向连接符指向后继节点{n1,…, ni},并设该连接符的耗散值为Cn,则
1
与或图例子
2
2.1 基本概念
与或图是一个超图,节点间通过连接符连接。
超图是图的最一般的表达形式,无论什 么图,你都可以说它是超图,就像无论 整数,无理数,复数,反正都是数一样。
超图的定义由两个集合构成:一个点集A, 另一个是点集A中元素的子集的集合B(B 中所有元素的并集就是集合A)。A中的元 素叫节点;B中的元素就叫边,这样超图 H=(A,B)。
17
与或树的一般搜索过程(续)
• 由上述搜索过程所形成的节点和指针 结构称为搜索树。 • 与或树搜索的目标是寻找解树,从而 求得原始问题的解。如果在搜索的某一 时刻,通过可解标示过程可确定初始节 点是可解的,则由此初始节点及其下属 的可解节点就构成了解树。
18
与或树的一般搜索过程(续)
• 如果在某时刻被选为扩展的节点不可扩 展,并且它不是终止节点,则此节点就 是不可解节点。此时可应用不可解标示 过程确定初始节点是否为不可解节点,
如果可以确定初始节点是不可解的,则搜 索失败;否则继续扩展节点。
19
与或树的性质
• 可解与不可解标示过程都是自下而上进行 的,即由子节点的可解性确定父节点的可解性。
• 在与或树中搜索解树时,如果已确定某个 节点为可解节点,则其不可解的后裔节点就不 再有用,可从搜索树中删去;同样,如果已确 定某个节点是不可解节点,则其全部后裔节点 都不再有用,可从搜索树中删去,但当前这个 不可解节点还不能删去,因为在判断其先辈节 点的可解性时还要用到它。
• 解图:
初始节点
目标
目标
该解图的耗散值为: (1+(1+1))+(1+1)=5
9
局部解图的耗散值计算
如果我们也将局部图的耗散值记为k(n,N),则: ① 若n是局部图的一个叶节点,则
k(n,N)=h(n);
② 若n是一个外向连接符指向后继节点{n1,…, ni},并设该连接符的耗散值为Cn,则
1
与或图例子
2
2.1 基本概念
与或图是一个超图,节点间通过连接符连接。
超图是图的最一般的表达形式,无论什 么图,你都可以说它是超图,就像无论 整数,无理数,复数,反正都是数一样。
超图的定义由两个集合构成:一个点集A, 另一个是点集A中元素的子集的集合B(B 中所有元素的并集就是集合A)。A中的元 素叫节点;B中的元素就叫边,这样超图 H=(A,B)。
17
与或树的一般搜索过程(续)
• 由上述搜索过程所形成的节点和指针 结构称为搜索树。 • 与或树搜索的目标是寻找解树,从而 求得原始问题的解。如果在搜索的某一 时刻,通过可解标示过程可确定初始节 点是可解的,则由此初始节点及其下属 的可解节点就构成了解树。
18
与或树的一般搜索过程(续)
• 如果在某时刻被选为扩展的节点不可扩 展,并且它不是终止节点,则此节点就 是不可解节点。此时可应用不可解标示 过程确定初始节点是否为不可解节点,
如果可以确定初始节点是不可解的,则搜 索失败;否则继续扩展节点。
19
与或树的性质
• 可解与不可解标示过程都是自下而上进行 的,即由子节点的可解性确定父节点的可解性。
• 在与或树中搜索解树时,如果已确定某个 节点为可解节点,则其不可解的后裔节点就不 再有用,可从搜索树中删去;同样,如果已确 定某个节点是不可解节点,则其全部后裔节点 都不再有用,可从搜索树中删去,但当前这个 不可解节点还不能删去,因为在判断其先辈节 点的可解性时还要用到它。
《搜索与或图搜索》课件

3
搜索的原理
搜索原理是通过将问题分成更小的子问题,并从这些子问题中选择最优解决方案, 从而解决整个问题。
与或图的定义
与或图是什么?
与或图是一种用来表示集合之间 关系的图形。
与或图的表示方法
与或图可以使用布尔运算符来表 示,例如“与”运算符表示两个集 合中的共同元素,而“或”运算符 则表示两个集合的并集。
3 与或图搜索在实际应
用中的案例
与或图搜索经常应用于人 工智能、专家系统、自然 语言处理等领域。
总结
本次课程的学习内容回顾
在本次课程中,我们学习了搜索和与或图搜索的相关概念,以及这些概念在实际应用中的重 要性。
搜索与或图搜索的应用前景
作为计算机科学领域中的重要问ቤተ መጻሕፍቲ ባይዱ,搜索和与或图搜索的应用前景是非常广阔的。
搜索与或图搜索
在计算机科学领域,搜索和与或图搜索是非常重要的概念。在本次演示中, 我们将会深入探讨这两个主题。
搜索的定义
1
搜索是什么?
搜索是为了找到特定信息而从大量信息中进行查找和筛选的过程。搜索是人工智 能、信息检索及其他领域中重要的问题之一。
2
搜索的分类
搜索有两种主要分类:确定性搜索和非确定性搜索。确定性搜索是使用精确匹配 算法的搜索,而非确定性搜索则是使用模糊匹配算法的搜索。
与或图在电子学中的应用
与或图被广泛应用于电子学中的 逻辑电路设计,例如计算机内部 的运算电路。
与或图搜索
1 与或图搜索的定义
与或图搜索是指在一个由 与或图表示的问题空间中 搜索,以找到解决方案。
2 与或图搜索的算法
与或图搜索可以使用许多 不同的算法来完成搜索。 其中最常用的是A*算法、 BFS和DFS。
4-与或图搜索

全信息
对垒过程中,双方都了解当前格局及过去的历史
非偶然
双方都是理智的分析决定自己的行动,不存在“碰运气”的偶然因
素
11
人工智能
sspu 王帅
博弈树
在博弈过程中,任何一方都希望自己取得胜利。因此,在 某一方当前有多个行动方案可供选择时,他总是挑选对自 己最有利而对对方最不利的那个方案行动。 如果我们站在A方立场,则可供A选择的若干方案之间是 “或”关系,因为主动权在A方手里,他或者选择这个方 案,或者选择另一个方案,完全由A决定 但若B也有若干可供选择的方案,则对A来说这些方案之间 是“与”关系,因为这时主动权在B,这些可供选择的方 案中的任何一个都可能被B选中,A必须考虑对自己最不利 的情况的发生 把上述博弈过程用图表示出来,得到的是一棵“与/或” 树 注意:该“与/或”树是始终站在某一方(例如A方)的 立场上得出的,不能一会站在A方立场,一会又站在B方 立场
24
人工智能 sspu 王帅
极大极小法—计算倒推值示例
1
b
0
1
a
0
3
1
6
极大
极小
0
-3
3
-3
-3
-2
1
-3
6
-3
0
5
-3
3
3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
25
人工智能
sspu 王帅
-剪枝
S0
3 ≥3 S2 ≤2
S1
3
3 5 S3 S4
2 S5 S6
设有博弈树,各端点的估值如 图所示,其中S6还没计算估值。 由S3与S4的估值得到S1的倒推 值为3,这表示S0的倒推值最小 为3。另外,由S5的估值得知S2 的倒推值最大为2,因此S0的倒 推值为3。 这里,虽然没有计算S6的估值, 仍然不影响对上层节点倒推值 的推算,这表示S6这个分枝可 以从博弈树中剪去
对垒过程中,双方都了解当前格局及过去的历史
非偶然
双方都是理智的分析决定自己的行动,不存在“碰运气”的偶然因
素
11
人工智能
sspu 王帅
博弈树
在博弈过程中,任何一方都希望自己取得胜利。因此,在 某一方当前有多个行动方案可供选择时,他总是挑选对自 己最有利而对对方最不利的那个方案行动。 如果我们站在A方立场,则可供A选择的若干方案之间是 “或”关系,因为主动权在A方手里,他或者选择这个方 案,或者选择另一个方案,完全由A决定 但若B也有若干可供选择的方案,则对A来说这些方案之间 是“与”关系,因为这时主动权在B,这些可供选择的方 案中的任何一个都可能被B选中,A必须考虑对自己最不利 的情况的发生 把上述博弈过程用图表示出来,得到的是一棵“与/或” 树 注意:该“与/或”树是始终站在某一方(例如A方)的 立场上得出的,不能一会站在A方立场,一会又站在B方 立场
24
人工智能 sspu 王帅
极大极小法—计算倒推值示例
1
b
0
1
a
0
3
1
6
极大
极小
0
-3
3
-3
-3
-2
1
-3
6
-3
0
5
-3
3
3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
25
人工智能
sspu 王帅
-剪枝
S0
3 ≥3 S2 ≤2
S1
3
3 5 S3 S4
2 S5 S6
设有博弈树,各端点的估值如 图所示,其中S6还没计算估值。 由S3与S4的估值得到S1的倒推 值为3,这表示S0的倒推值最小 为3。另外,由S5的估值得知S2 的倒推值最大为2,因此S0的倒 推值为3。 这里,虽然没有计算S6的估值, 仍然不影响对上层节点倒推值 的推算,这表示S6这个分枝可 以从博弈树中剪去
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f
0
0 1
d b
0 3
m h
1
1
n e
k i
-3 1
6
a
0
c
-3
3
g
5 4
6
j
0
5
-3
3 3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
α-β剪枝
极大节点的下界为α。 极小节点的上界为β。 剪枝的条件:
后辈节点的β值≤祖先节点的α值时, α剪枝 后辈节点的α 值≥祖先节点的β值时, β剪枝
α-β剪枝的其他应用
故障诊断
A 风险投资
B
C
D
1
极大
1
b
0
极小
6
a
0
3
1
0
-3
3
-3
-3
-2
1
-3
6
-3
0
5
-3
3 3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
5 α-β剪枝
设某博弈问题如下图所示,应用极小极大方法进行搜索。假设搜索的 顺序为从下到上,从左到右。当计算完a的值为0后,由于b是极大节 点,马上就可以知道b的值大于等于0。接下来求c的值。由于c是极小 节点,由d的值为-3,知道c的值小于等于-3。而a和c都是b的子节点, 所以即便不扩展节点e,也可以知道b的值一定为0了。所以在这种情 况下,没有生成节点e的必要。同样,在知道b的值为0后,由于k是极 小节点,所以立即知道k的值要小于等于0。而通过节点f、g,知道h 的值至少为3。这样即便不扩展A所包围的那些节点,也能知道k的值 一定为0。所以A包围的那些节点也没有生成的必要,不管这些节点取 值如何,都不影响k的值。如果在搜索的过程中,充分利用这些信息, 不就可以少生成很多节点,从而提高搜索的空间利用率吗?α-β过程 正是这样一种搜索方法。
2 AO*算法
第一阶段:图生成过程,即扩展节点。 对于每一个已经扩展了的节点, 算法都有一个指针,指向该节点的后 继节点中,耗散值小的那个连接符。图生成过程,就是从初始节点出 发,按照该指针向下搜索,一直到找到一个未扩展的节点为止。然后 扩展该节点。从下面的讨论可以知道,这实际上扩展的是一个耗散值 最小的局部图。 第二阶段:耗散值计算过程。 这是一个逆向的计算过程。设n为最新被扩展的节点,该节点有m个 外向连接符连接n的所有后继节点。则根据耗散值的计算公式,可以 计算出节点n相对于每一个外向连接符的耗散值。从中选择一个最小 值作为n的耗散值。并标记一个指针指向产生最小耗散值的外向连接 符。对于n的父节点,进行同样的计算。重复这一过程,直到初始节 点s为止。这时,从s出发,选择那些指针所指向的连接符得到的局部 图,为当前耗散值最小的局部图。 当连接符全部为1-连接符时,局部图就是一个路径,选择一个耗散 值最小的局部图扩展
与或图搜索
一个问题可以有几种求解方法,只要其中一种 方法可以求解问题,则该问题被求解。也就是 说,对求解该问题来说,方法之间是"或"的关 系。但在用每一种方法求解时,又可能需要求 解几个子问题,这些子问题必须全部求解,才 可能用该方法求解原始问题。也就是说,这些 子问题之间是"与"的关系。此类问题可以用与 或图来表示。
简记为:
极小≤极大,剪枝 极大≥极小,剪枝
α-β剪枝(续)
f
0 0 1
d b
0 3
m h
1
1
n e
k i
-3 1
6
a
0
c
-3
g
5 4
6
j
0
5
-3
3 3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
改进方法
若β值比α值大不了多少或极相近,这时也可以进行剪枝,以便有 条件把搜索集中到会带来更大效果的其他路径上 不严格限制搜索的深度,当到达深度限制时,如出现博弈格局有 可能发生较大变化时(如出现兑子格局),则应多搜索几层,使 格局进入较稳定状态后再中止,这样可使倒推值计算的结果比较 合理,避免考虑不充分产生的影响,这是等候状态平稳后中止搜 索的方法。 当算法给出所选的走步后,不马上停止搜索,而是在原先估计可 能的路径上再往前搜索几步,再次检验会不会出现意外,这是一 种增添辅助搜索的方法。 对某些博弈的开局阶段和残局阶段,往往总结有一些固定的对弈 模式,因此可以利用这些知识编好走步表,以便在开局和结局时 使用查表法。只是在进入中盘阶段后,再调用其他有效的搜索算 法,来选择最优的走步。
3 博弈树搜索
博弈问题
双人 一人一步 双方信息完备 零和
博弈问题为什么可以用与或图表示
当轮到我方走棋时,只需从若干个可以走的棋 中,选择一个棋走就可以了。从这个意义上说, 若干个可以走的棋是“或”的关系。 轮到对方走棋时,对于我方来说,必须能够应 付对手的每一种走棋。这就相当于这些棋“与 "的关系。
能解节点
终节点是能解节点 若非终节点有“或”子节点时,当且仅当其子 节点至少有一能解时,该非终节点才能解。 若非终节点有“与”子节点时,当且仅当其子 节点均能解时,该非终节点才能解。
不能解节点
没有后裔的非终节点是不能解节点。 若非终节点有“或”子节点,当且仅当所有子 节点均不能解时,该非终节点才不能解。 若非终节点有“与”子节点时,当至少有一个 子节点不能解时,该非终节点才不能解。
与或图搜索
初始节点s a c b
目标 目标
在普通图中,目标用一个节点表达,而在与或 图中,目标则表现为一个节点的集合,该集合 中由一些子目标节点组成。值得指出的是,解 图不一定要求到达目标集中的每一个子目标节 点,而只要求解图的端节点是目标集中的节点 即可。也就是说,解图中的端节点是目标集的 子集即可
…... n1 n2 i个 ni
• 解图: 初始节点
目标 目标
在与或图是无环(即不存在这样的节点---其后 继节后同时又是它的祖先)的假定下,解图可 递归定义如下: 定义:一个与或图G中,从节点n到节点集N的 解图记为 , 是G的子图。 ①若n是N的一个元素,则 由单一节点组成; ②若n有一个指向节点{n1,…,nk}的外向连 接符K,使得从每一个ni到N有一个解图 (i=1,…,k),则 由节点n,连接符K,及 {n1,…,nk}中的每一个节点到N的解图所组 成; ③否则n到N不存在解图。
分钱币问题
对方先走 (6,1) (7) (5,2) (3,2,2) (4,3)
(5,1,1) (4,2,1)
(3,3,1)
(4,1,1,1) (3,1,1,1,1) (2,1,1,1,1,1)
(3,2,1,1)
(2,2,2,1) 我方必胜
(2,2,1,1,1)
中国象棋
一盘棋平均走50步,总状态数约为10的161次 方。 假设1毫微秒走一步,约需10的145次方年。 结论:不可能穷举。
4 极小极大过程
模拟的就是人的这样一种思维过程。当轮到我方走棋 时,首先按照一定的搜索深度生成出给定深度d以内 的所有状态,计算所有叶节点的评价函数值。然后从 d-1层节点开始逆向计算:对于我方要走的节点(用 MAX标记,称为极大节点)取其子节点中的最大值为 该节点的值(因为我方总是选择对我方有利的棋); 对于对方要走的节点(用MIN标记,称为极小节点) 取其子节点中的最小值为该节点的值(对方总是选择 对我方不利的棋)。一直到计算出根节点的值为止。 获得根节点取值的那一分枝,即为所选择的最佳走步
1 基本概念
与或图是一个超图,节点间通过连接符连接。 K-连接符:
…...
K个
耗散值的计算
若解图的耗散值记为k(n,N),则可递归计算 如下: ①若n是N的一个元素,则k(n,N)=0; ②若n是一个外向连接符指向后继节点{n1,…, ni},并设该连接符的耗散值为Cn,则 n k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集
目标
n7
目标
n7(0)
红色:5 黄色:6
AO*算法与A算法区别
AO*算法不能像A算法那样,单纯靠评价某一个节点来 评价局部图。 由于k-连接符连接的有关子节点,对父节点能解与否以 及耗散值都有影响,因而显然不能象A算法那样优先扩 展其中具有最小耗散值的节点。 AO*算法仅适用于无环图的假设,否则耗散值递归计算 不能收敛,因而在算法中还必须检查新生成的节点已在 图中时,是否是正被扩展节点的先辈节点。 AO*算法没有OPEN和CLOSED表,而AO*算法只用一 个结构G,它代表到目前为止已明显生成的部分搜索图, 图中每一个节点的h(n)值是估计最佳解图,而不是估 计解路径。
普通图搜索的情况
s
n
f(n) = g(n) + h(n) 对n的评价实际是对从s到n这条路径的 评价
与或图: 对局部图的评价
初始节点
c
a
b 目标 目标
AO*算法举例
n0 n1 n2 n4
初始节点
n3
n5
n6
n8
其中: h(n0)=3 h(n1)=2 h(n2)=4 h(n3)=4 h(n4)=1 h(n5)=1 h(n6)=2 h(n7)=0 h(n8)=0 设:K连接符 的耗散值为K
目标
n7
目标
n0 n1 n2
初始节点
n1(2) n4
n0
初始节点
n4(1)
n3
n5
n5(1)