第二章 与或图搜索问题

合集下载

人工智能之与或图搜索问题

人工智能之与或图搜索问题

规定MAX先手
52
静态估计函数e(P)定义为: ① 若格局 P 对任何一方都不能获胜,则 e(P) =(所有空格上都放上 MAX的棋子后,MAX 的三个棋子所组成的行、列及对角线的总数) -
(所有空格上都放上 MIN 的棋子后, MIN 的三个
棋子所组成的行、列及对角线的总数)
53
② 若 P 是MAX获胜,则 e(P)=+∞
第二章 与或图搜索问题
初始节点s
a c b
目标 目标
1
2.1 基本概念


与或图是一个超图,节点间通过连接符连 接。 K-连接符:
…...
K个
2
耗散值的计算
k(n, N) = Cn+k(n1, N)+…+k(ni, N) 其中:N为终节点集 Cn为连接符的耗散值
n
n1
…...
n2 i个
ni
3
• 解图:
2
O X X
1
O X O X
0
O O X
O
O
O
1
O O
0
O O X X
2
O
0
O
1
O
1
O O X
O X
1
X
X
X
X O X
X
O X
X O
X
X
O
2
2
3
1
O O
2
X
X
2
O O
X X
1
1
O X
X
0
X
O X
0
58
X
O X
O
1
X

人工智能导论第二章搜索与问16

人工智能导论第二章搜索与问16

2.2.2 与或图表示法
基于与或图表示的问题求解算法
Step1: 确定单个问题描述形式,可采用状态空 间表示法。
Step2:从原始问题开始,逐步进行分解和变换, 直到本原问题,然后将全部分解和变换过程表示 为与或图。
Step3:从端顶点开始,逐步向上回溯,标注各 顶点为可解或不可解顶点,直到标注原始顶点为 可解顶点或不可解顶点为止
2.3 搜索策略
通常搜索策略的主要任务是确定如何选取规则的 方式。有两种基本方式:
状态空间将问题求解所涉及的每个可能的步骤表 示成一个状态,全部状态以及状态之间的所有转 换构成一个以图的形式表示的状态空间。问题的 求解过程是在状态空间中搜索一条最优的或可行 的从初始状态到目标状态的路径的过程。
与或图表示法的基础是问题归约,通过一系列分 解或变换,将复杂问题逐步转化为比较简单的问 题,直至可以直接求解的本原问题。与或图的求 解过程是在与或图中搜索一个将原始问题变换为 简单问题在变换为本原问题的、最优的或可行的 归约步骤的过程。
2)为了移盘片C,必须先把盘片A及B移到2号柱上。 3)当把盘片C移到3号盘上后,就可把A、B从2号柱移到3
号柱上,以完成问题的求解。
把原问题分解为三个子问题:
1)把盘片A及B移到2号柱的双盘片问题。 2)把盘片C移到3号柱的单盘片问题。 3)把盘片A及B移到3号柱的双盘片问题。 其中,子问题1)与子问题3)又分别可分解为三个子问题
例:三阶Hanoi Tower (梵塔)问题
设有A、B、C三个盘片以及三根柱子,三 个盘片按从小到大的顺序穿在1号柱上,要 求把它们全部移到3号柱上,而且每次只能 移动一个盘片,任何时刻都不能把大的盘 片压在小的盘片上面,如图所示。
例:三阶Hanoi Tower (梵塔)问题

与或图搜索问题

与或图搜索问题

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

与或图搜索问题

与或图搜索问题

…...
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表中删去具有可解先

与或图搜索

与或图搜索
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
与或树的性质
• 可解与不可解标示过程都是自下而上进行 的,即由子节点的可解性确定父节点的可解性。
• 在与或树中搜索解树时,如果已确定某个 节点为可解节点,则其不可解的后裔节点就不 再有用,可从搜索树中删去;同样,如果已确 定某个节点是不可解节点,则其全部后裔节点 都不再有用,可从搜索树中删去,但当前这个 不可解节点还不能删去,因为在判断其先辈节 点的可解性时还要用到它。

ch2与或图搜索问题

