简介这份百度人工智能经典考试试题文档面向准备AI课程考试、笔试或面试复习的学习者围绕语义网络、推理、知识表示、机器学习与自然语言处理等核心主题整理题目。内容覆盖选择题、填空题、简答计算题和应用题四种题型既有AI英文缩写、归结原理、正向推理、语义网络继承性等基础概念也涉及不确定性、可信度CF、MGU、三值逻辑、α-β剪枝及谓词逻辑证明等计算与应用题。压缩包内含1个doc文件约279KB便于直接查阅和打印练习文档后附参考答案与知识点说明可帮助读者按题型对照复盘、查漏补缺。目前已有1586人学习下载适合人工智能入门课程复习、笔试刷题和面试前概念梳理使用。1. 从一道「空子句」题说起这份卷子到底在考什么「人工智能面试题」里几乎没人追问「空子句是什么」但这类人工智能课程期末卷偏偏拿它当区分会不会做的关键点。整套 100 分选择 15、填空 30、简答计算 25、应用 30。真正决定能不能过线的不是「AI 英文缩写」这种送分题而是归结原理、MGU、α-β 剪枝、产生式系统这四块硬骨头——它们合计占 60 分上下且全是「会写就给分、不会写就整块空着」的题。想及格选择填空的 45 分基本盘丢分不能超过 5 分想高分25 分简答必须把步骤写全30 分应用题宁可画图写半成品也别留白。这份笔记适合准备人工智能课程期末、岗位笔试卷和复试加试的人按「考点分布 → 高频真题 → 答题步骤 → 失分点」走一遍60 分钟能画出一张完整的得分地图。2. 高频考点分布选择填空 45 分里的六个必考模块选择填空是整张卷子里唯一「记住就能拿分」的部分但记住的前提是知道命题人从哪个角度挖坑。把两套卷子的 30 道选择题和 30 个填空题摊开看出题面其实很窄全部落在下面六个模块里且重复率极高——同一道「空子句」题在两套卷里分别以第 2 题和第 12 题出现只是换了位置。2.1 概念记忆题缩写、学派、测试模型三连这类题的特点是一眼看上去都会但四个选项里总有一个长得像答案的干扰项。先看最典型的几道AI 的英文缩写。正确答案是 Artificial Intelligence。注意有些卷面把 Artificial 拼成 Artifical那是笔误考点只有「人工」「智能」两个词根选项里出现 Automatic自动和 Information信息的都是干扰。不属于人工智能学派的是。三大学派固定为符号主义、连接主义、行为主义选项里那个「机会主义」是政治经济学的词看到它直接选。1950 年提出机器智能测试模型的人。四个选项分别是神经网络方向、模糊数学、计算机体系结构、计算机科学奠基人四类代表答案只能是提出「机器能否思考」那个测试模型的人。判断技巧谁的名字和「图灵实验」绑定就选谁。机器能自动获取知识、实现自我完善的分支学科。题干里「自动获取知识」四个字就是机器学习的定义专家系统是「用规则库解决特定领域问题」神经网络是「一种计算结构」模式识别是「分类与匹配」别被后面的词带走。命题是可以判断真假的什么句。祈使句、疑问句、感叹句都不带真值只有陈述句能判真假。仅个体变元被量化的谓词叫什么。量化对象只到个体就是一阶谓词如果还能对谓词本身量化那才是二阶。或图通常称为什么图。或图描述的是「从初始状态经过若干操作到达目标」的展开标准答案就是状态图别选语义图那是知识表示和博弈图那是对抗搜索。这一组题共 7 分左右答题时不需要推理只需要不被形近词带走。我的经验是把自己不确定的题目标出来先做后面的计算题回来再选因为这类题犹豫超过 30 秒基本就是记混了多想无益。2.2 归结原理空子句、归结式与删除策略归结消解是这类卷子里出现频率最高的单一考点选择题、填空题、证明题都会出现。三条硬知识必须先固定下来。第一归结到什么程度算证明完成当归结式是空子句记作 □时定理得证。因为空子句表示「前提与结论否定之间产生了矛盾」矛盾出现即反证成功。选项里出现的「永真式」「包孕式」都是干扰永真式恒真推不出矛盾包孕式是被包含的多余子句属于删除对象。第二归结式的标准写法。设 C1 L ∨ C1′C2 ¬L ∨ C2′σ 是互补文字的最一般合一置换则归结式是C C1′σ ∨ C2′σ也就是「去掉互补文字后剩余部分各自施加置换再用析取连接」。干扰项通常写成 C1′ ∨ C2′漏掉置换或把 ∨ 写成 ∧逻辑关系错看到合取符号直接排除。第三删除策略也叫删除策略归结到底删哪三类子句。标准答案是删含纯文字的子句、删含永真式的子句、删被其他子句**包孕类含**的子句。这里最容易翻车的是第一项很多人会写成「删除重复子句」——重复子句是化简不是删除策略的三种类型之一。判断口诀纯的、永真的、被包住的一个不留。另外还有一条推理律必须能对上号(A→B) ∧ A ⇒ B 叫假言推理分离规则。同族的还有附加律、拒收律、假言三段论 (A→B)∧(B→C) ⇒ A→C填空题里经常只考其中一条写名字时不要张冠李戴。2.3 语义网络与知识表示AKO、ISA 考的是继承性语义网络的题只有两种问法一是问 AKO/ISA 弧表达什么二是让你画一个语义网络图。前者的答案固定是继承性。AKOa-kind-of表示「属于某类」ISAis-a表示「是一个」两者都让下层节点自动继承上层节点的属性这正是语义网络区别于其他知识表示方式的核心能力。选项里的「无悖性」「可扩充性」是语义网络的特点描述不是这两种弧的功能看到题干问「有向弧 AKO、ISA 用来表达什么」就只答继承性。配套的还有一道知识四要素题人工智能系统的知识包含事实、规则、控制与元知识不包含「关系」。这个知识点和语义网络放在一起考是因为语义网络用「节点 有向弧」表达关系但「关系」本身是表达手段不是知识要素。语义网络的图怎么画应用题会细说这里先记住画图的三条约定概念用节点方框或椭圆关系用有向弧并标上关系名实例用具体值。属性值可以直接挂在该节点的出弧上例如「年龄 → 35」「住址 → 某胡同 68 号」。2.4 可信度与不确定性CF 三条公式和四类不确定性这是填空题里分值最集中的一题30 分的填空里它常占 4.5 到 6 分而且年年考同样的三条公式。不确定性按性质分为四类随机性、模糊性、不完全性、不一致性。四个词缺一不可顺序无所谓但少写一个就扣一空的分。可信度 CF 的三条规定关系运算公式记法要点否定CF(¬A) −CF(A)取负不是 1−CF(A)合取CF(A1 ∧ A2) min{CF(A1), CF(A2)}取小析取CF(A1 ∨ A2) max{CF(A1), CF(A2)}取大这里有个血泪教训很多人凭直觉写成 CF(¬A) 1 − CF(A)、合取取乘积、析取取和。那是概率的算法不是确定性理论里可信度的算法。可信度取值在 [−1, 1] 区间负值表示证据为假所以否定只能是取负号合取取 min 表示「两个证据都成立时可信度受最弱的那个限制」析取取 max 表示「只要有一个强证据成立就够」。这条区分几乎每套卷子都有人错记住「可信度取极值概率做乘加」就不会混。同属这一块还有一条P(B|A) 表示在规则 A→B 中证据 A 为真时结论 B 为真的概率C(B|A) 则写成可信度。一个字母之差问的是两个不同概念填空题里经常把两条放在相邻空里考。3. 谓词逻辑与归结简答题 25 分怎么一步步拿满简答计算题 25 分题量不大但步骤分极细子句集八步、MGU 计算、归结证明各占 5 分左右。这类题的判分逻辑是「步骤对给步骤分答案对但跳步照样扣」所以答题时必须把中间形态写出来而不是直接写结论。3.1 子句集八步把谓词公式化成 S 的固定流程题干通常是「谓词公式 G 通过 8 个步骤所得的子句集合 S称为 G 的子句集请写出这些步骤」。这题看着像背诵其实是检查你是否真会化子句集因为后面每一道归结证明题都要用这套流程。八步按顺序是消去蕴含式→和等价式↔。用 A→B ⇔ ¬A ∨ BA↔B ⇔ (A→B) ∧ (B→A) 展开。否定词内移直到只作用于原子公式。用德摩根律和量词否定律¬∀x P(x) ⇔ ∃x ¬P(x)¬∃x P(x) ⇔ ∀x ¬P(x)。变元改名保证每个量词约束的变元名互不相同避免后续消量词时张冠李戴。消去存在量词形成 Skolem 标准型。规则分两种存在量词前面没有全称量词就用一个新常量替换前面有全称量词 ∀y就用一个以 y 为参数的 Skolem 函数 f(y) 替换。消去所有全称量词。全称量化后剩下的母式直接保留量词本身可以丢掉因为子句集里所有变元默认全称量化。化成合取范式。反复用分配律 A ∨ (B ∧ C) ⇔ (A ∨ B) ∧ (A ∨ C)把公式变成「子句的合取」。子句间变元改名保证不同子句里没有同名变元否则归结时会错误地强制两个子句共用同一个变元。消去合取词用逗号代替以子句为元素组成集合 S。评分点分布很平均通常第 4 步和第 7 步各占一分因为这两步最能看出理解深度。第 4 步最常见的错误是「所有存在量词都用常量替换」忘了依赖关系第 7 步最常见的错误是「觉得改名多余」其实不改名在做 MGU 时会算出错误的置换。提示写这题时每步后面加半句理由比如「4消存在量词因前有 ∀y用 Skolem 函数 f(y) 替换 x」。评分老师看到理由即使某步写得不规范也容易给分。3.2 MGU 计算题差异集、置换合成与合成顺序MGU最一般合一是简答题里唯一带「算法感」的题也是错得最隐蔽的题。题目给两个原子公式让你求最一般合一。标准算法是「合一算法」四步循环令 k0S₀Sδ₀ε空置换。若 Sₖ 是单元素集算法成功δₖ 即 MGU。求 Sₖ 的差异集 Dₖ从左往右找两个公式第一处不同的地方把不同的项收集起来。若 Dₖ 中存在变元 x 和项 t且 x 不在 t 中出现occurs check则令 δₖ₊₁ δₖ · {t/x}Sₖ₊₁ Sₖ · {t/x}k 加一回到第 2 步否则算法失败。拿卷子上的原题走一遍S {P(f(x), y, g(y)), P(f(x), z, g(x))}。k0 时不是单元素集差异集 D₀ {y, z}其中 y 是变元、z 是项且 y 不出现在 z 中取 {z/y}得到 S₁ {P(f(x), z, g(z)), P(f(x), z, g(x))}。k1 时仍不是单元素集差异集 D₁ {z, x}取 {z/x}得到 S₂ {P(f(z), z, g(z))}是单元素集算法结束。合成置换 δ₂ δ₁ · {z/x} {z/y, z/x}。这里有个必须讲清的点置换的合成是有顺序的。δ₁ · δ₂ 的意思是「先施加 δ₁再施加 δ₂」所以合成结果里如果 δ₂ 的项中含有 δ₁ 替换掉的变元要一并替换掉并且从结果中删去已被替换的旧变元。原题恰好两项的右端都是 z所以写 {z/y, z/x} 就对如果写成 {y/z, x/z} 就是把方向搞反了代入后得不到单元素集。第二道原题更能暴露问题W {P(f(x, g(A,y)), z), P(f(x, z), z)}。差异集 D₀ {g(A,y), z}z 是变元且不出现在 g(A,y) 中取 {g(A,y)/z}S₁ {P(f(x, g(A,y)), g(A,y))} 已是单元素集一轮结束MGU {g(A,y)/z}。这题只做一步但很多人会继续找差异集把简单题做复杂。为了让自己在考场上不慌我习惯用一段十几行的代码把答案验一遍——考场上当然不能跑代码但平时练的时候跑通了手算的方向感就稳了。# 极简一阶合一项用 str 表示变元用 tuple 表示复合项如 (f, x) def is_var(t): return isinstance(t, str) def walk(t, s): # 顺着置换表一直走到不能再替换为止 while is_var(t) and t in s: t s[t] return t def occurs(v, t, s): # occurs check变元 v 是否出现在项 t 中 t walk(t, s) if v t: return True if isinstance(t, tuple): return any(occurs(v, x, s) for x in t[1:]) return False def unify(a, b, sNone): # s 是当前置换表返回扩展后的置换表 s {} if s is None else s a, b walk(a, s), walk(b, s) if a b: return s if is_var(a): if occurs(a, b, s): raise ValueError(occurs check failed) s dict(s); s[a] b return s if is_var(b): if occurs(b, a, s): raise ValueError(occurs check failed) s dict(s); s[b] a return s if isinstance(a, tuple) and isinstance(b, tuple) \ and a[0] b[0] and len(a) len(b): for x, y in zip(a[1:], b[1:]): s unify(x, y, s) # 逐参数递归合一累积置换 return s raise ValueError(not unifiable) # 原题S {P(f(x), y, g(y)), P(f(x), z, g(x))} t1 (P, (f, x), y, (g, y)) t2 (P, (f, x), z, (g, x)) print(unify(t1, t2)) # 形如 {y: z, z: x}与 {z/y, z/x} 等价这段代码的关键在walk和occurs两个辅助函数walk负责在置换表上「接力」查找保证新加的置换能作用到已有置换的右端occurs负责阻止 x 替换成含 x 的项否则会无限展开。unify的参数s是累积置换返回新表而不是原地修改是为了让失败时不影响上层。跑出来的结果可能是{y:z,z:x}看起来和手算的{z/y, z/x}不一样但把两个置换各自代入原式后都得到同一个单元素集说明 MGU 不唯一、只要求「最一般」且等价。理解这一点考场上就不会因为形式不同而怀疑自己。3.3 归结证明与「求值」证明题和求解题差一个重言式归结法有两副面孔判断题和证明题长得很像但写法不同很多人栽在这里。证明题的流程是把前提化成子句集 → 把结论取否定也化成子句集 → 合在一起反复归结 → 归结出空子句 □ 收尾。每一步要标注「从哪两条子句归结、用了什么置换」。原题前提 F 为 P(x) 与 Q(a) ∨ Q(x)结论为 Q。写出过程是① P(x) 从 F 变换② Q(a) ∨ Q(x) 从 F 变换③ ¬P(y) ∨ ¬Q(y) 结论的否定④ ¬Q(x) ①③归结置换 {x/y}⑤ □ ②④归结置换 {a/x}注意 ④ 这一步P(x) 与 ¬P(y) 归结掉互补文字后剩 ¬Q(y)置换 {x/y} 换成 ¬Q(x)。到 ⑤ 时Q(a) ∨ Q(x) 与 ¬Q(x) 归结用 {a/x} 让 Q(x) 变成 Q(a)与 ¬Q(a) 消掉得空子句。判分时置换写对才有分只写「归结得 □」不给步骤分。求解题则要在结论否定那一步做手脚。原题是已知「x 是 y 的父亲y 是 z 的父亲则 x 是 z 的祖父」「甲是乙的父亲」「乙是丙的父亲」问谁和谁是祖孙关系。如果照搬证明流程最后得到的是空子句只能证明「存在祖孙关系」但答不出「是甲和丙」。正确做法是把结论的否定换成重言式④ ¬G(u,v) ∨ G(u,v) 用重言式代替结论否定重言式恒真加进去不破坏矛盾性但保留了变元 u、v 作为「待求位置」。继续归结⑤ ¬F(乙,z) ∨ G(甲,z) ①②归结置换 {甲/x, 乙/y}⑥ G(甲,丙) ③⑤归结置换 {丙/z}⑦ G(甲,丙) ④⑥归结置换 {甲/u, 丙/v}得到的 G(甲,丙) 就是答案甲是丙的祖父。写成文字即「甲和丙是祖孙关系」。这个技巧是整张卷子里最值得背的一招。判断口诀问「是否」用否定问「是谁」用重言式。题干里出现「问上述人员中谁和谁是祖孙关系」「u?v?」这种带问号的一律走重言式路线。3.4 谓词形式化从「某个学生读过某本书」到子句集形式化题看着简单但它是后面所有归结题的入口写错一个量词整道应用题零分。三条规则必须记牢人物全称用 ∀ 配 →存在用 ∃ 配 ∧。「凡是清洁的东西就有人喜欢」写成 ∀y(P(y) → ∃x L(x,y))量词后面跟蕴含「某个学生读过那本书」写成 ∃x(Student(x) ∧ Read(x, 某书))量词后面跟合取。这两者的区别是阅卷重点全称句用合取会变成「所有东西都既是 P 又满足后面」语义错存在句用蕴含会变成「存在一个东西只要它是学生就……」弱得几乎恒真。「不存在最大的整数」的经典写法有两种等价形式¬∃x(G(x) ∧ ∀y(G(y) → x ≥ y))或者 ∀x(G(x) → ∃y(G(y) ∧ y x))。前者直译「没有一个整数比所有整数都大」后者写成「对任意整数都存在更大的整数」。两种都对但第一种更好写因为它保留了原句的否定结构。形式化完通常还要化成子句集进而证明或求解。以「苍蝇是不清洁的」为例定义 L(x,y) 为「x 喜欢 y」P(y) 为「y 是清洁的」前提1∀y(P(y) → ∃x L(x,y)) 化子句得 ¬P(y) ∨ L(f(y), y)注意这里的 f(y) 就是 Skolem 函数因为存在量词在 ∀y 辖域内前提2∀x ¬L(x, 苍蝇) 化子句得 ¬L(x, 苍蝇)结论否定 P(苍蝇)。三条子句归结¬P(y) ∨ L(f(y),y) 与 P(苍蝇) 归结得 L(f(苍蝇), 苍蝇)再与 ¬L(x, 苍蝇) 归结得 □。全过程只用两次归结但每一步都要能说清「为什么这里出现 Skolem 函数」。注意Skolem 函数不是「随便编一个函数名」。它必须是对全称量词变元的函数参数就是这个变元。写成 f(x) 而题干里全称变元是 y属于置换错误直接扣分。4. 图搜索与博弈树30 分应用题的手算路线应用题 30 分通常三道一道语义网络或谓词表示10 分、一道 α-β 剪枝10 分、一道产生式系统描述或归结求解10 分。这三道题有个共同特点——不要求你会编程只要求你在纸上把过程画对。所以考场上的工具是铅笔和橡皮不是草稿堆。4.1 或图、与或图与状态空间图三个名字别混填空题里考「图指由 ____ 和 ____ 组成的网络按连接同一节点的各边的逻辑关系又可分为 ____ 和 ____」标准答案是「节点和有向边」「或图」「与或图」。或图一个节点下的多个子节点只要有一个成立就够边之间是「或」关系通常用来表示从初始状态到目标状态的搜索展开所以又叫状态图、状态空间图。与或图一个节点下的子节点必须全部成立边之间是「与」关系常用来表示问题归约——把大问题拆成必须同时解决的子问题。判断技巧题目出现「走迷宫、下棋、八数码」这类「一步一变」的描述就是状态图或图出现「把问题分解成若干子问题分别求解」的描述就是与或图。选择题里问「或图通常称为」答状态图问你「博弈树属于什么」那不是或图是带极大极小值的对抗搜索树别套。4.2 α-β 剪枝先定层再定值最后落剪枝线这是全卷最需要「按流程走」的题。题干给一棵博弈树末行是叶节点估值要求用 α-β 剪枝技术剪去不必要的分枝并在节点和边上直接加注释。先明确两类节点的角色MAX 层轮到「我方」走取子节点最大值MIN 层取最小值。α 是 MAX 节点当前能保证的下界β 是 MIN 节点当前能保证的上界初始 α −∞β ∞。两个剪枝条件的标准表述必须能默写α 剪枝若任一极小值层节点的 β 值小于或等于它任一先辈极大值层节点的 α 值即 α(先辈) ≥ β(后继)则可中止该 MIN 节点以下的搜索这个 MIN 节点的最终倒推值就定为这个 β 值。β 剪枝若任一极大值层节点的 α 值大于或等于它任一先辈极小值层节点的 β 值即 α(后继) ≥ β(先辈)则可中止该 MAX 节点以下的搜索这个 MAX 节点的最终倒推值就定为这个 α 值。手算的固定套路是「深度优先、从左到右、边算边传值」从最左边的叶子开始把估值写上去。遇到父节点是 MIN 层先取左右子节点的 min得到 β 候选遇到 MAX 层取 max 得到 α 候选。每算完一个节点把当前的 α 或 β 向上传递与先辈节点的界比较一旦满足上面两条不等式就画水平剪枝线。被剪掉的子树下面的节点不再估值直接在被剪的分枝上画一条横线并在旁边写「剪枝」。评分点一般给三处叶节点估值是否标全、剪枝线是否画在正确位置、被剪子树是否标注了原因。最常丢分的是把 α 剪枝画到了 MAX 层上——α 剪枝剪的是 MIN 节点以下β 剪枝剪的是 MAX 节点以下层次搞反整道题 10 分只剩 2 分。提示如果时间紧张先在草稿纸上把整棵树按层标好 MAX/MIN再动笔算值。层次标错是这类题唯一的致命伤值算错只是扣一两分。4.3 产生式系统描述数字序列那道题的规则集怎么写原题是「给 19 九个数字排一个序列使该序列前 n 个数字组成的整数能被 n 整除」要求讨论哪些知识能帮助求解并用产生式系统描述该问题。先答第一问「哪些知识能帮助求解」三条序列中奇数位放奇数、偶数位放偶数因为偶数位数要被偶数整除末位必须是偶数。第五位必为 5因为前五位组成的数要被 5 整除而 5 在 19 里只能放这一位。前 n 位整除约束可以逐位验证前面的选择会大量剪掉后面的分支。第二问用产生式系统描述标准三件套必须写全综合数据库N {x}表示已排好的序列x 取自 19 且不重复。规则集r1IF len(N)4 THEN 下一位取 5r2IF len(N) 为偶数即当前填第 1、3、5、7、9 位AND n ∈ {1,3,7,9} THEN 追加 nr3IF len(N) 为奇数即当前填第 2、4、6、8 位AND n ∈ {2,4,6,8} THEN 追加 n。初始状态空序列 {}结束条件得到的序列前 i 位组成的整数能被 i 整除i1…9。这题的分不在答案在「三件套齐不齐 规则条件写没写具体」。很多人只写「规则依次填入满足整除的数」这属于把算法当规则不给分。规则必须是「IF 条件 THEN 动作」的显式形式条件里要出现长度、奇偶位置、候选数字集这些可判定的东西。想验证自己的规则集对不对可以写个小程序枚举一遍跑出唯一答案心里就有底了# 用产生式规则约束搜索空间验证 1~9 序列问题 def solve(pos, seq, used): if pos 9: # 9 位全部填完 return seq if pos 4: # 第 5 位下标 4固定为 5 cand [5] if 5 not in used else [] elif pos % 2 0: # 第 1、3、5、7、9 位放奇数 cand [n for n in (1, 3, 7, 9) if n not in used] else: # 第 2、4、6、8 位放偶数 cand [n for n in (2, 4, 6, 8) if n not in used] for n in cand: new_seq seq [n] num int(.join(map(str, new_seq))) if num % (pos 1) 0: # 前 pos1 位能被 pos1 整除 r solve(pos 1, new_seq, used | {n}) if r: return r return None print(solve(0, [], set())) # 输出 [3,8,1,6,5,4,7,2,9]solve的三个参数分别是当前填到第几位从 0 起、已排好的序列、已用过的数字集合。两个剪枝点对应两条产生式知识pos 4强制放 5pos % 2分流奇偶候选集。num % (pos 1)是整除约束的直接翻译。跑出来381654729和手算一致——考场上不必写代码但用代码验证过一次写规则集时就不会漏掉「第五位固定 5」这种关键约束。5. 易错点五个一写就错的失分点下面这五处是同一道题在不同人卷子上反复出现的错法而且都属于「自己觉得对、判卷一看就扣分」的类型。每一条按「错在哪 → 为什么错 → 怎么答对」拆开。5.1 错在把「删除策略」写成删除重复子句错在哪填空问「删除策略归结过程中删除以下子句」很多人填「含有重复文字的子句、含有矛盾文字的子句、被其他子句包含的子句」看着很顺实际三空全错。为什么错删除策略删策略针对的是归结效率删掉的是永远不会参与有效归结的冗余子句而不是格式上的重复。重复文字用「因子化」处理是另一回事两套术语被混成一套。怎么答对背三个关键词——纯文字、永真式、类含包孕。展开写就是「含纯文字的子句、含永真式的子句、被其他子句类含的子句」。答题时三者顺序可以换但「纯」「永真」「类含」这三个词必须出现。5.2 错在 CF 公式和概率公式混用错在哪CF(A1∧A2) 写成 CF(A1)×CF(A2)CF(¬A) 写成 1−CF(A)。为什么错可信度的取值区间是 [−1, 1]用概率的 [0,1] 公式去算量纲就不对。确定性理论的合成规则是「合取取极小、析取取极大」因为可信度衡量的是「这条证据有多可信」两条证据同时成立时受最弱一条限制任一条成立时取最强一条。怎么答对记住两句话——否定取负号合取取小、析取取大。写成公式就是 CF(¬A) −CF(A)、CF(A1∧A2) min{CF(A1), CF(A2)}、CF(A1∨A2) max{CF(A1), CF(A2)}。顺带把 P(B|A) 与 C(B|A) 的区分也记住前者是概率后者是可信度一个字母的事。5.3 错在 Skolem 函数写成常量错在哪化子句集第 4 步把所有存在量词都用新常量替换例如把 ∀y∃x P(x,y) 化成了 P(a, y)。为什么错忽略了量词的辖域依赖。∃x 在 ∀y 的辖域内意味着「x 的取值随 y 变」必须用函数 f(y) 表示这种依赖只有 ∃x 前面没有任何全称量词时才能换成常量。怎么答对消存在量词前先看左边——左边没有全称量词就用常量如 a、b左边有全称量词 ∀y 就用 Skolem 函数 f(y)多个全称量词就写 f(y₁, y₂)。这一步写错后面整条归结链都会失效属于连锁失分。5.4 错在 α-β 剪枝的层次判断错在哪把 α 剪枝画在 MAX 层或者把剪枝线画在还有未估值兄弟节点的枝上。为什么错α 是 MAX 节点的下界当 MIN 节点算出 β ≤ 先辈 α 时说明这条分支不可能比已找到的更好所以剪的是MIN 节点以下反过来 β 剪枝剪的是 MAX 节点以下。层次一错剪枝位置必然错。怎么答对动笔前先把树按层交替标好 MAX/MIN从根开始往下标标完再算值。算值时严格遵守「深度优先、从左到右」每算完一个节点立刻与先辈界比较不要全部算完再回头剪。最后检查每条剪枝线下面是否还有没估值的叶子——有说明剪对了位置。5.5 错在 MGU 置换合成方向反了错在哪把 δ₂ δ₁·{z/x} 写成 {x/z}或者合成时没有把新置换作用到旧置换的右端。为什么错置换合成的定义是「先施加左、再施加右」方向反了代入后得不到单元素集不作用到右端则会出现 {y/z, z/x} 和 {y/x, z/x} 两种结果后者虽然能代入成功但已不是最一般合一它把 y 强制变成 x丢了一般性。怎么答对每算完一轮置换立刻把它代入原子公式集重写一遍看是否真的化简了。写最终答案时按「旧变元/新项」的格式列并在旁边用一句话自查「代入后两个公式是否完全一样」。一样就交卷不一样就重来。6. 押题与时间分配90 分钟怎么把分捞干净这套卷子的题型结构极其稳定所以时间分配比刷题量更影响最终分数。按 100 分、90 分钟算我建议这么排题型分值建议用时得分策略选择题 15 题1512 分钟记忆题秒选计算类归结式、剪枝标出来回头做填空题 30 空3018 分钟先扫一遍把 CF 公式、删除策略、八步这类背过的先填满简答计算 5 题2525 分钟子句集八步、MGU、归结证明按步骤写宁多写不跳步应用题 3 题3030 分钟语义网络先画框架再补属性剪枝先标层再算值检查—5 分钟只查三处空子句、Skolem 函数、剪枝线层次押题方向上六道题几乎年年出现空子句与归结式写法、删除策略三类、CF 三条公式、子句集八步、MGU 计算、α-β 剪枝两条件。这六处合计约 45 分且全是「写对给满分、写错给零分」的硬点没有中间地带。剩下的分数分布在语义网络画图、产生式系统描述、谓词形式化上属于「框架对就有部分分」的软点。最后给一个考场上的优先级判断拿到卷子先翻到应用题看剪枝题的树有几层、语义网络题要画几个节点心里估一下 30 分钟够不够如果树超过四层就先做简答题把能稳拿的 25 分落袋再回头啃应用题。这个顺序不是投机是用确定性换不确定性——简答题的步骤分是可预期的应用题的画图分则取决于临场状态。说个我自己的教训。早年做这类卷子我总在简答题上「一步到位」写结论觉得步骤是废话结果每次都被扣掉一半分后来强制自己每写一个归结式就标一次「从哪两条、用什么置换」分数才稳下来。从那以后我每次做归结题都强制走一遍「标来源 → 写置换 → 验代入」三步哪怕题目再简单也不省。这份卷子里的题不算难难的是在有限时间里把该写的步骤一个不落地写出来希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?