【人工智能引论期末复习】第3章 搜索求解2 - 对抗搜索

一、核心概念与定义(填空/选择题高频)

1. 对抗搜索(博弈搜索)

  • 定义:在竞争环境中,多个智能体通过竞争实现相反利益的过程

  • 典型场景:两人对决、零和博弈

  • 常见算法

    • 最小最大搜索(Minimax Search)

    • Alpha-Beta 剪枝搜索

    • 蒙特卡洛树搜索(MCTS)

2. 零和博弈

  • 一方收益 = 另一方损失,总和为0

  • 不存在合作可能

  • 与"非零和博弈"对比

3. 博弈树

  • 用于表示博弈过程中所有可能状态的树结构

  • 节点表示游戏状态,边表示玩家的动作

  • 深度优先遍历常用


二、算法原理与流程(计算题与简答题重点)

1. 最小最大搜索(Minimax)

  • 基本思想

    • MAX玩家希望最大化自身利益

    • MIN玩家希望最小化MAX的利益

    • 交替进行,递归计算每个节点的"效用值"

  • 算法流程

    • 从当前状态出发,深度优先遍历博弈树

    • 在MAX层选择子节点中最大值

    • 在MIN层选择子节点中最小值

    • 叶子节点使用评价函数(如胜负、得分)

2. Alpha-Beta 剪枝

  • 目的:减少Minimax搜索的节点数,提高效率

  • 剪枝条件

    • α剪枝(在MIN节点):若父节点(MAX)的α值 ≥ 当前节点β值,剪枝

    • β剪枝(在MAX节点):若父节点(MIN)的β值 ≤ 当前节点α值,剪枝

  • α与β的含义

    • α:当前路径上MAX玩家的最佳选择(下界)

    • β:当前路径上MIN玩家的最佳选择(上界)

  • 效果:不影响最终结果,显著减少搜索节点


三、典型例题与考点(对应回忆卷题型)

1. 计算题示例(类似回忆卷三.3)

题目会给出一棵博弈树,叶节点有评价值,要求:

  • (1)写出Minimax搜索后各中间节点的值

  • (2)在图上标出Alpha-Beta剪枝的位置(用"×"表示)

2. 简答题示例

  1. 解释Minimax和Alpha-Beta剪枝的关系
    Alpha-Beta剪枝是对Minimax算法的优化,通过剪去不影响最终决策的分支,减少搜索空间,但得到的结果与Minimax一致。

  2. 为什么Alpha-Beta剪枝能提高搜索效率?
    通过维护α和β值,提前判断某些分支不会影响最终决策,从而避免展开这些分支,减少节点访问次数。

  3. 什么是博弈树?为什么对抗搜索常用深度优先?
    博弈树是表示博弈过程中所有可能状态的树结构。深度优先节省内存,适合递归实现,便于进行Alpha-Beta剪枝。


四、与试卷中其他章节的关联

  • 与启发式搜索对比

    • 启发式搜索用于单智能体寻优

    • 对抗搜索用于多智能体竞争

  • 与蒙特卡洛树搜索(MCTS)关联

    • MCTS也常用于博弈,通过采样代替穷举

    • 在非完全信息博弈中更常用

  • 与虚拟遗憾值最小化算法关联

    • 后者用于非完全信息博弈,对抗搜索常用于完全信息博弈

五、复习建议

  1. 掌握算法流程

    • 能手动模拟Minimax计算过程

    • 能画出Alpha-Beta剪枝过程图

  2. 理解剪枝原理

    • 明确α、β值的传递与更新规则

    • 能判断何时剪枝、剪哪一侧分支

  3. 联系实际应用

    • 如井字棋、象棋、围棋等游戏的AI实现思路
  4. 注意概念辨析

    • 零和 vs 非零和

    • 完全信息 vs 非完全信息

    • Minimax vs MCTS



对抗搜索 · 模拟练习题