ch2与或图搜索问题
b a
图 一字棋
设A的棋子用“a”表示,B的棋子用“b”表示。 为了不致于生成太大的博弈树,假设每次仅扩展 两层。估价函数定义如下:
设棋局为P,估价函数为f(P)。 (1)若P是A必胜的棋局,则f(P)=+∞。 (2)若P是B必胜的棋局,则f(P)=-∞。 (3)若P是胜负未定的棋局,则
f(P)=e(+P)-e(-P)
AO*算法举例
n1 n3
n6 n7目标
n0 初始节点
n2
n4
n5
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
n1 n3
n0 初始节点
n1(2)
n2
n4
n5
目标
目标
能解节点
❖ 终节点是能解节点 ❖ 若非终节点有“或”子节点时,当且仅当其子
节点至少有一能解时,该非终节点才能解。 ❖ 若非终节点有“与”子节点时,当且仅当其子
节点均能解时,该非终节点才能解。
不能解节点
❖ 没有后裔的非终节点是不能解节点。 ❖ 若非终节点有“或”子节点,当且仅当所有子
节点均不能解时,该非终节点才不能解。 ❖ 若非终节点有“与”子节点时,当至少有一个
❖ 假设1毫微秒走一步,约需10的145次方年。 ❖ 结论:不可能穷举。
研究领 域
❖ Othello
奥塞罗
❖Checkers 西洋跳棋
❖ Chess
国际象棋
❖Chinese chess 中国象棋
❖ConnectSix 六子棋
❖ Shogi
日本将棋

《搜索与或图搜索》课件

《搜索与或图搜索》课件

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

第2章 与或图搜索

第2章  与或图搜索

2.2 与或图的启发式搜索算法
• 以结点n为尾的红色箭头,标识结点n为根的最佳局部图。 • 在第4步得到的n0局部图中,叶结点都属于{n7, n8}。 • 解图: n0
5 n4 1
2
n5 n8 0 n7
0
当EXPAND(n)={}时,令q(n)=∞
2.2 与或图的启发式搜索算法
① G:={s},计算q(s)=h(s), 如果GOAL(s), THEN M(s, SOLVED) AO*算法 ② While (s还没加上SOLVED标记)do { a) G‘ = FIND(G) b) n:=G‘的任一个非终结点 生长,对新结点 c) EXPAND(n) →{nj}, 计算q(nj)=h(nj), 这里nj∈G 计算q d) G:=G∪{nj}; IF GOAL(nj), THEN M(nj, SOLVED) e) S := {n}
2.2 与或图的启发式搜索算法
• 第四次生长
n1 5 n2 n3 4 n6 2 n7 0 0 4 2 n5 n8 n6 n8 n0 5 5 n1 n4 1 1 n3 n2 n4 n0
n5
1)沿n0的最佳局部图,找到一个叶结点; n7 2)扩展此叶结点,计算以叶结点为根的局部图的耗散; 3)向上修改非终结点为根的局部图的耗散估计; 4)修改n0最佳局部图的标识。
2.2 与或图的启发式搜索算法
• 第二次生长
6 n1 2 n2 n3 4 1 1 n5 n6 n8 n0 4 3 n4 n3 n1 n2 n4 n0
5
4
n5
1)沿n0的最佳局部图,找到一个叶结点; n7 2)扩展此叶结点,计算以叶结点为根的局部图的耗散; 3)向上修改非终结点为根的局部图的耗散估计,表示最佳局部图; 4)修改n0最佳局部图的标识。

研究生第2章知识表示与推理6-与或树搜索

研究生第2章知识表示与推理6-与或树搜索
2.3 与或图的搜索技术 2.3.1 与或树的盲目搜索技术 2.3.2 与或图的启发式搜索算法(AO*算法)
2024/2/20
2.3.1 与或树盲目搜索技术
问题归约法
与或图
原始问题
起始节点
中间问题
中间节点
本原问题集
终叶节点
操作符
2024/2/20
生成“与”、“ 或” 后继节点的有向弧
可解节点的定义是(递归地):
2024/2/20
(4)、 扩 展 节 点 n , 生 成 其 全 部 后 继 节 点 , 送 OPEN表末端,并设置指向 n 的指针
说明:此时可能出现三种情况 ➢节点 n 无后继节点 ➢节点 n 有后继节点、并有叶节点 ➢节点 n 有后继节点、但无叶节点
2024/2/20
(5)、若 n 无后继节点,标志 n 为不可解,并转(9) ((10)、(11));若后继节点中有叶节点,则标 志这些叶节点为可解节点,并继续((6)、(7)、 (8));否则转(3)
2024/2/20
第五大循环((3)、(4)、(5)步): (3)、从OPEN表中取出节点5,并送到CLOSED表 (4)、扩展节点5,生成后继节点B、C,并送到
OPEN表的末端 (5)、无叶节点,转到(3)步
OPEN= { 6, 7, 8, 9, B, C } CLOSED= { 1 , 2, 3, 4, 5 }
说明: 先扩展的节点画在左边

