第二章与或图搜索问题
中国海洋大学人工智能课程大纲(理论课程)

中国海洋大学人工智能课程大纲(理论课程)中国海洋大学人工智能课程大纲(理论课程)英文名称(Artificial Intelligence)【开课单位】信息学院【课程模块】专业知识【课程编号】【课程类别】选修【学时数】64 (理论48 实践16 )【学分数】 3.5一、课程描述本课程大纲根据2011年本科人才培养方案进行修订或制定。
(一)计算机科学与技术专业第三学年春季学期(二)教学目标及修读要求1、教学目标本课程讲解人工智能的一般性原理和基本方法,包括搜索策略、谓词逻辑归结、知识表示、不确定性推理、机器学习等,要求学生了解人工智能的研究范围和发展现状,能运用一般性原理和基本方法解决一些简单的人工智能问题。
修读要求本课程是在学生掌握了高级程序设计语言、数据结构、离散数学、操作系统等基本理论和技能的基础上,进一步学习人工智能的主要原理、技术和方法。
要求学生具有一定的算法设计能力、编程能力和抽象思维能力。
先修课程(参照2011版人才培养方案中的课程名称,课程名称要准确)高级程序设计语言、高级程序设计语言实验、数据结构、离散数学、操作系统二、教学内容(一)第0章绪论1、主要内容:了解人工智能的内涵、发展史和研究范围。
2、教学要求:(按照掌握、理解、了解三个层次对学生学习提出要求)要求学生理解人工智能的内涵及相关哲学问题、了解其发展史和研究范围。
3、重点、难点:无4、其它教学环节:(如实验、习题课、讨论课、其它实践活动):(二)第一章搜索问题1、主要内容:回溯策略、图搜索策略、无信息图搜索过程、启发式图搜索过程。
2、教学要求:掌握回溯策略的递归法实现、一般的图搜索过程、深度优先和宽度优先的图搜索过程,以及启发式图搜索A*算法;理解A*算法的启发式函数的下界约束和单调约束,理解A*算法的改进算法及其主要依据。
3、重点、难点:重点:回溯策略、A*算法难点:A*算法的启发式函数相关引理及定理的证明其它教学环节:(如实验、习题课、讨论课、其它实践活动):综合性设计项目1:滑动积木块问题的启发式搜索算法及其实现。
与或图搜索问题

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

信息技术学科教案时间(分)教学过程教师活动学生活动设计意图225(课前2分钟预备)复习提问:(2分钟)⒈知识表示遵循的思路?(讨论:自然语言→符号→计算机语言)⒉已经学过哪些知识表示的方法?(回答:框架、产生式、状态空间表示法)引入新课:(2分钟)实例分析1:证明三角形全等方法的知识表示。
(如:图1)图1:证明三角形全等方法的“或”图从而引出“与/或”图表示法及其应用的教学内容。
讲授新课:“与/或”图表示法及其应用一、“与/或”图表示法⒈“或”图图2:“或”图“或”图:“或”指的是当一个问题P变换为一组子问题P1、P2、P3 …Pn时,只要任意一个子问题有解,则原问题就有解。
只有当所有的子问题都无解时,原问题才无解。
这样原问题P与子问题之间的关系可以用“或”图来表示。
(如:图2),P:或节点。
任务一:(见《课堂练习》)画出边角边方法证明三角形全等(Q3)的“或”图。
分析:此问题变换为三个子问题Q31、Q32、Q33:三组边角边任意一组对应相等都可证明三角形全等。
组织提问播放分析分析归纳布置指导监查就坐安静思考回答观看思考回答观察思考理解思考完成组织课堂复习过实例引出新课便于理解由一般到特殊的认识规律达成教学目标之一5⒉“与”图由任务一引出探究问题1:用“边角边”方法证明一对三角形全等的子问题Q32图如何画?实例分析2:结合具体三角形分析利用“边角边”方法证明一对三角形全等,归纳出“与”图。
(如:图3)Q32:△ADE≌△CBEQ321:AD=CBQ322:∠ADE=∠CBEQ323:DE=EB图3:用“边角边”方法证明三角形全等的“与”图“与”图:“与”指当一个问题P可以分解为一组子问题P1、P2、P3 …Pn时,只有当所有的子问题都有解时,原问题才有解,任何一个子问题无解都会导致原问题无解,这样原问题与其所有的子问题之间的关系可以用“与”图”来表示。
(如:图4)图4:“与”图任务二:(见《课堂练习》)画出表示信息技术会考合格条件的“与”图。
第二章 知识表示方法

