与或图搜索策略

合集下载

2013第三章_与或图的搜索

2013第三章_与或图的搜索

第10次课 10月07日
上次课程回顾




与或图搜索:搜索从初始节点到一组终节点集N的一个 解图。 对于与或图搜索,是通过对局部图的评价来选择待扩 展的节点。 解图的求法是:从节点n开始,正确选择一个外向连接 符,再从该连接符所指的每一个后继结点出发,继续 选一个外向连接符,如此进行下去直到由此产生的每 一个后继节点成为集合N中的一个元素为止。 具有最小耗散值的解图称为最佳解图。 能解节点 不能解节点
算法

极大极小过程MINIMAX:
1. T:=(s, MAX),OPEN:=(s),CLOSED:=( );开始时树由初始节点 构成,OPEN表只含有S. 2. LOOP1: IF OPEN =( ) THEN GO LOOP2; 3. n:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSED);将n放到 CLOSED表的前面, 4. IF n可直接判定为赢, 输或平局 THEN f(n):= -0,GO LOOP1 ELSE EXPAND(n){ni}, ADD ({ni} ,T) IF d{ni} k THEN ADD({ni}, OPEN) ,GO LOOP1 ELSE 计算f(ni); ni达到深度k,计算各端节点f值.
n5(1)
2
n6
n8
n8(0)
目标
n7
目标
n7(0)
红色:5 蓝色:6
3次循环之后
n0 n1 n2
初始节点
n1 n4 5
n0
初始ห้องสมุดไป่ตู้点
1 n4(1)
n2(4)
n3
n5 n3(4) n6(2)
n5(1)
2
n6

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

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

规定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

AI03-2与或图搜索

AI03-2与或图搜索

E H 5 4
F I
G
反向更新代价 g(E)=5, g(D)=9, g(Q0)=10 g(I)=0, g(F)=1, g(D)=8, g(Q0)=9
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B
C K L
E H 5 4
F I
J
G
反向更新代价 g(J)=0, g(K)=0, g(B)=2, g(A)=7, g(Q0)=8 g(L)=0, g(C)=1, g(A)=5, g(Q0)=6
Q21 Q22 Q23
Q’21 Q’22 Q’23
3.3.1 与或图
与或图/与或树
n0 n1 n2 n4 初始节点
n3
n5
n6
n8 目标 n7 目标
3.3.1 与或图
问题求解
状态图/或图
一个问题可以有几种求解方法 只要其中一种方法可以求解问题,则该问题被求解,方法之 间是"或"的关系
与图:
在用一种方法求解时,又可能需要求解几个子问题 这些子问题必须全部求解,才可能用该方法求解原始问题, 这些子问题之间是"与"的关系
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B 3 3
C
E 3 2
F
左局部树: g(B)=3, g(C)=3, g(A)=8, g(Q0)=9 右局部树: g(E)=3, g(F)=2, g(D)=7, g(Q0)=8
希望树
3.3.3 启发式与或树搜索
例 3.18
A D Q0
B 3 3
C
3.3.3 启发式与或树搜索
例 3.18
A √ D √ √ K √ C √ L E H 5 4 F I Q0 √

与或图搜索问题

与或图搜索问题

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

第4章 图搜索策略

第4章  图搜索策略

4.1.1 通用或图搜索算法
或图通用搜索算法:
设S0 :初始状态, Sg:目标状态 1. 产生一仅由S0组成的open表,即open=(S0); 2. 产生一个空的closed表; 3. 如果open为空,则失败退出; 4. 在 open 表上按某一原则选出第一个优先结点, 称为n,将n放到closed表中,并从open表中去掉 n;
4.1.2 A算法与A*算法
由定义有 f(n’ ) =g(n’ ) +h(n’ ) =g*(n’ ) +h(n’ ) (因为n’在最优路径上) ≤ g*(n’ ) +h*(n’ ) =f*(n’ ) =f*(S0 ) (由于A*的定义h(n) ≤h*(n)) 所以f(n’)≤f*(S0)成立。
4.1.2 A算法与A*算法
推论1 若问题有解,A*算法一定终止。
(2-1)
因为若A*算法不终止,则命题2的
f(n)≥g(n)≥g*(n)≥d*(n)· e
与命题3的
f(n’)≤f*(S0) (2-2)
同时成立,则产生矛盾。
4.1.2 A算法与A*算法
命题 4 若问题有解, A* 算法终止时一定 找到最优解, 即A*算法是可采纳的。
4.1.1 通用或图搜索算法
注1 : 若生成的后继节点放于:
( 1 ) Open 表的尾部 —— 相当于 Breadth-firstsearch;
( 2 ) Open 表 的 首 部 —— 相 当 于 Depth-firstsearch; (3)根据启发式函数f的估计值确定最佳者,放 于Open 表的首部——相当于Best-first-search 最佳优先搜索。
证:A*终止只有两种情况。 (1) 在第3步, 因open为空而失败退出 但由命题 3 可知: A* 终止前, open 表上必 存在一点n’,满足 f(n’)≤f*(S0) 即open表不会空,所以,不会终止于第3步。

