简介:这份资料面向备战人工智能课程期末考试的本科生与考研复习者,以经典习题解答配合各章小结的形式,帮助梳理人工智能理论体系并训练解题思路。压缩包共1个doc文档,约2.19MB,内容按章节组织,涵盖绪论、知识表示、推理等模块,每部分先给出本章小结再附习题解答。绪论部分梳理了人工智能的定义、五个发展阶段、搜索技术与知识表示等基本内容,以及符号主义、连接主义、行为主义三大学派和问题求解、自然语言理解、专家系统、机器学习等研究领域;知识表示章节围绕谓词表示法、产生式表示法、框架表示法与语义网络展开,并用旅行商路线规划、产生式规则设计等例题演示建模过程;推理部分则以盗窃犯归结演绎推理、兄弟同父等经典题目呈现归结原理的完整推导步骤。已有101人学习,适合需要系统刷题、对照答案查漏补缺的读者。
1. 人工智能期末复习:从“背概念”到“拿分”的差距在哪
很多人复习人工智能,第一反应是把绪论里“什么是人工智能”背得滚瓜烂熟,结果一上考场,发现分值全压在归结演绎推理和代价树搜索上。这场考试考的不是你知不知道三大流派,而是你能不能把一句自然语言准确翻译成谓词公式、能不能在代价树上一步步排出 OPEN 表和 CLOSED 表、能不能用产生式规则把旅行路线写清楚。拿分的关键只有一条:把每类题的“标准动作”练成肌肉记忆。这份经典习题集和各章总结,覆盖绪论、知识表示、推理、搜索策略四大模块,适合正在准备期末、想把习题从头到尾过一遍的人。下面按考点分布、高频题型、答题思路、易错点逐层拆开,你照着练就行。
2. 绪论与知识表示:三个必背考点和两类表示法题
2.1 绪论部分真正会考的三个点
绪论内容多,但落到卷面上,真正高频的只有三块:人工智能的定义与学科性质、发展五阶段、三大研究学派。定义题不要只写“让机器像人一样思考”,要答出“计算机科学的重要分支、综合性前沿学科、由计算机科学、控制论、信息论、神经生理学、哲学、语言学等多学科渗透发展而来、目前尚未形成完整体系”。这几句是踩分点,少一句就少一分。
发展五阶段按时间线背:40年代中到50年代末的神经元网络时代、50年代中到60年代中的通用方法时代、60年代中到80年代初的知识工程时代、80年代中到90年代初的新神经元网络时代、90年代初至今的海量信息处理与网络时代。考试常以“简述人工智能发展经历了哪些阶段”出现,答题时每个阶段带上时间区间和标志性技术方向,不要只写阶段名。
三大研究学派是选择题和简答题的常客。符号主义由心理学途径产生,认为智能的基本元素是符号、智能行为是符号运算的结果;连接主义由生理学途径产生,又称仿生学派,认为基本元素是神经元、智能产生于大量神经元的并行分布式联结;行为主义由生物演化途径产生,认为智能取决于感知和行为、取决于对外界复杂环境的适应。答题时把“途径、基本元素、智能来源”三要素对齐,表格化记忆最稳。
提示:研究领域那串长名单(问题求解、逻辑推理与定理证明、自然语言理解、自动程序设计、专家系统、机器学习、神经网络、机器人学、模式识别、机器视觉、智能控制、智能检索、智能调度与指挥、分布式人工智能与Agent、计算智能与进化计算、数据挖掘与知识发现、人工生命、系统与语言工具)不需要逐字背,记住前六七个加“等”即可,简答题写全反而浪费时间。
2.2 知识表示:四种表示法的对比与产生式规则题
知识表示这一章的核心是四种表示法的特点对比,以及用产生式规则描述一个具体过程。四种表示法分别是谓词表示法、产生式表示法、框架表示法、语义网络表示法。谓词表示法是先定义谓词、指出每个谓词的确切含义,再用连接词把有关谓词连接成谓词公式表达完整意义;产生式系统由规则库、综合数据库、控制系统三部分组成;框架由槽组成,每个槽有若干侧面,每个侧面又可拥有若干个值;语义网络由节点和弧线组成,节点表示物体、概念和状态,弧线表示节点间的关系。
真题里最典型的是“五城市旅行路线用产生式规则表示”。这类题的答题模板是固定的:先定义综合数据库,再写初始状态和目标状态,最后列规则集。以A、B、C、D、E五城市、从A出发各参观一次后回A为例,综合数据库(x)中x可以是一个字母也可以是一个字符串,初始状态(A),目标状态(Ax1x2x3x4A),规则集写成 r1: IF L(S)=5 THEN GOTO(A);r2: IF L(S)<5 THEN GOTO(B);依次到E,其中L(S)为走过的城市数,GOTO(x)为走向城市x。最后补一句最短路线和总距离,比如A->C->D->E->B->A,总距离5+6+8+10+7=36。
语义网络题常考“用语义网络表示一句话”,比如两校篮球队比赛比分85:89。答题时先画节点:两个队各一个节点、比赛一个节点、比分一个节点,再用弧线标出“参赛”“比分”等关系。文字作答时写清“节点表示什么、弧线表示什么关系”,不要只画图不解释。
2.3 真题演练:谓词公式化与子句集
这一节给一道必须动手的题:任何兄弟都有同一个父亲,John和Peter是兄弟,且John的父亲是David,问Peter的父亲是谁。标准动作分五步。
第一步定义谓词:Father(x,y)表示x是y的父亲,Brother(x,y)表示x和y是兄弟。第二步把已知事实写成谓词公式:F1为(∀x)(∀y)(∀z)(Brother(x,y)∧Father(z,x)→Father(z,y)),F2为Brother(John, Peter),F3为Father(David, John)。第三步化成子句集,得S1={¬Brother(x,y)∨¬Father(z,x)∨Father(z,y), Brother(John, Peter), Father(David, John)}。第四步把问题否定并与ANSWER析取:设Peter的父亲是u,则G为¬Father(u, Peter)∨ANSWER(u),化成子句集S2后与S1合并。第五步归结:由(1)与(3)归结得¬Brother(John,y)∨Father(David,y),再与(4)归结得¬Brother(John, Peter)∨ANSWER(David),最后与(2)归结得ANSWER(David),所以Peter的父亲是David。
% 亲属关系小型演绎数据库(对应习题中的PROLOG程序) domains name=symbol. sex=symbol. age=integer. predicates person(name,sex,age) mother(name,name) father(name,name) brother(name,name) sister(name,name) grandfather(name,name) grandmother(name,name) clauses person(alan,m,21). person(john,m,22). person(marry,w,23). person(ann,w,24). mother(alice,alan). mother(alice,john). mother(alice,marry). mother(alice,ann). mother(marry,jane). father(alan,tom). father(tom,ben). % 兄弟:同母、同为男性、年龄大者为兄 brother(Name1,Name2):- person(Name1,m,Age1),person(Name2,m,Age2), mother(Z,Name1),mother(Z,Name2),Age1>Age2. % 姐妹:同母、同为女性、年龄大者为姐 sister(Name3,Name4):- person(Name3,w,Age3),person(Name4,w,Age4), mother(Z,Name3),mother(Z,Name4),Age3>Age4. grandfather(Name1,Name2):-father(Name1,Y),father(Y,Name2). grandmother(Name7,Name8):-mother(Name7,X),mother(X,Name8).这段PROLOG程序的关键在规则部分:brother规则用四个条件约束——两人都是男性、同母、年龄大者为兄,缺一个条件就会把姐妹或异母兄弟误判进来。grandfather规则用链式调用father(Name1,Y)和father(Y,Name2),表示“父亲的父亲”。考试若要求写规则,重点检查变量共享是否正确:mother(Z,Name1)和mother(Z,Name2)里的Z必须是同一个变量,否则“同母”这个约束就失效了,这是最常见的翻车点。
3. 推理模块:归结演绎推理的固定套路与易错点
3.1 归结演绎推理的五步标准流程
推理这一章分值最重的是归结演绎推理,几乎每年必考一道大题。这类题有固定五步:定义谓词、将已知条件写成谓词公式、化成子句集、把结论否定并与ANSWER析取、反复归结直到得到ANSWER。以“张某被盗,五个侦察员各说一句话,求谁是盗窃犯”为例,先定义P(x)表示x是作案者,五句话分别写成P(zhao)∨P(qian)、P(qian)∨P(sun)、P(sun)∨P(li)、¬P(zhao)∨¬P(sun)、¬P(qian)∨¬P(li),每个都是一子句。待求解问题写成P(y),否定后与ANSWER析取得¬P(y)∨ANSWER(y)。把六个子句编号列出,然后两两归结:P(qian)∨P(sun)与¬P(zhao)∨¬P(sun)归结得P(qian)∨¬P(zhao),继续推下去,最终得到ANSWER(qian)和ANSWER(sun),所以盗窃犯是钱和孙两个人。
答题时最容易丢分的地方不是归结本身,而是子句集化错。比如把“赵与钱中至少有一人作案”写成P(zhao)∧P(qian),那就全错了,应该是析取。再比如“赵与孙中至少有一人与此案无关”要写成¬P(zhao)∨¬P(sun),注意“与此案无关”就是“不是作案者”,取否定。归结过程中每一步都要标出是哪两个子句归结、置换是什么,阅卷时按步给分,跳步就丢分。
3.2 推理分类与不确定性推理的考点清单
推理这一章除了归结,还有几个概念型考点需要背准。推理按方式分经典逻辑推理、不确定与非单调推理;按方向分演绎推理、归纳推理、默认推理。归结演绎推理和与/或形演绎推理是两种重要的演绎方法,自然演绎推理则是从已知事实出发、按推理规则逐步推出结论。不确定性推理常考“什么是不确定性推理”——推理中所用的证据和知识不完全、不精确,推出的结论也不完全可靠,这种推理就叫不确定性推理。
注意:简答题问“简述归结原理”,标准答法是“归结原理是一种机器推理方法,其基本思想是通过对子句集中的子句进行归结,不断消去互补文字,直到得到空子句或产生ANSWER,从而证明定理或求解问题”。不要写成“把两个公式加起来”,那是不及格答法。
3.3 易错点:归结推理里四个高频失分动作
第一个失分动作是谓词定义不写清楚。题目给了人名,很多考生直接写P(zhao)却不说明P表示什么,阅卷时无法判断对错。正确做法是先写“设P(x)表示x是作案者”,再往下写公式。
第二个失分动作是子句集化时量词消错。比如(∀x)(∀y)(∀z)(Brother(x,y)∧Father(z,x)→Father(z,y))化成子句集,要先消去蕴涵得¬Brother(x,y)∨¬Father(z,x)∨Father(z,y),再去量词。有人直接把蕴涵符号留着,或者把∧和∨搞反,整道题就废了。
第三个失分动作是归结时置换不一致。比如由(1)与(3)归结时,σ={David/z, John/x},两个子句里的变量必须统一替换,不能一个用David一个用别的。置换写错,后面全错。
第四个失分动作是忘记ANSWER谓词。求“谁是盗窃犯”这类问题,结论必须写成¬P(y)∨ANSWER(y),归结到最后得到ANSWER(qian)才算完。只归结出P(qian)不写ANSWER,等于没回答“谁”。
4. 搜索策略:代价树、与/或树和α-β剪枝的答题模板
4.1 代价树搜索:广度优先与深度优先的步骤差异
搜索策略是整份习题里计算量最大的模块,高频题型是代价树的广度优先搜索和深度优先搜索。以五城市交通费用图、A出发E目的地为例,先把交通图转换成代价树,用g(x)表示从初始节点s0到节点x的代价,c(x1,x2)表示父节点到子节点的代价,则g(x2)=g(x1)+c(x1,x2)。
代价树广度优先搜索的动作是:扩展节点n,将其子节点放入OPEN表,计算各子节点代价,并按代价对OPEN表中全部节点从小到大排序。一步步扩展、排序、记录,最后得到最优路径A->C->D->E。代价树深度优先搜索的动作是:扩展节点n,将其子节点按代价从小到大放到OPEN表首部(栈),然后一直往深处走。这道题里两种方法结果相同,但习题特意注明“这只是巧合,一般情况下两种方法结果不一定相同”,而且深度优先搜索有可能进入无穷分支,是不完备的。
答题时要把每一步的OPEN表状态写出来,不能只写最终路径。阅卷按步骤给分,OPEN表排序过程就是得分点。深度优先搜索还要注意:虽然某个节点代价更大,但按策略仍要先扩展它,这个“反直觉”的步骤恰恰是考点。
4.2 与/或树搜索与解树代价计算
与/或树部分常考两个动作:用广度优先或深度优先求解释树,以及按和代价法、最大代价法计算解树代价。与/或树的广度优先搜索是先扩展初始节点,再逐层扩展,遇到可解节点就向上回溯判断父节点是否可解;深度优先搜索则是先沿一个分支走到底,再回溯。可解节点的判断规则必须背准:终止节点是可解节点;一个与节点可解当且仅当其子节点全都可解;一个或节点可解只要其子节点至少有一个可解。解树是由可解节点形成的子树,根为初始节点、叶为终止节点,且这棵子树一定是与树。
代价计算题给一棵与/或树,按和代价法h(B)=7、h(C)=3、h(A)=7+3+5+6=21;按最大代价法h(B)=5、h(C)=2、h(A)=5+5=10。和代价法是把子节点代价相加再加上边代价,最大代价法是取子节点中最大的那个再加边代价。两种方法算出来的数不一样,题目问哪种就按哪种算,不要混。
4.3 博弈树与α-β剪枝:两个值的定义和剪枝条件
博弈问题必考极大极小分析法和α-β剪枝。极大极小分析法的推算方法是:对“或”节点,选其子节点中一个最大的得分作为父节点得分,这是为了使自己在可选方案中选最有利的;对“与”节点,选其子节点中一个最小的得分作为父节点得分,这是为了立足于最坏情况。这样算出的父节点得分叫倒推值。
α-β剪枝的定义要一字不差地记:对于一个“与”节点,它取当前子节点中的最小倒推值作为它倒推值的上界,称此值为β值;对于一个“或”节点,它取当前子节点中的最大倒推值作为它倒推值的下界,称此值为α值。剪枝规律两条:任何“或”节点x的α值如果不能降低其父节点的β值,则对节点x以下的分枝可停止搜索,并使x的倒推值为α,这叫β剪枝;任何“与”节点x的β值如果不能升高其父节点的α值,则对节点x以下的分枝可停止搜索,并使x的倒推值为β,这叫α剪枝。
答题时先画博弈树、标出端节点估值,再自底向上推倒推值,每遇到一个节点就判断能不能剪枝,剪掉的分枝画叉并注明“β剪枝”或“α剪枝”。只写最终结果不写剪枝过程,这道题基本拿不到分。
4.4 状态空间搜索:OPEN表与CLOSED表的作用
状态空间的一般搜索过程是:先把初始状态作为当前扩展节点进行扩展,生成一组子节点,检查目标状态是否出现在这些子节点中;若出现则搜索成功,若没出现则按某种搜索策略从已生成子节点中选一个作为当前扩展节点,重复直到目标出现或没有可操作节点。所谓“扩展”就是对节点用某个可用操作生成一组子节点。
OPEN表用于存放刚生成的节点,不同搜索策略下节点在OPEN表中的排序不同;CLOSED表用于存放将要扩展或已扩展的节点。广度优先搜索始终先在同一级节点中考查,考查完才进入下一级,搜索树自顶向下一层层生成;深度优先搜索在每一层始终先只扩展一个子节点,不断向纵深前进,直到不能再前进才回溯。深度优先搜索可能误入无穷分支,所以是不完备的,得到的解也不一定是最佳解。这两条特点几乎每年都以简答题出现。
5. 易错题复盘:五类一考就丢分的题怎么答对
5.1 状态空间图题:三只琴键开关为什么到不了“开开开”
题目是三只琴键开关一字排开,初始状态“关、开、关”,连按三次,每次必须按下一个且只能按一个,问是否会出现“开、开、开”或“关、关、关”。错在哪:很多人直接凭感觉答“都能出现”。为什么错:没有画状态空间图,忽略了“每次只能改变一位”这个约束。怎么答对:用(K1,K2,K3)表示状态,0为闭合、1为打开,初始状态(0,1,0),一个状态的下一个状态只能有一位取值不同,据此画状态空间图,连续三步从(0,1,0)只能到达(0,0,0),不能到达(1,1,1),所以会出现“关、关、关”,不会出现“开、开、开”。答题时必须把状态表示、转换规则、状态图三样都写出来。
5.2 过河问题:约束状态写不全就丢分
农夫带狼、羊、菜过河,船太小每次只能带一样,没有农夫看管则狼吃羊、羊吃菜。错在哪:只写操作符不写约束状态。为什么错:这道题的得分点一半在约束条件,漏写约束等于没证明方案可行。怎么答对:用四元组(农夫、狼、羊、菜)表示状态,0在左岸、1在右岸,初始S=(0,0,0,0),目标G=(1,1,1,1);定义L(i)表示农夫带东西到右岸、R(i)表示到左岸,i=0农夫自己、i=1带狼、i=2带羊、i=3带菜;约束状态写四条:(1,0,0,X)狼羊在左岸、(1,X,0,0)羊菜在左岸、(0,1,1,X)狼羊在右岸、(0,X,1,1)羊菜在右岸。然后画状态空间图,路径为(0,0,0,0)→(1,0,0,0)→(0,1,0,0)→(1,1,0,0)→(0,1,1,0)→(1,1,1,0)→(0,0,1,0)→(1,0,1,0)→(0,0,1,1)→(1,0,1,1)→(0,1,1,1)→(1,1,1,1)。
5.3 代价树深度优先:结果相同不等于方法相同
错在哪:看到某道题深度优先和广度优先结果一样,就以为两种方法等价。为什么错:习题明确注明“该题两种搜索结果相同只是巧合,一般情况下不一定相同”,而且深度优先搜索是不完备的,可能进入无穷分支。怎么答对:答题时分别写出两种方法的OPEN表变化过程,并在深度优先部分注明“虽然D1代价大于B1,但按代价树深度优先策略仍要扩展D1”,最后补一句“深度优先搜索不完备,所得解不一定最优”。这句话是送分点,不写就亏。
5.4 与/或树可解性判断:与节点和或节点搞反
错在哪:把与节点的可解条件写成“子节点至少一个可解”。为什么错:与节点要求所有子节点全可解,或节点才是一个可解即可,这两个条件搞反,整棵解树就判错。怎么答对:背三句话——终止节点可解;与节点全子节点可解才可解;或节点任一子节点可解即可解。判断时从叶往根推,每到一个节点先看它是与还是或,再套条件。
5.5 简答题堆砌名词:研究内容题写满一页反而低分
错在哪:问“人工智能有哪些研究内容”,把十八个研究领域全抄上去。为什么错:题目问的是“研究内容”不是“研究领域”,标准答案应是搜索与求解、学习与发现、知识与推理、发明与创造、感知与交流、记忆与联想、系统与建造、应用与工程八个方面。怎么答对:先答八个方面,再补一句“具体研究领域包括问题求解、逻辑推理与定理证明、自然语言理解等”,点到为止。简答题按点给分,写得多不等于得分多,答偏了写满也没用。
6. 考前一周怎么练:把习题集当模拟卷用的方法
最后一周不要再从头看书,把这份习题集当模拟卷用。具体做法是:第一天到第二天,把绪论和知识表示的习题遮住答案自己做一遍,重点练“产生式规则表示旅行过程”和“语义网络表示比分”这两类动手题,做完对照答案检查踩分点是否齐全。第三天到第四天,专攻归结演绎推理,把盗窃犯题和兄弟父亲题各做两遍,第一遍允许看答案,第二遍必须独立写出五步流程,每一步标清子句编号和置换。第五天集中练代价树搜索,广度优先和深度优先各画两棵代价树,OPEN表每一步都写出来,写完对照习题里的步骤图检查排序有没有错。第六天练与/或树和α-β剪枝,重点是把“和代价法”和“最大代价法”各算三遍,再把剪枝条件默写一遍。第七天只做一件事:把易错点那五类题重新过一遍,每类题问自己“错在哪、为什么错、怎么答对”,能脱口而出就上考场。
我当年复习这门课,血泪经验就是归结推理看着懂、一动笔就错,后来强制自己每道归结题都按“定义谓词—写公式—化子句集—否定结论加ANSWER—逐步归结”五步走,一步不跳,正确率才稳下来。从那以后我每次做推理题都强制走一遍这五步,再也没在子句集化上翻过车。这份习题集和各章总结按模块整理好了,照着上面的顺序练,比漫无目的地翻书效率高得多,希望帮到你。
本文还有配套的精品资源,点击获取