简介:这份百度人工智能经典考试试题文档面向准备人工智能课程考试、笔试及基础面试的学习者,围绕语义网络、推理、知识表示、机器学习与自然语言处理等核心知识点组织内容。题目覆盖选择题、填空题、简答及计算题、应用题四种题型,并附参考答案与知识点说明,可用来快速自查概念掌握程度、熟悉常见命题方式,也能借助三值逻辑、归结证明、MGU、α-β剪枝、语义网络表示等具体题目复盘解题思路。压缩包内共1个doc文件,约279KB,篇幅紧凑,便于直接查阅和打印练习;既可用于期末复习,也可作为面试前的基础概念自测材料。目前已有1586人学习,适合需要系统梳理人工智能基础知识、查漏补缺的读者。
1. 从四道大题倒推:人工智能经典考试试题的知识地图
如果要在一周内把人工智能经典考试试题刷明白,先别急着背答案,先看骨架。一份 100 分的卷子通常这么切:15 分选择题打底常识,30 分填空专抠定义里的关键词,25 分简答计算考手算流程,30 分应用题落到语义网络、博弈树、谓词证明三个大块。这套结构在高校期末卷和大厂 AI 岗笔试题里重复率极高,所以它值得当成一张地图来记,而不是当题库来背。
这张地图上只有五个省:谓词逻辑与归结原理、产生式系统与知识表示、搜索与博弈、不确定性推理、AI 常识与学派。前两个省占分最重,第三第四个是计算题的主要产地,第五个省专门捡分。正在系统学这门课的人,用这张地图对一遍教材目录就能发现漏了哪块;已经在复习或准备面试题的人,直接按章节权重分配时间最快,哪块分高先啃哪块,别在学派选择题上耗一晚上。
2. 谓词逻辑与归结原理:子句集八步法、MGU 与反证法的完整链条
归结原理这块,是全卷唯一必须动手算、还一算就错的地方。它由三块拼起来:把自然语言翻译成谓词公式、把公式化成子句集、用归结反证法推空子句。三块里任何一块断链,后面的证明就无从下手,而卷面上往往只给几分,扣起来却毫不留情。
2.1 谓词、量词与三个必须分清的名词
命题的定义先钉死:能判断真假的陈述句。祈使句、疑问句、感叹句一律不算,这是选择题的固定陷阱。往上走是谓词,谓词里被量化的对象如果是「个体变元」,那叫一阶谓词;如果连谓词本身也能被量化,才是二阶谓词。卷面常问「仅个体变元被量化的谓词称为」,答一阶谓词。
量词相关的三个名词必须分清,填空题最爱抠这里:
| 名词 | 含义 | 卷面常见问法 |
|---|---|---|
| 辖域 | 紧接量词之后、被该量词作用的整个谓词公式 | 给出公式问某量词的辖域范围 |
| 约束变元 | 出现在辖域内、且与指导变元同名的变元 | 问哪个变元是约束的 |
| 自由变元 | 同名的但不在该量词辖域内的变元 | 问公式是否为闭公式 |
翻译环节有两个高频句型要练熟。一个是「不存在最大的整数」,先设 G(x) 表示 x 是整数、D(x,y) 表示 x 大于 y,写成 ¬∃x(G(x) ∧ ∀y(G(y) → ¬D(x,y))),意思是没有任何一个整数能大过所有整数。另一个是「凡是清洁的东西就有人喜欢」,设 P(y) 表示 y 清洁、L(x,y) 表示 x 喜欢 y,写成 ∀y(P(y) → ∃xL(x,y)),化成子句时 ∃ 会被一个函数顶替,这个函数把每个 y 映射到「喜欢它的那个人」。
2.2 子句集八步法:每一步对应一个典型翻车点
从谓词公式 G 到子句集 S,教材给的是固定八步,顺序不能乱:
- 消去蕴含式和等价式,把 → 和 ↔ 换掉;
- 把否定词 ¬ 的作用范围压到原子公式上,靠德摩根律和量词否定律;
- 适当改名,让不同量词不共用同一个指导变元;
- 消去存在量词,形成 Skolem 标准型;
- 消去所有全称量词,默认全称量词管辖全式;
- 化成合取范式,靠分配律把 ∨ 分配到 ∧ 里;
- 适当改名,让不同子句之间不出现同名变元;
- 消去合取符号 ∧,用逗号隔开,以每个子句为元素组成集合 S。
第 3 步和第 7 步是两次改名,很多人只做一次,结果归结时把两个不同子句里的同名变元当成同一个,合出错解。第 4 步最容易错:只孤立出现一次的存在量词用一个常量(Skolem 常量)替换;如果存在量词落在某个全称量词的辖域内,说明这个存在的个体依赖前面的全称变元,必须用一个函数替换,参数就是那些全称变元。区分这两者的标准只有一条——看 ∃ 外层有没有 ∀。
注意:第 6 步化成合取范式时,全称量词已经被消掉,所以分配过程中不要再纠结量词顺序,此时公式里已经没有量词了。
2.3 MGU:差异集手算法和它的边界条件
MGU 是最一般合一,求它靠差异集逐轮迭代。记初始替换 δ0 为空,S0 为原始原子公式集,每一轮看 S 是否只剩一个元素:是则停,δ 就是 MGU;否则找出第一个差异位置,比较该位置上的两个项。
def mgu(atoms): """差异集法求最一般合一:atoms 为若干原子公式,返回替换字典或 None""" subst = {} atoms = list(atoms) while True: # 1) 所有原子公式完全一致,当前替换即 MGU if all(a == atoms[0] for a in atoms): return subst # 2) 定位第一个差异位置,取出参与差异的两个项 v, t v, t = first_difference(atoms) # 3) 差异双方必须有一方是变元,否则合一失败(谓词名不同直接无解) if is_variable(t): v, t = t, v if not is_variable(v): return None # 4) occurs check:变元不能出现在要与它合一的项里,否则会无限展开 if occurs(v, t): return None # 5) 记录替换并整体应用到所有原子公式,进入下一轮 subst[v] = t atoms = [apply_subst(subst, a) for a in atoms]参数说明上,subst是累积替换字典,键是变元、值是项;first_difference负责从左到右比对两个原子公式的项结构,返回第一处不一致的项对;occurs就是那个防止把 x 合一成 f(x) 的检查。这段代码对应的手算过程是:每一轮只解决一个差异,替换要同步作用到所有剩余公式上,而不是只改当前那一对。
照着试卷里那道 S={P(f(x),y,g(y)), P(f(x),z,g(x))} 走一遍:第一轮差异集是 {y,z},y 是变元且 z 中不含 y,取 δ1={z/y};应用后集合变成 {P(f(x),z,g(z)), P(f(x),z,g(x))},第二轮差异集是 {z,x},取 δ2={z/y, z/x};此时集合只剩 P(f(z),z,g(z)),停止。最终 MGU={z/y, z/x},注意顺序写反不算错,写成 {z/x, z/y} 也对,但漏掉其中一个就是零分。
另一道 W={P(f(x,g(A,y)),z), P(f(x,z),z)} 的差异集是 {g(A,y), z},这次变元是 z,取 {g(A,y)/z},一轮就收敛。
| 概念 | 作用 | 和 MGU 的关系 |
|---|---|---|
| 替换 | 用项代换变元的一次操作 | MGU 是替换,但不是任意替换 |
| 合一 | 让两个原子公式变得完全相同 | MGU 是最「省」的那种合一 |
| 匹配 | 单向合一,一边不许有变元 | 归结要求的是合一,不是匹配 |
2.4 归结反证法:从否定结论到空子句
归结式定义是死的:设 C1 = L ∨ C1',C2 = ¬L ∨ C2',σ 是互补文字的最一般合一置换,则归结式 C = C1'σ ∨ C2'σ。是析取,不是合取,这一条能救回填空题的分。证明定理时走反证:把结论取反加进子句集,一路归结,出现空子句 □ 就说明定理成立。
祖孙那道题是标准模板。定义 F(x,y) 表示 x 是 y 的父亲,G(x,z) 表示 x 是 z 的祖父,已知三条:F(x,y)∧F(y,z)→G(x,z)、F(L,D)、F(D,X)。把结论 ¬G(u,v) 加进来,归结路径是:① ¬F(x,y) ∨ ¬F(y,z) ∨ G(x,z) 与 ② F(L,D) 归结得到 ⑤ ¬F(D,z) ∨ G(L,z);⑤ 再与 ③ F(D,X) 归结得到 ⑥ G(L,X);⑥ 与 ④ 归结出 □。
如果要的不是「得证」而是「谁是谁的祖父」,就把结论的否定换成重言式 ¬G(u,v) ∨ G(u,v),最后一步归结出来的是 G(L,X) 而不是空子句,答案直接落在置换里:L 是 X 的祖父。这个技巧叫提取答案,应用题里出现「问谁和谁是祖孙关系」时必须用它,只写 □ 等于没答问题。
子句集大了以后手动归结对不动,删除策略是唯一的减负手段,三条要背准:删掉含纯文字的子句(该文字在整个子句集中没有互补文字)、删掉含永真式的子句(形如 L ∨ ¬L)、删掉被别的子句类含(包孕)的子句。注意「含有重复文字的子句」不属于这三条,写上去就是错。
3. 产生式系统与知识表示:三件套、AKO/ISA 链与四种表示法的取舍
知识表示这一章看着软,考点却很硬:产生式系统的组成部分、正向反向推理的判定、语义网络里弧的语义、专家系统缺哪一块。它和第二章的关系是——谓词逻辑解决「怎么算」,知识表示解决「知识长什么样、怎么被用起来」。
3.1 产生式系统的三件套与推理方向
产生式的基本形式是 P → Q,也可以写成 IF P THEN Q。P 是前件(前提),指出这条规则能不能用;Q 是后件(结论或操作),指出前提满足后应该得出什么或执行什么。语义一句话:如果前提 P 被满足,则可推出结论 Q 或执行 Q 规定的操作。
一个产生式系统由三部分组成,缺一不可:
| 部件 | 存放什么 | 常见错答 |
|---|---|---|
| 规则库 | 描述领域知识的产生式规则集 | 说成「存放事实」 |
| 综合数据库 | 初始事实、外部输入事实、中间结果、最终结果 | 说成「规则集合」 |
| 推理机 | 控制系统,决定推理方式与控制策略 | 说成「用户界面」 |
推理方向按起点分三种。从已知事实出发、在规则库里找可用的规则、推出结论,是正向推理(数据驱动);从假设的结论出发、倒着找支撑它的事实,是反向推理(目标驱动);两头同时推进的是双向推理。卷面那句话「从已知事实出发,通过规则库求得结论」对应的就是正向推理,看到「事实出发」四个字先圈正向。
推理过程中可能出现多条规则同时可触发,形成冲突集,此时要从可触发规则里挑一条执行,被选中的那条叫触发规则,挑选的过程叫冲突消解。常见策略有优先级、专一性(更具体的规则先用)、就近原则。这个术语在填空题里出现频率不低,很容易和「被触发规则」混着写。
# 前向推理骨架:规则库 + 综合数据库 + 推理机 def forward_chain(facts, rules): db = set(facts) # 综合数据库:初始事实 fired = [] # 已执行规则,避免死循环 while True: agenda = [r for r in rules if r.cond(db) and r not in fired] # 冲突集:当前可触发规则 if not agenda: return db, fired rule = conflict_resolve(agenda) # 冲突消解:优先级 / 专一性 db |= rule.fire(db) # 执行触发规则,结论写回数据库 fired.append(rule)cond是规则前提的判定函数,fire返回结论集合;conflict_resolve决定选哪条,一般先用专一性再用优先级,因为更具体的规则条件更强、结论更可靠。这段骨架的失败点通常不在推理本身,而在没有fired集合导致规则反复触发。
用 1~9 排序列那道题检验一下就清楚了:要求序列前 n 位组成的整数能被 n 整除。能帮上忙的知识有两条——偶数只能放偶数位、奇数只能放奇数位,第五位一定是 5。综合数据库用一个 1 到 9 的序列 N 表示,规则写成 r1:长度等于 4 时追加 5;r2:长度为偶数时追加 {1,3,7,9} 中的一个;r3:长度为奇数时追加 {2,4,6,8} 中的一个;初始状态是空序列,终止条件是前 i 位能被 i 整除。这类题的评分点不在答案数字,而在你有没有把「数据库、规则集、初始状态、终止条件」四件写全。
3.2 语义网络:节点、有向弧与 AKO/ISA 链的继承性
语义网络用节点表示概念或对象、用有向边表示节点之间的关系,本质是一张带标签的图。卷面那句「有向弧 AKO 链、ISA 链是用来表达节点知识的」答案只有一个——继承性。ISA 表示「是一个(is-a)」,AKO 表示「是一种(a-kind-of)」,两者都是把下层节点挂到上层概念上,让下层自动继承上层的属性,这就是继承性的来源。
把「A同学是某公司的经理,他 35 岁,住某胡同 68 号」画成网络,节点有:A同学、某公司、经理、35、某胡同、68。边是:A同学 —is-a→ 经理,经理 —part-of/工作于→ 某公司,A同学 —age→ 35,A同学 —住址→ 某胡同68号。画的时候要注意,属性和关系都挂在节点上,别把「35」再拆成节点套一层。比赛比分那句同理:两所高校各作为节点,中间挂一个「比赛」事件节点,边上标 89 和 102,事件节点比「校A—校B」直连更能表达时序和比分。
语义网络和谓词逻辑可以互译,这是应用题的隐藏得分点。「某个学生读过三国演义」用谓词公式写是 ∃x(Student(x) ∧ Read(x, 某书)),画成网络就是一个 Student 节点、一个 Book 节点、一条 Read 弧连过去,存在量词体现为那个没名字的节点。反过来,网络里的每条弧都能还原成一个二元谓词。想拿满分的写法是两种表示都给出,再补一句弧的语义说明。
提示:语义网络的短板要能说出来——没有统一的形式语义、推理要靠继承和匹配、不好处理否定和析取。简答题问「语义网络的优缺点」时这几条就是分。
3.3 四种表示法的取舍与专家系统的六个部件
知识表示的方法卷面主要考四种,各自的适用场景别混:
| 表示法 | 强在哪 | 弱在哪 | 典型场景 |
|---|---|---|---|
| 谓词逻辑 | 形式语义严格、可归结证明 | 写起来啰嗦、难处理不确定性 | 定理证明、祖孙关系推理 |
| 产生式 | 规则独立、易增删、贴近人判断 | 规则多了会冲突、效率低 | 诊断、配置类专家系统 |
| 语义网络 | 结构直观、继承推理快 | 无语义标准、难表达否定 | 概念层次、实体关系建模 |
| 框架 | 按槽组织、默认值好写 | 槽间约束难以形式化 | 结构化对象、模式化知识 |
专家系统的组成是另一处高频填空。标准六件是知识库、综合数据库(工作存储)、推理机、解释器、知识获取模块、人机界面。「用户」不是组成部分,它是使用者,出现在选项里就是来送分的。再往下问知识的四要素,是事实、规则、控制、元知识,「关系」是干扰项。
开发专家系统的步骤也有固定说法:总体分析与设计、知识获取、知识表示与知识描述语言设计、知识库与知识库管理系统设计、推理机与解释模块设计、总控与界面设计、编程调试、测试评价、运行维护。和一般软件工程相比的共同点是同样要走需求分析和系统设计,特点在于知识获取和知识表示是一切工作的起点,而且这两项一旦定下来,后面的设计可以并行推进——这个「并行」是简答题的采分点。
4. 搜索与博弈:状态图、启发函数与 α-β 剪枝的判定条件
搜索这一章的计算量集中在两处:搜索算法的完备性与最优性对比,以及博弈树上的 α-β 剪枝。前者靠一张表记住,后者必须动手画树,光看答案学不会。
4.1 状态空间图、或图与与或图
把迷宫位置、棋盘布局、八数码的排列都抽象成节点,把一步操作抽象成边,得到的就是状态空间图。因为求解过程是「在若干条可选路径里选一条能到终点的」,这类图的每个节点只要满足一个子节点即可,逻辑上是「或」,所以状态图也叫或图。与之相对的是与或图:一个问题分解成若干子问题,这些子问题必须全部解决,节点之间是「与」的关系,边上的连接符会画成小圆弧。
这两个名词在填空题里反复出现,判断依据只有一条:看子问题之间是「任选其一」还是「缺一不可」。
4.2 盲目搜索的最优性对比与启发式搜索的落点
四种搜索的最优性经常被拿来出选择题,问「如果问题存在最优解,哪种算法必然能得到该最优解」,标准答案是广度优先搜索(在边代价相等的条件下)。理由很直接:它按层扩展,第一次碰到目标节点时走过的步数一定最少。深度优先可能一头扎进无穷分支,找不到最优解甚至找不到解;有界深度优先的解不一定最优,因为深度界限卡在那;启发式搜索只有在启发函数满足可采纳性(不高估真实代价)时才保证最优。
启发式搜索中用来携带启发性信息的函数叫启发函数,常见写法是 f(n) = g(n) + h(n),g 是从初始节点到 n 的实际代价,h 是 n 到目标的估计代价。h 取 0 时退化成一致代价搜索,h 高估时会快但可能不最优,这个权衡关系在简答题里值得写一句。
4.3 α-β 剪枝:两个判定条件和一棵必须画出来的树
博弈问题的标准解法是极大极小分析法:先生成一棵博弈树,叶节点给估值,然后自底向上算倒推值,MAX 层取最大值、MIN 层取最小值。它的效率太低,改进就是 α-β 剪枝。
两个判定条件必须背准,方向弄反是最常见的翻车现场:
| 剪枝类型 | 判定条件 | 剪在哪 |
|---|---|---|
| α 剪枝 | 任一极小值层节点的 β 值 ≤ 它任一先辈极大值层节点的 α 值 | 中止该 MIN 节点以下的搜索,倒推值取这个 β |
| β 剪枝 | 任一极大值层节点的 α 值 ≥ 它任一先辈极小值层节点的 β 值 | 中止该 MAX 节点以下的搜索,倒推值取这个 α |
INF = float("inf") def alphabeta(node, depth, alpha, beta, maximizing): # 叶子节点或到达深度限制,直接返回静态估值 if depth == 0 or node.is_leaf(): return node.value if maximizing: # MAX 层:往上抬 alpha value = -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: # MIN 层:往下压 beta value = INF for child in node.children: value = min(value, alphabeta(child, depth - 1, alpha, beta, True)) beta = min(beta, value) if alpha >= beta: # 对应试卷的 α 剪枝:MIN 节点的 β 掉到先辈 MAX 的 α 之下 break return value参数含义:alpha是 MAX 层当前能保证的下界,beta是 MIN 层当前能保证的上界,maximizing标记当前轮到谁走。break的位置就是剪枝点,被跳过的那些子节点就是卷面上要求你画叉的分枝。
这里有个特别容易错的表述:剪掉的是「该节点以下的分枝」,不是节点本身,节点自己的倒推值照样要算出来往上传。另外注意剪枝条件里的方向——判断发生在 MIN 层时叫 α 剪枝,发生在 MAX 层时叫 β 剪枝,很多人按「剪的是 α 还是 β」去记,结果和层类型对不上。手算时先把树按层标好 MAX/MIN,再从最左子树开始,一路记着祖先传下来的 α 和 β,遇到不满足就停,比死记文字可靠。
5. 易错点清单:五个一到考场就翻车的地方
这一章是我自己按错题整理出来的。有些错误不是不会,是记混了一个字、漏写了一个符号,扣分却和完全不会一样多。
5.1 归结式写成合取,还把合一置换 σ 丢了
易漏点:归结式 C = C1'σ ∨ C2'σ,写成 C1' ∧ C2',或者把 σ 直接省掉写成 C1' ∨ C2'。
为什么漏:潜意识里把「两个子句合到一起」理解成「同时成立」,于是顺手写成 ∧;而 σ 在推导过程中往往被默认掉了,因为简单题里 σ 是空替换,写不写看不出差别,一旦遇到需要合一的题就露馅。
怎么补:每次写归结式前先默念一遍「析取 + 置换」,写完检查两件事——符号是不是 ∨、σ 有没有落到两个剩余部分上。练习时强迫自己在归结式后面用括号标出置换,比如 (C1'σ ∨ C2'σ){z/y, z/x},标两周就形成条件反射了。
5.2 CF 的合取析取公式记成另一套
易漏点:CF(¬A) = -CF(A),CF(A1∧A2) = min{CF(A1), CF(A2)},CF(A1∨A2) = max{CF(A1), CF(A2)},这一套是确定性理论的原版定义。另一套把可信度当概率处理,用 1-CF(A)、乘法、加法减乘积的写法也广泛流传,两套混着用就全错。
为什么漏:不同教材给的版本不一样,复习时手边同时有两本书,抄公式时抄了上半句忘了下半句,结果 ¬A 用 -CF(A)、合取用乘积,成了缝合怪。
怎么补:先确认自己考的那本教材用哪套,然后在草稿纸首页写死一套,全程只用手上这套。判断依据是问自己「这套公式满足 CF(A∨¬A)=1 吗」,满足的那套自洽。考试时遇到不确定,就把两套都写在旁边,按教材版本选,不要临场推导。
5.3 删除策略的三个术语写成大白话
易漏点:删除策略删的是含纯文字的子句、含永真式的子句、被别的子句类含(包孕)的子句。
为什么漏:这三条用大白话解释起来都通顺——「含重复文字的子句」「自相矛盾的子句」「被证明出来的子句」听着也像那么回事,于是填空时顺手写了白话,判卷按术语给分,一分不得。
怎么补:把三个术语和它们的判定标准绑在一起记。纯文字看「该文字在全集中有没有互补文字」,永真式看「子句内部有没有 L 和 ¬L 并存」,类含看「子句 A 是否被另一个子句 B 包含」。三条判据都是结构性的,能落到符号上,就不会退化成模糊描述。
5.4 α-β 剪枝的方向和层类型对不上
易漏点:α 剪枝发生在 MIN 层,β 剪枝发生在 MAX 层;剪掉的是分枝,不是节点。
为什么漏:教材的两段定义都是「若……则中止该层以下搜索」,主语藏在中间,背的时候只记住了「α 大 β 小就剪」,一到画树就分不清该剪哪边。另外「剪掉节点」这种说法在口语里太顺,做题时容易把节点本身划掉。
为什么补不了:这一条纯靠手算,看答案永远学不会。
怎么补:拿三道不同形状的博弈树,从根开始一层层标 MAX/MIN,每到一个节点就把当前的 α、β 写在节点旁边,超过界限立刻打叉并注明「α 剪」还是「β 剪」。第三遍开始计时,能在五分钟内画完一棵四层树就算过关。
5.5 专家系统部件和知识四要素张冠李戴
易漏点:专家系统的六件是知识库、综合数据库、推理机、解释器、知识获取、人机界面;知识四要素是事实、规则、控制、元知识。
为什么漏:两组都是「四个或六个名词」的题,背的时候只记了数量,串了组。加上「用户」「关系」这类干扰项长得太像正确答案,选项一扫就中招。
怎么补:给两组词各配一句自解释——专家系统那组问「系统由什么构成」,答案里必须有能和人打交道的界面;知识四要素那组问「知识里装了什么」,答案里必须有元知识这种「关于知识的知识」。用这句自解释反查选项,比死背清单稳。
6. 考前 72 小时的复习清单:按分值和出错率排优先级
时间不够的时候,复习顺序比复习时长更重要。我的排法是先算「这章值多少分、我错几次」,再决定投入多少小时,而不是从第一章顺着看。
第一优先级是谓词逻辑与归结,因为它同时出现在填空、简答、应用三种题型里,一张卷子能占到 30 分以上。做法是把子句集八步写三遍,每遍都用不同的公式;然后把 MGU 那两道题闭卷重算,算完对照差异集一轮一轮核对;最后把祖孙关系和「苍蝇不清洁」两道证明各推一遍,重点检查置换写在没写。
第二优先级是 α-β 剪枝,应用题里它单独占一道,通常是 10 到 15 分。做法是画三棵形状不同的树,每棵都标 MAX/MIN、写 α/β、注明剪枝类型,画完自己在旁边写一句「这里剪掉的是分枝不是节点」自我提醒。
第三优先级是产生式系统与语义网络,这两块分值不低但套路固定。产生式把三件套、三种推理方向、冲突消解三个词写在一张卡片上;语义网络准备两个能直接套的例子,一个是实体属性型,一个是事件型,考试时按题目类型选模板往里填。
第四优先级是常识类填空,学派三家、知识四要素、专家系统六件、远期与近期目标、不确定性四种类型。这些内容十分钟能过完一遍,但覆盖率极高,属于性价比最高的一块。
| 模块 | 卷面占比 | 复习动作 | 自检标准 |
|---|---|---|---|
| 谓词逻辑与归结 | 约 30 分 | 八步法三遍 + MGU 两题 + 证明两题 | 能不看答案推出空子句 |
| 搜索与博弈 | 约 15 分 | 画三棵博弈树 + 四种搜索对比表 | 五分钟画完四层树 |
| 产生式与知识表示 | 约 25 分 | 三件套卡片 + 两个语义网络模板 | 能默写数据库与规则库的区别 |
| 不确定性推理 | 约 10 分 | 三值逻辑表 + CF 公式一套 | 两套公式不混用 |
| AI 常识 | 约 20 分 | 四张清单过一遍 | 术语能写准不只写对 |
查漏补缺的具体做法是「反向刷题」:不看题先看答案,从答案里的术语倒推它考的是哪个知识点,推不出来的就是盲区。比如答案写「类含」,你反应不出它属于删除策略,那这条就得回炉。这个方法比顺着做题快得多,尤其适合只剩两天的时候。
最后一条是血泪经验:所有需要写置换的题,落笔前先在草稿纸上把置换列成集合形式,再往正文里抄,中间不要跳步。我吃过一次亏,思路全对,就因为把 {z/y, z/x} 写成了 {z/x},整道证明判零。从那以后我每次做归结题都强制走一遍「列置换、写析取、对空子句」三步,哪怕题再简单也不省。这份试卷和配套答案我整理成了完整文件,按上面四张表过一遍,比从头翻教材省事得多。希望帮到你。
本文还有配套的精品资源,点击获取