第4章 与或图搜索

第4章 与或图搜索
mxxzyxxthenzyzyxmxxifn1i1i1in1????设初始状态为7min则该问题的状态空间图如图45所示图中所有终节点均表示要走步的选手必输的情况取胜方的目标是设法使棋局发展为结束在对方走步7min43max52max61max421min511min322min331min4111max2221max3211maxbartificialintelligence图45grundy博弈问题状态空间图结束在对方走步时的终节点上因此节点a是max的搜索目标而节点bc则为min的搜索目标
• 右图所示的与或 图中,节点n 图中,节点n0有两 个连接符: 个连接符:
–1-连接符指向节 1 点 n 1; –2-连接符指向节 2 点集合{n 点集合{n4、n5};
• 对节点n0 对节点n
–n1称为或节点, n 称为或节点, 称为与节点。 –n4、n5称为与节点。 n
图4-2 与或图
4.3 与或图搜索
kkkk-
第四章 与或图搜索
• 4.1 问题归约法 • 4.2 与或图 • 4.3 与或图搜索 • 4.4 AO*算法 • 4.5 博弈树的搜索
4.1 问题归约法
• 当问题复杂时,可把初始问题分解成若干简单 当问题复杂时, 的子问题,若子问题仍复杂,可再进一步分解, 的子问题,若子问题仍复杂,可再进一步分解, 直到这些子问题的解可直接得到。 直到这些子问题的解可直接得到。这种问题的 描述和求解方法,称为问题归约法。 描述和求解方法,称为问题归约法。 • 可直接解答的问题称为本原问题,是不必证明 可直接解答的问题称为本原问题, 自然成立的。 的、自然成立的。
• 如果n=s为初始节点,则此解图是所求解问题的 如果n=s为初始节点, n=s为初始节点 解图。 解图。

与或图搜索

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

人工智能-4 与或图搜索

人工智能-4 与或图搜索
对各个局面进行评估
评估的目的:对后面的状态提前进行考虑, 并且以各种状态的评估值为基础作出最好的 走棋选择。 评估的方法:用评价函数对棋局进行评估。 赢的评估值设为+∞,输的评估值设为-∞, 平局的评估值设为0。 评估的标准:由于下棋的双方是对立的,只 能选择其中一方为评估的标准方。
3.极小极大搜索过程
3.极小极大搜索过程
3.极小极大搜索过程
MAX MIN MAX
MIN
0

-3
3 3
-3 0
2
2
-3 0
-2
3 5 4 1
-3
0 6 8 9
-3
3.极小极大搜索过程
1 1 3 6
MAX MIN MAX
0 0
1
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.3 博弈树(Game tree)搜索
1.概述
20世纪60年代,研制出的西洋跳棋和国际象棋 的博弈程序达到了大师级的水平。 1958约翰•麦卡锡提出博弈树搜索算法 1997年,IBM公司研制的“深蓝”国际象棋 程序,采用博弈树搜索算法,该程序战胜了 国际象棋世界冠军卡斯帕罗夫。
1.概述
博弈问题特点: 双人对弈,轮流走步。 信息完备,双方所得到的信息是一样的。 零和,即对一方有利的棋,对另一方肯定 是不利的,不存在对双方均有利或无利的 棋。
1.概述
博弈的特性 ①两个棋手交替地走棋 ; ②比赛的最终结果,是赢、输和平局中的 一种; ③可用图搜索技术进行,但效率很低; ④博弈的过程,是寻找置对手于必败态的 过程; ⑤双方都无法干预对方的选择。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

17
3.4.1 与或树盲目搜索
一般搜索过程 广度优先搜索 深度优先搜索 举例
18
或图的一般搜索过程 与/或图的 或图的
• 对于一个”与”节点,只有当其子节点全部为可解节点时 对于一个” 只有当其子节点全部为可解节点时, 节点 只有当其子节点全部为可解节点时 它才为可解节点,只要子节点 只要子节点中有一个为不可解节点,它就 它才为可解节点 只要子节点 是不可解节点; • 对于一个”或”节点 只要子节点中有一个是可解节点时 对于一个” 节点,只要子节点中有一个是可解节点时 只要子节点中有一个是可解节点时, 它就是可解节点,只有当全部都是 只有当全部都是不可解节点时,它才是不 它就是可解节点 只有当全部都是 可解节点. • 像这样由可解子节点来确定父节点、祖父节点等为可解节 可解子节点来确定父节点、 可解子节点来确定父节点 点的过程为可解标示过程 可解标示过程; 点的过程为可解标示过程;由不可解子节点来确定其父节 祖父节点等为不可解节点的过程为不可解标示过程 不可解标示过程; 点、祖父节点等为不可解节点的过程为不可解标示过程; • 在与/或树的搜索过程中将反复使用这两个过程,直到初 始节点(即原始问题)被标示为可解或不可解节点为止.
3.4 与或树搜索(问题归约法)
3.4.1 3.4.2 3.4.3
与或树的表示 与或树搜索 启发式与或树搜索
1
问题的与或图表示
在现实世界中,经常会遇到这样的问题: 在现实世界中,经常会遇到这样的问题:一 个问题可以有几种求解方法, 个问题可以有几种求解方法,只要其中一种方法 可以求解问题,则该问题被求解。也就是说, 可以求解问题,则该问题被求解。也就是说,对 求解该问题来说,方法之间是"或 的关系 的关系。 求解该问题来说,方法之间是 或"的关系。但在 用每一种方法求解时, 用每一种方法求解时,又可能需要求解几个子问 这些子问题必须全部求解, 题,这些子问题必须全部求解,才可能用该方法 求解原始问题。也就是说,这些子问题之间是"与 求解原始问题。也就是说,这些子问题之间是 与 "的关系。此类问题可以用与或图来表示。如下图 的关系。 的关系 此类问题可以用与或图来表示。 所示: 所示
(CBA) (1,1,1)(1,2,2) (1,2,2)(3,2,2) (3,2,2)(3,3,3) C B A
(1,1,1)
1,2,2
3,2,2
(3,3,3)
15
举例(三阶梵塔)
与或树表示
(1)把A、B盘从1号杆移到2号杆;
(1,1,1)=>(3,3,3)
(2)把C盘从1号杆移到3号杆; (3)把A、B盘从2号杆移到3号杆;
1 3 2 4 5 t1
3) 4)
t4
t3 t2 A
5)
此时,closed 表就是由节点1,2,3,4,5和t1,t2,t3,t4构成的解树,如图中粗线所示。
22
与/或树的深度优先搜索算法
1、把初始节点S0放入OPEN表; 2、移出为OPEN表的第一个节点N放入CLOSED表,并冠以序号n; 3 、如果节点N 的深度大于等于深度界限,则转第5部的第(1); 4、若节点N可扩展,则做下列工作:
11
可解性判别
1 3 2 4 B 5 t1
t4
t3 t2 A
12
可解性判别
S0
A D
B C 3 G L M 3 0 0 2 2 2 E 2 H F
2
2
13
例题
三阶梵塔
C B A
(1,1,1)
三元组
(i, j, k)
i 代表金盘C所在的杆号;j代表金盘B所在的 杆号;k代表金盘A所在的标号。
14
4
与节点

