
《人工智能》课后习题答案.pdf
44页《 人工智能》课后习题答案第一章绪论1.1 答:人工智能就是让机器完成那些假如由人来做则需要智能的情况的科学人工智能是相关于人的自然智能而言,即用人工的方法与技术, 研制智能机器或者智能系统来模仿延伸与扩展人的智能,实现智能行为与“ 机器思维” ,解决需要人类专家才能处理的问题1 .2 答:“ 智能” 一词源于拉丁“Legere”,意思是收集、汇合,智能通常用来表示从中进行选择、懂得与感受所谓自然智能就是人类与一些动物所具有的智力与行为能力智力是针对具体情况的,根据不一致的情况有不一致的含义 智力” 是指学会某种技能的能力,而不是指技能本身1.3 答:专家系统是一个智能的计算机程序,他运用知识与推理步骤来解决只有专家才能解决的复杂问题 即任何解题能力达到了同领域人类专家水平的计算机程序度能够称之专家系统1.4 答:自然语言处理一语言翻译系统,金山词霸系列机器人一足球机器人模式识别一Microsoft Cartoon Maker博弈一围棋与跳棋第二章知识表达技术2.1 解答:( 1 ) 状态空间(StateSpace)是利用状态变量与操作符号,表示系统或者问题的有关知识的符号体系,状态空间是一个四元组( S, 0 , SO, G ):S—状态集合; 0 —操作算子集合; SO—初始状态, S0uS;G— 目的状态, G uS,(G 可若干具体状态,也可满足某些性质的路径信息描述)从 SO结点到G 结点的路径被称之求解路径。
状态空间一解是一有限操作算子序列,它使初始状态转换为目标状态:01 02 03 OkSO^----------S l^ --------- S2^............. T --------- G其中O 1 ,…,0 k 即为状态空间的一个解( 解往往不是唯一的)( 2 ) 谓词逻辑是命题逻辑的扩充与进展,它将原子命题分解成客体与谓词两个部分与命题逻辑中命题公式相对应,谓词逻辑中也有谓词( 命题函数) 公式、原子谓词公式、复合谓词公式等概念一阶谓词逻辑是谓词逻辑中最直观的一种逻辑 3 ) 语义网络是一种使用网络形式表示人类知识的方法即用一个有向图表示概念与概念之间的关系, 其中节点代表概念, 节点之间的连接弧( 也称联想弧) 代表概念之间的关系常见的语义网络形式有命题语义网络、数据语义网络:E-R图( 实体- 关系图) 、语言语义网络等2.2 解答:(1)⑶2.3解答:设有如下四个谓词:HUMAN(X) X 是人LAWED(X) X 受法律管制COMMIT(X) X 犯法PUNISHED(X) X 受法律制裁前两个谓词能够变为:HUMAN(X)--------► LAWED(X),表示:人人都要受法律的管制;后两个谓词能够变为:COMMIT(X)------- ►PUNISHED(X),表示只要X 犯了罪,X 就要受到惩处;进一步,还能够把上述两个谓词联结成如下形式:[HUMAN(X)——► LAWED(X)]------- ► [COMMIT(X)——>PUNISHED(X)]本公式的含义是:假如由于某个X 是人而受到法律管制,则这个人犯了罪就一定要受到惩处。
晁盖是人,受法律的管制( 老百姓受法律的管制) ;因此晁盖劫了生辰纲,违反了宋王朝的法律,一定要受到官府的追究高衙内是人,却不受法律的管制( 达官贵人与恶少不受法律的管制) ;因此高衙内强抢民女,同样是违反了宋王朝的法律,却能够横行无忌2.4解答:题 中 提 供 的 条 件 可 记 为 ① 等 璃 : 蹴 鞠 鬻 敏 姆 翁 豳 /结 果 :( 1 ) 条件②:周与钱是同一性别;F条件⑤:李、徐、周是同一性别1条件③:李的爱人是陈的爱人的表哥,则李的爱人性别是男,而李的性别是女这样能够初步推出:李、徐、周、钱均是女的,对应的王、陈、孙、吴 的 醐 嚼 与 钱 是 夫 妻( 2 ) 条件④:陈与徐、周俊不构成夫妻,则陈选择的余地为钱或者”条件③:李与陈不构成夫妻; J条件④:吴与徐、周均不构成夫妻,则吴选择的余地为李;推得:吴与李是夫妻条件①:王与周不构成夫妻,则王选择的余地为徐;推得:王与徐是夫妻排除上述已经成立的条件,显然可推得:孙与周是夫妻2.5 解答:符号微积分基本公式为J: /(x ) = F(b) - F(a) = F(x)用产生式表示为:If f(x) and (a,b) Then F(b)-F(a)2.6 解答:题中描述的情况用谓词形式可表达如下:DOG(X) X 是狗SOUND(X) X 会吠叫BIT(X,Y) X 咬 YANIMAL(X) X 是动物题中各条推理则能够表示为:Pl: VX DOG(X) ---------► 3yBIT(X,Y) VSOUND(X)P2: :VX (ANIMAL(X) ASOUND(X)) ---------►3yBIT(X,Y)P 3 :猎犬是狗,即 DOG(X)种 X 的谓词样品是猎犬,同时也可得ANIMAL( 猎犬)将 P 3带入P1可得SOUND( 猎犬) ,再将SOUND( 猎犬) 与ANIMAL( 猎犬) 带 入 P2可得myBIT( 猎犬, Y ) , 即能够得到结果:猎犬是咬人的。
2. 7 解答:题中的三条规则侧重点不一致:R1规则的重点在于我师的任务;R2规则的重点在于敌团的配置;R 3规则的重点在于我师的任务与敌团的配置同时满足它们之间的关系为 Rlu R2u R3»因此根据冲突解决规则中的规模排序,可知首先应该选择规则R 3 ,系统执行才最有效2 .8 解答:2 .9 解答:(1)(2)2 . 1 0 解答:2 . 1 1 解答:在产生式系统中, 随着产生式规则的数量的增加, 系统设计者难以懂得规则间的相互作用,究其原因,在于每条规则的自含性使得知识表示的力度过于细微因此要提高产生式系统的可懂得性,就应当按照软件工程的思想,通过对规则的适当划分, 将规则组织诚易于管理的功能模块由于框架系统具有组织成块知识的良好特性,因此将两者进行有机结合,能够为产生式系统的开发、调试与管理提供有益的帮助基于框架的表示机制能够用作产生式语言与推理机制设计的一个重要构件 另外, 框架能够直接用于表示规则, 假如将每一个规则作为一个框架处理, 一组用于解决特定问题的规则可组织成一类,且在这一类框架中表示这组规则的各类特性2 . 1 2 解答:略2 . 1 3 解答:( 1 ) 题目描述可转换为如下问题( N 阶汉诺塔问题)有编号为A、B 、C 的三个柱子与标识为1 、2 N的尺寸依次从小到大的N个有中心孔的金片;初始状态下N个金片按1 、2 . . . . N 顺序堆放在A号柱子上,目标状态下N个金片以同样次序顺序堆放在B 号柱子上,金片的搬移须遵守下列规则:每次只能搬一个金片,且较大金片不能压放在较小金片之上,能够借助于C针。
2 ) 假设基本操作为m o v e ( x , A , C , B ) , 表示将x 个金片从A移到B 上,中间可借助于C 当 N = 1 时,则无需借助中间的C针,就能够直接实现将1 个金片从A移到B上,这也是问题的最简操作,可表示为m o v e - o n e ( 1 , A , B ) ;当 N > 1 时,需要用中间的C针作辅助其操作又可分为下列三步:将 N - 1 个金片从A移到C 上, 中间可借助于B , 转换为基本操作就是m o v e ( N - 1 , A , B ,O;C将 1 个金片直接从A移到B 上,转换为基本操作就是m o v e - o n e ( 1 , A , B ) ;1 将 N - 1 个金片从C移到B上,中间可借助于A , 转换为基本操作就是m o v e ( N - 1 , C ,A , B ) ; [这样,就将问题的规模减小为NT,依次递归求解就能够得到相应的结果 3 ) 设 M ( x ) 表示移动x个金片所需要的操作次数,则上述N阶汉诺塔问题能够表示成如下形式:r M(D=I, M(N)=2M(N-1)+1[最后能够解得M(N)=2*-1下面给出对梵塔问题给出产生式系统描述,并讨论N 为任意时状态空间的规模。
1)综合数据库定义三元组:( A ,B ,C ),其中A, B ,C 分别表示三根立柱,均为表,表的元素为1〜 N 之间的整数,表示N 个不一致大小的盘子,数值小的数表示小盘子,数值大的数表示大盘子表的第一个元素表示立柱最上面的柱子,其余类推 2 ) 规则集为了方便表示规则集,引入下列几个函数:first(L):取表的第一个元素,关于空表,first得到一个很大的大于N 的数值tail(L):取表除了第一个元素以外,其余元素构成的表cons(x, L):将 x 加入到表L 的最前面规则集:rl: IF (A, B, C) and (first(A) < first(B)) THEN (tail(A), cons(first(A), B), C)r2: IF (A, B, C) and (first(A) < first(C)) THEN (tail(A), B, cons(first(A), C))r3: IF (A, B, C) and (first(B) < first(C)) THEN (A, tail(B), cons(first(B), C))r4: IF (A, B, C) and (first(B) < first(A)) THEN (cons(first(B), A), tail(B), C)r5: IF (A, B, C) and (first(C) < first(A)) THEN (cons(first(C), A), B, tail(C))r6: IF (A, B, C) and (first(C) < first(B)) THEN (A, cons(first(C), B), tail(C))(3)初始状态:((1, 2, N ) , ( ) , ( ) )(4)结束状态:( ( ) ,( ) ,( 1 , 2 , …,N))问题的状态规模:每一个盘子都有三种选择:在 A 上、或者者在B 上、或者者在C 上,共N 个盘子,因此共有3加种可能。
即问题的状态规模为3凶2. 1 4 解答:(1)定义谓词G (x,y):x比 y 大,个体有张三( zhang)、李 四 ( l i ) , 将这些个体带入谓词中,得 到 G(zhang, l i ) 与」G(zhang, l i ) , 根据语义用逻辑连接词将它们联结起来就得到表示上述 知 识 的 谓 词 公 式 :li) -iG(zhang, li) o( 2 ) 定义谓词Marry (x, y) :x 与 y 结婚,Male(x) :x 是男的,Female(x) : x 是女的个体有甲( A)、乙(B), 将这些个体带入谓词中, 得到Marry (A, B)、 Male (A)、 Female (B)与 Male (A)Female (B), 根据语义用逻辑连接词将它们联结起来就得到表示上述知识的谓词公式:Marry (A, B)---------► (Male (A) AFemale (B)) V (Male (B) AFemale (A))( 3 ) 定义谓词Honest (x) :x 是诚实的,Lying(x) :x 会说谎个体有张三( zhang),将这些个体带入谓词中, 得到 H onest( X) 、— । Lying (x) s Lying (zhang)、— i Honest (zhang),据语义用逻辑连接词将它们联结起来就得到表示上述知识的谓词公式:VX (Honest W — ।- ty t饱 (x)) ► (Lying (zhang)— i Honest (zhang))第 三 章 问题求解方法3.1答:深度优先搜索与广度优先搜索的区别在于:在对节点n 进行扩展时,其后继节点在OPEN表中的存放位置不一致。
广度优先搜索是将后继节点放入OPEN表的末端, 而深度优先搜索则是将后继节点放入OPEN表的前端广度优先搜索是一种完备搜索,即只要问题有解就一定能够求出,而深度优先搜索是不完备搜索在不要求求解速度且目标节点的层次较深的情况下,广度优先搜索优于深度优先搜索;在要求求解速度且目标节点的层次较浅的情况下,深度优先搜索优于广度优先搜索广度优先的正例:积木问题;深度优先的正例:邮递员问题,反例:国际象棋3 . 2 答:衡量标准为:这组子状态中是否具有目标状态,假如有,则选择该节点同时搜索成功; 若没有, 则按照某种操纵策略从已生成的状态中再选择一个状态作为当前状态重复搜索过程3 . 3 答:( 1 ) 广度优先搜索( 2 ) 广度优先搜索( 3 ) 深度优先搜索( 4 ) 深度优先搜索( 5 ) 广度优先搜索3 . 4 答:关于四皇后问题,该程序务必找到解,同时最好是最优解;医生要根据病人的各类病状推断病人的病;该程序要求一定要找到目标路径;该程序要求找到最优解;不能确定它们是否等同,既不能确定它们是否有等同解假如放一个皇后的耗散值为1 的话,则任何一个解的耗散值都是4 因此假如h 是对该耗散值的估计,是没有意义的。
关于像四皇后这样的问题,启发函数应该是对找到解的可能性的评价 利用一个位置放皇后后, 消去的对角线的长度来进行评价3 . 5 答:定义hl=M+C-2B,其中M, C分别是在河的左岸的传教士人数与野人人数B = 1表示船在左岸,B=0表示船在右岸也能够定义h2=M+Chl是满足A * 条件的,而 h2 不满足要说明h 2 = M + C 不满足A * 条件是很容易的,只需要给出一个反例就能够了比如状态( 1 , 1 , 1 ) , h2 = M+ C = l + l= 2 , 而实际上只要一次摆渡就能够达到目标状态,其最优路径的耗散值为1 因此不满足A * 的条件下面我们来证明hl = M + C - 2 B 是满足A * 条件的我们分两种情况考虑先考虑船在左岸的情况假如不考虑限制条件,也就是说,船一次能够将三人从左岸运到右岸,然后再有一个人将船送回来这样, 船一个来回能够运过河2人,而船仍然在左岸而最后剩下的三个人,则能够一次将他们全部从左岸运到右岸因M + C -3此,在不考虑限制条件的情况下,也至少需要摆渡 2x 2 +1次其中分子上的"一3 " 表示剩下三个留待最后一次运过去。
除以" 2 ” 是由于一个来回能够运过去2人,需要M + C -3个来回,而" 来回" 数不能是小数,需要向上取整,这个用符号-1 表示而乘以“ 2 ” 是由于一个来回相当于两次摆渡,因此要乘以2 而最后的” + 1 ” ,则表示将剩下的3个运过去,需要一次摆渡化简有:M + C — 3 " | _ q 、M + C - 3 _ < ~ < . .- - - - - - - - x2 + l >- - - - - - - - -x2 + l = M + C - 3 + l = M + C - 22 2再考虑船在右岸的情况同样不考虑限制条件船在右岸,需要一个人将船运到左岸因此关于状态( M, C , 0 ) 来说,其所需要的最少摆渡数,相当于船在左岸时状态( M+ l, C ,1 ) 或者( M, C + l, 1 ) 所需要的最少摆渡数, 再加上第一次将船从右岸送到左岸的一次摆渡数因此所需要的最少摆渡数为:( M+ C + D - 2 + 1 其中( M+ C + 1 ) 的 表 示 送 船 回 到 左 岸 的 那个人,而最后边的" + 1 ” ,表示送船到左岸时的一次摆渡。
化简有:( M+ C + l) - 2 + l= M+ C 综合船在左岸与船在右岸两种情况下,所需要的最少摆渡次数用一个式子表示为:M+ C - 2 B 其中B = 1 表示船在左岸,B=0表示船在右岸 由于该摆渡次数是在不考虑限制条件下,推出的最少所需要的摆渡次数因此,当有限制条件时,最优的摆渡次数只能大于等于该摆渡次数因此该启发函数h 是满足A * 条件的3 . 6 答:在搜索期间改善h 函数,是一种动态改变h 函数的方法像改进的A * 算法中,对N E X T 中的节点按g值的大小选择待扩展的节点,相当于令这些节点的h = 0 , 就是动态修改 h 函数的一种方法由定理2 :若 h( n ) 满足单调限制,则由A * 所扩展的节点序列,其 f 值是非递减的,即f ( n i ) < f ( n j ) ) ,当 h 满足单调条件时,A * 所扩展的节点序列,其 f 是非递减的关于任何节点 i ,j , 假如j 是 i 的子节点,则 有 利 用 该 性 质 ,我们能够提出另一种动态修改h函数的方法:f ( j ) = m a x ( f ( i ) , f ( j ) )以 f ( j ) 作为节点j 的 f 值。
f 值的改变,隐含了 h 值的改变当 h不满足单调条件时,通过这样修正后的h具有一定的单调性质,能够减少重复节点的可能性3 . 7 答:像这种类型的问题,由于涉及到城市距离或者旅行费用, 因此利用代价树广度优先搜索求解为此,首先务必将旅行交通图转换为代价树,转换方法为:从初始节点A开始,把与它直接相邻的节点作为他的后继节点, 对其他节点也作同样的扩展, 但若一个节点以作为某节点的前驱节点,则它就不能再作为该结点的后继结点另外,图中节点除了初始节点A之外,其它的节点都有可能在代价树中多次出现,为了区分它们的多次出现,分别用下标1 , 2 …标出但他们却是图中的同一个节点设估价函数f ( n ) = d ( n ) + w ( n ) , 其中d ( n ) 为状态的深度,w ( n ) 为城市间的距离代价树如下所示:A C EB DAn定义h 1 = n * k ,其中n是还未走过的城市数,k是还未走过的城市间距离的最小值h 2 = 2 = l ,其中n是还未走过的城市数,k i是还未走过的城市间距离中n个最小的距离 显然这两个h函数均满足A*条件3 . 8 答:可定义h为:h=B右边的W的数目设j节点是i节点的子节点,则根据走法不一致,h ⑴ - h ①的值与C ( i , j )分为如下几种情况:(1)B或者W走到了相邻的一个空格位置,如今:h ( i ) - h ( j ) = O , C ( i , j ) = l ;( 2 ) W 跳过了 1 或者 2 个 W ,如今 h ( i ) - h ( j ) = O , C ( i , j > l 或者 2 ;( 3 ) W向右跳过了一个B ( 可能同时包含一个W ) ,如今:h ⑴ - h ⑴ = - l , C ( i , j ) = l或者2 ;( 4 ) W向右跳过了两个B,如今:h ( i ) - h ① = - 2 , C ( i , j ) = 2 ;( 5 ) W向左跳过了一个B ( 可能同时包含一个W ) ,如今:h ⑴ - h ⑴ = l , C ( i , j ) = l或者2 ;( 6 ) W 向左跳过了两个 B,如 今 :h ( i ) - h ( j ) = 2 , C ( i j ) = 2 ;( 7 ) B跳过了 1或者2个B,如 今h ⑴ - h ( j ) = O , C ( i , j ) = l或者2 ;( 8 ) B向右跳过了一个W ( 可能同时包含一个B),如今:h ⑴ - h ( j ) = l , C ( i , j ) = l或者2 ;( 9 ) B 向右跳过了两个 W ,如 今 :h ( i ) - h ( j ) = 2 , C ( i , j ) = 2 ;( 1 0 ) B向左跳过了一个W ( 可能同时包含一个B),如今: 四)4 0 ) = - 1 , ( 2 8 ) = 1或者2 :( 1 1 ) B 向左跳过了两个 W ,如 今 :h ( i ) - h ( j ) = - 2 , C ( i j ) = 2 ;纵上所述, 不管是哪一种情况, 具有:h ⑴ - h ( j ) W C ( i , j )。
且容易验证h ( t ) = 0 ,因此该h是单调的由于h满足单调条件,因此也一定有h ( n ) $ h * ( n ) ,即满足A*条件3 . 9 答:( ( ,< ) > ,C , ( < ) , < ) > >< < s , S ) , s , ( S , S ) )( 2 )< J ( 3 )
在问题的完整的隐含图中扩展生成出包含初始结点与目的结点集合的连通的明显子图2)算 法AO*:务必对当前已生成出的与或者图中的所有结点实施其每解点是否为可解结点的标注过程, 假如起始结点被标注为可解的,则搜索过程可成功地结束;假如起始结点还不能被标注为可解的,则应当继续扩展生成结点( 尽可能地记录,所有生成的结点中,什么结点被标注了可解的,以便减少下一次标注过程的工作量) :同样地,对不可解结点也同样如此利用结点的可解/ 不可解性质, 能从搜索图中删去可解结点的任何不可解结点的子结点:同样地,能删去不可解结点的所有的子结点( 搜索这些被删除的结点是没有意义的, 而只会降低搜索的效率) 两个要紧过程的反复:自上而下的图生长过程,并通过跟踪有标记的连接符寻找一个候选局部解图自下而上的估价函数值的修正、连接符的标记与SOLVED的标注过程(3)3.12答:此题要求按照课中例题的方式,给出算法,下列是每个循环结束时的搜索图上面这种做法比较简单,也能够如下做:6688( 6 >3 . 1 3 答:略3 . 1 4 答:博弈搜索通常被限制在一定的范围,搜索的目标是确定一步好的走法( 好棋) ,等对手回手后,再继续搜索。 因此,博弈搜索过程总是由当前状态向目标状态搜索,而不是由目标状态向当前状态搜索这类博弈的实例有西洋跳棋等3 . 1 5 答:8 — { ( 3 , 0 , 8 ) } — { ( 7 , 8 , 3)、 ( 0 , 6)、 ( 8 , 9 ) } —{ ( 7 , 6 ) 、 ( 8 , 6 , 5 ) 、( 2 , 3 ) 、 ( 0 , - 2 ) 、 ( 6 , 2 ) 、 ( 5 , 8 ) 、 ( 9 , 2 ) }83.16 答: 见上图3.17 答:略3.18 答:a —0 剪裁算法.a 剪裁一若极小层的B<=a(先辈层) 则中止这个MIN下列的搜索.P 剪裁一若极大层的a>0(先辈层) 则中止这个MAX下列的搜索算法如下:double alphabeta( int depth, double alpha, double beta, Position p);{/* alpha是 M AX的当前值 beta是 M IN的当前值, depth 是在搜索树中的深度, p 是所求结点的位置* /double t;if( depth=0 ) return evaluate(p); /* 假如 P 是叶结点, 算出 P 的值 * /fbr( i=l; i <= w; i++ ){ t = alphabeta( depth - 1, beta,alpha, pi);if( t> alpha&&MAX){if(t> beta) return t; / * 直接返回* /else alpha = t;)if( t 2)正 向 推 理 - - - - - - - ►正向推理( 事实驱动推理) 是由已知事实出发向结论方向的推理基本思想是: 系统根据用户提供的初始事实, 在知识库中搜索能与之匹配的规则即当前可用的规则,构成可适用的规则集R S ,然后按某种冲突解决策略从R S 中选择一条知识进行推理,并将推出的结论作为中间结果加入到数据库D B 中作为下一步推理的事实,在此之后,再在知识库中选择可适用的知识进行推理,如此重复进行这一过程,直到得出最终结论或者者知识库中没有可适用的知识为止正向推理简单、易实现,但目的性不强,效率低需要用启发性知识解除冲突并操纵中间结果的选取,其中包含必要的回溯由于不能反推,系统的解释功能受到影响 3 )反向推理v - - - - - - -反向推理是以某个假设目标作为出发点的一种推理,又称之目标驱动推理或者逆向推理反向推理的基本思想是:首先提出一个假设目标,然后由此出发,进一步寻找支持该假设的证据,若所需的证据都能找到,则该假设成立,推理成功;若无法找到支持该假设的所有证据,则说明此假设不成立,需要另作新的假设与正向推理相比,反向推理的要紧优点是不必使用与目标无关的知识,目的性强,同时它还有利于向用户提供解释。 反向推理的缺点是在选择初始目标时具有很大的盲目性, 若假设不正确,就有可能要多次提出假设,影响了系统的效率反向推理比较适合结论单一或者直接提出结论要求证实的系统 4 )推理方式分类■ 演绎推理、归纳推理、默认推理■ 确定性推理、不精确推理■ 单调推理、非单调推理■ 启发式推理、非启发式推理4 . 2 答:( 1 )在推理过程中,系统要不断地用数据库中的事实与知识库中的规则进行匹配,当有一个以上规则的条件部分与当前数据库相匹配时,就需要有一种策略来决定首先使用哪一条规则,这就是冲突解决策略冲突解决策略实际上就是确定规则的启用顺序 2 )冲突解决策略:专一性排序、规则排序、数据排序、就近排序、上下文限制、按匹配度排序、按条件个数排序4 . 3 答:归结反演就是利用归结与反演实现定理的证明具体过程如下:( 1 )将定理证明的前提谓词公式转化为子句集F 2 )将求证的目标表示成合适的谓词公式G (目标公式) 3 )将目标公式的否定式「G转化成子句的形式,并加入到子句集F中,得到子句集S4 )应用归结原理对子句集S中的子句进行归结,并把每次归结得到的归结式都并入S中如此反复进行,若归结得到一个空子句N I L,则停止归结,证明了 G为真。 4 . 4 答:略4 . 5 答:< 1 )(Vx) (Vy) [P(x, y) - >Q(x, y) ]= (Vx) (Vy) [~ P(x, y) VQ(x, y) ]= {~ P(x, y) VQ(x, y) )子句集的~P(x, y) VQ(x, y)(2 ) (Wx) (my) [P(x, y) v Q(x, y) - R(x, y) ]= (Wx) ) (3 y) [~ P(x, y) A ~ Q(x, y)v R(x, y) ]= {~ P(x) VP(x) }= ( V x) [~ P(x, f(x) ) A ~ Q(x, f(x) ) v R(x, f(x) ) ]= ~ P(x, f(x) ) A ~ Q(x, f(x) ) v R(x, f(x) ) =[~ P(x, f(x) ) VR(x, f(x) ) ]A[~ Q(x, f(x) >R(x, f(x) ) ]= [~ P(x, f(x» v R(X, f(x) ) ] A [~ Q(y, f(y) )vR(y,f(y) ) ]子句集为~ 恩* , « ) ) V R(x, g ) )与~ (3 0 , f(y) ) V R(y, f(y) )(3 ) (Wx) {(Wy) P(x, y) — ~ (Vy) [Q(x, y) - R(x, y) J } = (Vx) ) {(3 y) ~ P(x, y) V~ (Vy) [Q(x, y)一R(x, y) ]} = (Vx) [(3 y) ~ P(x, y) V (3 y) [~ Q(x, y) V R(x, y) ]= (Vx) [~ P(x, f(x) ) V[~ Q(x, f(x) ) VR(x,f(x) ) ]= ~ P(x, f(x) ) V~ Q(x, f(x) ) VR(x, f(x) )子句集为~ P(x, f(x) ) \/ ~ Q(x, f(x) ) VR(x, f(x) )4 . 6 答:(1 )(2 ) { A/ x, A/ y, A/ z, A/ w, A/ u }(3 )4 . 7 答:(1 ) ( 3X) {[P (x) - >P (A) ]A[P (x) TP (B ) ]}目标取反化子句集:~ ( 3X) {[p (x) - P (A) ]A[P (x) TP (B ) ]}~ (3 x) {[~ P (x) V P (A) ]A[~ P (x) V P (B ) ]}(Vx) {IP (x) A - P (A) ]VIP (x) A ~ P (B ) J }(Vx) {[P (x) A ~ P (A) ]VP (x) } A{[P (x) A- P (A) ]V~ P (B ) } }(Vx) {P (x) A[~ P (A) V P (x) J A[P (x) V ~ P (B ) ]A[~ P (A) V~ P (B ) J }P (x) A[~ P (A) V P (x) ]A[P (x) V~ P (B ) ]A[~ P (A) V ~ P ( B ) ]得子句集:l, P(xl)2 , ~ P(A) VP{x2 }3 , P(x3 ) V~ P(B )4 , ~ P(A) V~ P(B )(2 ) (Vx) {P (x) A IQ (A) V Q (B ) ]} — (tox) [P (x) A Q (x) J目标取反化子句集:~ {(Vx) { P(x) A IQ(A) VQ(B ) ]) - >(wx) [P(x) A Q(x) J )~ {~ {(Vx) P(x) A[Q(A) VQ(B ) ] } V(Wx) [P(x) AQ(x) ]}{(Vx) P(x) A [Q(A) VQ(B ) ]} A( Vx) [~ P(x) V~ Q(x) ]}{(Wx) P(x) A [Q(A) VQ(B ) ]} A( Vy) [~ P(y) V ~ Q(y) ]}(Vx) ( Vy) { P(x) A[Q(A) V Q(B ) ] A [~ P(y) V ~ Q(y) ]}P(x) A[Q(A) VQ(B ) ]A[~ P(y) V~ Q(y) ]得子句集:1 , P(x)2 , Q(A) VQ(B )3 , ~ P(y) V~ Q(y)4 . 8 答:4 . 9 答:答:我们用Skier(x)表示x 是滑雪运动员,Alpinist(x)表示x 是登山运动员,Alpine(x)表示x是 Alpine俱乐部的成员。 问题用谓词公式表示如下:已知:(1) Alpine(Tony)(2) Alpine(Mike)(3) Alpine(John)(4) (Vx){Alpine(x)— >[Skier(x)V Alpinist(x)]}(5) (Vx){Alpinist(x)—〜 Like(x, Rain)}(6) (Vx){-Like(x, Snow)—〜Skier(x)}(7) (Vx){Like(Tony, x)一〜 Like(Mike, x)}(8) (Vx){-Like(Tony, x)— *Like(Mike, x)}(9) Like(Tony, Snow)(10) Like(Tony, Rain)目 标 : (3x){Alpine(x)A Alpinist(x)A -Skier(x)}化子句集:(1) Alpine(Tony)(2) Alpine(Mike)(3) Alpine(John)(4)( V x) {Alpine(x)->[Skier(x) V Alpinist(x)J) = ( V x){〜 Alpine(x) V [Skier(x) V Alpinist(x)J)=>~ Alpine(x) V Skier(x) V Alpinist(x)(5) (Vx){Alpinist(x)— >-Like(x, Rain)} = (Vx){-Alpinist(x)V~Like(x, Rain)} =>-Alpinist(x)V〜 Like(x, Rain)(6) (Vx){~Like(x, Snow)一 〜 Skier(x)} = (Vx){Like(x, Snow) V 〜Skier(x)} => Like(x, Snow) V~ Skier(x)(7)( V x){Like(Tony, x)— >-Like(Mike, x)} = ( V x){〜 Like(Tony, x) V -Like(Mike, x)}=>~Like(Tony, x)V-Like(Mike, x)(8) (Vx){〜 Like(Tony, x)— >Like(Mike, x)} = (Vx){Like(Tony, x)VLike(Mike, x)} => Like(Tony,x) VLike(Mike, x)⑼ Like(Tony, Snow) (10) Uke(Tony, Rain)目标取反:~(3 x) {Alpine(x) A Alpinist(x) A -Skier(x)}= (Vx){-Alpine(x) V ~ Alpinist(x) V Skier(x)}=>-Alpine(x) V-Alpinist(x) VSkier(x)经变量换名后,得到子句集:{Alpine(Tony), Alpine(Mike), Alpine(John), -Alpine(x 1)V Skier(x 1)V Alpinist(x 1), -Alpinist(x2)V~Like(x2, Rain), Like(x3, Snow) V 〜Skier(x3), ~Like(Tony, x4) V~Like(Mike, x4), Like(Tony,x5) VLike(Mike, x5), Like(Tony, Snow), Like(Tony, Rain), ~Alpine(x) V -Alpinist(x) V Skier(x))归结树如下:4 . 1 0 答:基于规则的演绎推理可分为正向演绎推理、反向演绎推理与正反向混合演绎推理。 在正向演绎推理中,作为F规则用的蕴含式对事实的总数据库进行操作运算,直至得到该且拯公式的一个终止条件为止事实- - - - - -►目标公式在反向演绎推理中,作为B规则用的蕴含式对旦拯的总数据库进行操作运算,直至得到包含这些事实的终止条件为止目 标 公 式 - - - - - - -事实4 . 1 1 答:第五章不精确推理5 . 1 答:不精确推理是建立在蟀典粤基础上的一种推理,是基于不确定性知识的推理不精确推理就是从不确定性的初始事实(证据) 出发,通过运用不确定性的知识, 最终推出具有一定程度的丕确定性却是合理或者者近乎合理的结论的思维过程在不精确推理中, 知识与证据都具有不确定性, 这为推理机的设计与实现增加了复杂度与难度它除了务必解决推理方向、推理方法与操纵策略等基本问题外, 通常还需要解决不确定性的表示、不确定性的匹配与不确定性的更新算法等问题5 . 2 答:有明确定义但不一定出现的事件中包含的不确定性称之随机性,他不因人的主观意思变化,由事物本身的因果律决定不精确推理就是表示与处理随机性的推理方法5.3 答:( 1)当有一个证据E 1时,根据Ba y e s公式,可得_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P (H )P (g|a)_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _P( H, | E , ) = P ( " i ) x P( 耳 |H )+P (H 2)P (g l 4 2 ) + P( ”3 ) P( 4 l “3 )= 04* 0.5/ ( 0.4* 0.5+ 0.3 * 0.3 4- 0.3 * 0.5 ) = 0.2 /0.44= 0.45同理可得: P (H J E2 )=0.09/0.44=0.20 P(H| | f3) =0.15/0.44=0.34这说明,由于证据E l的出现,H 1与 H 3成立的可能性有所增加,而 H 2成立的可能性有所下降。 2)当证据E l、E 2同时出现时,根据多证据情况下的Bayes公式,可得_____________________________ P( : 出 ) / ( 一 出 ) / ( 耳 )P(H,IEIE2)= P( G I % ) p g | P(《 ) + P(E J H I R E ? | P) 「 ( 0 ) + P (g I P( O I P( &=0.14/ (0.14+0.162+0.009) =0.59同理可得: ?( 也 |£ © ) =0.34 2 (” 3 坪2) = 0 64这说明,由于证据E 1与 E 2 的出现,H 1与 H 2成立的可能性有不一致程度的增加,而H3成立的可能性则有了较大幅度的下降5.4 答:① LSL S为规则的充分性量度, 它反映E 的出现对H 的支持程度 当 LS=1时, O (H|E)= 0(H),说明E 对 H 没有影响;当 LS>1时,O(H|E)>O(H),说明E 支持H , 且 LS越大,E 对 H 的支持越充分,若 LS为8,则 E 为真时H 就为真:当 LS<1时,O(H|E) 当LN=1 时,O(H[「 E)=O(H),说明- £ 对 H 没有影响;当 LN>1 时,O(H|「 E)>O(H),说明TE支持H ,且 LN越大, 「 E 对 H 的支持越充分, 若 LN为8,则「E 为真时H 就为真; 当 LN<1时 , O(HHE)
而有明确定义但不一定出现的事件中包含的不确定性称之随机性,他不因人的主观意思变化,由事物本身的因果律决定不精确推理就是表示与处理随机性的推理方法两者之间有着本质的区别5.9 答:A C B =o.5/x 1+0.65/X2+0.8/X3+0.9/X4+0.7/X5;2 =0.85/x 1 +0.7/x2+0.9/x3+0.98/x4+0.77/x5 ;=0.15/xl+0.3/x2+0. l/x3+0. 1/X4+ 0.3 /X55.10 答:0.70.4AoB0.70.50.40.45.11答:模糊推理实质上是在模糊集合上进行操作在同一论域中,证据的“ 与” 、“ 或者” 、“ 非” 运算通常能够对应于模糊集的交、并、求补操作;不一致论域中的逻辑运算通常需拓广至笛卡尔意义下的相应操作逻辑推理是通过逻辑蕴含实现的设 U 与 V 为两个论域,A 是 U 上的模糊子集,B 是 V 上的模糊子集,则规则IF A THEN B能够定义为U X V 上的一个模糊关系:( AXB )U (YXV)或者等价表示成: 4 - > 8 = f max(min3A(x),〃p(y))J — 〃A(x))/(x,y)u,第 六 章 PROLOG语言6.3 答:(1 ) 目标不成功(2)(3)(4)(5)目标不成功目标成功, x,y,z被例化为xl,yl,zl目标不成功目标不成功6.4 答:poglog 规则Is_mother(x):_mother(x,y)Is_father(x):_father(x,y)Is_son(x):_father(y,x),male(x)Grandpa(x,y):_father(x,y l),father(y l,y)Sibling(x,y):_diff(x,y),mother(zl,x),mother(zl,y),father(z2,x), father(z2,y),parent(x,y)文件头:Copyright (c) Sabu Francis Associatesclass family!open corepredicatesclassinfo: core::classlnfo.% @short Class information predicate.% @detail This predicate represents information predicate of this class.% @endpredicatesrun : core::runnable.end class family 1文件头:Copyright (c) Sabu Francis Associates#include ©'family 1.ph"% privately used packages#include @"pfc\filesystem\filesystem.ph"#include @npfc\application\exe\exe.phn#include @"pfc\console\console.ph"#include @"pfc\exception\exception.phn% private interfaces% private classes% implementations#include @nfamilyl .pro"文件头:Copyright (c) Sabu Francis Associates#requires @Hfamilyl.pack"% publicly used packages#include @,,pfc\core.phH% exported interfaces% exported classes#include @"familyl.c「(4) familyl.pij6文件头:Copyright (c) Sabu Francis Associatesimplement family 1open coreconstantsclassName = "family 1”.class Version = "SJustDate: $$Revision: $”.clausesclassInfo(className, classVersion).domainsgender = female(); male().class facts - familyDBperson : (string Name, gender Gender).parent: (string Person, string Parent).class predicatesfather : (string Person, string Father) nondeterm anyflow.clausesfather(Person, Father)parent(Person, Father),person(Father, male()).class predicatesgrandFather : (string Person, string GrandFather) nondeterm (o,o).clausesgrandFather(Person, GrandFather)parent(Persoicates)文件尾:reconsult: (string FileName).clausesreconsult(FileName)retractFactDB(familyDB),file::consult(FileName, familyDB).clausesrun():-console::init(),stdIO::write(''Load data\n"),reconsult(M..\\fa.txt"),stdIO: :write(u\nfather test\nH),father(X, Y),stdIO::writef(n% is the father of %\n", Y, X),fail.run():-stdIO::write("\ngrandFather test\nM),grandFather(X, Y),stdIO::writef(n% is the grandfather of %\nn, Y, X),fail.run():-stdIO::write("\nancestor of Pam test\nu),X = MPam",ancestor(X, Y),stdIO: :writef(H% is the ancestor of %\n", Y, X),fail.run():-stdIO::write("End of test\nH).end implement family 1goal补充习题:1. 编写一 Prolog程序使得你能与计算机“ 交谈"( Conversations with a computer)。 下图显示了对话时的情景,字体加粗的语句表示用户从键盘输入的内容,其他则是计算机的回答HELLOHIDO YOU WANT TO TALKNO I WANT TO SLEEPYOU ARE A STUPID COMPUTERI AM A NICE COMPUTER1. 答:domains / *领域段,说明程序要用到的数据类型*/words=stringsentence=words*predicates / *谓词段,说明程序要用到的谓词名与参数*/nondeterm talknondeterm human(sentence)nondeterm answer(sentence)nondeterm tolist(words,sentence)nondeterm process(words)nondeterm change(words,words)clauses / *子句段,说明程序要用到的事实与规则*/talk:-human(X),answer(X),talk.human(Y):-readln(X),tolist(X,Y).tolist(Str,[H|T]):-fronttoken(Str,H,Strl),!,tolist(Strl,T).tolist(_,[]).answer([]):-nl,nl.answer([Y|Z]):-process(Y),answer(Z).process(X):-change(X,Y),write(Y),write(" H).change(,,HELLO',,,,HIH).change(',DO"; 'NOu).change(nYOUn,ur,).change(“TALK”JSLEEP").change(nARE"; 'AMM).change(nSTUPID,V'NICE,').change(X,X).goal/ *目标段,说明程序要求解的目标*/talk.2. 有一个农夫带着一只狼、一只山羊与一筐白菜过河,要从南岸过河到北岸。 岸边有一条小船,农夫能够独自划着小船过河, 或者者每次带其中的一样东西过河问题是假如他留下狼与羊在一起,那么狼就会把羊吃掉;假如留下羊与白菜,那么羊就会把白菜吃掉农夫如何才能安全地将全部东西运到河对岸?2. 答:设计方案能够用farmer、wolf、 goat与 cabbage分别表示问题中的农夫、狼、山羊与白菜等对象状态描述了各个成员的位置, 能够用字母n 与 s 分别表示北岸与南岸, 比如, 能够用location(s,n,n,s)表示农夫、狼、山羊与白菜分别在南岸、北岸、北岸与南岸动作描述了农夫的摆渡操作,根据题意,一共只有四种动作,分别是农夫独自划船、农夫带着狼划船、农夫带着山羊划船与农夫带着白菜划船问题求解的目标是一个特定的动作序列( 即渡河程序) ,而每个动作都将当前状态转变成另一个新的状态,因此状态的变化过程能够反应出动作执行的过程因此,能够将求解动作序列的问题转换成求解状态变化过程的问题, 状态变化过程求出来后, 只要用某种方法将状态变化转换成相应的动作序列输出即可我们用一个表X 表示这个未知的状态变化过程, X 的条件是它务必由与平的状态( 即不可能出现一个对象将另一个对象吃掉的情况) 构成 。 开始时所有对象都在南岸,到最后所有对象都在北岸用 Prolog规则表示就是legal_states(location(s, s, s, s), location(n, n, n, n), States, X ) ,其中 States 是用来记录状态变化过程的动态表,在问题的开始,即农夫还没做任何事时,States存储的应该是初始状态;到最后,即农夫摆渡结束时,States中所存储的就是目标动作序列所对应的状态变化过程实施方案domains/*领域段,说明程序要用到的数据类型*/bt=boat(symbol,symbol)ln=location(symbol,symbol,symbol,symbol)lists=ln*predicates /*谓词段,说明程序要用到的谓词名与参数*/opposite(symbol,symbol)safe_goat(symbol,symbol,symbol,symbol)safe_cabbage(symbol,symboLsymbol,symbol)is_peaceful(symbol,symbol,symbol,symbol)transform(ln,ln)legal_states(ln,In,lists,lists)member(lnjists)write_state(ln,ln)write_actions(lists)boat(ln,ln)clauses/*子句段,说明程序要用到的事实与规则*/opposite(s,n).opposite(n,s).safe_goat(X,_,X,J-safe_goat(F,X,Y,_):-opposite(X,Y),F<>Y.safe_cabbage(X,_,_,X).safe_cabbage(F,_,X,Y):-opposite(X,Y),F<>Y.is_peaceful(F,W,G,C):-safe_goat(F,W,G,C),safe_cabbage(F,W,G,C).member(X, [X |_]).member(X,[JT]):-member(X,T).transform(location(X,W,G,C),location(Y,W,G,C)):-opposite(X,Y).transform(location(X,X,G,C),location(Y,Y,G,C)):-opposite(X,Y).transform(location(X,W,X,C),location(Y,W,Y,C)):-opposite(X,Y).transform(location(X,W,G,X),location(Y,W,G,Y)):-opposite(X,Y).legal_states(location(FO,WO,GO,CO),location(F,W,G,C),States,X):-transform(location(FO,WO,GO,CO),location(Fl ,W 1 ,G 1 ,C1)),is_peaceful(Fl ,W 1 ,G 1 ,C 1 ),not(member(location(Fl ,W 1 ,G 1 ,C 1),States)),legal_states(location(Fl ,W 1 ,G 1 ,C 1 ),location(F,W,G,C),[location(Fl ,W 1 ,G1 ,C1 )|States],X).legal_states(location(F,W,G,C),location(F,W,G,C),L,L).write_state(location(X,W,G,C),location(Y,W,G,C)):-!,write(MThe farmer crosses the riverhimself),nl.write_state(location(X,X,G,C),location(Y,Y,G,C)):-!,write("The farmer crosses the river withthe wolf'),nl.write_state(location(X,W,X,C),location(Y,W,Y,C)):-!,write(nThe farmer crosses the river withthe goatu),nLwrite_state(location(X,W,G,X)Jocation(Y,W,G,Y)):-!,write("The farmer crosses the river withthe cabbage"),nl.write_actions([]).write_actions([Hl,H2|T]):-write_state(HhH2),write_actions([H2|T]).boat(location(FO,WO,GO,CO),location(F,W,G,C)):-legal_states(location(FO,WO,GO,CO),location(F,W,G,C),[location(FO,WO,GO,CO)],X),write_actions(X).3. 某机器人需要在一间大商店里巡逻,由于商品每天都在流淌,商店的平面图经常变化。 一个典型的平面路径如图所示,在这个图中,点代表机器人的工作站,线表示点与点之间适于巡逻的通道在机器人的内部数据库中,将通过一组事实表示图的路径,比如: joined_to(a,b);joined_to(b, c);joined_to(b, d);joined_to(d, c);joined_to(c, e ) 机器人务必能够推断连接两个点的路线,比如,它应该识别出这个序列代表从e 到 b 的一条路线请写出一个程序,用来证明或者者反证某一个给定序列是两个给定点之间的路线图 2 商店路线图3. 答:懂得问题已知一个序列与一对点,要求证明( 或者反证) 这个序列是这两个点之间一条可能的路线能够看出,这是一个证明型问题:即证明给出的序列是给定的两点之间的一条路线那么什么是路线?结合图2 , 我们来看几个有用的例子1) b d c 这个序列是a 与 c 两点之间的路线吗?显然不是,由于它的起始点不对2) d e e 这个序列是d 与 b 两点之间的路线吗?当然不是:它的终止点不对3) a b e 是 a 与 e 之间的路线吗?不是,由于在平面图上,b 与 e 两个点之间不是直接相连的可见,关于一个给定的点序列,要使它成为某对特定的点之间的路线,需要满足下列三个条件:• 序列应该从点对的第一点开始。 • 序列应该以点对的第二点结束• 序列应该是连通的( 连通序列) ——也就是说,序列中任意两个连续的点在平面图中应该是相连的关于给定的一个序列与一对端点, 假如这三个条件都满足, 那么能够确信这个序列是这两个点之间的路线这三个条件是证明该假设的充分条件,同时也是必要条件设计方案在 Prolog中能够用一个表来表示一个点序列,比如,序列能够表示为[e,c,d,b]; 一对端点也能够用一个表表示因此,route_between([e, c, d, b], [e, b])能够表示egcgdgb是 e、b两点之间的路线将是我们所关心的关系的一个实例目标是什么?我们能够写成route_between(X, [Y, Z]),这里序列X 与一对端点[Y, Z]是给定的,我们关心的是目标能否取得成功为了给route_between写出一条规则,我们只需要将上面写下的三个条件转换成Prolog就能够了,如下所示:route_between(X, [Y, Z]):- begins_with(X, Y),ends_with(X, Z),is_connected(X).假如能够写出begins_with> ends_with与 is_connected这三个谓词的检验定义,我们应该能够输入询问,如 route_between([a, d, e,c, b], [a, b l) ,并得到一个是还是否的回答。 执行方案(1) begins_with该关系的一个实例就是begins_with(|b, a, d], b)显然,这个关系要成立,端点与表头务必是完全相同的用规则表示就是begins_with([X|Y], X)能够用一些询问进行试验,比如begins_with([b, a, d,J, b)等2) ends_withends_with([b, a, dj, d)就是该关系的一个实例与 begins_with相比,这个关系就不是那么容易定义了,由于表的最后一个元素看起来并不像第一个元素那样特别只是,你能够想出一个表,使得它与表[b, a, d]有关,又是从它的最后一个元素开始的吗?将原表倒置一下,变成[d, a, b]如何?因此我们能够这样描述ends_with:表 X 以点Y 结束,假如X 的逆序从点Y 开始表的倒置, 即求一个表的逆序表是关于表的一个最常见的问题, 这里我们不做具体讨论,其完整程序如图4 所示现在,我们就能够用reverse关系与刚才已经定义好的begins_with关系, 将上面的描述用Prolog表示成:ends_with(X, Y):- reverse(X, Z),begins_with(Z, Y).能够用一些合适的询问来试验一下。 domainss」ist=symbol*predicatesappend(s_list,s_list,s_list)reverse(s_list,s_list)clausesappend( 口 ,L,L).append([H|T],L2,[H|Tn]):-append(T,L2,Tn).reverse( 口 , 口 ) .reverse([H|T],L):-reverse(T,Ll),append(Ll ,[H],L).(3) is_connected给这个关系举出几个例子并不困难,比如,通过图3 我们能够看出,表[c, d, b, a]是一个连通序列,而[b, d, c, e, a]不是用通常序列的表示方法,即[X|Y]来表示能够吗?为了使得[X|Y]是一个连通序列,关于X 有什么要求呢?显然,X 务必与序列中下一个出现的点在平面图中是直接相连的;因此要把这个“ 下一个”点展开因此我们应该用[XI,X2|Y]来表示通常序列,而不是[X|Y];假如X I与 X 2相连,同时[X2|Y]是一个连通序列,那么这就是一个连通的序列 注意这里的第二个条件,为什么只问Y 是否连通是不够的呢?)因此,我们写出如下规则is_connected(lX 1 ,X2|Y]):-linked_to(X 1, X2),is_connected([X2|Y]).这里我们已经专门用linked_to替 代 joined」。 了,为什么呢?举例来说,前面给出的joined」事实声明a 是连到b 的,但是没有事实对应于b 连到a因此需要使用关系linked」 ,以使Prolog能够做出明显的推论我们用下面两条规则来定义:linked_to(X, Y):-joined_to(X, Y).linked_to(X, Y):-joined_to(Y, X).然而,我们还没有完成is_connected的定义上面的规则是递归的,因此我们需要一个特殊的、非递归的情况[XI,X2|Y]这个模式是包含两个或者两个以上成员的表,一个只有一个点的表当然是“ 连通的” ,因此我们加上is_connected([X]),这个语句提供了一个“ 直接的答案” 现在程序己经完成了, 接下来就是检验我们的计算机现在确实能够解决机器人巡逻问题T,用一些询问,如 route_between(fd, b,c, e], [d, e])试验一下机器人巡逻问题的完整程序如图5 所示,该程序在Turbo Prolog 2.0环境下运行通过domains/*领域段,说明程序要用到的数据类型* /s_list=symbol*predicates/*谓词段,说明程序要用到的谓词名与参数* /append(s」ist,s」ist,s」ist)reverse(s」ist,s」ist)joined_to(symbol,symbol)linked_to(symbol,symbol)begins_with(s_list,symbol)ends_with(s_list,symbol)is_connected(s_list)route_between(s_list,s_list)clauses/*子句段,说明程序要用到的事实与规则* /append([],L,L),append( [H|T] ,L2, [H|T n]): -append(T,L2,Tn).reverse^]」 ] ) .reverse([H|T],L):-reverse(T,Ll ),append(Ll ,[H],L).joined_to(a,b).joined_to(b,a).joined_to(b,c).joined_to(c,b).joined_to(b,d).joined_to(d,b).joined_to(d,c).joined_to(c,d).joined_to(c,e).joined_to(e,c).linked_to(X,Y):-joined_to(X,Y).linked_to(X,Y):-joined_to(Y,X).begins_with([X|J,X).ends_with(X, Y):-reverse(X,Z),begins_with(Z,Y).is_connected([_]).is_connected(lX I,X2|YJ):-linked_to(X 1 ,X2),is_connected([X2|YJ).route_between(X, [Y,Z]):-begins_with(X,Y),ends_with(X,Z),is_connected(X).第七章专家系统7.1. 答:( 1)专家系统的定义令费根鲍姆( E. A. Feigenbaum) : “ 专家系统是一种智能的计算机程序,它运用知识与推理步骤来解决只有专家才能解决的复杂问题”© 专家系统是基于知识的系统, 用于在某种特定的领域中运用领域专家多年积存的经验与专门知识,求解需要专家才能解决的困难问题H储存与大面积推广各类专家的宝贵知识K博采众长H比人类专家更可靠, 更灵活( 2)专家系统的特点①具有专家水平的专门知识专家系统中的知识按其在问题求解中的作用可分为三个层次: 数据级、 知识库级与操纵级S数据级知识( 动态数据) :具体问题所提供的初始事实及在问题求解过程中所产生的中间结论、最终结论数据级知识通常存放于数据库中H知识库级知识:专家的知识,这一类知识是构成专家系统的基础一个系统性能高低取决于这种知识质量与数量H操纵级知识( 元知识) :关于如何运用前两种知识的知识在问题求解中的搜索策略、推理方法②能进行有效的推理推理机构——能根据用户提供的已知事实, 通过运用知识库中的知识, 进行有效的推理,以实现问题的求解。 专家系统的核心是知识库与推理机③具有启发性除能利用大量专业知识外,还务必利用经验推断知识来对求解问题作出多个假设( 根据某些条件选定一个假设,使推理继续进行)④ 能 根 据 不 确 定 ( 不精确)的知识进行推理综合利用模糊的信息与知识进行推理,得出结论⑤具有灵活性知识库与推理机相互独立,使系统易于扩充,具有较大的灵活性⑥具有透明性H通常有解释机构,因此具有较好的透明性H解释机构向用户解释推理过程,回答“Why? ” 、“How? ” 等问题⑦具有交互性® 通常都为交互式系统,具有较好的人机界面© 一方面它需要与领域专家或者知识工程师进行对话以获取知识;另一方面它也需要不断地从用户处获得所需的已知事实并回答询问7.2. 答:专家系统的通常结构人机接口、推理机、知识库、动态数据库、知识获取机构、解释机构用户领域专家知识工程师人 机 接 口数据库解释机构知识获取机构推理机 L _ _ 知识库专家系统核心知识库:要紧用来存放领域专家提供的专门知识( 1)知识表达方法的选择( 最多的三种表示方法是产生式规则、框架与语义网络)①充分表示领域知识② 能 充 分 、有效地进行推理③便于对知识的组织、保护与管理④便于懂得与实现( 2)知识库管理冗余与矛盾一致性与完整性安全性推理机© 模拟领域专家的思维过程,操纵并执行对问题的求解© 能根据当前已知的事实,利用知识库中的知识,按一定的推理方法与操纵策略进行推理,直到得出相应的结论为止© 推理机包含推理方法与操纵策略两部分« 推理方法有精确推理与不精确推理( 已在推理章节介绍)® 操纵策略要紧指推理方向操纵及推理规则选择策略令 推理有正向推理、反向推理与正反向混合推理® 推理策略通常还与搜索策略有关( 己在推理章节介绍)推理机性能/ 构造与知识的表示方法有关,但与知识的内容无关。 保证推理机与知识库的独立性,提高灵活性知识获取机构® “ 瓶颈” ,是建造与设计专家系统的关键& 基本任务是为专家系统获取知识,建立起健全、完善、有效的知识库,以满足求解领域问题的需要» 要对知识进行一致性、完整性检测人机接口© 专家系统与领域专家、知识工程师、通常用户间进行交互的界面,由一组程序及相应的硬件构成,用于完成输入输出工作« 更新、完善、扩充知识库;推理过程中人机交互;结束时显示结果 内部表示形式与外部表示形式的转换数据库0又称“ 黑板” 、” 综合数据库” 或者“ 动态数据库” ,要紧用于存放用户提供的初始事实、问题描述及系统运行过程中得到的中间结果、最终结果等信息® 数据库是推理机不可缺少的工作场地,同时由于它可记录推理过程中的各类有关信息,又为解释机构提供了回答用户咨询的根据( 需相应的数据库管理程序)解释机构:回答用户提出的问题,解释系统的推理过程,使系统对用户透明7.3 答:(1 )传统程序是根据某一确定的算法与数据结构来求解某一确定的问题,而专家系统是根据知识与推理来求解问题,这是专家系统与传统程序的最大区别传统程序=数据结构+ 算法专家系统= 知 识 + 推 理(2 )传统程序把关于问题求解的知识隐含于程序中,而专家系统则将知识与运用知识的过程即推理机分离。 使专家系统具有更大的灵活性, 使系统易于修改)(3 )从处理对象来看,传统程序要紧是面向数值计算与数据处理,而专家系统则面向符号处理 传统程序处理的数据多是精确的, 对数据的检索是基于模式的布尔匹配,而专家系统处理的数据与知识大多是不精确的、模糊的,知识的模式匹配也多是不精确的4 )传统程序通常不具有解释功能,而专家系统通常具有解释机构,可对自己的行为作出解释5 )传统程序由因此根据算法来求解问题,因此每次都能产生正确的答案,而专家系统则像人类专家那样工作, 通常产生正确的答案,但有的时候也会产生错误的答案( 这也是专家系统存在的问题之一) 专家系统有能力从错误中吸取教训, 改进对某一工作的问题求解能力6 )从系统的体系结构来看,传统程序与专家系统具有不一致的结构7.4答:可行性分析: 威 特 曼 (Watermam)从三方面研究如何选择适合专家系统开发的问题(1)什么情况下开发专家系统是可能的?( 满足! )①问题的求解要紧依靠经验性知识,而不需要大量运用常识性知识②存在真正的领域专家,这也是开发专家系统最重要的要求之一专家务必能够描述与解释他们用于解决领域问题的方法③通常某领域中有多个专家,他们应该对领域答案的选择与精确度有基本一致的看法④ 任 务 易 ,有明确的开发目标,且任务能被很好地懂得⑵什么情况下开发专家系统是合理的? ( 之一! )①问题的求解能带来较高的经济效益② 人类专家奇缺,但又十分需要,且十分昂贵③ 人类专家经验不断丢失④危险场合需要专门知识(3)什么情况下开发专家系统是合适的? ( 特征! )① 本 质 一问题本质上务必能很自然地通过符号操作与符号结构来进行求解,且问题求解时需要使用启发式知识,需要使用经验规则才能得到答案②复杂性——问题不是太容易且较为重要③ 范 围 ——问题需要有适当的范围。 选择适当的范围是专家系统的关键,通常有两个原则:一是所选任务的大小可驾驭;二是任务要有有用价值7.5 答:专家系统的设计原则(1)专门任务(2)专家合作(3)原型设计(4)用户参与(5)辅助工具领域大小反复磋商, 团结协作从 “ 最小系统” 到“ 扩充式” 开发充实、完善知识库提高设计效率(6)知识库与推理机分离 表达特征, 灵活专家系统的开发步骤知识工程比软件工程更强调渐进性、扩充性重新描述(1 )问题识别阶段——知识工程师与专家确定问题的重要特点,抓住问题各要紧方面的特征①确定人员与任务②问题识别:描述问题的特征及相应的知识结构,明确问题的类型与范围③确定资源:确定知识源、时间、计算设备与经费等资源④确定目标:确定问题求解的目标(2 )概念化阶段——要紧任务是揭示描述问题所需的关键概念、关系与操纵机制,子任务、策略与有关问题求解的约束①什么类型的数据有用,数据之间的关系如何?②问题求解时包含什么过程,这些过程中有什么约束?③问题是如何划分成子问题的?④信息流是什么?什么信息是由用户提供的,什么信息是应当导出的?⑤问题求解的策略是什么?(3)形式化阶段—把概念化阶段概括出来的关键概念、子问题与信息流特征形式化地表示出来( 毕竟使用什么形式, 要根据问题的性质选择适当的专家系统构造工具或者适当的系统框架)◎ 三个要紧的因素是:假设空间 基本的过程模型 数据形式化阶段假设空间①把概念描述成结构化的对象,还是处理成基本的实体?②概念之间的因果关系或者时空关系是否重要,是否应当显式地表示出来?③假设空间是否有限?④假设空间是由预先确定的类型构成的,还是由某种过程生成的?⑤是否应考虑假设的层次性?⑥是否有与最终假设与中间假设有关的不确定性或者其它的判定性因素?⑦是否考虑不一致的抽象级别?形式化阶段基本的过程模型® 找到能够用于产生解答的基本过程模型是形式化知识的重要一步& 过程模型包含行为的与数学的模型( 假如专家使用一个简单的行为模型, 对它进行分析, 就能产生很多重要的概念与关系)( 数学模型能够提供附加的问题求解信息, 或者用于检查知识库中因果关系的一致性)形式化阶段数据的性质①数据是不足的、充足的还是冗余的?②数据是否有不确定性?③对数据的解释是否依靠于出现的次序?④获取数据的代价是多少?⑤数据是如何得到的?⑥数据的可靠性与精确性如何?⑦数据是一致的与完整的吗?( 4) 实现阶段c把形式化知识变成计算机的软体,即要实现知识库、推理机、人机接口与解释系统( 知识的一致性与相容性)& 推理机应能模拟领域专家求解问题的思维过程与操纵策略© 务必很快地实现( 实现原型系统的目的之一是检查开发早期阶段的设计是否有效)( 5) 测试阶段® 通过运行实例评价原型系统与用于实现它的表达形式,从而发现知识库与推理机制的缺陷© 性能不佳的因素:①输入输出特性,即数据获取与结论表示方面存在缺陷比如, 提问难于懂得、含义模糊, 使得存在错误或者不充分的数据进入系统; 结论过多或者者太少, 没有适当地组织与排序, 或者者全面的程度不适当②推理规则有错误、不一致或者不完备③操纵策略问题,不是按专家使用的“ 自然顺序” 解决问题测试的要紧内容:①可靠性——通过实例的求解,检查系统所得出的结论是否与已知结论一致②知识的一致性——向知识库输入一些不一致、冗余等有缺陷的知识,检查是否可检测出来检查是否会给出不应给出的答案检测获取知识的正确性( 如有某些自动获取知识功能)③运行效率——知识查询及推理方面的运行效率,找出薄弱环节及求解方法与策略方面的问题④解释能力———是检测能回答什么问题,是否达到了要求;二是检测回答问题的质量( 说服力)⑤人机交互的便利性7.6 答:专家系统种类 解决的问题_ _ _ _ _ _ _ _ _ _ _ _ _解 释 根据感知数据推理情况描述诊 断 根据观察结果推断系统是否有故障预 测 推导给定情况可能产生的后果设 计 根据给定要求进行相应的设计规 划 设计动作控 制 操纵整个系统的行为监 督 比较观察结果与期望结果理学试修教调执行计划来实现规定的补救措施诊断、调整、修改学生行为建议故障的补救措施( 1)解释型专家系统© 能根据感知数据,通过分析、推理,从而给出相应解释。 务必能处理不完全、甚至受到干扰的信息, 给出一致且正确的解释)0 代表性:DENDRAL ( 化学结构说明) 、PROSPECTOR ( 地质解释)等( 2)诊断型专家系统® 能根据取得的现象、数据或者事实推断出系统是否有故障,并能找出产生故障的原因, 给出排除故障的方案( 目前开发、应用得最多的一类)® 代表性:PUFF ( 肺功能诊断系统) 、PIP ( 肾脏病诊断系统) 、DART ( 计算机硬件故障诊断系统)等( 3)预测型专家系统& 能根据过去与现在信息( 数据与经验)来推断可能发生与出现的情况( 天气预报、市场预测、人口预测等)( 4)设计型专家系统© 能根据给定要求进行相应的设计( 工程设计、电路设计、服装设计)® 代表性:XCON ( 计算机系统配置系统) 、KBVLSI ( VLSI电路设计专家系统)等( 5)规划型专家系统0能按给定目标拟定总体规划、行动计划、运筹优化等( 机器人动作操纵、军事规划、城市规划等)令 代表性:NOAH ( 机器人规划系统) 、SECS ( 帮助化学家制定有机合成规划的专家系统) 、TATR ( 帮助空军制订攻击敌方机场计划的专家系统)等( 6)操纵型专家系统能根据具体情况,操纵整个系统的行为® 代表性:YES/MVS ( 帮助监控与操纵MVS操作系统)( 7)监督型专家系统© 能完成实时的监测任务,并根据监测到的现象作出相应的分析与处理令代表性:REACTOR ( 帮助操作人员检测与处理核反应堆事故)( 8)修理型专家系统» 能根据故障的特点制订纠错方案,并能实施该方案排除故障,当制订的方案失效或者部分失效时,能及时采取相应的补救措施( 9)教学型专家系统© 能根据学生学习过程中所产生的问题进行分析、评价、找出错误原因,有针对性地确定教学内容或者采取其它有效的教学手段© 代表性:GUIDON ( 讲授有关细菌感染性疾病方面的医学知识)( 10)调试型专家系统令 能根据相应的标准检测被测试对象存在的错误,并能从多种纠错方案中选出适用于当前情况的最佳方案,排除错误专家系统的应用领域已扩展到数学、物理、化学、医学、地质、气象、农业、法律、教育、交通运输、机械、艺术与计算机科学本身,甚至渗透到政治、经济、军事等重大决策部门, 产生了巨大的社会效益与经济效益, 同时也促进了人工智能基本理论与基本技术的进展。 7.7答:( 1)正向推理:见教材P206图 7.7(2)反向推理:见教材P212图7.127.8答:(1)知识获取的任务© 基本任务:为专家系统获取知识,建立起健全、完善、有效的知识库,以满足求解领域问题需要①抽取知识 识别、懂得、筛选、归纳等, 及自学习②知识的转换令 第一步:从专家及文献资料处抽取的知识转换为某种知识表示模式, 如产生式规则、框 架 等 ( 知 识 工 程 师 完 成 )®第 二 步 : 该模式表示的知识转换为系统可直接利用的内部形式 输入及编译实现)③知识的输入 知识编辑器④ 知 识 的 检 测不一致、不完整等⑵知识获取的模式①非自动知识获取( 人工移植) 幼汉工程仍知识编辑器②自动知识获取e系统具有获取知识的能力,它不仅能够直接与领域专家对话,从专家提供的原始信息中学习到专家系统所需的知识,而且还能从系统自身的运行实践中总结、归纳出新的知识,发现知识中可能存在的错误,不断自我完善,建立起性能优良、知识完善的知识库A具有识别语音、文字、图像的能力A具有懂得、分析、归纳的能力A具有从运行实践中学习的能力③半自动知识获取7.9 答:正确性(1)系统设计的正确性①系统设计思想的正确性②系统设计方法的正确性等③设计开发工具的正确性(2)系统测试的正确性如目标、原则等如知识表达方法、 知识推理方法、 操纵策略、 解释方法如正确使用与正确保护①测试目的、方法、条件的正确性②测试结果、数据、记录的正确性(3)系统运行的正确性①推理结论、求解结果、咨询建议的正确性②推懂得释及可信度估算的正确性③知识库知识的正确性 语法、语义与语用及专业内容有用性(1)推理结论、求解结果、咨询建议的有用性(2)系统的知识水平、可用范围、易扩充性、易更新性等(3)问题的求解能力( 解题速度、推理效率) ,可能场合与环境(4)人机交互的友好性(5)运行可靠性、易保护性、可移植性(6)系统的经济性( 软硬件投资、运行保护费用、设计开发费用与系统运行取得的直接或者间接经济效益)7.10答 : ( 1)四种要紧的类型:①用于开发专家系统的程序设计语言② 骨 架 系 统③通用型知识表达语言④专家系统开发环境(2)专家系统开发环境( 工具包)令 AGE是斯坦福大学研制的一个专家系统开发环境。 AGE是典型的模块组合式开发工具,为用户提供了一个通用的专家系统结构框架,并将该框架分解为许多在功能与结构上较为独立的的组件部件,这些组件已预先编制成标准模块存在系统中令AGE使用了黑板模型来构造专家系统结构框架c可通过两条途径构造自己的专家系统:①用户使用AGE现有的各类组件作为构造材料, 很方便地来组合设计自己所需的系统② 用 户 通 过 AGE的工具界面,定义与设计各类所需的构成部件,以构造自己的专家系统» 应用AGE已经开发了一些专家系统,要紧用于医疗诊断、密码翻译、军事科学等方面7.11 答:EMYCIN是由MYCIN系统抽去原有的医学领域知识,保留骨架而形成的系统( 产生式规则表达知识、目标驱动的反向推理操纵策略) 0 EMYCIN具有MYCIN的全部功能:①解释程序——能够向用户解释推理过程②知识编辑程序及类英语的简化会话语言——提供一开发知识库的环境,使得开发者能够使用比LISP更接近自然语言的规则语言来表示知识③知识库管理与保护手段——所提供的开发知识库的环境还能够在进行知识编辑及输入时进行语法、一致性、是否矛盾与包含等检查④跟踪与调试功能EMYCIN开发的一些专家系统( 适合开发各类领域咨询、诊断型专家系统) 。 SACON第八章机器学习8.2 答:(1)学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的 学习中所用的推理越多,系统的能力越强( 2) 机器学习是一门研究机器获取新知识与新技能, 并 识 别 现 有 知 识 的 学 问“ 机器” 一计 算 机 ( 电子, 以后还可能是中子计算机、光子计算机或者神经计算机等)8 . 3答:机器学习系统的结构及基本功能当监督环节为示教人* , 为示教式学习暴鹏监督环节为监督落时, 为自学式学习系统① 知识库 存 储 ( / 历 ) 、姆存知识 选例、• 长期经历(E T1 )一疵 知 识 耳 冢 事 岬 基 本 概 念 与 * 义、 定律与公理, 博弈的基本规则等 : / / \• 中期经历( 产'/环里事山即 各 类 黑 知 识、• 短期经历( 6、 监 督 工熹. 映 汽r T,执 _ 密 穿“ 黑板② 学 习 元 学习系印勺核心环节• 采 集 环 境 信 息 ,选例环节或者直接采集• 同意监督指导 监督环节的示教、指导信息或者评价准向• 进行学习推理 获得有关问题的解答与结论• 修改知识库 将推理结果输入知识库, 对知识增删改③ 执行元 识别、论证、决策、判定模式分类器、专家咨询解释系统、智能操纵机构、机械手/ 人等如执行元行动结果直接引起环境的变化。 “ ”学习系统机器人规划、生产过程操纵、机器博弈等④监督环节人:示教者;监督器:评价准则或者检验标准• 工作执行效果评价一一同意来自执行元环节的反馈信息, 对系统的工作执行效果进行评价与检验• 制定评价标准一一同意来自环境变化的信息, 制定与修订评价标准与检验标准• 监督学习环节——根据评价与检验的结果, 对学习环节进行示教、训练或者指导• 操纵选例环节一一根据环境变化信息及工作执行效果的反馈, 操纵选例环节, 选取其它事例或者样本⑤ 选例环节作用是从环境中选取有典型意义的事例或者样本, 作为系统的训练集或者学习对象 如选择典型病历, 以便提高学习效率, 加速学习过程选例环节能够由人或者机器来实现© 环境系统获取知识与信息的来源, 执行的对象与人物等如, 医疗专家系统的病员、 病历档案、医生、诊断书等; 模式识别系统的文字、图象、物景; 博弈系统的对手、棋局; 智能操纵系统的被控对象与生产过程等8 . 4 答:( 1 ) .机械学习模型© 机械学习——一种最简单的机器学习方法® 机械学习是最基本的学习过程,任何学习系统都务必记住它们获取的知识© 机械学习系统:知识的获取是以较为稳固与直接的方式进行的,不需要系统进行过多的加工0机械学习就是经历,即把新的知识存储起来,供需要时检索调用,而不需要计算与推理© 归纳过程能够简化成推导过程直接使用求根公式计算一个一元二次方程的根 自学( 2 ) .机械学习的要紧问题① 存储组织信息② 环境的稳固性与存储信息的适用性问题。 密切监视外界环境的变化, 不断地更换所储存的信息; 核对③ 存储与计算之间的权衡预估算;“ 选择忘却” 技术8.5 答:( 1)示例学习:病态细胞的分类识别比如图,图6.3病细胞( Pi)和正宝细胞( Ni)的例子• 正例——三个病细胞( P1,P2,P3) ,• 反例——二个正常细胞( N1,N2);• 每个细胞由二个细胞体构成*细胞体表示为三元组:( 核数、尾数、染色状) ,*P 1: { ( 2, 2 ,深) (1, 1 ,浅) } • 学习任务——从例子集中归纳出有病状X的细胞A .概念描述的搜索与获取概念描述♦ 假设不必给每个特性( 属性)都指明应取值:*没有给出值的特性( 以?指示)——关于该概念的描述无关紧要;*病细胞假设(a ): { ( 2, ?, ?) ( ?, 1 ,深) } , 一个细胞体有二个胞核;另一个有一个尾巴,且染色是深的•病细胞假设空间的半序图( 图6.5)禺6.4根故支河上的一个沌如糖化养余03 6 . 5的 ㈠ 更 尘 间 的 平 序 曲•假设之间的关系弧指示泛化/ 特化关系,•假设空间上的一个泛化/ 特化关系( 图 6 .4 ) ,* 假 设 ( b )不考虑细胞体是否有尾巴,比假设( a )复盖更多的例子;* 假 设 ( b )比假设( a )泛化;* 假 设 ( a)比假设( b)特化。 • 底层假设——最 特 化 ( 具体)的概念描述:* 所有特性都给定特别值, 对应于例子空间中的一个例子• 顶层假设——最泛化的概念描述:* 不指定任何具体的特性值,* 表示为{ ( ? ? ? ) , ( ? ? ? ) } o•假设空间中的搜索方式• 特化搜索——从最泛化的假设( 概念描述)出发,每次取用一个新的例子,就产生一些特化的描述,直到将初始最泛化的假设特化为解描述•泛化搜索——从最特化的假设( 相应于例子空间中的一个例子)开始,每次取用一个新的例子时,就产生一些泛化的描述,直到产生出足够泛化的解描述• 大多数示例学习方法都使用这二种方法或者这二个方法的结合B .逐步泛化的学习策略•使用宽度优先、自底向上的搜索方式:•将 第一个正例( P 1 )作为初始假设( H 1 ) 一一极端特化的假设:• 正 例 ( P 2 )用于指导系统生成泛化的假设( H 2 与H 3 ):* 多个泛化的假设——不一致的映射会导致不一致的假设,- 假设H 1 中包含了二个对象 ( 细胞体);* 使用保守原则——最低限度的泛化, :-新的假设刚好覆盖现有的假设/ 例子• 反 例 ( N 1 )用来剪裁过于泛化的假设:• H 3 是过于泛化的假设,由于其蕴涵了反例N 1 。 基本策略:• 遇见正例就泛化某些假设以保证假设的完全描述性,• 遇见反例则删去某些假设以保证假设的一致描述性,• 直至得到一个既完全又一致的解描述( 假设) 为止• 这个解描述作为满足给定例子集的概念定义一一学习系统获得的新知识8) 6 .6迪什氏化学习京哈的仪迪电冏技系C .逐步特化的学习策略•使 用宽度优先、自顶向下的搜索方式( 与泛化策略相反):• 新例子的加入会导致新假设的增加与已存在假设的删除( 与泛化策略类似)• 正例与反例所起的作用与泛化策略相反:• 反例一一生成一些特化假设;* 使用保守的原则一一最低限度的特化: -新的假设在覆盖已有正例的同时只是刚好能排斥反例;• 正例一一剪裁过于特化的假设图6.8 逐步特化学习第喀的假设•史问校去( 2)类比学习:“ 肖锋象部消防车” 中, 考虑肖锋与消防车之间的相似©关 于 肖 锋 ( 目宓灌架)与 消 防 车 ( 源落架)的框架为:肖锋是 一 个( ISA)人性别男活动级音量进取心中等消防车是 一 辆( ISA)车辆颜色红活动级快音量极高燃料效率中等梯高异 或 者 ( 长,短 )进取心是 一 种( ISA)个人品德»现在目的是用消防车的信息来扩充肖锋的内容启发式规则:①选择那些用极值填写的槽②选择那些已知为重要的槽③选择那些与源框架没有密切关系的槽④选择那些填充值与源框架没有密切关系的槽⑤使用源框架中的一切槽令 这组规则用来寻找一种好的传递。 对上述例题,将有下面一些结果:①活动级槽与音量级槽填有极值,因此它们首先入选②假如它们不存在,那么根据第②规则选择那些标记为特别重要的槽 本例无此情况③下一规则将选择梯高槽,由于该槽不出现在其它类型的车辆中④下一规则将选颜色槽,因其它车辆都不是红色⑤ 最 后 一 条 规 则 ,若用它,则消防车的所有槽均为可能的相似8 . 6- 8 . 8 答:略第九章人工神经网络9 . 1 答:( 1 )误差纠正学习;A w k j = r ] e k ( n ) x j ( n ) ;址( " ) 为输入M ( " )时,神经元k在" 时刻的实际输出,以( 〃 ) 表示应有的输出( 可由训练样本给出) ;其中〃为学习步长,这就是通常所说的误差纠正学习规则( 或者称d e l t a学习规则) 2 ) He b b学习;A w k j ( n ) = F ( y k ( n ) , x j ( n ) ) ;当某一突触( 连接) 两端的神经元同步激活( 同为激活或者同为抑制) 时,该连接的强度应为增强,反之应减弱;由于Aw灯与洪( 〃 ) ,欢 〃 )的有关成比例,有的时候称之有关学习规则。 3)竞 争( C o m p e t i t i v e )学习;J 7 ( % , . - 若神经元/ 竞争获胜加 % =jo 若神经元/ 竞争失败;在竞争学习时,网络各输出单元互相竞争, 最后达到k看一个最强者激活, 最常见的一种情况是输出神经元之间有侧向抑制性连接, 这样原先输出单元中如有某一单元较强,则它将获胜并抑制其它单元,最后只有此强者处于激活状态9 . 2 答:略9 . 3 答:B - P算法的学习过程如下:(1)选择一组训练样例,每一个样例由输入信息与期望的输出结果两部分构成2)从训练样例集中取一样例,把输入信息输入到网络中3)分别计算经神经元处理后的各层节点的输出<4)计算网络的实际输出与期望输出的误差.(5)从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向进展的原则,调整网络中各神经元的连接权值6)对训练样例集中的每一个样例重复( 3 ) — (5)的步骤,直到对整个训练样例集的误差达到要求时为止文件头:#include 将经历用能量函数(Lyapunov)来表示,同时在每个处理单元( 神经元)中引入了异步工作方式显著特点就是:许多已有的结构,不管是信息处理单元还是信息存储单元,都是并行工作的 但从信息处理的角度看,虽支持并行分布信息存储, 但是信息处理并不是确实以并行方式进行优点是:通常的神经网络要求在所有的时间里,每一个处理单元都要有整个网络的全局信息,而 Hopfield网络就减少了这种要求,Hopfield联想经历模型迭代过程为不断地从一顶角转向具有更小能量的另一顶角, 直至稳固于具有最小能量的一个顶角与之相对应,连 续 的 Hopfield联想经历模型迭代过程,从一个起始状态到另一个全局极小值( 预存状态) 来穿越超空间当所有的神经元都被访问到,同时没有神经元再改变状态时, 就认为网络已经收敛9.6 答:下面的程序描述了 Hopf i e l d神经网络求解TS P的改进算法, 其中A、 为实验值.算法0 . > 1=1. 5 , D = l i 1 .读入N城市之间的距离d » C r , » =l , 2 … , n )文件.2 .计其神经元之间的权重T , , . ”和输入偏置L uT= — A8ty—A3,, — 1, ( x , y , i = 1, 2 , , / “ = 2 A3 . % a )的初始值在o附近随机产生C r , i =l , 2 , … , N ).4 .计算匕( 。 工 ,1=1, 2 ,・“ , ” ), 匕( , ) = 】 /2 ( 1+1» 1111( 1«舒3 / « 0 ) +这里 uo=O . 0 2n ■5 .利用神经元动态方程, 计算…, ” ). 心“ ( 八 =2 2 ? …匕―/ 叱, - 1 / *16 .根据一阶尤拉法计算%( 2 +1), (工, "1, 2 ,…川), %( 什1 ) = % 0+△« *,)△ ( , ), 这里 里 取0 . 5 .7 .如果系统达到平衡状态, 那么终止程序, 否则返回第4步 .用 pascal写的hopfield神经网络解决TSP问题的代码:initializedist[max_city,max_city] := 0.0 ;FOR c 1 := 'A* TO max_city DOFOR i := 1 TO max_position DOu[cl,i] := uOO + (((2 * random - 1.0)/ 10.0) * uO);clrscr;writeln(TSP [c] 1987 Knowledge Garden Inc.');writelnC1473A Malden Bridge Rd');writelnf Nassau, NY 121231);writein ;writeln(Press 当前人工智能游戏研发还处于初级阶段过去几年所用到的一些常用的技术,如脚本行为与A * 路径搜索算法已经与二维图像技术相比了, 一些公司开始尝试从人工智能领域进展出更高级的技术( 如决策树与强化学习) 许多游戏研发人员认为仿生机器人是处理人工智能NPC最合理的手段, 仿生机器人本质上是生活在虚拟环境下的综合制造物,能够通过多种学习算法来习惯环境10.2 答:略。