第二章知识表示方法教学内容智能系统问题求解所采用的几种主要的知识表示方法(状态空间法.问题归约法.谓词逻辑法.语义网络法)以及基于不同表示法的问题求解方法。
教学重点1. 状态空间表示法中问题的状态描述.改变状态的操作和问题目标状态的搜索;2. 问题规约的一般步骤.规约的与或图表示;3. 谓词逻辑的语法和语义.量词的辖域.谓词公式的置换与合一;4. 语义网络的构成.语义基元的选择.语义网络的推理等。
教学难点状态描述与状态空间图示.问题归约机制.置换与合一。
教学方法课堂教学为主,同时结合《离散数学》等已学的内容实时提问.收集学生学习情况,充分利用网络课程中的多媒体素材来表示抽象概念。
教学要求1. 重点掌握用状态空间法.问题归约法.谓词逻辑法.语义网络法来描述问题.解决问题;2. 掌握这些表示方法之间的差别;并对其它表示方法有一般了解2.1 状态空间法教学内容本节讨论基于解答空间的问题表示和求解方法,即状态空间法,它以状态和操作符为基础来表示和求解问题。
教学重点问题的状态描述,操作符。
教学难点选择一个好的状态描述与状态空间表示方案。
教学方法以课堂教学为主;充分利用网络课程中的多媒体素材来阐述抽象概念。
教学要求重点掌握对某个问题的状态空间描述,学会组织状态空间图.用搜索图来求解问题。
2.1.1 问题状态描述1.基本概念状态(state)它是为描述某类不同事物间的差别而引入的一组最少变量q0,q1,…,qn的有序集合,其矢量形式如下:Q=[q0,q1,…,qn]' (2.1)式中每个元素qi(i=0,1,…,n)为集合的分量,称为状态变量。
给定每个分量的一组值就得到一个具体的状态,如Qk=[q0k,q1k,…,qnk]' (2.2)操作符(operator)称使问题从一种状态变化到另一种状态的手段为操作符或算符。
状态空间(state space)它是表示一个问题全部可能状态及其关系的图,它包含所有可能的问题初始状态集合S、操作符集合F以及目标状态集合G。
与或图

北京信息科技大学 孙骏 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*
第一阶段是完成自顶向下的图生成操作,先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终结点进行扩展,并对其后继结点赋估计耗散值和加能解标记。
高中“与或”图表示法及其应用

核弹发射问题“与/或”图
LOGO
Your site here
核弹发射问题“与/或”图
LOGO
“或”图:P1、P2、P3 …Pn中任意一个有解则P有解。 “与”图:子问题 P1、P2、P3 …Pn均有解则P有解。
Your site here
正确答案 LOGO
Q
B
C
B1
B2
B3
C1
C2
Your site here
S
S1
S2
S3
S31
S32
Your site here
LOGO
⒈无人驾驶汽车撞人,罚车还是车主?
Your site here
可能会是这样:
车主来缴纳罚款,即便违法的是汽车而不是车主。
在更严重的致人伤亡的交通事故中,虽然涉事多方可能会互 相起诉,但最终要由汽车制造商来负责,至少要负民事赔偿上的 责任。 随着机器人逐渐成为主流应用,立法者必须弄清楚如何管理
Q311Q312 Q313 !321 Q322 Q323 Q331 Q332Q333
人 工 智 能 与 或 图 搜 索ppt /link?url=bkof8yQMl0fZuXf7UH_JQyO3_wR86kupepYsDSc4T3ufr4RfmXLvznHk0hkJ6AFYfzpICzzY1lRAkEIsRDhhKtUmMeppYyvxquZZBhrl7
分7根小棍问题的“与/或”图
(7)
(6,1) (5,1,1) (5,2) (3,2,2) (4,3)
甲
(4,2,1)
(3,3,1) 乙 甲 乙 甲
(4,1,1,1) (3,2,1,1) (3,1,1,1,1) (2,1,1,1,1,1)
第二章3问题规约