只有解决所有子 问题,才能解决其父辈 问题的节点集合。 与关系集合中,各 个结点之间用一端小圆 弧连接标记。称为k- 连接符 .
5
或节点
● 等价变换:利用同构或同态的等价变换,把它 变换为若干个较容易求解的新问题。若新问题中 有一个可求解,则就得到了原问题的解.
E B F
A
D

只要解决某个问 题就可解决其父辈问 题的节点集合。称为 1-连接符 .
目标 目标
9
其它几个概念与术语
1. 本原问题 本原问题:不能再分解或变换,而且直接可解的子问 题。 2. 终止结点 终止结点:本原问题对应的节点。(可解节点) 3. 端节点 在与或图(树)中无子节点的节点。 端节点: 4. 与节点:一个节点的子节点如果是“与”关系,称~ 与节点 5. 或节点 或节点:一个节点的子节点如果是“或”关系,称~
2
3
“分解 分解”和“等价变换 等价变换”概念 分解 等价变换
与/或树表示法:对于一个复杂的问题,可以通过“分解” 和“等价变换”两种手段相结合使用,得到一个图,这个 图就是与/或图。 ● 分解:把一个复杂问题分解为若干个较为简单的 子问题,每个子问题又可继续分解为若干个更为较为简单 的子问题,重复此过程,直到不需要再分解或不能解为止. 然后对每个子问题分别进行求解,最后把各子问题的解复 合起来就得到了原问题的解.
(1)扩展N,将其子节点配上指向父节点的指针后放入OPEN表的首部; (2)考察这些子节点中是否有终止节点。若有,则标记它们为可解节点,并 将它们也放入CLOSED表,然后由它们的可解返回推断其先辈节点的可解性, 并对其中的可解节点进行标记。如果初始节点也被标记为可解节点,则搜索 成功,结束。否则 (3)删去OPEN表中那些具有可解先辈的节点(因为其先辈节点已经可解,故已 无需再考察节点的必要),转步2;
25
解树的代价
解树的代价就是树根的代价。树根的代价是从树叶开始自 下而上逐层计算求得的。 计算方法: 设h(x)表示节点x的代价,c(x,y)表示节点x到其 子节点y的代价(即边xy的代价),则: (1)若x是终止节点,h(x)=0; (2) 若x是或节点, h(x)=min{c(x,yi)+h(yi)}(1≤ i≤ n) (3) 若x是与节点x,则有两种计算公式 h(x)=∑{c(x,yi)+h(yi)} 称为和代价法; h(x)=max{c(x,yi)+h(yi)}(1≤ i≤ n)称为最大代价法,其中 y1,y2 , y3 。。。。 yn是x的子节点。 (4)对非终止的端节点x, h(x)=∞
19
• 与或图搜索 与或图搜索:边扩展节点边确定初始节 点是否可解。一旦能够确定初始节点的 可解性,则搜索停止,并根据返回指针 从搜索树中得到一个解图(树)。
20
1、把初始节点S0放入OPEN表; 2、移出为OPEN表的第一个节点N放入CLOSED表,并冠以序号n; 3、若节点N可扩展,则做下列工作: (1)扩展N,将其子节点配上指向父节点的指针后放入OPEN表尾部; (2)考察这些子节点中是否有终止节点。若有,则标记它们为可解节 点,并将它们也放入CLOSED表,然后由它们的可解返回推断其先辈 节点的可解性,并对其中的可解节点进行标记。如果初始节点也被 标记为可解节点,则搜索成功,结束。否则 (3)删去OPEN表中那些具有可解先辈的节点(因为其先辈节点已经可 解,故已无需再考察节点的必要),转步2; 4、若N不可扩展,则做下列工作: (1)标记N为不可解节点,然后由它的不可解返回推断其先辈节点的 不可解性,并对其中的不可解节点进行标记。如果初始节点S0也被 标记为不可解节点,则搜索失败,表明原始问题无解,退出。否则 (2)删去OPEN表中那些具有不可解先辈的节点(因为其先辈节点已不 可解,故已无再考察这些节点的必要),转步2;
G I
6
上述两种方法也可以结合起来使用,此时的图称为” 或 上述两种方法也可以结合起来使用 此时的图称为”与/或” 此时的图称为 树.
7
Q
Q1
Q2
Q11
Q12
Q13
Q11’
Q12’
Q13’
Q21
Q22
Q23
Q21’
Q22’
Q23’
图中的弧线表示所连边为“与”关系,不带弧边的边为或关 系。
8
初始节点s a c b
(1,1,1)=>(1,2,2)
(1,2,2)=>(3,2,2)
(3,2,2)=>(3,3,3)
(1,1,1)=>(1,1,3)
(1,2,3)=>(1,2,2)
(3,2,1)=>(3,3,1)
(1,1,3)=>(1,2,3)
(3,2,2)=>Байду номын сангаас3,2,1)
(3,3,1)=>(3,3,3)
16
在三阶梵塔问题中,共有七个终止节点,对应于七个 本原问题,它们是通过“分解”得到的。 若把这些本原问题的解按从左至右的顺序排列,就得 了原始问题的解: (1,1,1)=>(1,1,3) (3,2,2)=>(3,2,1) (1,1,3)=>(1,2,3) (3,2,1)=>(3,3,1) (1,2,3)=>(1,2,2) (3,3,1)=>(3,3,3) (1,2,2)=>(3,2,2)
注意:终止节点一定是端节点,但端节点不一定是终 止节点。
10
可解节点: 6. 可解节点:节点须满足下列 条件之一: (1) 终止节点是可解节点; (2)一个与节点可解,当且仅当其子节点全都可解; (3)一个或节点可解,只要其子节点至少有一个可解; 7.不可解节点: 不可解节点: 不可解节点 关于可解节点的三个条件全部不满足的节点称为不可 解节点。 8.解树 解树: 解树 由可解节点所构成,并且由这些可解节点可推出初 始节点(它对应于原始问题)为可解节点的子树.
5、若N不可扩展,则做下列工作:
(1)标记N为不可解节点,然后由它的不可解返回推断其先辈节点的不可解 性,并对其中的不可解节点进行标记。如果初始节点S0也被标记为不可解节 点,则搜索失败,表明原始问题无解,退出。否则 (2)删去OPEN表中那些具有不可解先辈的节点(因为其先辈节点已不可解,故 已无再考察这些节点的必要),转步2;
相关文档
最新文档