一、填空题(每空1分)

  1. 对抗搜索也称为________搜索,适用于________博弈环境。

  2. 在最小最大搜索中,MAX玩家希望________效用值,MIN玩家希望________效用值。

  3. Alpha-Beta剪枝中,α表示________玩家的最佳选择(下界),β表示________玩家的最佳选择(上界)。

  4. 若在MIN节点处发现父节点的α值 ≥ 当前节点的β值,则进行________剪枝。

  5. 在完全信息、零和、两人轮流行动的博弈中,常用________算法求解最优策略。

  6. 博弈树中,叶子节点常用________函数评估状态优劣。

  7. 若博弈树分支因子为b,深度为d,Minimax算法的时间复杂度为________。

  8. Alpha-Beta剪枝最优情况下时间复杂度可降至________。


二、选择题(每题2分)

  1. 下列哪种情况一定会触发Alpha-Beta剪枝?

    A) α < β

    B) α > β

    C) α = β

    D) α ≤ β

  2. 在Minimax搜索中,某一层为MAX层,其子节点返回值分别为[3, 5, 1],则该层节点的值为:

    A) 1

    B) 3

    C) 5

    D) 9

  3. 关于零和博弈的描述,错误的是:

    A) 一方收益等于另一方损失

    B) 总收益和为0

    C) 双方可能合作

    D) 常用于对抗搜索建模

  4. 以下哪种算法通过随机采样代替穷举搜索?

    A) Minimax

    B) Alpha-Beta剪枝

    C) 蒙特卡洛树搜索

    D) A*搜索

  5. 在Alpha-Beta剪枝中,α和β的初始值通常设为:

    A) α=+∞, β=-∞

    B) α=-∞, β=+∞

    C) α=0, β=1

    D) α=1, β=0


三、计算与画图题(10分)

给定如下博弈树,叶节点为评价值,MAX先手:

text

复制代码
        A(MAX)
      /     |     \
     B      C      D(MIN)
    / \    / \    / \
   3   5  2   9  1   8
  1. 使用 Minimax算法 计算节点A、B、C、D的值。

  2. 使用 Alpha-Beta剪枝 从A开始搜索,在图上标出被剪枝的分支(用"×"表示),并写出α、β值更新过程。


四、简答题(每题5分)

  1. 简述Minimax算法的基本思想及其局限性。

  2. 为什么Alpha-Beta剪枝能显著提升搜索效率?剪枝是否会影响最终结果?

  3. 对抗搜索与启发式搜索(如A*)的主要区别是什么?


参考答案

一、填空题

  1. 博弈,零和

  2. 最大化,最小化

  3. MAX,MIN

  4. α剪枝

  5. Minimax(或Alpha-Beta剪枝)

  6. 评价(或效用)

  7. O(bd)O(bd)

  8. O(bd/2)O(bd/2)

二、选择题

  1. B

  2. C

  3. C

  4. C

  5. B

三、计算与画图题

  1. Minimax计算

    • B = max(3,5) = 5

    • C = max(2,9) = 9

    • D = min(1,8) = 1

    • A = min(5, 9, 1) = 1

  2. Alpha-Beta剪枝过程

    • A: α=-∞, β=+∞

    • 扩展B → 得值5,A: α=5

    • 扩展C → 第一个子节点2,C: α=2,继续第二个子节点9,C: α=9,返回9

    • A: β=min(+∞,5,9)=5

    • 扩展D → 第一个子节点1,D: β=1,此时α=5 ≥ β=1,触发剪枝,不再扩展第二个子节点

    • D返回值1

    • A最终值 = min(5,9,1) = 1

剪枝位置:D节点的第二个子节点(值为8)被剪枝。

四、简答题

  1. Minimax思想 :MAX玩家最大化收益,MIN玩家最小化MAX收益,递归计算。
    局限性:搜索空间大,需遍历整棵树,时间复杂度高。

  2. 剪枝提升效率 :通过α、β值提前排除不影响最终决策的分支,减少搜索节点。
    不影响结果:剪枝仅去掉不会改变根节点值的分支,结果与Minimax一致。

  3. 主要区别

    • 对抗搜索:多智能体竞争,考虑对手行为(如Minimax)

    • 启发式搜索:单智能体寻优,利用启发函数(如A*)