1

2
3
X

5
6
7
t
1
X
t
t
2
3
√√

1

2

3
X

与或图搜索

与或图搜索

对于非终叶节点:
• 如果 n 有多个用 k=1 的连接符连接的或子节点,iff 这 些或子节点中至少有一个能解,节点 n 是能解节点; • 如果 n 有用 k>1 的连接符连接的与子节点。Iff 这些与 子节点全部能解,节点 n 是能解节点。
北京航空航天大学软件开发环境国家重点实验室
Slide 10
最好的局部解图;对该解图的一个非终叶节点进行扩展, 计算该节点各个K-连接符连接的后继节点解图的花费计值 ;如果可能,标记后继节点为能解节点。

第二阶段:自下而上地计算修正与或图花费估计值 -
确定最小花费连接符;如果必要,修改父节点的花费值; 或标记父节点为能解节点;此过程不断进行直到到达局部解 图的根节点为止。
K 〉1 的外向 k-连接符:与连接符。

仅由 K = 1 的外向 k-连接符构成的搜索空间:
普通有向图 与或图。
由 K 1 的外向 k-连接符构成的搜索空间:

无环与或图:与或图中,如果每一个后继节点不再是该节
北京航空航天大学软件开发环境国家重点实验室
Slide 5
点的祖先节点,这种与或图称为无环与或图。
上述过程周而复始,直到最底层的外向k连接符的每个后继
节点均属于 N 为止。
针对任意节点的外向K连接符的选择顺序不同, 对应的搜索策略可不同: 盲目搜索,启发式搜索。
北京航空航天大学软件开发环境国家重点实验室
Slide 9
与或解图及其能解标记与费用计算
定义:

标记能解节点(Solved):
终叶节点是能解节点;
Slide 14
基于问题空间的与或图搜索

与或图搜索有关概念
与或解图及其能解标记与费用计算

第2章 与或图搜索问题

第2章 与或图搜索问题

1
与或图基本概念

“或”的关系

A 4 B 2 E 2 1 4
1 C 1 D
旅行商问题
4 B1
A
1 C1

传教士和野人问题
(3, 3, 1)
(2, 3, 0)
(1, 3, 0)
(2, 2, 0)
2
与或图基本概念

“与”的关系
世界杯决赛
华南师大
西班牙
荷兰
本部
南海
大学城
增城
火箭队首发阵容
霍华德
哈登
贝弗利
17
与或图: 对局部图的评价
初始结点
c
a b 目标 目标
18
AO*算法

两个阶段。

第一阶段: 图生成过程, 即扩展结点。 对于每一个已经扩展了的结点, 算法都有一个指针, 指向该结点的后继结点中, 耗散值小的那个连接符。 图生成过程, 就是从初始结点出发, 按照该指针向下 搜索, 一直到找到一个未扩展的结点为止。然后扩 展该结点。从下面的讨论可以知道, 这实际上扩展 的是一个耗散值最小的局部图。
21


10: REMOVE(m, S), mcS ; 这个m的子结点mc应不在S 中。 11: 修改m的耗散值q(m):



对m指向结点集{n1i, n2i, …, nki}的每一个连接符i分别计算qi: qi(m)=Ci+q(n1i)+…+q(nki), q(m): =min qi(m); 对m的i个连接符, 取计算结果最小的那个耗 散值为q(m)。 加指针到min qi(m)的连接符上, 或把指针修改到min qi(m)的连接符 上, 即原来指针与新确定的不一致时应删去。 IF M(nji, SOLVED) THEN M(m, SOLVED); 若该连接符的所有子 结点都是能解的, 则m也标上能解。

第二章 与或图搜索问题

