跳到主内容
快讯直播
AI智模界
AI 词典

Minimax 与 Alpha-Beta 剪枝:棋类 AI 的老底子

一句话定义:Minimax(极小化极大算法)是在双方轮流行动、利益完全对立的棋局里,假设对手永远会挑最狠的一步,据此反推自己最佳着法的搜索方法;Alpha-Beta 剪枝(Alpha-Beta Pruning)是加在它上面的一层“提前放弃”机制:把不可能改变结论的分支整条砍掉,答案一模一样,但算得少得多。

它到底在算什么

下棋时人脑会想“我走这步,他会怎么应,我再怎么走”,这在计算上就是一棵不断分叉的博弈树。Minimax 的做法是:把树展开到某个深度,给每个叶子局面打一个分(对我有利为正,对对手有利为负),然后从下往上回传——轮到我走的层取最大值(max),轮到对手走的层取最小值(min),因为对手一定会选那个让我最难受的分支。最终根节点留下的那一步,就是“最坏情况下也最好”的一步。

打个比方:你和一个精明的对手分蛋糕,你提方案,他必挑对自己最有利的那种切法。你唯一能做的,是在“他一定会使坏”这个前提下,找一个损失最小的方案。Minimax 就是把这个思路写成递归。

剪枝靠的是上下界

问题是树的分支因子很大,全展开算不完。Alpha-Beta 剪枝维护两个数:alpha 是我方(max 层)当前已经稳拿到的最好分数下界,beta 是对手(min 层)当前能把分数压到的上界。搜索过程中,如果对手某个分支已经能把你压到 ≤ alpha,那么这个节点的最终值注定不会比 alpha 更高——上层绝不会选它,剩下的兄弟分支看都不用看了。反过来对 max 节点同理。

关键在于:剪掉的是“反正不会被选中”的分支,所以结果和完整 Minimax 完全一致,只是计算量变少。效果高度依赖走法排序(move ordering)——先搜看起来最狠的招,剪得就多。理想排序下,能搜的深度大约是原来的一倍。

MinimaxAlpha-Beta 剪枝
本质完整遍历博弈树同一个算法 + 提前放弃分支
结果最优走法完全相同
代价节点指数增长理想情况下大幅减少
决定效果的关键评估函数与搜索深度走法排序

和相邻概念的区别

它和AI 词典:蒙特卡洛树搜索">蒙特卡洛树搜索(MCTS)不是一路:MCTS 靠随机采样把算力挪到有希望的分支上,不保证最优,适合围棋这种分支爆炸的场景;Minimax + Alpha-Beta 在搜索深度内给出确定的最优解,适合国际象棋、黑白棋这类分支可控的棋。另外 Negamax 只是 Minimax 的等价写法,不是新算法。

为什么今天还值得了解

老一代国际象棋程序的核心就是这套东西:alpha-beta 搜索配一个人工写的评估函数(evaluation function)。工程里真正难的从来不是递归本身,而是“局面怎么打分”和“先搜哪一步”。对普通职场人也有借鉴:“先想对手最狠的应对,再选自己的方案”是谈判、竞价、对抗性决策的通用姿势;而“上界已经不如现有答案就整条不看”这个思路,在分支定界(branch and bound)、查询优化、任务调度里都以不同名字反复出现。具体实现细节各家不同,以官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。