一、零和 vs 非零和

维度 零和博弈 非零和博弈
定义 一方收益等于另一方损失,总和为0 各方收益与损失之和不等于0,可能存在共赢或共损
关系 严格竞争,对立 可能存在竞争、合作或混合
合作可能 不存在 可能存在合作
典型例子 棋类游戏(象棋、围棋) 囚徒困境、资源分配谈判
对抗搜索适用性 常用(如Minimax) 一般不用标准对抗搜索,常用博弈论或谈判模型

二、完全信息 vs 非完全信息

维度 完全信息博弈 非完全信息博弈
信息状态 所有玩家均知道游戏全部历史与当前状态 部分信息不公开(如手牌、隐藏状态)
决策依据 基于完整状态树 需考虑信息集、概率推断
常用算法 Minimax、Alpha-Beta、MCTS(确定性版本) 虚拟遗憾最小化、贝叶斯博弈、部分可观测MCTS
典型例子 象棋、围棋、井字棋 扑克、麻将、星际争霸(部分信息)
搜索树结构 确定性树,每个状态唯一 信息集树,多个状态归属同一信息集

三、Minimax vs MCTS(蒙特卡洛树搜索)

维度 Minimax(含Alpha-Beta剪枝) MCTS
搜索方式 穷举或剪枝后的确定性搜索 随机采样 + 逐步构建搜索树
适用场景 完全信息、零和、状态空间较小 完全信息或部分信息、状态空间大、分支多
是否需评价函数 是(叶节点需静态评价) 否(通过模拟对局结果评估)
时间效率 随深度指数增长 可通过模拟次数控制时间
内存使用 需保存整棵树或部分路径 仅保存构建的部分树结构
最优性保证 在完全搜索下最优 渐进收敛至最优(需足够模拟)
典型应用 象棋、跳棋 围棋(AlphaGo)、即时战略游戏

四、辨析小结(可用于简答题)

  1. 零和博弈一定是完全信息吗?

    不一定。例如扑克是零和但非完全信息。

  2. Minimax能用于非完全信息博弈吗?

    不能直接使用,因为Minimax依赖完整状态树。非完全信息需扩展为信息集或使用随机化策略。

  3. MCTS在哪些方面比Minimax更灵活?

    • 无需静态评价函数

    • 适合大规模状态空间

    • 可用于部分可观测环境

    • 支持实时决策(可随时中断)

  4. 完全信息博弈是否一定可用Minimax求解?

    理论上是,但实际受状态空间限制。围棋等游戏状态数太多,需结合剪枝、启发式或MCTS。

相关推荐
温柔只给梦中人2 小时前
深度学习:正则化
人工智能·深度学习
狮子座明仔2 小时前
DocDancer:北大联合腾讯提出端到端训练的文档问答Agent,将DocQA形式化为信息寻求过程
人工智能·深度学习·语言模型·自然语言处理
程序猿阿伟2 小时前
《量子算法开发实战手册:Python全栈能力的落地指南》
python·算法·量子计算
AI小怪兽2 小时前
RoLID-11K:面向小目标检测的行车记录仪路边垃圾数据集
人工智能·目标检测·计算机视觉
拉普拉斯妖1082 小时前
DAY41 简单CNN
人工智能·神经网络·cnn
老鼠只爱大米2 小时前
LeetCode算法题详解 438:找到字符串中所有字母异位词
算法·leetcode·双指针·字符串匹配·字母异位词·滑动窗口算法
予枫的编程笔记2 小时前
【Java进阶】掌握布隆过滤器,守住高并发系统的第一道防线
人工智能
过期的秋刀鱼!2 小时前
机器学习-过拟合&欠拟合问题
人工智能·机器学习
万事可爱^2 小时前
LangChain v1.0学习笔记(4)—— 核心组件Models
人工智能·笔记·学习·langchain·大模型