人工智能-第4章 与或图搜索
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 定义:与或图就是包含与节点和或节点 的图,即存在超弧的图,也称为超图. • 超图与状态空间图有什么区别? 与或图是一种更一般的图. • 定义:一超弧所相关的边数(K)被称为 该超弧的度,实现的连接称为K-连接. • K—连接符:从一个父节点指向一组含有 K个后继节点的节点集.
Artificial Intelligence
与或图搜索与状态空间图搜索的区别:
• 搜索目的不同:是证明起始节点是否可解, 而可解节点是递归定义的,取决于后继节 点是否可解,即搜索过程是能否找到可解 的叶节点. • 结果不同:若初始节点被标示为可解,则 搜索成功结束;若初始节点被标示为不可 解,则搜索失败. • 节点处理不同:一旦发现不可解节点,应 把该节点从图中删去. Artificial Intelligence
7 S:={n}; 建立含 n 的节点集合S.(已扩展待修正) 8 Until S为空, do: 9 Begin (m为S中任一节点) 10 REMOVE(m, S),当 mc{S};(m→mc ,从底层开始修正) 11 修改 m 的耗散值 q(m): 对 m 指向节点集 (n1i, n2i, … nki) 的每一个连接符 i 分别计算qi, qi(m)=Ci+q(n1i)+…+q(nki), 并取 q(m):= min qi (m); 加(或修正)指针到 min qi (m) 的连接符上. IF M(nji, SOLVED) THEN M(m, SOLVED);(j=1,2,…, k)若该连接符的所有子节点都是能解的,则m也能解. 12 IF M(m, SOLVED) (q(m) q0(m)) THEN ADD(ma, S); m 能解或修正的耗散值与原先估算q0不同,则把m的所有先 辈节点ma添加到S中. (能解或修正向上传递) 13 end (与8匹配) 14 end (与2匹配) Artificial Intelligence
②
求• ①面积
求• ②面积
Artificial Intelligence
小结:
• 问题归约法: 当问题复杂时,可把初始问题分解成若 干简单的子问题,若子问题仍复杂,可再进一步分解, 直到这些子问题的解可直接得到。这种问题的描述和 求解方法,称为~. • 本原问题: 可直接解答的问题称为~ ,它是不必证明 的、自然成立的. • 归约法的组成: 1)一个初始问题的描述; 2)一组把问题变成子问题的算子 (分解或转换); 3) 一组本原问题的描述 • 不同的算子对应不同的关系,从而使问题归约的描述 可用一个与或图的结构来表示 . Artificial Intelligence
• 第12步
• 无
Artificial Intelligence
• 1)加n0 → S; 2) 无;
• 1)加n0 → S; 2) 无;
×
5 2
34 5 ★ 6
n1
4
n0 n4
4
n0 n1 2 4 n3 3 n4 n5 1
n3
n2
1 2
★ n5 ★
1
n2 4
1
2n 6
★ 0
n8
n6 2 n7 0
n8 0
n1 1 n3 6 2 2 n6 2 0 2 0 n8 0 n7 7 2 n5 2 2 0 n8 0 n7 n5 1 n0 8 n0 7 2 n4 1 3
n0 n1 n2 n3 n5 n6 n8 n7 n4
5
n0 2 1 n4 1 0
2 2
Байду номын сангаас
n5
n8
n7
Artificial Intelligence 解图的求法
第四章 与或图搜索
1 2 3 4 5 问题归约法 与或图 与或图搜索 AO*算法 博弈树的搜索
Artificial Intelligence
1 问题归约法
• 问题: 在边长为 2 的正方形内,任意放置 5 个 点,求证其中必存在两个点,它们之间的距离不 大于2。 • 问题可转化为:在四个单位正方形内,任意放置5 个点,至少有两个点在同一正方形内。
2 与或图
• 与节点:把单个问题分解为几个子问题来求解。只 有当所有子问题都有解,该父辈节点才有解。表示 一种 “与” 关系。 • 或节点:同一问题被转换为几种不同的后继问题。 只要有一个后继问题有解,则原问题有解。表示一 种 “或” 关系。
P P
R (a)
Q
R (b)
Q
• 与节点由与运算连接(超弧),如图(a). Artificial Intelligence • 或节点由或运算连接,如图( b).
Artificial Intelligence
解图耗散值的计算:
• 若解图的耗散值记为 k(n, N),则可递归计 算如下:
–若 n 是 N 的一个元素,则 k(n, N)=0; –若 n 有一个外向连接符指向其后继节点集合 {n1…,ni},并设该连接符的耗散值为 Cn(一般 k-连接符的耗散值=k ),则
0
n7
★
Artificial Intelligence
(3) n0 2 n1 1 1 n5 n4 n3 4 n1 (5)
(4) n0
4 n2 1 n5
1
n4
一次循环后 (5) n0 n1 (5) n3 4 n6 2 n7 0 三次循环后 4 n2 (2) n5 1 n4 n3 4 n6 n1 (5)
n0 n1 n2 n3 n5 n6
n7
与或图
• 在与或图中,节 点 n0 有两个连接 符:1-连接符指 n4 向节点 n1;2-连 接符指向节点集 合{n4、n5}; • 对于节点 n0 来讲, n1 可称为或节点, n8 n4、n5 可称为与 节点。
Artificial Intelligence
解图的定义:
• 是由能解节点构成的一个子图,是包含一节点(n) 到目的(终)节点集合(N)的、连通的能解节点的子 图. • 在一个与或图 G 中,从节点 n 到节点集 N 的解图 记为 G, G 是 G 的子图. 1.若 n 是N的一个元素,则G由单个节点n组成; 2.若 n 有一个指向节点集 {n1…,nk} 的外向连接 符 K,使得从每一个节点 ni (i=1,…,k) 到 N 有 一个解图 ,则 G由节点 n,连接符 K,以及 {n1 ,…,nk}中的每一个节点到 N 的解图所组成; 3.否则 n 到 N 不存在解图. • 如果 n=s 为初始节点,则解图为所求解问题的解图.
k(n, N)= Cn+ k(n1, N)+…+ k(ni, N)
• 具有最小耗散值的解图称为最佳解图,其值 也用 h*(n) 标记。 Artificial Intelligence
• 例:从节点 n 开始,正确选择一个外 向连接符,一直进行下去直到产生的 每一个后继节点成为集合N中的一个元 素为止。下图给出了 n0 →{n7,n8}的 三个解图(耗散值分别为 8,7,5).
3
与或图搜索
• 含义:在与或图上执行搜索的过程,其目的在于标明 起始节点是有解的,即,搜索不是去寻找到目标节点 的一条路径,而是寻找一个解图。 • 定义:一个节点被称为能解节点,其递归定义为: 1.终节点是能解节点(直接与本原问题相关联); 2.若非终节点 有 “或” 子节点时,当且仅当其子 节点至少有一个能解 ,该非终节点才能解; 3.若非终节点有 “与” 子节点时,当且仅当其子 节点均能解,该非终节点才能解。
Artificial Intelligence
• 问题: 假定我们已经会求矩形的面积,现在要求 如图所示的五边形的面积。 • 方法分析: 五边形的面积转化为矩形面积。
①
I 1
III ③
2 II
3
②
Artificial Intelligence
求解步骤:
① 求五边形面积 求 1面积 求 I面积 求 2面积 求 II面积 求 3面积 求 III面积 求• ③面积 I 1 2 II III ③ 3
4
与或图启发式搜索算法 AO*
• 假设:G;G;h(n)是从节点 n 到一组终叶节点的 一个最优解图的一个代价估计,评价函数q(n)=h(n) AO*过程: 1.建立初始搜索图,G:=s,计算 q(s)=h(s),IF GOAL(s) THEN M(s,SOLVED); 2. Until s 已标记为 SOLVED, do: 3. Begin 4. G := FIND(G);根据连接符标记(指针)找出一 个待扩展的侯选局部解图G(连接符在11步标记) 5. n := G 中的任一非终节点; 选一个当前节点 6. EXPAND(n),生成子节点集{ni},如果 ni G, G:= ADD({ni},G),计算 q(nArtificial IF GOAL(ni) i)=h(ni), Intelligence THEN M(ni, SOLVED);
二次循环后 (5) n0 n2 4 (2) n5
n4 (1)
0 n8
2
0 n8
n7 0
四次循环后
不带括号的数是启发函数h(n)值,带括号数是估价函数q(n)的修正值; 短箭头用来标记连接符,标明侯选局部解图;已经标注SOLVED的节点 用黑心圆来表示。
Artificial Intelligence
讨论
Artificial Intelligence
• 定义:不能解节点的递归定义为:
1.没有后裔的非终节点是不能解的节点; 2.若非终节点有 “或” 子节点时,当且仅 当所有子节点均不能解时,该非终节点才不 能解; 3.若非终节点有 “与” 子节点时,当至少 有一子节点不能解时,该非终节点才不能解.
Artificial Intelligence
AO*搜索算法过程分析
• 两个过程的重复:
–自上而下的图生长过程(4-6步): 先通过有标 记的连接符,找到目前为止最好的一个局部解 图,然后对其中一个非终节点进行扩展,并对 其后继节点赋估计耗散值和加能解标记. –自下而上的估价函数值的修正、连接符的标记 和SOLVED的标注过程(7-12): 耗散值的修正从 刚被扩展的节点n开始,其修正耗散值q(n)取所 有估计值中最小的一个,然后根据耗散值递归 计算公式逐级向上修正其先辈节点的耗散值.只 有下层节点耗散值修正后,才可能影响到上一 层节点的耗散值,如此一直修正到初始节点.
• 当节点n无后继节点? 在第11步中对 m (n)赋 一个高的 q 值(会传递到s), 从而排除了含有 n的子图被当作候选局部解图的可能性. • 在 G’ 中存在多个非终节点时,选择什么样的 节点先扩展? 一般选择最能导致该局部解图耗 散值发生较大变化的节点先进行扩展, 可促使 及时修改局部解图的标记. • 同A算法类似,若 s→N 存在解图,当 h(n) ≤ h*(n)且h(n)满足单调限制条件时(对n到其子 节点的每一连接符均需要满足),则 AO* 一定 能找到最佳解图.
h(n0)=3
★
AO*搜索算法的过程
• • • • • • 主要步骤 第4步(G’) 第5步(n) 第6步 第7步(S) 第11步 • • • • • • 第1循环 (n0) (n0) (n1,n5,n4) (n0) 比较,选 n0→n1; n1 不可解; • • • • • • 第2循环 n0→n1 (n1) (n2,n3) (n1) 1) 比较,选 n1→n3; n3 不可解; 2)比较,选 n0→n5, n4; n5, n4不可 解; • 1) 加n0 → S; 2)无; • • • • • • 第3循环 • n0→n5, n4 • (n5) • (n6,n7,n8) • (n5) • 比较,选 • n5→n7, n8; 改指针; n7, n8可解, n5 可解 第4循环 n0→n5, n4; (n4) (n5,n8) (n4) 1)比较,选 n4→ n8; n8可解, n4 可解; 2) n4 , n5可 解; n0可解.
Artificial Intelligence
n0 n1 ★ h(n1)=2 n3 h(n3)=4
n2 h(n2)=4
n6 h(n6)=2
n7 h(n7)=0
• 例: 各节点启发值如 图,k-连接符的耗散值 = k, 求最佳解图. • 应用 AO* 算法,经 n4 ★ 四个循环,可找到解图. h(n4)=1 ★ n5 • 在第一次循环扩展节 h(n5)=1 点 n0;然后,依次扩展 节点 n1、n5、n4。 • 在节点 n4 被扩展之 n8 后,节点 n 便被标注 0 h(n8)=0 SOLVED,此时,通过向 下跟踪有标记的连接符, 便获得了解图 . Artificial Intelligence