简介:这份《百度人工智能的几份经典考试试题》面向备考人工智能课程、准备笔试面试或考研复试的学习者,用于系统梳理核心概念并开展题型训练。压缩包内仅1个doc文档,约279KB,内容集中,便于打印批注和反复复习。试题按选择题、填空题、简答计算题、应用题四类编排,覆盖语义网络、归结推理、产生式系统、可信度CF、谓词逻辑与MGU、知识表示、机器学习及自然语言处理等考点,并附参考答案和知识点总结。已有1586人学习,读者可用于限时自测、对照答案定位薄弱环节,再按语义网络、推理与知识表示等模块回补概念,适合需要把零散知识串成考试框架的课程学习者与面试准备者。
1. 一套大厂 AI 经典试题的拆解价值:从选择题到应用题的覆盖边界
如果你正在找大厂人工智能面试题,或者想把 AI 经典考试试题按题型系统刷一遍,这套 A/B 卷值得先看结构,而不是急着背答案。它把选择题、填空题、简答计算题、应用题按 15、30、25、30 分排开,覆盖语义网络、归结推理、产生式系统、可信度 CF、α-β 剪枝、专家系统、搜索策略。适合课程期末复盘、面试前查漏、带学生做习题课的人。它不负责教你从零学 AI,负责把“手算步骤”和“概念边界”压成可检查的题面。用它的正确姿势是:先做知识点映射,再挑三类计算题手算,最后用错题反查教材定义。这套题的价值不在答案本身,而在它把容易混的概念放进了同一张卷子,逼你区分“会背”和“会算”。
2. 题型与知识点映射:A/B 卷 15+30+25+30 的分值怎么用
2.1 题型分布与分值权重
这套题库的 A/B 卷结构很稳定:选择题 15 题共 15 分,填空题约 20 个空共 30 分,简答及计算题 5 题共 25 分,应用题 3 题共 30 分。很多人一上来从选择题开始刷,刷完觉得“都会”,结果填空题一写就漏字,应用题一画就乱。选择题的分值低,但它负责暴露概念边界;填空题分值高,考的是术语和公式的精确复现;简答计算题考步骤;应用题考建模和图示。复习时不要把四类题当成同一种题,它们的丢分机制完全不同。
| 题型 | 分值 | 题量 | 主要考点 | 建议动作 |
|---|---|---|---|---|
| 选择题 | 15 | 15 | AI 缩写、归结、产生式、语义网络、搜索、专家系统 | 限时 12 分钟,错题只标知识点 |
| 填空题 | 30 | 约 20 空 | 不确定性类型、删除策略、CF、图、MGU、产生式、AI 目标 | 闭卷默写,按空给分 |
| 简答计算 | 25 | 5 | 三值逻辑、产生式语义、子句集 8 步、MGU、归结证明 | 每道写完整步骤,不跳步 |
| 应用题 | 30 | 3 | 语义网络、α-β 剪枝、谓词逻辑祖孙关系 | 先定义谓词,再画表或图 |
从分权看,填空题和简答计算合计 55 分,是这套题的主战场。选择题里的“AI 英文缩写”“或图称为什么图”“不属于 AI 学派的是哪个”属于记忆型题,错一次记一次就够;填空题里的“不确定性类型按性质分”“删除策略删除哪些子句”“CF 的三个关系式”则是典型的一错一串,必须手写。我的建议是先把填空题拆成 20 个独立空,每个空写一行“题干触发词 → 答案 → 易错写法”,再回到选择题。选择题可以猜,填空题猜不了。
A/B 卷之间有重复知识点,比如归结式为空子句、产生式推理方式、语义网络的继承性、α-β 剪枝条件、专家系统组成。重复不是冗余,是二刷的锚点。第一遍做 A 卷时把重复点标出来,第二遍做 B 卷时只做标出来的题,第三遍再全卷限时。三轮之间不要隔太久,隔太久会变成重新学。
2.2 知识点映射表:从选择题到应用题
把这套题拆成知识点后,会发现它其实围绕六条线:知识表示、归结推理、产生式系统、不确定性推理、搜索与博弈、专家系统与 AI 基础。每条线在四类题型里都有落点。下面这张表是按题面内容整理的映射,不按原卷顺序,方便你按线复习。
| 知识线 | 选择题落点 | 填空题落点 | 简答计算落点 | 应用题落点 |
|---|---|---|---|---|
| 知识表示 | 语义网络 AKO/ISA、或图 | 图的节点与有向边、与或图 | 产生式语义 | 语义网络表示人物、公司、比赛 |
| 归结推理 | 归结式、空子句、假言推理 | 删除策略、子句集 | 子句集 8 步、MGU、归结证明 | 祖孙关系证明与求解 |
| 产生式系统 | 正向推理、可触发规则 | 被触发规则 | 产生式组成 | 数字序列产生式描述 |
| 不确定性推理 | 可信度 CF 含义 | CF 补、合取、析取公式 | 模糊性知识解释 | 无 |
| 搜索与博弈 | 或图、最优解搜索 | 状态空间图、启发函数 | α-β 剪枝条件 | 博弈树剪枝 |
| 专家系统与基础 | AI 学派、AI 目标、机器智能测试 | 专家系统组成、知识表示方法 | 专家系统开发步骤 | 无 |
这张表的作用是防止“刷题刷散”。比如你在选择题里看到“语义网络有向弧 AKO 链、ISA 链用来表达节点知识的什么性质”,答案落在继承性;到了应用题,你要用 ISA 把个体连到类,用 AKO 把子类连到父类。同一个概念,选择题考定义,应用题考画法。如果只背“继承性”三个字,画图时仍然会把 ISA 和 AKO 画反。
再比如 CF。选择题问 C(B|A) 表示什么,填空题问 CF(~A)、CF(A1∧A2)、CF(A1∨A2) 怎么算,简答题可能让你解释模糊性知识。这三类题必须用同一套公式口径,否则会出现“选择题选对了,填空题写错公式”的情况。这套资料里 CF 公式存在两套写法,第 5 章会展开,这里先记住:做题前先确认你用的教材版本。
2.3 怎么用这套题做三轮复习
第一轮只做“概念映射”,不追求限时。拿一张 A4 纸,左边写题号,右边写它考的知识线和触发词。比如“归结式为空子句”对应“反证法结束条件”,“MGU”对应“差异集与置换合成”,“α-β 剪枝”对应“MAX 层 α、MIN 层 β”。这一轮允许翻书,但每翻一次书,就在题号旁画一个正字,最后统计哪条知识线翻书最多。翻书最多的那条线,就是第二轮的重点。
第二轮只做“计算题手写”。从简答计算题里挑四类:子句集 8 步、MGU、归结证明、α-β 剪枝。每类找两道题,不写答案,只写步骤。子句集 8 步要写出每一步的中间公式;MGU 要写出差异集、置换、合成后的子句集;归结证明要写出每条子句的来源和置换;α-β 剪枝要在边上标 α、β 和剪枝符号。写完再对照答案,重点看“哪一步被跳过”。很多人不是不会,是跳步导致置换方向写反。
第三轮做“错题回读”。错题本不要抄整道题,只记三个字段:触发条件、我错的步骤、正确口径。比如“触发条件:看到‘结论否定’;我错的步骤:直接否定结论后忘了最后要看置换;正确口径:证明存在用否定结论,求解用重言式”。这三个字段写满一页,比抄十页答案有用。
提示:这套题的填空题按空给分,术语多写一个字少写一个字都可能丢分。默写时用“空位编号 + 答案”的格式,不要写成一段话。
如果要把这套题用于面试复盘,建议把应用题当口头题练。语义网络题用 30 秒说清节点和弧;α-β 剪枝题用 60 秒说清剪枝条件;祖孙关系题用 90 秒说清谓词定义、已知事实、结论否定、置换和结果。面试里没人等你画完一整棵树,能说清触发条件就够了。
3. 归结推理与 MGU:用差异集把 8 步子句集和置换算清楚
3.1 子句集转换的八个步骤
谓词公式转子句集是这套题里最容易“看着会、写着错”的部分。试卷答案给了 8 步:消去蕴含和等价、缩小否定词作用范围、适当改名使量词间不含同名指导变元和约束变元、消去存在量词、消去全称量词、化成合取范式、适当改名使子句间无同名变元、消去合取词并用逗号代替。每一步都有具体的检查点,不能只背标题。
第一步消去蕴含和等价,常见写法是 A→B 换成 ¬A∨B,A↔B 换成 (A→B)∧(B→A)。第二步把否定推到原子公式前,用德摩根律和量词否定规则。第三步改名是为了防止量词辖域里的变量撞名,尤其是多个全称量词和存在量词混在一起时。第四步消去存在量词,如果存在量词不在任何全称量词辖域内,就用一个新常量;如果在全称量词辖域内,就用一个依赖全称变量的函数。这里不要写“Skolem”字样,记成“存在量词消去函数”更稳。第五步消去全称量词,直接去掉全称量词,保留变量。第六步化成合取范式,用分配律把∨分配到∧上。第七步子句间改名,防止不同子句用同一个变量名。第八步去掉∧,用子句集合表示。
手算时建议在每一步后面写“当前公式”,不要只写“第 1 步、第 2 步”。因为错误往往发生在第 3 步改名和第 7 步子句改名之间。改名不是形式主义,它决定后面归结时置换会不会撞车。我的习惯是:每消去一个量词,就在旁边标注“此变量后面对应哪个函数/常量”,最后检查子句集里有没有同名变元跨子句出现。
注意:子句集转换的 8 步不是固定死顺序,但“消去存在量词”必须在“消去全称量词”之前,否则存在量词的依赖关系会丢。
3.2 MGU 求法:差异集、置换合成与终止条件
MGU 是“最一般合一”的缩写。求 MGU 的核心动作是找差异集、选变量、做置换、合成置换、检查是否变成单元素集。这套题里给了一个典型例子:S={P(f(x),y,g(y)), P(f(x),z,g(x))}。手算过程可以拆成下面四步。
先令 k=0,S0=S,δ0=ε。S0 不是单元素集,找差异集 D0={y,z}。y 是变元,z 是项,且 y 不在 z 中出现,所以可以做置换 {z/y},意思是把 y 替换成 z。令 δ1=δ0·{z/y}={z/y},S1=S0·{z/y}={P(f(x),z,g(z)), P(f(x),z,g(x))}。
S1 仍然不是单元素集,找差异集 D1={z,x}。z 和 x 都是变元,可以做置换 {z/x},意思是把 x 替换成 z。令 δ2=δ1·{z/x}={z/y, z/x},S2=S1·{z/x}={P(f(z),z,g(z))}。S2 是单元素集,算法终止,MGU=δ2。
这里最容易错的不是差异集,而是置换方向。{z/x} 表示 x 换成 z,不是 z 换成 x。写成 δ2={z/y, z/x} 时,读法是 y→z、x→z。最后实例化时,两个原子公式都变成 P(f(z),z,g(z)),检查一遍就能确认方向没反。
第二道 MGU 题是 W={P(f(x,g(A,y)),z), P(f(x,z),z)}。差异集先取 {g(A,y), z},z 是变元,g(A,y) 是项,且 z 不在 g(A,y) 中出现,所以做置换 {g(A,y)/z}。置换后 S1={P(f(x,g(A,y)),g(A,y))},已经是单元素集,MGU={g(A,y)/z}。这道题的关键是“z 不在 g(A,y) 中出现”,如果出现,就要做 occurs check,不能直接置换。
手算 MGU 时建议用“三列法”:左列写当前子句集,中列写差异集,右列写置换和合成结果。每做一次置换,就把新子句集重新抄一遍,不要在原式上涂改。抄一遍虽然慢,但能避免置换没作用到所有参数上的错误。
3.3 用 Python 写一个最小 MGU 验算器
手算完之后,可以用一个很小的 Python 脚本验算置换。这个脚本不依赖第三方库,变量用小写单字母表示,函数用元组表示,常量用大写字符串表示。脚本只做三件事:解析置换链、检查变量是否出现、逐个参数合一。
def is_var(t): # 变量约定:小写单字母字符串,如 'x'、'y'、'z' return isinstance(t, str) and t.islower() def walk(t, subst): # 沿着置换链一直解析,直到不是变量或没有映射 while is_var(t) and t in subst: t = subst[t] return t def occurs(v, t, subst): # occurs check:防止把变量映射到包含自己的项 t = walk(t, subst) if t == v: return True if isinstance(t, tuple): return any(occurs(v, arg, subst) for arg in t[1:]) return False def unify_term(a, b, subst): a = walk(a, subst) b = walk(b, subst) if a == b: return subst if is_var(a): if occurs(a, b, subst): return None new_subst = subst.copy() new_subst[a] = b return new_subst if is_var(b): if occurs(b, a, subst): return None new_subst = subst.copy() new_subst[b] = a return new_subst if isinstance(a, tuple) and isinstance(b, tuple): if a[0] != b[0] or len(a) != len(b): return None for x, y in zip(a[1:], b[1:]): subst = unify_term(x, y, subst) if subst is None: return None return subst return None def unify_atoms(a, b, subst): # 原子公式格式:('P', 参数1, 参数2, ...) if a[0] != b[0] or len(a) != len(b): return None for x, y in zip(a[1:], b[1:]): subst = unify_term(x, y, subst) if subst is None: return None return subst def apply_term(t, subst): t = walk(t, subst) if isinstance(t, tuple): return (t[0],) + tuple(apply_term(arg, subst) for arg in t[1:]) return t if __name__ == '__main__': # 对应试题 S={P(f(x),y,g(y)), P(f(x),z,g(x))} atoms = [ ('P', ('f', 'x'), 'y', ('g', 'y')), ('P', ('f', 'x'), 'z', ('g', 'x')) ] subst = {} for atom in atoms[1:]: subst = unify_atoms(atoms[0], atom, subst) if subst is None: break print('MGU:', subst) print('实例化:', [apply_term(a, subst) for a in atoms])这段代码的逻辑不复杂。is_var负责判断变量;walk负责把置换链解析到底,比如{y:z, z:x}里y最终要走成x;occurs做出现检查,防止x->f(x)这种循环;unify_term处理变量、函数和常量三类项;unify_atoms先检查谓词名和参数个数,再逐个参数合一。运行结果的置换写法可能和手算答案方向不同,比如输出{'y':'z','z':'x'},手算写{z/y, z/x},但两者实例化后都得到同一个原子公式,等价。
参数说明要记清:变量必须是小写单字母;函数必须写成元组,第一项是函数名;常量用大写字符串,避免和变量混淆。如果题目里的项更复杂,比如带下标或多字母变量,先把变量名改写成单字母再跑脚本,不要直接改判断逻辑。脚本只用于验算,不替代手算步骤,考试时还是要写差异集和置换合成。
4. 语义网络与知识表示:把应用题画成节点表、弧表和检查清单
4.1 语义网络三件套:节点、有向弧、继承链
语义网络不是“随便画几个框连箭头”。它有三个必须说清的东西:节点表示概念、实体或事件;有向弧表示关系;弧上的标签表示关系类型。这套题反复考 AKO 链和 ISA 链,原因就是它们决定继承性。ISA 表示“是一个实例”或“是一个子类”,AKO 表示“是一种”,两者都参与继承,但方向不能乱。
更稳的记法是:ISA 连接个体和类,比如“甲 ISA 人”;AKO 连接子类和父类,比如“经理 AKO 员工”。有些教材把 ISA 也用于子类到父类,这时要看题目约定。这套题的选择题问“有向弧 AKO 链、ISA 链是用来表达节点知识的什么”,答案落在继承性,说明它把两者都当作继承链。做题时先按题目约定,不要拿另一本教材的约定硬套。
语义网络里还有属性弧,比如“年龄”“地址”“比分”。属性弧不是继承链,它挂的是具体值。画应用题时,先建节点表,再建弧表,最后按弧表回读成一句人话。回读不通,说明弧名或方向有问题。
4.2 把“某人是某公司经理”拆成 ISA/AKO/属性弧
拿应用题里的第一问做模板:甲是乙公司的经理,35 岁,住在丙地址。不要一上来画图,先列节点。节点包括:甲(人物)、乙公司(组织)、35(年龄值)、丙地址(地址值)。如果题目要求表达“经理”这个身份,还可以加一个“经理”类节点。然后列弧:
| 起点 | 弧标签 | 终点 | 说明 |
|---|---|---|---|
| 甲 | ISA | 人 | 个体到类 |
| 甲 | ManagerOf | 乙公司 | 任职关系 |
| 甲 | Age | 35 | 属性弧 |
| 甲 | Address | 丙地址 | 属性弧 |
| 经理 | AKO | 员工 | 子类到父类,可选 |
如果题目只要求表达事实,不要求表达类层次,经理 AKO 员工可以不加;如果题目明确考 AKO/ISA,就要把类层次补上。这里最容易犯的错是把“甲是乙公司的经理”画成“甲 ISA 乙公司”,读起来变成“甲是一个乙公司”,明显不通。正确读法是“甲 ManagerOf 乙公司”,ISA 只连到“人”或“经理”类。
第二问是 A 校与 B 校进行篮球比赛,比分 89:102。这里不要把比分直接挂在 A 校或 B 校下面,要建一个“比赛事件”节点。节点表:A 校、B 校、比赛事件、89、102。弧表:
| 起点 | 弧标签 | 终点 | 说明 |
|---|---|---|---|
| A 校 | ISA | 学校 | 个体到类 |
| B 校 | ISA | 学校 | 个体到类 |
| 比赛事件 | HomeTeam | A 校 | 主队 |
| 比赛事件 | AwayTeam | B 校 | 客队 |
| 比赛事件 | ScoreA | 89 | 得分 |
| 比赛事件 | ScoreB | 102 | 得分 |
这样画的好处是比分有归属,不会出现“A 校得分 89、B 校得分 102”两条弧互相打架。事件节点是语义网络里常用的建模手法,比赛、考试、交易这类有时序和参与者的概念,都适合单独建节点。
4.3 用表格代替手绘图:节点表 + 弧表 + 检查清单
手绘图在纸上好看,但复习时不好检查。我一般要求学生先交节点表和弧表,再画图。节点表至少三列:节点名、节点类型、备注。弧表至少四列:起点、弧标签、终点、读法。检查清单用五个问题:
| 检查项 | 通过标准 | 常见错误 |
|---|---|---|
| 节点是否有类型 | 每个节点能说出是人物、组织、事件还是值 | 把“35”和“甲”画成同一类节点 |
| 弧是否有方向 | 每条弧从起点读到终点能成句 | ISA 和 AKO 画反 |
| 继承链是否只用于分类 | ISA/AKO 不用于任职、地址、比分 | 把 ManagerOf 写成 ISA |
| 属性弧是否带值 | Age、Address、Score 都连到具体值 | 属性弧悬空 |
| 事件是否单独建节点 | 比赛、考试等有参与者的事件独立成节点 | 比分挂在参赛方下面 |
谓词逻辑表达也要和语义网络对齐。题目“某个学生读过某本古典小说”可以形式化为:存在 x,Student(x) 且 Read(x, Book)。语义网络里就是“学生节点 —Read→ 书节点”,再加一个存在量词标记。不要把“某个”画成全称,也不要把“读过”画成 ISA。谓词公式和语义网络是两种表示,检查时看它们能不能互相翻译。
提示:语义网络题先写弧表再画图,比直接画图快。弧表里每条弧读成“主语—关系—宾语”,读不通就改。
5. 避坑与排查:这套经典试题里最容易翻车的五个点
5.1 先做一张排查总表
这套题年代久、版本多,答案和题干之间有几处口径不一致。直接背答案,最容易在填空题和证明题上翻车。下面先把五个高频坑列成总表,后面逐条拆现象、原因和解决。
| 坑位 | 现象 | 根因 | 解决动作 |
|---|---|---|---|
| 归结结束条件 | 把“永真式”当成定理得证 | 混淆反证法结束条件和子句删除条件 | 证明最后一行必须是空子句 |
| CF 公式 | 同一套资料出现两套 CF 写法 | 不同教材的确定性因子定义不同 | 先锁定教材口径,再做边界测试 |
| 结论否定与求解 | 证明出存在祖孙关系,却给不出具体人 | 反证法证明存在性和求解是两种模式 | 求具体解时用重言式保留变量 |
| 语义网络弧名 | ISA 和 AKO 画反 | 把个体到类、子类到父类混为一谈 | 每条弧读成一句人话再检查 |
| α-β 剪枝 | 在 MAX 层用 β 剪枝 | α、β 的层归属记反 | 先序标 α/β,倒推时更新 |
5.2 逐条拆:现象、原因、解决
坑一:归结式为空子句,不是永真式。现象是有些整理稿在选择题里写“当前归结式是永真式时定理得证”,照着背就会选错。原因是把“子句集里可以删除永真式”和“反证法证明结束”混在一起。归结证明是反证法:把结论否定加入子句集,不断归结,直到推出空子句 □,才说明原子句集不可满足,定理得证。永真式只能说明该子句对矛盾没有贡献,可以删掉,不能结束证明。解决动作很简单:每做完一道归结证明,看最后一行是不是 □;如果不是,检查结论否定有没有加、置换有没有作用到所有文字。
坑二:CF 公式有两套写法,不能混用。现象是同一套资料里,一处写 CF(~A)=-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],有的用 [0,1],补运算和合成公式自然不同。解决动作:做题前先翻目标教材的目录或符号表,确认 CF 的取值范围和三条公式;做边界测试,取 CF(A)=0.8,如果公式写 -CF(A) 得 -0.8,写 1-CF(A) 得 0.2,结果差很多,一眼就能发现混用。考试时按试卷答案的口径写,复习笔记里注明“此公式对应哪本教材”,不要两边都抄。
坑三:证明存在性和求具体解,最后一步不一样。现象是祖孙关系题用结论否定做归结,最后得到 □,只能说明“存在祖孙关系”,题目却问“谁和谁是祖孙关系”。原因是反证法证明存在性时,结论否定会消掉变量;要求具体解,需要保留变量。解决动作:证明存在性时,结论否定写成 ¬G(u,v),归结到 □ 即可;求具体解时,把结论否定换成重言式 ¬G(u,v)∨G(u,v),这个子句恒真,不会破坏矛盾,但保留了 u、v,最后归结得到 G(甲,丙),就能读出甲是丙的祖父。排查时看最后一行:是 □ 还是带变量的结论。
坑四:ISA 和 AKO 画反。现象是画语义网络时把“甲 ISA 人”写成“人 ISA 甲”,或者把“经理 AKO 员工”写成“员工 AKO 经理”。原因是只记了“继承”两个字,没记方向。解决动作:每条弧读成“起点—关系—终点”。ISA 读“甲是一个人”,通;读“人是一个甲”,不通。AKO 读“经理是一种员工”,通;读“员工是一种经理”,不通。属性弧也要读,比如“甲 Age 35”读“甲的年龄是 35”,通;“35 Age 甲”不通。画完先读一遍,读不通就改方向。
坑五:α-β 剪枝的层归属记反。现象是在 MAX 层用 β 剪枝,或者在 MIN 层用 α 剪枝。原因是 α 是 MAX 节点的当前下界,β 是 MIN 节点的当前上界,剪枝发生在“后继层”而不是“当前层”。解决动作:先序给节点标 α 或 β。α 剪枝发生在 MIN 节点之下:如果任一先辈 MAX 节点的 α 值大于或等于当前 MIN 节点的 β 值,即 α(先辈 MAX)≥β(MIN),就剪掉这个 MIN 节点以下的分支。β 剪枝发生在 MAX 节点之下:如果当前 MAX 节点的 α 值大于或等于任一先辈 MIN 节点的 β 值,即 α(MAX)≥β(先辈 MIN),就剪掉这个 MAX 节点以下的分支。手算时不要背句子,直接在边上写“α≥β,剪”,倒推值时只更新被保留的节点。
这五个坑里,前三个是资料口径问题,后两个是概念方向问题。排查顺序建议从“最后一行”开始:归结证明看最后一行是不是 □,CF 计算看取值范围,语义网络看弧的读法,α-β 剪枝看剪枝发生在哪一层。每次只查一个变量,不要同时改公式和改图。
6. 把题库变成错题本:三个验证动作和一个手算习惯
这套 A/B 卷我后来不再按“做完对答案”的方式用,而是按“三个验证动作”用。第一个动作是置换实例化:任何 MGU 或归结置换,都把它代回原子公式,检查两个子句是否变成同一个项。手算写{z/y, z/x},就用脚本或手算代回去,看是不是P(f(z),z,g(z))。代不回去,置换方向一定有问题。第二个动作是 CF 边界测试:做题前先取 CF(A)=0.8、CF(A)=0.2 各算一遍,确认自己用的是-CF(A)还是1-CF(A),是min/max还是乘积/和减积。公式口径没锁定,填空题写满也拿不到分。第三个动作是语义网络弧表回读:画完图不看图,先看弧表,每条弧读成“起点—关系—终点”,读不通就改方向。
一个手算习惯是:错题本只记“触发条件”和“最后一步”,不抄整道题。比如“看到‘结论否定’求具体解,最后一步要换成重言式”“看到‘归结式’问定理得证,最后一行必须是空子句”“看到‘α-β 剪枝’,先标 MAX/MIN 再写条件”。这个习惯来自一次带习题课的经历:我图省事,直接拿整理稿里的 CF 公式讲,结果和试卷答案对不上,现场被问住。从那以后我每次讲这套题,都先强制跑一遍公式对照和置换实例化,再开口。希望帮到你。资料包里保留了 A/B 卷、答案和一张知识点映射表,入口放在文末;拿到后先做第 2 章的三轮标记,再开刷,不要从第一题开始背。
本文还有配套的精品资源,点击获取