一 问题规约
№2
概念: 把复杂的问题变换为若干需要同时处理的较为 简单的子问题后再加以分别求解 问题的解答就由子问题的解答联合构成 问题归约可以递归地进行,直到把问题变换为 本原问题的集合 本原问题就是不可或不需再通过变换化简的" 原子"问题
问题归约的描述
№3
SP = ( S , O ) S--在问题求解(即搜索)过程中所有可达的合法 状态 构成的集合 O--操作算子的集合,操作算子的执行导致状态的 变迁
№ 18
二 与或图搜索
№ 19
可以把 与或图视为对一般图的扩展
№ 20
与或图基本概念:
(1) K-连接 --用于表示从父节点到子节点间的连接, 也称为父节点的外向连接,并以园弧指示同父子节点 间的“与”关系
K大于1的连接也称为超连接 K等于1时超连接蜕化为普通连接 而当所有超连接的K都等于1时,与或图蜕化为一 般图
№ 25
(3) 能解节点 • 终节点是能解节点; • 若节点n有一外向K-连接指向子节点n1,n2,…nk,
且这些子节点都是能解节点,则n是能解节点;
(4) 不能解节点 • 非终节点的叶节点是不能解节点; • 若节点n的每一个外向连接都至少指向一个不能解
节点,则n是不能解节点。
三 与或图的启发式搜索
LGS选择fi(n0)最小的待扩展局部解图作为G'; (5) G'中选择一个非终节点的外端节点(尚未
用于扩展出子节点的节点)作为n;
№ 29
(6) 扩展n,生成其子节点集,并从中删去导致有 环的子节点以及和它们有“与”关系的子节点;
若子节点集为空,则n是不能解节点,从LGS删 去G’(因为G’不可能再扩展为解图);否则,计 算每个子节点 ni的f(ni),并通过建立外向K-连接 将所有子节点加到G中;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简记为:
极小≤极大,剪枝 极大≥极小,剪枝
-剪枝(续)
f
0 0 1
d b
0 3
m h
1
1
n
e g
k
i
1
6
a
0
c
-3
3
5 4
-3
6
j
0
5
-3
3
3
-3
0
2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
-剪枝注意点
1)在不同类型节点间比较:极大 VS 极小 2)与“先辈层”而不只是“父辈层”有值的节点比较 3)只有节点值固定后,才能向上层传递 4) -剪枝不影响极大极小算法的结果
n3
=2+2+k(n5,N)+k(n6,N)
=4+2+k(n7,N)+k(n8,N) +2+ k(n7,N)+k(n8,N) =8 目标n8
n6
目标n7
• 解图3: 初始节点n0
n1
n2 n5
n4
K(n0,N) =2+k(n4,N)+k(n5,N) =3+2k(n5,N) =3+2×2
n3
n6 目标n8 目标n7
第二章 与或图搜索
2.1 基本概念
与或图是一个超图,节点间通过连接符连接。 k-连接符:k>1为“与”节点,k=1为“或”节点
…...
k个
与或图
n0
n1
n2 n4 n5 n0有2个外向连接符, 分别为1-连接符(n1), 2-连接符(n4,n5);n8 是n4的或子节点,同时 又是n5的与子节点
n7
目标
n0
n1 n2
初始节点
红色:5
黄色:6
n1
5 n0
初始节点
n4
n2(4)
1 n4(1)
n3
n5 n3(4)
n5(1)
2
n6
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
n8
n6(2)
n8(0)
目标
(3,1,1,1,1)
MIN
MIN
(2,2,1,1,1)
MAX
注:若有n0至{n1,n2}的解图,则我方胜; (2,1,1,1,1,1) n2 但不存在! 22
中国象棋
一盘棋平均走50步,总状态数约为10161 假设1毫微秒走一步,约需10145年。 结论:对于许多博弈问题(国际跳棋、围棋 等),不可能穷举。
7
• 解图1:
初始节点n0
n1
n2 n5
n4
K(n0,N) =2+k(n4,N)+k(n5,N) =2+1+k(n8,N)+2+ k(n7,N)+k(n8,N) =5
n3
n6 目标n8 目标n7
• 解图2:
初始节点n0 K(n0,N)
n1
n2 n5
n4
=1+k(n1,N) =1+1+k(n3,N)
=7
AO*算法思路: 对局部图的评价
初始节点
c
a
b 目标 目标
两个过程
扩展节点的图生成过程(自上而下)
从最优的局部图中选择一个节点扩展
计算耗散值的过程(自下而上)
对当前的局部图重新计算耗散值 判断祖先节点的可解/不可解性 删去无用的后裔节点
AO*算法举例
n0
初始节点
n1
n …... n1 n2
ni
i个
解图(对于无环与或图而言) 递归定义:
一个与或图G中,从节点n到节点集N的解图记为G’ ,G’是G的子图 1. 如果n是N的一个元素,则G’由单一节点n 组成; 2. 如果n有一个外向连接符k指向节点{n1, n2,…, nk}使得从每一个ni到N有一个解图,则G’由n、连 接符k和每一个ni到N的解图组成; 3. 否则n到N不存在解图。
MIN
MAX
注:若有n0至N的解图,则我方必胜
分钱币问题
我方(MAX)先走, 或节点
对方(MIN)后走, 与节点 (7)
n0 MAX
(6,1)
(5,2) (3,2,2)
(4,3)
MIN
(5,1,1) (4,2,1)
(3,3,1)
MAX
(4,1,1,1) (3,2,1,1) (2,2,2,1) n1
目标
n0 n1 n2
初始节点
n1 n4
2,5*
n0
初始节点
n4(1) n2(4)
n3
n5 n3(4)
n5(1) 初始q(n1)=h(n1)=2; 扩展后: q(n1)=min{1+4,1+4}=5>2; n8
n6
目标
n7
目标
红色:4
黄色:6
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
分钱币问题
对方(MIN)先走, 与节点
我方(MAX)后走, 或节点 (7)
n0 MIN
(6,1)
(5,2) (3,2,2)
(4,3)
MAX
(5,1,1) (4,2,1)
(3,3,1)
MIN
(4,1,1,1) (3,2,1,1) (2,2,2,1) (3,1,1,1,1) (2,1,1,1,1,1) (2,2,1,1,1)N
-3
3
3
-3
0 2
2
-3
0
-2
3 5 4
1
-3
0 6
8 9
-3
29
-剪枝
边生成估值边计算倒推值,从而剪去某些分支的 技术 极大节点的下界为。 极小节点的上界为。 顺序:剪枝顺序自左至右或自右至左 剪枝的条件:
后辈节点的值≤祖先节点的值时, 剪枝 后辈节点的 值≥祖先节点的值时, 剪枝
5* n4(1) n2(4) n0
初始节点
n4
n3
n5 n3(4)
n5(1)
2*
n6
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
n8
n6(2)
n8(0)
目标
n7(0)
n7,n8为终节点,故可解; 于是,标记n5可解; n0尚未可解; 选择红色局部图继续扩展(n4非终节点)
n7(0)
q(n4)=1,不变,q(n0)=5不变。n4可解;故 n0可解,算法成功退出。
n7
目标
AO*算法与A*的比较性质
1)AO*应用于与或图搜索,搜索的是解图;而A*则应用于一般图的 搜索,搜索的是解路径。 2)AO*选择估价最小的局部解图优先扩展;而 A*选择估价最小的路 径(节点序列)加以优先扩展。 3)AO*无需考虑评价函数f(n)的分量g(n),只需对新扩展出的节点n 计算h(n),并倒推修正上层节点估值;而A*则需同时计算分量g(n)和 h(n),以评价节点n是否在代价最小的路径上。 4)AO*存放候选的待扩展局部解图,并依据fi(n0)值排序(i个连接 符);而A*则应用OPEN表和CLOSE表分别存放待扩展节点和已扩展节 点,并依据f(n)值排序。 当h(n)≤h*(n)且h(n)满足单调性约束时,AO*一定能找到最佳解图。
极小极大分析法
不生成(也无法生成)完整的博弈树(因而也不搜索 解图);而是在有限的深度范围内,引入节点评估值, 进而寻求当前较好的一种走法;模拟人类对弈的思维。 当前己方所处状态作为根节点,按照宽度优先搜索策 略,扩展出预定深度(偶数,成对)的与或搜索树, 端节点用给定的估价函数估值,交替使用极小-极大的 原则,倒推上层节点估值,直至根节点。 对己方有利的估值大,反之对对方有利。 博弈树扩展深度越大越精确,但计算量庞大,通常一 定深度。
+ ∞,
p是A方胜局 p是B方胜局
e(p)=
- ∞,
e(+p)-e(-p), p是未定局 0, p是和局
e(+p):可使a成为三子一线的数目 e(-p ):可使b成为三子一线的数目 e(+p)=4; e(-p)=6; e(p)=-2, 对B方有利。
a b
我方先手
1
MAX
a
-1
a
-2
a
1
MIN
a b
n3
n6 n8
n7
2
与或图搜索问题
初始节点n0
n1
n2 n4 n5 搜索的目的:考察n0到目标 (终节点)集合N={n7,n8} 是否有解并找到解图
n3
n6
目标 n8 目标 n7
能解节点
终止(目标)节点可解 若非终节点有“或”子节点时,当且仅当其 子节点至少有一能解时,该非终节点才能解。 若非终节点有“与”子节点时,当且仅当其 子节点均能解时,该非终节点才能解。
初始节点
黄色:6
n1
5*
n0
初始节点
n4(1)
n5(1)
2*
n8
n6(2)
n8(0)
目标
n7(0)
初始q(n5)=h(n5)=1; 扩展后q(n5)=min{1+2,2+0+0}=2;指 针选择2-连接;q(n0)=min{6,2+2+1}=5;