简介:百度人工智能经典考试试题汇编以单份 doc 文档呈现,面向准备人工智能课程期末考核、考研复试或相关岗位笔试的读者,用于系统梳理语义网络、归结推理、知识表示、机器学习和自然语言处理等核心考点。压缩包内共 1 个 doc 文件,约 279KB,内容按选择题、填空题、简答及计算题、应用题四类题型组织,并附参考答案与知识点说明,便于按题型自测和对照订正。已有 1586 人学习,适合需要快速把握命题方式与答题要点的中初级学习者。读者可从中获得覆盖 AI 基本概念、产生式系统、可信度计算、MGU 求解、三值逻辑表、语义网络建模与 α-β 剪枝等典型题目的练习材料,也可借助文末知识点总结查漏补缺,形成较完整的复习框架。
1. 一套 AI 经典试题的知识地图:从选择填空到归结证明
这套人工智能经典考试题最值得拿来当复习地图的地方,不是某道题的答案,而是四类题型把“概念—表示—推理—搜索—不确定性—系统”串成了一条线。选择题考边界,填空题考术语,简答题考过程,应用题考落地:语义网络画图、α-β 剪枝、归结证明、产生式建模。系统学的人可以把它当章节索引;复习备考的人可以按题型倒查薄弱模块。下面按知识表示、逻辑归结、搜索博弈、不确定性与专家系统拆开,最后给一份可执行的查漏清单。
2. 知识表示与不确定性:语义网络、产生式、CF 与三值逻辑
2.1 语义网络:节点、有向弧与 AKO/ISA 链
语义网络是最适合用画图方式拿分的知识表示方法。它的基本单位只有两个:节点和有向弧。节点表示概念、对象、事件或属性值,有向弧表示节点之间的关系。卷面上常考的那句“有向弧 AKO 链、ISA 链是用来表达节点知识的什么”,标准答案是继承性。AKO 可以理解为“a kind of”,表示一个概念是另一个概念的子类;ISA 可以理解为“is a”,表示一个实例属于某个类。两者都让下层节点自动继承上层节点的属性,所以语义网络的核心优势是继承和结构化。
画语义网络时,先找中心对象,再挂属性。比如“某人是某公司的经理,35 岁,住在某胡同 68 号”,可以抽出四个节点:人物、公司、年龄值、地址值。人物节点用“任职于”弧连到公司节点,用“职务”弧连到“经理”节点,用“年龄”弧连到 35,用“住址”弧连到地址节点。再比如“两支球队进行比赛,最后以 89:102 结束”,可以抽出比赛事件节点、主队节点、客队节点、比分节点,用“主队”“客队”“比分”三条弧连过去。注意卷面给的人名、校名、公司名在复习时最好替换成抽象代号,避免把具体背景记进去,真正要记的是“事件—参与者—属性”这种抽取方式。
语义网络的易混点是 AKO 和 ISA 的层级。AKO 连接的是概念与概念,ISA 连接的是实例与概念。比如“麻雀 AKO 鸟”表示麻雀是鸟的一种;“某只麻雀 ISA 鸟”表示某只具体的麻雀属于鸟类。考试里如果只问“用来表达节点知识的什么”,答继承性即可;如果要求补全弧名,就要看两端节点是类还是实例。梳理下来会发现,语义网络的得分点不在画得多漂亮,而在关系名是否准确、方向是否合理、有没有把属性和关系混成一条边。
语义网络也有明显短板:它没有统一的形式化推理规则,遇到复杂否定、量词和过程性知识时容易表达不清。所以它常和框架、产生式、谓词逻辑一起出现。复习时可以把语义网络当成“知识表示的第一层”,知道它擅长表达分类、属性、关系和继承,不擅长表达严格逻辑推导。这个定位清楚后,选择题里“框架网络、语义图、博弈图、状态图”这类干扰项就不容易选错。
2.2 产生式系统:规则库、综合数据库与推理机
产生式系统是这套卷子里出现频率很高的模块。产生式规则的基本形式是P → Q,或者写成IF P THEN Q。P 是前提,也叫前件,用来指出规则可用的条件;Q 是结论或操作,也叫后件,用来指出前提满足后应该推出的结论或执行的动作。产生式规则的语义可以概括为:如果前提 P 被满足,则可推出结论 Q,或执行 Q 所规定的操作。答题时要把“前提被满足”和“结论/操作”两句话说全,只写“如果 P 则 Q”会显得太薄。
产生式系统由三部分组成:规则库、综合数据库、推理机。规则库是领域知识的产生式规则集合;综合数据库存放问题求解过程中的当前信息,包括初始事实、外部输入事实、中间结果和最终结果;推理机是控制协调规则库与数据库运行的程序,包含推理方式和控制策略。卷面上常把“用户”混进专家系统组成部分,但在产生式系统三件套里,用户不是组成部分。这个点要分清:产生式系统讲规则库、数据库、推理机;专家系统讲知识库、综合数据库、推理机、知识获取、解释器、用户界面。
产生式系统的推理方式分正向、反向、双向。正向推理从已知事实出发,通过规则库不断匹配,直到推出结论;反向推理从目标出发,寻找能推出目标的规则,再验证前提;双向推理则是两头同时推进。选择题里“从已知事实出发,通过规则库求得结论”对应正向推理,这个判断要干脆。实际系统里还要处理“可触发规则”和“被触发规则”的区别:当前事实能匹配上的规则是可触发规则,从可触发规则中选一条执行,被执行的规则才叫被触发规则。冲突消解策略决定选哪一条,常见的有优先级、 specificity、最近使用等。
下面用一段简化代码把正向推理的骨架走一遍,重点看三个角色怎么对应:
# 简化正向推理:facts 是综合数据库,rules 是规则库,循环是推理机 facts = {"A", "B"} rules = [ ({"A", "B"}, "C"), # 前提集合 -> 结论 ({"C"}, "D"), ] changed = True while changed: changed = False for prem, concl in rules: # 前提全部在事实库里,且结论尚未出现,才触发 if prem.issubset(facts) and concl not in facts: facts.add(concl) changed = True print(facts) # 输出 {'A', 'B', 'C', 'D'}这段代码里,facts对应综合数据库,rules对应规则库,while循环和匹配逻辑对应推理机。参数prem是规则前提集合,concl是规则结论;prem.issubset(facts)判断前提是否全部满足。真实系统不会这么简单,还要记录规则触发顺序、处理冲突消解、支持解释链。复习时如果只背“规则库、数据库、推理机”三个词,遇到“可触发规则和被触发规则的区别”就会卡住,所以要把运行过程也过一遍。
产生式系统和图搜索经常被放在一起对比。产生式系统的数据库对应搜索的状态,规则对应搜索的算子,推理机对应搜索的控制策略;区别在于产生式系统更强调规则匹配和冲突消解,图搜索更强调状态空间和路径。卷面里“补齐产生式系统与图搜索对比表”这类题,答题时可以从“知识单位、状态表示、控制方式、结果形式”四个维度展开,不要只写一句“都是搜索”。
2.3 不确定性四类型与可信度 CF 组合公式
不确定性是填空题的高频区。按性质分,常见四类是随机性、模糊性、不完全性、不一致性。随机性来自事件发生与否不确定,模糊性来自概念边界不清晰,不完全性来自信息缺失,不一致性来自多个来源给出冲突信息。这四个词要按顺序记,卷面上经常要求原样填。容易错的是把“不确定性”本身也写进四类型,或者把“不一致性”写成“不确定性”,读题时要看题目问的是“按性质分”还是“按来源分”。
可信度 CF 是另一组必背公式。这套卷子的答案体系里,CF(~A) = -CF(A),CF(A1∧A2) = min{CF(A1), CF(A2)},CF(A1∨A2) = max{CF(A1), CF(A2)}。这里要特别提醒:CF 不是概率,否定不是1 - CF(A),合取不是相乘,析取不是相加。很多复习资料会把可信度和概率公式混在一起,导致一考就翻车。最稳的记法是“否定取反,合取取小,析取取大”。如果题目给的是概率,那才用1-P和乘法加法;如果题目明确写 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(A1)=0.8,CF(A2)=0.5,那么合取可信度取 0.5,析取可信度取 0.8。这个结果符合直觉:合取要求两个都成立,可信度受较弱的一方拖累;析取只要一个成立,可信度由较强的一方支撑。注意 CF 的取值通常在 [-1,1],负值表示证据不支持结论。如果卷面出现大于 1 的数值,要警惕它把模糊隶属度和可信度混用了,答题时按题目给出的数值解释,但复习时要分清概念边界。
2.4 三值逻辑与模糊知识表示
三值逻辑用 T、F、U 分别表示真、假、不能判定。它的真值表比二值逻辑多一个 U,考试常考“填写三值逻辑表”。记忆时抓住两条:与运算里 F 是“压倒性”的,任何值和 F 相与都得 F;或运算里 T 是“压倒性”的,任何值和 T 相或都得 T。U 和 T 相与得 U,U 和 F 相或得 U,U 和 U 相与、相或都得 U。非运算对 U 不变,~U = U。
| A | B | A∧B | A∨B |
|---|---|---|---|
| T | T | T | T |
| T | F | F | T |
| T | U | U | T |
| F | F | F | F |
| F | U | F | U |
| U | U | U | U |
模糊知识表示则常用“对象—属性—值(隶属度)”的形式。比如“张三,体型,(胖,0.9)”表示张三属于胖的隶属度是 0.9;“患者,症状,(头疼,0.95)∧(发烧,1.1)→ 患者,疾病,(感冒,1.2)”表示如果患者头疼且发烧,则患感冒的可信程度。卷面例子里的 1.1、1.2 超过 1,说明它把模糊隶属度和可信度混在一条式子里用了;复习时要能指出“模糊隶属度通常在 [0,1],CF 通常在 [-1,1]”,但答题时仍按题目给的数值解释语义,不要擅自改题。
梳理下来会发现,知识表示这一章的关键不是背多少种方法,而是知道每种方法“吃什么、吐什么”:语义网络吃概念和关系,吐继承结构;产生式吃规则和事实,吐推理链;框架吃槽和填充值,吐结构化对象;谓词逻辑吃量词和谓词,吐严格证明。把这四种定位分清,选择题和简答题都能少丢分。
3. 谓词逻辑与归结原理:子句集八步、MGU 与反演证明
3.1 一阶谓词、量词辖域与 Skolem 函数
谓词逻辑是归结原理的地基。谓词用来表示个体之间的关系或属性,个体变元是被讨论的对象。仅个体变元被量化的谓词叫一阶谓词;如果还能对谓词本身量化,就进入二阶。卷面选择题里“仅个体变元被量化的谓词”选一阶谓词,这个定义要记准。原子公式是最基本的谓词表达式,比如P(x)、F(x,y);量词分全称量词∀和存在量词∃。
量词后面紧接的被量词作用的公式叫辖域。在辖域中,与量词指导变元相同的变元叫约束变元,其他变元叫自由变元。这个术语群经常在填空题里出现,复习时不要只记“约束”和“自由”,要把“辖域—指导变元—约束变元—自由变元”连成一句话。比如∀x(P(x)∧Q(y))中,P(x)∧Q(y)是∀x的辖域,x 是约束变元,y 是自由变元。
Skolem 函数是子句集转换里的关键。考虑∀y∃x P(x,y),存在量词∃x在全称量词∀y的辖域内,意味着 x 的取值可能依赖于 y。为了把这个依赖关系显式写出来,引入 Skolem 函数f(y),把式子变成∀y P(f(y), y)。这个函数叫 Skolem 函数。要注意,Skolem 化不是等价变换,它保持的是可满足性,不是所有模型上的真值完全一致。卷面选择题里问“这种函数叫什么”,答案就是 Skolem 函数,干扰项“依赖函数”“决定函数”都是把描述当名字。
3.2 子句集八步法:从蕴含式到子句集
谓词公式 G 化为子句集 S,标准八步是:消去蕴含式和等价式;缩小否定词作用范围,直到否定只作用于原子公式;适当改名,使量词间不含同名指导变元和约束变元;消去存在量词,形成 Skolem 标准型;消去所有全称量词;化成合取范式;适当改名,使子句间无同名变元;消去合取词,用逗号代替,以子句为元素组成集合 S。
这八步里最容易漏的是第 3 步和第 7 步。第 3 步是量词之间改名,防止不同量词使用同一个变元;第 7 步是子句之间改名,防止不同子句共享变元导致归结时置换冲突。很多人只记住“消蕴含、否定内移、消存在、消全称、化 CNF、去合取”,把两次改名吞掉了,结果做归结时置换乱套。血泪经验是:每次化子句集,先在草稿上标“量词改名”和“子句改名”两个检查点,写完回头看一眼。
举个最小例子:G = ∀x(P(x) → Q(x))。第一步消蕴含得∀x(¬P(x)∨Q(x));否定已经在原子公式上;只有一个量词,不需要量词间改名;没有存在量词;消全称得¬P(x)∨Q(x);已经是合取范式;只有一个子句,不需要子句间改名;去合取得子句集{¬P(x)∨Q(x)}。如果式子里有∀x∃y R(x,y),第四步会得到R(x,f(x)),其中f(x)是 Skolem 函数。这个例子虽小,但能把“存在量词依赖全称量词”讲清楚。
3.3 MGU 求法:差异集、置换与合成
MGU 是最一般合一置换。求 MGU 的算法可以拆成:令k=0,S0=S,δ0=ε;若Sk是单元素集,停止,δk就是 MGU;否则找Sk的差异集Dk;若Dk中存在变元 x 和项 t,且 x 不在 t 中出现,则做置换{t/x};令δ(k+1)=δk·{t/x},S(k+1)=Sk·{t/x},k 加一,继续。若差异集中没有可置换的变元/项对,或出现 occurs check 失败,则不可合一。
拿卷面例子走一遍:S={P(f(x),y,g(y)), P(f(x),z,g(x))}。S0不是单元素集,差异集D0={y,z},y 是变元,z 是项,且 y 不在 z 中出现,取置换{z/y},得S1={P(f(x),z,g(z)), P(f(x),z,g(x))}。S1仍不是单元素集,差异集D1={z,x},取置换{z/x},得S2={P(f(z),z,g(z))}。S2是单元素集,MGU 为{z/y, z/x}。这里要注意置换合成的书写顺序:先做z/y,再做z/x,最终结果要同时体现在两个位置上。
另一个例子: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)/z}后两个原子公式一致,MGU 就是{g(A,y)/z}。这个例子说明差异集不一定出现在最外层,要按项的结构逐层找。
下面用一段简化代码演示“找差异集”的思路,注意它只是 MGU 算法的第一步,不是完整实现:
# 简化差异集查找:项用元组表示,例如 ('f', 'x')、('P', ('f','x'), 'y') def diff_set(expr1, expr2): if expr1 == expr2: return None # 两个复合项:先比谓词/函数名,再逐个子项比 if isinstance(expr1, tuple) and isinstance(expr2, tuple): if expr1[0] != expr2[0]: return {expr1, expr2} # 谓词名不同,不能合一 for a, b in zip(expr1[1:], expr2[1:]): d = diff_set(a, b) if d: return d return {expr1, expr2} print(diff_set(('P', ('f','x'), 'y'), ('P', ('f','x'), 'z'))) # 输出 {'y', 'z'},对应差异集 {y, z}这段代码只处理“找第一个不一致位置”,参数expr1、expr2是项结构。完整 MGU 还要判断差异集里谁是变元、谁是项,做 occurs check,再把置换作用到剩余表达式上并合成。考试时手算要按“差异集—选置换—作用—再找差异集”循环,不要跳步。
3.4 归结反演:空子句、重言式与求解
归结原理的核心是消去互补文字。设C1=L∨C1',C2=¬L∨C2',σ 是互补文字的最一般合一置换,则归结式C=C1'σ∨C2'σ。注意这里是析取,不是合取;置换要作用在剩余子句上,不只是消去 L。卷面选择题里归结式选项经常用∧来干扰,看到合取符号就要警惕。
反演证明的流程是:把前提化成子句集;把结论的否定也化成子句集加进去;不断归结;如果得到空子句□,说明原子句集不可满足,原结论得证。空子句是“永假”,出现空子句就结束。如果当前归结式是永真式,不能得证;永真式对证明没有贡献,通常要删除。删除策略里还会删纯文字子句、永真子句、被其他子句类含的子句。
用祖孙关系题走一遍。定义F(x,y)表示 x 是 y 的父亲,G(x,z)表示 x 是 z 的祖父。已知:如果 x 是 y 的父亲且 y 是 z 的父亲,则 x 是 z 的祖父;A 是 B 的父亲;B 是 C 的父亲。求证 A 是 C 的祖父。化成子句:
¬F(x,y)∨¬F(y,z)∨G(x,z)(前提)F(A,B)(事实)F(B,C)(事实)¬G(u,v)(结论否定)
归结:由 1 和 2,置换{A/x, B/y},得¬F(B,z)∨G(A,z);再和 3 归结,置换{C/z},得G(A,C);再和 4 归结,置换{A/u, C/v},得空子句。证明完成。
如果题目要求“求解”而不是单纯证明,就把结论否定换成重言式¬G(u,v)∨G(u,v),它恒为真,不破坏可满足性,但能保留变量。继续归结得到G(A,C),于是回答“A 是 C 的祖父”。这里的关键是:证明用空子句收尾,求解用重言式保留答案。很多人把两者混在一起,导致最后只写“得证”,没有回答“谁和谁是祖孙关系”。
4. 搜索与专家系统:状态图、α-β 剪枝与知识库设计
4.1 状态空间图、或图与与或图
图由节点和有向边组成。节点表示状态、概念或子问题,有向边表示转移、关系或分解。按连接同一节点的各边的逻辑关系,图可以分为或图和与或图。或图里,只要有一条边可达目标即可;与或图里,一个父问题分解成若干子问题,子问题要同时解决。卷面选择题“或图通常称为”答案是状态图,因为状态空间搜索里每个节点是一个状态,边是算子,走到任一目标状态即可。
状态空间图是搜索题的通用语言。八数码、走迷宫、下棋都可以表示成状态空间:初始状态、目标状态、算子集合、路径代价。画图时不要把所有状态都画出来,只画题目要求的那一层。与或图则常见于问题分解,比如“证明一个定理”可以分解成“证明子目标 1”和“证明子目标 2”,两个子目标都成立才算完成。这个区别在选择题里经常用“框架网络、语义图、博弈图、状态图”来干扰,记准“或图—状态图”这一对。
4.2 盲目搜索与启发式搜索的最优性
搜索算法的最优性要看条件。广度优先搜索按层扩展,在无权图或所有边代价相等时,第一次到达目标就是最短路径,所以能保证最优;深度优先搜索一路到底,可能陷入很深的子树,既不保证最优,也不保证完备;有界深度优先搜索加了深度限制,可能找不到解,也不保证最优;启发式搜索用启发函数引导方向,只有启发函数满足可采纳性等条件时才保证最优。
可以列一张对比表:
| 算法 | 完备性 | 最优性 | 关键条件 |
|---|---|---|---|
| 广度优先 | 有解时通常能找 | 无权图保证 | 按层扩展 |
| 深度优先 | 不一定 | 不保证 | 可能陷入深分支 |
| 有界深度 | 不一定 | 不保证 | 深度限制 |
| 启发式搜索 | 视算法 | 满足条件才保证 | 启发函数可采纳 |
卷面第 15 题“如果问题存在最优解,哪种算法必然可以得到最优解”,选广度优先搜索,原因是它按路径长度逐层扩展,第一次碰到目标时路径最短。启发式搜索虽然效率高,但“必然最优”要看启发函数,不能无条件选。复习时要把“能搜到”和“搜得最优”分开:完备性讲能不能找到解,最优性讲找到的解是不是最好。
启发式搜索里常用f(n)=g(n)+h(n),g(n) 是从初始节点到 n 的实际代价,h(n) 是从 n 到目标的估计代价。h(n) 越接近真实代价,搜索越有方向。若 h(n) 从不高估真实代价,则满足可采纳性,A* 在树搜索中可保证最优。这个条件经常被简写成“h 不超过实际代价”,答题时要写清“不高估”。
4.3 极大极小与 α-β 剪枝的两个条件
二人博弈常用极大极小分析。MAX 节点选最大值,MIN 节点选最小值,从叶节点估值倒推。α-β 剪枝是在极大极小基础上剪掉不影响结果的分支。α 是 MAX 节点当前已知的最好下界,β 是 MIN 节点当前已知的最好上界。α 剪枝发生在 MIN 节点:如果某个 MIN 节点的 β 值小于或等于它任一祖先 MAX 节点的 α 值,即α(祖先MAX) ≥ β(当前MIN),就可以停止该 MIN 节点以下的搜索。β 剪枝发生在 MAX 节点:如果某个 MAX 节点的 α 值大于或等于它任一祖先 MIN 节点的 β 值,即α(当前MAX) ≥ β(祖先MIN),就可以停止该 MAX 节点以下的搜索。
这两个方向最容易记反。可以背成“MIN 看 β,碰到祖先 α 就剪;MAX 看 α,碰到祖先 β 就剪”。再看一段剪枝骨架:
# alpha-beta 剪枝骨架:只保留判断条件,忽略估值细节 def alphabeta(node, depth, alpha, beta, maximizing): if depth == 0 or node.is_terminal(): return node.value if maximizing: value = -float("inf") for child in node.children: value = max(value, alphabeta(child, depth - 1, alpha, beta, False)) alpha = max(alpha, value) if alpha >= beta: # β 剪枝:MAX 的 α 已不小于祖先 MIN 的 β break return value else: value = float("inf") for child in node.children: value = min(value, alphabeta(child, depth - 1, alpha, beta, True)) beta = min(beta, value) if beta <= alpha: # α 剪枝:MIN 的 β 已不大于祖先 MAX 的 α break return value参数alpha是 MAX 当前最好下界,beta是 MIN 当前最好上界;maximizing为真表示当前是 MAX 层。注释里的方向要和前面文字一致:MAX 层更新 alpha,遇到alpha >= beta剪;MIN 层更新 beta,遇到beta <= alpha剪。做题时先在博弈树上标 α、β,再判断剪枝,不要凭感觉。
4.4 专家系统的组成与开发步骤
专家系统是这套卷子里偏应用的模块。它的基本组成包括知识库、综合数据库、推理机、知识获取、解释器、用户界面。知识库存领域知识,综合数据库存当前事实,推理机控制推理,知识获取负责把专家知识转成系统知识,解释器回答“为什么得出这个结论”,用户界面负责人机交互。选择题里“下列哪部分不是专家系统的组成部分”,如果选项出现“用户”,要选“用户”,因为用户是外部角色,不是系统内部模块。
专家系统的开发步骤可以记成九步:系统总体分析与设计;知识获取;知识表示与知识描述语言设计;知识库设计与知识库管理系统设计;推理机与解释模块设计;总控与界面设计;编程与调试;测试与评价;运行与维护。与一般软件系统开发的共同点是同样遵循软件工程步骤,也要做分析、设计、测试、维护;特点是知识获取和知识表示是起点,知识表示和描述语言确定后,其他设计可以并行推进。
这个“起点”很关键。一般软件系统先定需求再设计功能,专家系统先想办法把专家知识拿出来、表示出来,否则推理机再漂亮也没有燃料。复习时可以把专家系统和产生式系统对照:产生式系统强调规则库、数据库、推理机三件套;专家系统在此之上增加知识获取、解释器、用户界面,并把知识库提升为核心。两者不要混答。
5. 易错点排查:五个最容易在 AI 卷面上翻车的地方
5.1 归结式符号和置换方向写反
易漏点:归结式写成C1'σ∧C2'σ,或者只把置换作用在互补文字上,忘记作用在剩余子句上。为什么漏:记口诀“消去互补文字”时,只记了消去,没记剩余部分要代入最一般合一置换。怎么补:每写一步归结,强制写三栏——“互补文字是什么、σ 是什么、剩余子句代入后是什么”。例如C1=L∨C1'、C2=¬L∨C2',归结式是C1'σ∨C2'σ,中间是析取。做完后用“置换是否覆盖所有变量”检查一遍,尤其是 MGU 里有两个替换时,别只写一个。
5.2 α-β 剪枝条件的方向记混
易漏点:把 α 剪枝写到 MAX 节点,把 β 剪枝写到 MIN 节点;或者把比较符号写反。为什么漏:α 和 β 的名字本身不提示层级,只靠死记很容易在考场紧张时颠倒。怎么补:用“MIN 看 β,MAX 看 α”做第一层记忆,再用“β 小于等于祖先 α 就剪 MIN;α 大于等于祖先 β 就剪 MAX”做第二层检查。画一棵三层树,手动标一次 α、β,比背十遍定义都稳。遇到代码题,先看当前层是 maximizing 还是 minimizing,再决定更新哪个参数。
5.3 CF 公式与“1-CF(A)”边界混淆
易漏点:把CF(~A)写成1-CF(A),把合取写成相乘,把析取写成相加。为什么漏:可信度 CF 和概率 P 长得像,复习时如果只看过概率公式,很容易顺手迁移。怎么补:在笔记首页写一行大字“CF 不是概率:否定取反,合取取小,析取取大”。做题时先看题目问的是 CF 还是概率;如果是 CF,就按-CF(A)、min、max走。遇到数值例子,先判断取值范围,CF 允许负值,概率不允许负值,这个边界能帮你快速识别。
5.4 子句集八步法漏掉两次改名
易漏点:只记“消蕴含、否定内移、消存在、消全称、化 CNF、去合取”,漏掉量词间改名和子句间改名。为什么漏:这两步在简单例子里看不出作用,容易被视为可省略。怎么补:把八步缩成“消、移、改、Skolem、全称、CNF、再改、去合取”,其中两个“改”分别对应第 3 步和第 7 步。每次化完子句集,检查“每个量词指导变元是否唯一、每个子句变量是否不重名”。如果后面归结时出现莫名其妙的置换冲突,八成就是改名没做干净。
5.5 搜索最优解与完备性混为一谈
易漏点:看到“深度优先”就以为能找到解,看到“启发式”就以为一定最优。为什么漏:把“搜索”当成一个整体,没有区分完备性、最优性、时间空间复杂度。怎么补:用一张四列表把 BFS、DFS、有界深度、启发式搜索逐项填完:是否完备、是否最优、前提条件、典型失败场景。特别记住:BFS 在无权图最优;DFS 不完备;有界深度可能丢解;启发式搜索只有在启发函数可采纳等条件下才保证最优。做题先问“图有没有权、有没有深度限制、启发函数是否高估”,再选算法。
6. 复习清单与查漏补缺:一份可执行的考前检查表
复习到最后一轮,不要再按页翻书,按“能不能手推”来查。下面这张表可以直接当检查表用,每格能不看资料复述或手算,才算过关。
| 模块 | 必会动作 | 自检题 | 薄弱信号 |
|---|---|---|---|
| 语义网络 | 画节点、标弧名、说继承性 | AKO 和 ISA 各连什么 | 把关系名写成属性值 |
| 产生式 | 说清三件套和正向推理 | 可触发规则与被触发规则区别 | 把用户算进系统组成 |
| CF | 默写三条公式 | CF(~A)、合取、析取 | 写成 1-CF 或乘加 |
| 三值逻辑 | 手填 3×3 表 | U∧T、U∨F | 把 U 当 F |
| 子句集 | 默写八步 | 第 3 步和第 7 步改什么 | 漏改名 |
| MGU | 手算差异集和置换 | 两个原子公式求 MGU | 置换方向写反 |
| 归结 | 写归结式并反演 | 空子句和重言式各用在哪 | 用合取连接剩余子句 |
| 搜索 | 对比 BFS/DFS/启发式 | 谁保证最优、条件是什么 | 把完备当最优 |
| α-β | 标 α、β 并剪枝 | 哪种节点发生哪种剪枝 | 方向记反 |
| 专家系统 | 说组成和开发步骤 | 哪个不是组成部分 | 把知识获取漏掉 |
我后来每次考前都强制走一遍“三张纸”流程:第一张纸默写知识表示和不确定性公式,第二张纸手推一个 MGU 和一个归结证明,第三张纸画一棵三层博弈树标 α-β。只要有一张纸卡住,就回到对应章节补,而不是继续刷新题。最容易忽略的是“写完之后检查置换作用范围”和“剪枝条件的方向”,这两个地方我踩过不止一次坑。把这份清单打印出来,每过一项打一个勾,比盲目刷十套卷子更稳。希望帮到你。
本文还有配套的精品资源,点击获取