1.38k likes | 1.53k Views
复习. 第 0 章 绪论 第 1 章搜索问题 第 2 章 与或图搜索问题 第 3 章 谓词逻辑与归结原理 第 4 章 知识表示方法 第 5 章 不确定性推理 第 6 章 机器学习 第 7 章 高级搜索. 第 0 章 绪论. 主要知识点: 人工智能的定义 人工智能的研究目标 人工智能的三个主要学派 人工智能的主要研究应用领域。. 第 0 章 绪论. 人工智能的定义 研究怎样使计算机模仿人脑所从事的感知、推理、学习、思考、规划等思维活动,来解决需要用人类智能才能解决的问题。. 第 0 章 绪论. 人工智能的研究目标 近期目标
E N D
复习 • 第0章 绪论 • 第1章搜索问题 • 第2章 与或图搜索问题 • 第3章 谓词逻辑与归结原理 • 第4章 知识表示方法 • 第5章 不确定性推理 • 第6章 机器学习 • 第7章 高级搜索
第0章 绪论 主要知识点: 人工智能的定义 人工智能的研究目标 人工智能的三个主要学派 人工智能的主要研究应用领域。
第0章 绪论 • 人工智能的定义 研究怎样使计算机模仿人脑所从事的感知、推理、学习、思考、规划等思维活动,来解决需要用人类智能才能解决的问题。
第0章 绪论 人工智能的研究目标 近期目标 建造智能计算机代替人类的部分智力劳动 远期目标 用自动机模仿人类的思维过程和智能行为
第0章 绪论 • 符号主义(Symbolists),又称逻辑主义(Logic's),心理学派(Psychlogism),计算机学派(Computerism). 原理主要为物理符号系统(符号操作系统),认为人工智能源于数理逻辑,人的认知基元是符号,认知过程就是符号操作过程,人和计算机系统都是一个物理符号系统. 其方法: 以功能模拟人的智能
第0章 绪论 • 联结主义(Connectionism),又称仿生学派(Bionicisism),生理学派(Physiologism). 主要原理为神经网络及神经网络间的连接机制与学习算法,认为人工智能源于仿生学.特别是人脑模型的研究,认为人的认知思维基元是神经元,用大脑工作模式代替电脑工作模式。 其方法:以结构模拟人的智能
第0章 绪论 • 联结主义(Connectionism),又称仿生学派(Bionicisism),生理学派(Physiologism). 主要原理为神经网络及神经网络间的连接机制与学习算法,认为人工智能源于仿生学.特别是人脑模型的研究,认为人的认知思维基元是神经元,用大脑工作模式代替电脑工作模式。 其方法:以结构模拟人的智能
第0章 绪论 • 人工智能研究论域 • 自然语言理解与机器翻译 • 数据库的智能检索 • 专家咨询系统 • 定理证明 • 博弈 • 机器人学 • 自动程序设计 • 组合调度问题 • 感知问题
第1章 搜索问题 • 主要知识点: 状态空间表示法 盲目搜索和启发式搜索的特点 宽度优先搜索、深度优先搜索、分支界限法、最佳优先搜索法、A算法、A*算法
第1章 搜索问题 • 问题的状态空间(state space)是一个表示该问题全部可能状态及其关系的图,它包含三种说明的集合,即所有可能的问题初始状态集合S、算符集合F以及目标状态集合G。因此,可把状态空间记为三元状态(S,F,G)。 • 图搜索的定义—一种计算机在状态图中寻找路径的方法。
第1章 搜索问题 • 深度优先搜索 首先扩展最新产生的(即最深的)节点。深度相等的节点可以任意排列。这种盲目(无信息)搜索叫做深度优先搜索或纵向搜索。 深度优先搜索算法是一种“后进先出”的算法。
第1章 搜索问题 八数码魔方的深度优先搜索树
第1章 搜索问题 • 宽度优先搜索 以接近起始节点的程度逐层扩展节点的搜索方法(breadth-first search),这种盲目(无信息)搜索叫做宽度优先搜索或横向搜索。 宽度优先搜索算法是一种“先进先出”的算法。
八数码魔方的宽度优先搜索树 2 8 3 1 4 7 6 5 2 8 3 2 3 2 8 3 2 8 3 8 6 1 4 1 4 1 4 1 4 7 6 5 7 6 5 7 5 7 6 5 2 8 3 2 3 2 8 3 2 8 3 2 8 7 1 8 6 6 1 4 3 1 4 1 4 1 4 6 5 7 6 5 7 5 7 5 7 6 5 8 3 1 2 3 2 8 3 2 8 2 8 3 2 3 2 8 3 2 8 3 4 2 8 6 6 3 5 1 4 4 4 1 4 1 4 1 1 1 4 7 8 7 6 5 7 6 5 7 5 7 6 5 6 5 7 6 5 1 7 5 4 7 6 1 2 8 3 2 8 3 2 3 2 3 1 8 8 4 1 4 4 4 7 7 7 6 1 5 6 5 6 5 7 6 5 1 2 3 4 5 6 7 8 9 10 11 12 13 8 3 2 3 2 8 3 4 2 1 4 8 5 4 1 4 1 4 7 6 5 7 6 5 7 6 18 20 14 21 15 16 17 19 29 31 22 23 25 27 24 26 30 32 28 8 1 3 2 3 2 3 2 8 3 2 8 3 4 4 8 3 3 8 5 6 1 6 2 1 1 4 4 2 4 8 1 1 4 7 6 5 7 6 7 5 7 5 1 7 6 5 7 6 6 5 38 39 8 4 3 8 1 3 扩展26个节点, 共生成46个节点之后,才得到目标 3 1 2 2 4 1 7 6 6 5 7 6 5
第1章 搜索问题 • 分支界限法 分支界限法是优先扩展当前具有最小代价的分支路径的节点,其评价函数为f(n)=g(n),直到生成目标节点为止。
第1章 搜索问题 • A算法 定义每个节点n的估价函数f(n)=g(n)+h(n) 从起始节点到节点n的代价g(n)以及从节点n到达目标节点代价的估算值h(n),找出一个最有希望的节点来扩展。
第1章 搜索问题 • A*算法 • 在A算法中,如果满足条件: h(n)≤h*(n) 则A算法称为A*算法。 在A算法中,如果对所有的x存在h(x)≤h*(x),则称h(x)为h*(x)的下界,它表示某种偏于保守的估计。
2 1 2 3 8 3 8 4 1 6 4 7 6 5 7 5 1 2 3 将牌1:1 将牌2:1 将牌6:1 将牌8:2 (初始状态) (目标状态) 28 3 16 4 7 5 8 4 5 7 6 八数码魔方(8-puzzle problem) • 8数码问题 • h1(n) = “不在位”的将牌数 • h2(n) = 将牌“不在位”的距离和
1 2 3 8 4 7 6 5 2 8 3 2 8 3 2 8 3 6 6 1 4 1 4 1 4 7 5 7 6 5 7 5 2 8 3 2 3 2 8 3 8 1 4 1 4 1 4 7 6 5 7 6 5 7 6 5 2 3 2 3 8 8 1 4 1 4 7 6 5 7 6 5 2 3 1 8 4 7 6 5 1 2 3 7 8 4 6 5 2 8 3 ① (0+5=5) 6 1 4 7 7 5 ② (1+6=7) (1+6=7) (1+4=5) ③ ④ (2+5=7) (2+3=5) (2+5=7) ⑤ (3+2=5) (3+4=7) ⑥ (4+1=5) ⑦ 八数码魔方的A*算法搜索树 (5+0=5) (5+2=7)
1 2 3 8 4 7 6 5 2 8 3 2 8 3 2 8 3 6 6 1 4 1 4 1 4 7 5 7 6 5 7 5 2 8 3 2 3 2 8 3 8 1 4 1 4 1 4 7 6 5 7 6 5 7 6 5 2 3 2 3 8 8 1 4 1 4 7 6 5 7 6 5 2 3 1 8 4 7 6 5 1 2 3 7 8 4 6 5 2 8 3 ① (0+5=5) 6 1 4 7 7 5 ② (1+6=7) (1+6=7) (1+4=5) ③ ④ (2+5=7) (2+3=5) (2+5=7) ⑤ (3+2=5) (3+4=7) ⑥ (4+1=5) ⑦ 八数码魔方的A*算法搜索树 (5+0=5) (5+2=7)
第三章 与或图搜索问题 • 主要知识点: 与或图的启发式搜索算法AO* 博弈搜索的极大极小法 -剪枝法。
第三章 与或图搜索问题 • 启发式搜索算法AO* 过程: 图生成过程,即扩展节点 • 从最优的局部途中选择一个节点扩展 计算耗散值的过程 • 对当前的局部图重新新计算耗散值
第三章 与或图搜索问题 AO*算法可划分成两个操作阶段: 第一阶段是完成自顶向下的图生成操作,先通过有标记的连接符,找到目前为止最好的一个局部解图,然后对其中一个非终结点进行扩展,并对其后继结点赋估计耗散值和加能解标记。
第三章 与或图搜索问题 第二阶段是完成自下向上的耗散值修正计算、连接符(即指针)的标记以及结点的能解标记。 耗散值的修正从刚被扩展的结点n开始,其修正耗散值q(n)取估计h(n)的所有值中最小的一个,然后根据耗散值递归计算公式逐级向上修正其先辈结点的耗散值,只有下层耗散值修正后,才可能影响上一层结点的耗散值,因此必须自底向上一直修正到初始结点。这由算法中的内循环过程完成。
初始节点 n0 n1 n2 n4 n3 n5 n6 n8 目标 n7 目标 AO*算法举例 其中: 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
初始节点 n0 初始节点 n0 n1(2) n1 n2 n4 n3 n5 n5(1) n6 n8 目标 n7 目标 n4(1) 红色:4 黄色:3
初始节点 n0 n1 5 n4(1) n2(4) n5(1) 初始节点 n0 n1 n2 n4 n3 n5 n3(4) n6 n8 红色:4 黄色:6 目标 n7 目标
初始节点 n0 n1 5 n4(1) n2(4) n5(1) n3(4) n6(2) n8(0) n7(0) 初始节点 n0 n1 n2 n4 2 n3 n5 n6 n8 目标 n7 目标 红色:5 黄色:6
初始节点 n0 n1 5 n4(1) n2(4) n5(1) n3(4) n6(2) n8(0) n7(0) 初始节点 n0 n1 1 n2 n4 2 n3 n5 n6 n8 目标 n7 目标 红色:5 黄色:6
第三章 与或图搜索问题 • 对各个局面进行评估 • 评估的目的:对后面的状态提前进行考虑,并且以各种状态的评估值为基础作出最好的走棋选择。 • 评估的方法:用评价函数对棋局进行评估。赢的评估值设为+∞,输的评估值设为-∞,平局的评估值设为0。 • 评估的标准:由于下棋的双方是对立的,只能选择其中一方为评估的标准方。
第三章 与或图搜索问题 • 正方(MAX节点)从所有子节点中,选取具有最大评估值的节点。 • 反方(MIN节点)从其所有子节点中,选取具有最小评估值的节点。 • 反复进行这种选取,就可以得到双方各个节点的评估值。这种确定棋步的方法,称为极小极大搜索法。
第三章 与或图搜索问题 • 在九宫格棋盘上,两位选手轮流在棋盘上摆各自的棋子(每次一枚),谁先取得三线的结果就取胜。 设程序方MAX的棋子用(×)表示, MAX先走。对手MIN的棋子用(o)表示。
第三章 与或图搜索问题 估计函数 f(p)=(所有空格都放上MAX的棋子之后,MAX的三子成线数)-(所有空格都放上MIN的棋子之后,MIN的三子成线的总数) 若P是MAX获胜的格局,则f(p)=+∞ ; 若P是MIN获胜的格局,则f(p)=-∞ 。
第三章 与或图搜索问题 当前棋局f(p)=2 估计函数 f(p)=(所有空格都放上MAX的棋子之后,MAX的三子成线(行、列、对角)数)-(所有空格都放上MIN的棋子之后,MIN的三子成线(行、列、对角)的总数) 估计函数值 f(p)=6-4=2
第三章 与或图搜索问题 • -剪支法的引入 在极小极大法中,必须求出所有终端节点的评估值,当预先考虑的棋步比较多时,计算量会大大增加。为了提高搜索的效率,引入了通过对评估值的上下限进行估计,从而减少需进行评估的节点范围的-剪支法。
第三章 与或图搜索问题 作为正方出现的MAX节点,假设它的MIN子节点有N个,那么当它的第一个MIN子节点的评估值为时,则对于其它的子节点,如果有高过的,就取那最高的值作为该MAX节点的评估值;如果没有,则该MAX节点的评估值为。 总之,该MAX节点的评估值不会低于,这个就称为该MAX节点的评估下限值。 • MAX节点的评估下限值
第三章 与或图搜索问题 • MIN节点的评估上限值 作为反方出现的MIN节点,假设它的MAX子节点有N个,那么当它的第一个MAX子节点的评估值为时,则对于其它子节点,如果有低于的,就取那个低于的值作为该MIN节点的评估值;如果没有,则该MIN节点的评估值取。 总之,该MIN节点的评估值不会高过,这个就称为该MIN节点的评估上限值。
第三章 与或图搜索问题 • 剪支法 设MAX节点的下限为,则其所有的MIN子节点中,其评估值的上限小于等于的节点,其以下部分的搜索都可以停止了,即对这部分节点进行了剪支。 剪支 MAX节点 A MIN节点 B C D =
第三章 与或图搜索问题 设MIN节点的上限为,则其所有的MAX子节点中,其评估值的下限大于等于的节点,其以下部分的搜索都可以停止了,即对这部分节点进行了剪支。 • 剪支法 剪支 MIN节点 A C B D = MAX节点
第三章 与或图搜索问题 (5,) A 剪支 MAX节点 B C (-,5) (-,2) MIN节点 G (5,) (6,) (2,) MAX节点 D E F H 终端节点 I J K N O L M 6 5 2 1 6 4 3 5 剪支
第四章 谓词逻辑与归结原理 主要知识点: 谓词逻辑表示的语言与方法 谓词归结子句形 谓词逻辑归结原理 Herbrand定理
例:将下式化为Skolem标准形: ~(x)(y)P(a, x, y) →(x)(~(y)Q(y, b)→R(x)) • 解:第一步,消去→号,得: ~(~(x)(y)P(a, x, y)) ∨(x) (~~(y)Q(y, b)∨R(x)) • 第二步,~深入到量词内部,得: (x)(y)P(a, x, y) ∨(x) ((y)Q(y, b)∨R(x)) • 第三步,变元易名,得 (x)(y)P(a, x, y) ∨(u) ( v)(Q(v, b) ∨R(u)) • 第四步,存在量词左移,直至所有的量词移到前面, (x) (y) (u) ( v) (P(a, x, y) ∨(Q(v, b) ∨R(u)) 由此得到前述范式
第五步,消去“”(存在量词),略去“”全称量词第五步,消去“”(存在量词),略去“”全称量词 • 消去(y),因为它左边只有(x),所以使用x的函数f(x)代替之,这样得到: (x)(u)(v) (P(a, x, f(x)) ∨ Q(v, b)∨R(u)) • 消去(u),同理使用g(x)代替之,这样得到: (x) (v) ( P(a, x, f(x)) ∨Q(v, b) ∨R(g(x))) • 则,略去全称变量,原式的Skolem标准形为: P(a, x, f(x)) ∨Q(v, b) ∨R(g(x))
例题“快乐学生”问题 假设任何通过计算机考试并获奖的人都是快乐的,任何肯学习或幸运的人都可以通过所有的考试,张不肯学习但他是幸运的,任何幸运的人都能获奖。求证:张是快乐的。 证明:先将问题用谓词表示如下: R1:“任何通过计算机考试并获奖的人都是快乐的” (x)((Pass(x, computer)∧Win(x, prize))→Happy(x)) R2:“任何肯学习或幸运的人都可以通过所有考试” (x)(y)(Study(x)∨Lucky(x)→Pass(x, y)) R3:“张不肯学习但他是幸运的” ~Study(zhang)∧Lucky(zhang) R4:“任何幸运的人都能获奖” (x)(Luck(x)→Win(x,prize)) 结论:“张是快乐的”的否定 ~Happy(zhang)
由R1及逻辑转换公式:P∧W→H = ~(P∧W)∨ H ,可得 (1)~Pass(x, computer)∨~Win(x, prize)∨Happy(x) 由R2: (2)~Study(y)∨Pass(y,z) (3)~Lucky(u)∨Pass(u,v) 由R3: (4)~Study(zhang) (5)Lucky(zhang) 由R4: (6)~Lucky(w)∨Win(w,prize) 由结论:(7)~Happy(zhang) (结论的否定) (8)~Pass(w, computer)∨Happy(w)∨~Luck(w) (1)(6),{w/x} (9)~Pass(zhang, computer)∨~Lucky(zhang) (8)(7),{zhang/w} (10) ~Pass(zhang, computer) (9)(5) (11) ~Lucky(zhang) (10)(3),{zhang/u, computer/v} (12) (11)(5)
例 设已知: (1)能阅读者是识字的; (2)海豚不识字; (3)有些海豚是很聪明的。 试证明:有些聪明者并不能阅读。 证 首先,定义如下谓词: R(x):x能阅读。 L(x):x识字。 I(x):x是聪明的。 D(x):x是海豚。
然后把上述各语句翻译为谓词公式: (1) x(R(x)→L(x)) (2) x(D(x)→ ﹁ L(x)) 已知条件 (3) x(D(x)∧I(x)) (4) x(I(x)∧﹁R(x)) 需证结论
求题设与结论否定的子句集,得 (1)﹁ R(x)∨L(x) (2)﹁ D(y)∨ ﹁ L(y) (3)D(a) (4)I(a) (5)﹁ I(z)∨R(z)
第五章 知识表示 • 主要知识点: 产生式规则表示法 语义网络表示法 框架表示法