人工智能与或图搜索23
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
知识表示, 二元组《s, p》,其中s为一集合, 表示桌面 上各堆的硬币数, p表示对当前状态应该移动的游戏者。例 如
(2,3,2, MAX) 表示现在桌面上有 3 堆硬币, 分别为2, 3, 2个, 此时 应抡到MAX移动。
人工智能 6, 1, MAX
吉林大学珠海学院计算机科学与技术系
人工智能
与或图
ห้องสมุดไป่ตู้
吉林大学珠海学院计算机科学与技术系
• 设从节点n到目标节点集合N的费用用c(n, N)表示, 则c(n, N)定义如下:
• 如果n是N中的一个节点, 则c(n, N)=0,
• 如果n有一条从n出发的k连弧ai, 这个k连弧连接的儿子节点 是{n1, n2, ..., nk}, 则解图G’由节点n, k连弧ai, 和由n1, n2, ..., nk出发的解图构成。这时,解图G’的费用定义为
• c(n, N)= c(ai)+ c(n, n1)+…+ c(n, nk), 其中c(ai)是k连弧ai的 费用.
• 否则, G没有从n出发到N的解图。设其费用为无穷大∞.。
• 例如,如果假定k连弧的费用是k, 则图3.4 所示的 AND/OR 图的两个解图中,左图的费用是8, 右图的费用是7。
人工智能
c(ai)+ q(ni1)+…+ q(nik), 这里的q( nij)或者是在本循环内部的
前面步骤计算出的值,或者是在步骤6中指定的值。 设q(m)是所有
qi(m)的最小者, 标记实现这个最小值的超弧,如果本次标记与以前
的标记不同, 擦去以前的标记, 如果这些超弧指向的所有儿子节点
都标记了SOLVED, 则把m也标上SOLVED.
吉林大学珠海学院计算机科学与技术系
2.3 博弈树的搜索
穷尽的极大极小过程。 两个游戏者分别为MAX 和MIN, MAX想取得高的分数, 而MIN
想取得低的分数,把整个棋的状态以及所有可能的移动都用 一个有与或图表示出来, 对于某一游戏者求出他的解图,就 是为游戏者制定的赢的策略。
Nim 游戏,桌子上有 7 枚硬币, 由MAX 和MIN两个人分别把 一堆硬币分成不相等的两堆,谁不能继续做下去,谁就算输, 为MAX制定一个赢的策略。
吉林大学珠海学院计算机科学与技术系
2.2 与或图的启发式搜索
AND/OR图的启发搜索过程AO* 1. 建立一个只由根节点s构成的搜索图G, 设从s 出发的解图的
费用为q(s)=h(s), 如果s是目标节点, 用SOLVED标记s. 2. until s 被标上SOLVED, do:
3. begin
4. 通过跟踪从s出发的有标记的超弧计算候选解图G’(这 些标记在后 面的步骤11中给出)
5. 在G’中选一个不是目标节点的叶节点n, 6. 扩展节点n, 产生节点n的所有儿子{n1, n2, ..., nk}, 并把这
些儿子连到图G上,对于每一个不曾在G中出现的儿子nj, 设 q(nj)=h(nj), 如果这些儿子节点中的某些节点是目标节点,则 把这些节点标记为SOLVED.
人工智能
二次循环后
图3.5 AO*搜索算法的例子
5, n0
n1 5
n1
n4
5
n4
1
4
n5
2
1
n3, 4
n5 n2,4
2
n2,4
三次循环后
n6,2 n7,0
n6,2 n8,0
n7,0
n8,0
四次循环后
人工智能
吉林大学珠海学院计算机科学与技术系
5, n0 n4 1
n5 2
n8,0 n7,0
搜索得到的解图
人工智能
吉林大学珠海学院计算机科学与技术系
在定义中假定AND/OR图不含回路,即是说, 图中不存在 一个节点的后裔也是这个节点的祖先的情形。 不含回路 保证了节点间具有部分序关系, 从而保证了下面定义的 合理性。 设N是AND/OR图G的目标节点集合, 从图中任意一个节点n 出发到N的一个解图是AND/OR图G的一个子图, 用G’表示, 递归定义如下: 如果n是N中的一个节点, 则G’只包括n. 如果n有一条从n出发的k连弧ai, 这个k连弧连接的儿子节 点是{n1, n2, ..., nk}, 则解图G’由节点n, k连弧ai, 和由n1, n2, ..., nk出发的解图构成。 否则, G没有从n出发到N的解图。
人工智能
吉林大学珠海学院计算机科学与技术系
2.1 与或图(AND/OR Graph)的搜索
为严格描述AND/OR图,我们先推广弧的概念。在有 向图中的弧是从一个父亲节点指向它的儿子节点 的。 在AND/OR图中使用的弧叫做超弧,一个超弧 可以把一个父亲节点和k个儿子节点同时连接起来, 这样的弧也叫做k连弧,在AND/OR图中,k连弧用 弧线连接起来。当k=1 时,k连弧退化成通常的有
例
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,
人工智能 3, n0
吉林大学珠海学院计算机科学与技术系
3, n0
n1
n4
2
1 n5
1
一次循环后
5, n0
n1
n4
2
1
n3 4
n2 4
n5 1
12.
如果m标记了SOLVED或者m修改后的费用与以前的费用不
同, 则把m通过标记的超弧连接的父亲节点加入到S中,
13
end
14. end
人工智能
吉林大学珠海学院计算机科学与技术系
算法分为两个阶段 1. 4-6 步. 自顶向下的产生候补解图, 并扩展候补
解图的过程. 2. 7-12, 自底向上修正费用值, 标记弧及的过程.
向图中的弧。
人工智能
吉林大学珠海学院计算机科学与技术系
一般的弧
k连弧
人工智能
吉林大学珠海学院计算机科学与技术系
n0
n1
n2
n4
n3 n6 n7
与或图
n5 n8
人工智能
吉林大学珠海学院计算机科学与技术系
n1 n3 n6
n7
n0
n5 n5
n8
n7
三个解图
n0
n4 n5
n0 n4
n8
n7
n8
人工智能
吉林大学珠海学院计算机科学与技术系
7. 建立一个由n构成的单元素集合S.
8.
直到 S变空, do:
9.
begin
10.
从S中删除其儿子节点不在S中的节点, 记此节点为m.
11.
按以下步骤修改m的费用q(m), 对于每一个从m出发的
12. 指向节点集合{ni1, ni2, ..., nik}超弧ai,计算qi(m)=
(2,3,2, MAX) 表示现在桌面上有 3 堆硬币, 分别为2, 3, 2个, 此时 应抡到MAX移动。
人工智能 6, 1, MAX
吉林大学珠海学院计算机科学与技术系
人工智能
与或图
ห้องสมุดไป่ตู้
吉林大学珠海学院计算机科学与技术系
• 设从节点n到目标节点集合N的费用用c(n, N)表示, 则c(n, N)定义如下:
• 如果n是N中的一个节点, 则c(n, N)=0,
• 如果n有一条从n出发的k连弧ai, 这个k连弧连接的儿子节点 是{n1, n2, ..., nk}, 则解图G’由节点n, k连弧ai, 和由n1, n2, ..., nk出发的解图构成。这时,解图G’的费用定义为
• c(n, N)= c(ai)+ c(n, n1)+…+ c(n, nk), 其中c(ai)是k连弧ai的 费用.
• 否则, G没有从n出发到N的解图。设其费用为无穷大∞.。
• 例如,如果假定k连弧的费用是k, 则图3.4 所示的 AND/OR 图的两个解图中,左图的费用是8, 右图的费用是7。
人工智能
c(ai)+ q(ni1)+…+ q(nik), 这里的q( nij)或者是在本循环内部的
前面步骤计算出的值,或者是在步骤6中指定的值。 设q(m)是所有
qi(m)的最小者, 标记实现这个最小值的超弧,如果本次标记与以前
的标记不同, 擦去以前的标记, 如果这些超弧指向的所有儿子节点
都标记了SOLVED, 则把m也标上SOLVED.
吉林大学珠海学院计算机科学与技术系
2.3 博弈树的搜索
穷尽的极大极小过程。 两个游戏者分别为MAX 和MIN, MAX想取得高的分数, 而MIN
想取得低的分数,把整个棋的状态以及所有可能的移动都用 一个有与或图表示出来, 对于某一游戏者求出他的解图,就 是为游戏者制定的赢的策略。
Nim 游戏,桌子上有 7 枚硬币, 由MAX 和MIN两个人分别把 一堆硬币分成不相等的两堆,谁不能继续做下去,谁就算输, 为MAX制定一个赢的策略。
吉林大学珠海学院计算机科学与技术系
2.2 与或图的启发式搜索
AND/OR图的启发搜索过程AO* 1. 建立一个只由根节点s构成的搜索图G, 设从s 出发的解图的
费用为q(s)=h(s), 如果s是目标节点, 用SOLVED标记s. 2. until s 被标上SOLVED, do:
3. begin
4. 通过跟踪从s出发的有标记的超弧计算候选解图G’(这 些标记在后 面的步骤11中给出)
5. 在G’中选一个不是目标节点的叶节点n, 6. 扩展节点n, 产生节点n的所有儿子{n1, n2, ..., nk}, 并把这
些儿子连到图G上,对于每一个不曾在G中出现的儿子nj, 设 q(nj)=h(nj), 如果这些儿子节点中的某些节点是目标节点,则 把这些节点标记为SOLVED.
人工智能
二次循环后
图3.5 AO*搜索算法的例子
5, n0
n1 5
n1
n4
5
n4
1
4
n5
2
1
n3, 4
n5 n2,4
2
n2,4
三次循环后
n6,2 n7,0
n6,2 n8,0
n7,0
n8,0
四次循环后
人工智能
吉林大学珠海学院计算机科学与技术系
5, n0 n4 1
n5 2
n8,0 n7,0
搜索得到的解图
人工智能
吉林大学珠海学院计算机科学与技术系
在定义中假定AND/OR图不含回路,即是说, 图中不存在 一个节点的后裔也是这个节点的祖先的情形。 不含回路 保证了节点间具有部分序关系, 从而保证了下面定义的 合理性。 设N是AND/OR图G的目标节点集合, 从图中任意一个节点n 出发到N的一个解图是AND/OR图G的一个子图, 用G’表示, 递归定义如下: 如果n是N中的一个节点, 则G’只包括n. 如果n有一条从n出发的k连弧ai, 这个k连弧连接的儿子节 点是{n1, n2, ..., nk}, 则解图G’由节点n, k连弧ai, 和由n1, n2, ..., nk出发的解图构成。 否则, G没有从n出发到N的解图。
人工智能
吉林大学珠海学院计算机科学与技术系
2.1 与或图(AND/OR Graph)的搜索
为严格描述AND/OR图,我们先推广弧的概念。在有 向图中的弧是从一个父亲节点指向它的儿子节点 的。 在AND/OR图中使用的弧叫做超弧,一个超弧 可以把一个父亲节点和k个儿子节点同时连接起来, 这样的弧也叫做k连弧,在AND/OR图中,k连弧用 弧线连接起来。当k=1 时,k连弧退化成通常的有
例
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,
人工智能 3, n0
吉林大学珠海学院计算机科学与技术系
3, n0
n1
n4
2
1 n5
1
一次循环后
5, n0
n1
n4
2
1
n3 4
n2 4
n5 1
12.
如果m标记了SOLVED或者m修改后的费用与以前的费用不
同, 则把m通过标记的超弧连接的父亲节点加入到S中,
13
end
14. end
人工智能
吉林大学珠海学院计算机科学与技术系
算法分为两个阶段 1. 4-6 步. 自顶向下的产生候补解图, 并扩展候补
解图的过程. 2. 7-12, 自底向上修正费用值, 标记弧及的过程.
向图中的弧。
人工智能
吉林大学珠海学院计算机科学与技术系
一般的弧
k连弧
人工智能
吉林大学珠海学院计算机科学与技术系
n0
n1
n2
n4
n3 n6 n7
与或图
n5 n8
人工智能
吉林大学珠海学院计算机科学与技术系
n1 n3 n6
n7
n0
n5 n5
n8
n7
三个解图
n0
n4 n5
n0 n4
n8
n7
n8
人工智能
吉林大学珠海学院计算机科学与技术系
7. 建立一个由n构成的单元素集合S.
8.
直到 S变空, do:
9.
begin
10.
从S中删除其儿子节点不在S中的节点, 记此节点为m.
11.
按以下步骤修改m的费用q(m), 对于每一个从m出发的
12. 指向节点集合{ni1, ni2, ..., nik}超弧ai,计算qi(m)=