第二章 与或图搜索问题
-剪枝法
33
-剪枝
b
0
1
极大 max
1
极小 min max
a
0
3
1
6
0
-3
3
-3
-3
-2
1
-3
6
-3
min
0
5
-3
3
3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
max必定≥ min max ≥ (下界值) , min≤ (上界值)
34
-剪枝:
问题:、如何取值,才能使 max必定≥ min? 假设: ≥ 由于: max ≥ ,min ≤, ≥ => max ≥ ≥ ≥ min => max ≥ min 因此:当 ≥ 时,必有max≥ min。
回顾: 回溯策略
当前状态
r1 r 2 ri ri-1
一个结点的后继节点 之间是“或”的关系
子状态
目标状态g
1
回顾:图搜索算法
一个结点的后继节点 之间是“或”的关系 s
g
2
“与”关系
如果一个结点的部分或全部后继节点都被 求解,该结点才被求解。
一个结点的后继节点之间 是“与”的关系
3
“与”关系的表示方法
17
博弈问题为什么可以用与或图表示


我方走棋: 只需从若干个可以走的棋中,选择一个棋走即 可。若干个可以走的棋是“或”的关系。 对方走棋:对我方来说,必须能够应付对手的 每一种走棋。相当于这些棋是“与”的关系。 博弈问题是一种特殊的与或图。
18

搜索(与或图搜索实例AO算法)

搜索(与或图搜索实例AO算法)

AO*算法搜索例子
q=5 初始节点 n0 q=5 n1
连接符1
n2
连接符2
q=1 n4
n3
q=2 n5
n6
n8
n7
在重新计算n0耗散的小循环中: … 由于n4,n5为SOLVED, 则n0为SOLVED q(n0)=5, 找到解
G={n0,n1,n2,n3,n4,n5,n6,n7,n8} 第四个大循环(扩展结点),直到n0是SOLVED: 1. 找到待扩展的局部图G’{n0,n4,n5,n7,n8} 2. n=G’中非终结点, 此时n=n4 3. 扩展结点n=n4, 生成后继结点集合{n5, n8}, q(n5)=2, q(n8)=0 4. 小循环(修改结点耗散值),直到S为空: a. S={n=n4} b. 保证n的后代不在S中 c. m=n5的连接符有两条, 计算q1(m)=1+q(n5)=1+2=3 q2(m)=1+q(n8)=1+0=1 令q(m)=q(n4)=min(q1,q2)=1 d.修改指针到q2对应的连结符上去 e. n8为SOLVED,则m=n4也为SOLVED f. m=n4也为SOLVED,则需要也对m的父结点 进行修改, 即将m=n1的父结点n0加到S中 g.小循环结束 5.大循环结束
G={n0,n1,n4,n5} q=3 q=4 第二个大循环(扩展结点),直到n0是SOLVED: n0 初始节点 1. 找到待扩展的局部图G’{n0,n1} 2. n=G’中非终结点, 此时n=n1 q=5 3. 扩展结点n=n1, 生成后继结点集合{n2,n3}, 连接符1 n1 连接符2 q(n2)=4, q(n3)=4, 都不是终结点,把结点加 n2 到G中 n4 4. 小循环(修改结点耗散值),直到S为空: a. S={n=n1} n3 b. 保证n的后代不在S中 n5 c. 取出m=n1的连接符有两条, 计算q1(m)=1+q(n3)=1+4=5 q2(m)=1+q(n2)=1+4=5 令q(m)=q(n0)=min(q1,q2)=5 继续小循环: d.修改指针到q1对应的连结符上去 … e.如果n3非SOLVED,则m=n1也为非SOLVED c. m=n0的连接符有两条,计算 f. q(m=n1)被修改过,则需要也对m的父结点 q1(m)=1+h(n1)=1+5=6 进行修改, 即将m=n1的父结点n0加到S中 q2(m)=2+h(n5)+h(4)=4 g.小循环结束 令 q(m)=q(n1)=min(q1,q2)=4 d.修改指针到q2对应的连结符上去 5.大循环结束 …
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2020/3/5
17
华北电力大学
AO及AO*搜索算法
▪ 利用结点的可解/不可解性质,能从搜索图中删去可解 结点的任何不可解结点的子结点;同样地,能删去不可 解结点的所有的子结点
▪ 搜索这些被删除的结点是没有意义的,而只会降低搜索效率
与普通图搜索算法相类似,与/或图搜索算法有盲目 搜索,如广度优先搜索法、深度优先搜索法等;也有启发 式搜索,如AO及AO*搜索法
2020/3/5
18
华北电力大学
AO*算法——两个过程1
▪ 图生成过程,即扩展节点
▪ 对于每一个已经扩展了的节点,AO*算法都有一个 指针,指向该节点的后继节点中,耗散值小的那个 连接符
▪ 从最优的局部图中选择一个节点扩展
▪ 图生成过程,就是从初始节点出发,按照该指针向 下搜索,一直到找到一个未扩展的节点为止。然后 扩展该节点。并对其后继节点赋估计耗散值和加能 解标记
n8
目标
23
红色:4 黄色:6
华北电力大学
n1
n3 n6
n7目标
2020/3/5
AO*算法举例
n0
初始节点
n0
n2 n5
n1 5
n4 n2(4) n5(1)
n3(4) n6(2) n8
目标
n7(0)
24
初始节点
n4(1) 2
n8(0)
红色:5 黄色:6
华北电力大学
n1
n3 n6
n7目标
2020/3/5
AO*算法举例
n0
初始节点
n0
n2 n5
n1 5
n4 n2(4) n5(1)
n3(4) n6(2) n8
目标
n7(0)
25
初始节点
1 n4(1)
2
n8(0)
红色:5 黄色:6
华北电力大学
AO*与A的区别
▪ AO*算法不能像A算法那样,单纯靠评价某一个节点来评 价局部图
▪ 由于k-连接符连接的有关子节点,对父节点能解与否以及耗散值 都有影响,因而显然不能象A算法那样优先扩展其中具有最小耗散 值的节点
▪ 若f(p)=+∞,则MAX赢,若f(p)=-∞,则MIN赢 ▪ 顶节点深度d=0,MAX代表程序方,MIN代表对手方,
② 若n是一个外向连接符指向后继节点{n1,…,ni},并设 该连接符的耗散值为Cn,则
k(n, N) = Cn+k(n1, N)+…+k(ni, N)
其中:N为目标节点集
n
2020/3/5
…...
n1 n2
ni
i个
10
华北电力大学
例:k-连接符的耗散为k
K(n0,{n7,n8})=8
K(n0,{n7,n8})=7
•根节点:没有任何父节点的节点 •端(叶)节点:没有任何后继节点
的节点
•S •两个连接符 •1-连接符指向a(或节点) •2-连接符指向{b、c}(与节点)
目标2•目标2
•b的与节点(2-连接符) •c的或节点(1-连接符)
5
华北电力大学
2.1 基本概念
▪ 与或图是一个超图,节点间通过连接符连接 ▪ K-连接符:从一个父节点指向一组k个后继节点
2020/3/5
26
华北电力大学
2.3 博弈树搜索
▪ 博弈问题
▪ 双人,一人一步 ▪ 双方信息完备 ▪ 零和:即对一方有利的棋,对另一方肯定是不利的,不存在对双
方均有利、或均无利的棋。对弈的结果是一方赢,而另一方输, 或者双方和棋
▪ 用与或图表示
▪ 在决定自己走步时只需考虑对自己有利的一步——“或” ▪ 考察对方时,则应考虑对方所有可能的走步——“与” ▪ 两人严格地轮流走步,使博弈状态图呈现出严格的与和或的交替
极小极大搜索过程(2)
▪ 假设:
▪ 双方都是对弈高手 ▪ 在只看一步棋的情况下,我方一定走评价函数值最
大的一步棋 ▪ 对方一定走评价函数值最小的一步棋 ▪ 在只看一步的情况下最好的棋,从全局来说不一定
就好,还可能很不好 ▪ 为了走出好棋,必须多看几步,从多种可能状态中
选择一步好棋
2020/3/5
32
第二章 与或图搜索问题
华北电力大学 计算机系 刘丽
学习目标
▪ 了解一般的与或图搜索问题 ▪ 掌握与或图的启发式搜索算法AO* ▪ 了解博弈树搜索问题 ▪ 掌握博弈树搜索中的
▪ 极小极大方法 ▪ α-β剪枝搜索方法
2020/3/5
2
华北电力大学
知识点
2020/3/5
3
华北电力大学
与或图搜索问题
▪ 状态空间搜索问题
▪ 评价函数值大于0,表示棋局对我方有利,对对方不 利
▪ 评价函数小于0时,表示棋局对我方不利,对对方有 利
▪ 评价函数值越大,表示对我方越有利。当评价函数 值等于正无穷大时,表示我方必胜
▪ 评价函数值越小,表示对我方越不利。当评价函数 值等于负无穷大时,表示对方必胜
2020/3/5
31
华北电力大学
▪ 每一步结束条件可根据时间限制、存储空间限制或 深度限制等因素加以确定
▪ 搜索策略可采用宽度、深度或启发式方法,一个阶 段搜索结束后,要从搜索树中提取一个优先考虑的 “最好的”走步,这就是实用策略的基本点
▪ 极小极大搜索策略就是其中的一种
2020/3/5
30
华北电力大学
极小极大搜索过程(1)
▪ 假定有一个评价函数可以对所有棋局评估:
▪ 图2.2给出n0→{n7,n8}的三个解图
2020/3/5
7
华北电力大学
基本概念
解图:
2020/3/5
8
华北电力大学
基本概念
▪ 解图的递归定义 ▪ 一个与或图G中,从节点n到节点集N的解图记为G’,
G’是G的子图
①若n是N的一个元素,则由单一节点组成 ②若n有一个指向节点{n1,…,nk}的外向连接符K,使得
▪ 一个节点的后继节点之间是“或”的关系
▪ 与或图搜索问题
▪ 一个节点其部分或全部后继节点是“与”的 关系
▪ 博弈树的搜索
2020/3/5
4
华北电力大学
a
目标1
2020/3/5
简单的与或图例子
初始节点s b
•超图 •超弧线(连接符) •K-连接符:从父节点指向一组
K个后继节点的节点集(K>1
c 时注意小圆弧)
华北电力大学
n1 n3
AO*算法举例
n0
初始节点
n0
初始节点
n1(2)
n2
n4
n4(1)
n5
n5(1)
n6
n7目标
2020/3/5
n8
目标
22
红色:4 黄色:3
华北电力大学
n1 n3
AO*算法举例
n0
初始节点
n0
初始节点
n1 5
n2
n4
n2(4)
n4(1)
n5
n5(1)
n3(4)
n6
n7目标
2020/3/5
层次 ▪ 可设计特殊的与/或图搜索算法,即博弈树搜索算法
2020/3/5
27
华北电力大学
分钱币问题(Grundy博弈)
对方先走
(7)
对方扩展的节点1,1) (4,2,1)
(3,2,2)
(3,3,1)
对方扩展的节点
(4,1,1,1) (3,2,1,1) (2,2,2,1)
• 中国象棋:一盘棋平均走50步,总状态数约为10的161 次方。假设1毫微秒走一步,约需10的145次方年→→不 可能穷举
• 即使用了强有力的启发式搜索技术,也不可能使分枝压 到很少
2020/3/5
29
华北电力大学
与或图搜索技术
▪ 解决:
▪ 实用策略:把目标确定为寻找一步好棋,等对手回 敬后再考虑寻找另一步好棋
▪ 局部图的耗散值k(n,N),则:
① 若n是局部图的一个叶节点,则k(n,N)=h(n) ② 若n是一个外向连接符指向后继节点{n1,…,ni},并设
该连接符的耗散值为Cn,则 k(n,N)=Cn+ k(n1,N) + … + k(ni,N)
2020/3/5
12
华北电力大学
能解节点(Solved)
▪ 一直到计算出根节点的值为止。获得根节点取值的那一分枝,即 为所选择的最佳走步
2020/3/5
33
华北电力大学
极小极大搜索过程——叶节点的评价函数
▪ 是一个静态估计函数f
▪ 对棋局的势态(节点)作出优劣估值 ▪ 可根据势态优劣特征来定义(主要用于对端节点的“价值”
进行度量)
▪ 一般规定:
▪ 有利于MAX的势态,f(p)取正值;有利于MIN的势态,f (p)取负值;势均力敌的势态,f(p)取0值
的节点集
2020/3/5
…... K个
6
华北电力大学
基本概念
▪ 解图
▪ 与或图中某一个节点n到节点集N的一个解图类似于 普通图中的一条解路径
▪ 解图的求法:
▪ 从节点n开始,正确选择一个外向连接符,再从该连 接符所指的每一个后继节点出发,继续选一个外向 连接符,如此进行下去直到由此产生的每一个后继 节点成为集合N中的一个元素为止
我方扩展的节点
(3,1,1,1,1)
(2,2,1,1,1) 我方必胜
对方扩展的节点
(2,1,1,1,1,1)
2020/3/5
28
华北电力大学
与或图搜索技术
▪ 问题
▪ 对简单的博弈或复杂博弈的残局,可以用类似于与或 图的搜索技术求出解图,解图代表了从开局到终局任 何阶段上的弈法
相关文档
最新文档