<!-- title: 让电脑学会下棋：一条神课深读 -->
<!-- domain: programming -->

# 让电脑学会下棋：一条神课深读

## 概述

在"AI 会写代码、会画图"的今天，很多人反而忘了：让电脑**学会下棋**，是人工智能七十年历史的起点，也是最容易亲手复现的一场完整冒险。开发者 Sebastian Lague 的《Coding Adventure: Chess》就是这样一条视频——他当着你的面，从一个连"马怎么走"都要写半天边界条件的程序开始，一步步把它变成一个能在棋盘上把普通人杀得毫无还手之力的引擎。这条视频在其频道属于播放量最高的作品之一（数百万次观看量级，据频道页面，本篇撰写时实时抓取通道受限、未能复核精确数字），在程序员社区长期被反复推荐。它真正的价值不在于"教你怎么写棋类 AI"，而在于用不到半小时把**搜索、剪枝、评估、自动调参**这条博弈 AI 的完整思维链条演示了一遍——这条链条，正是从冯·诺伊曼到深蓝再到 Stockfish 的七十年主线。本文按视频叙事顺序拆解它的每个知识点，追溯每个步骤背后的真实理论与工程源头，并指出哪些说法是硬通货、哪些需要打折。

## 一、视频基本信息

| 项目 | 内容 |
|------|------|
| 视频标题 | Coding Adventure: Chess（编程冒险：国际象棋） |
| 频道 | Sebastian Lague（开发者型科普频道，以"Coding Adventure"系列著称） |
| 发布时间 | 2023 年 4 月（据频道页面） |
| 播放量 | 数百万量级，为该频道播放量最高的视频之一（据频道页面；本次未能实时复核精确值） |
| 频道主页 | https://www.youtube.com/@SebastianLague |
| 视频定位 | 单期完整项目实录：作者现场实现一个国际象棋引擎并展示其水平跃升 |
| 形式 | 屏幕实录 + 动画可视化讲解，时长约 20 分钟级别（据频道页面） |

> 说明：本篇撰写时抓取通道受限，未能实时打开视频页核对播放量与精确发布日。以上所有条目均来自频道公开页面信息，不含任何编造数字。视频本体可直接在 YouTube 搜索"Coding Adventure Chess"找到。

## 二、核心主张拆解：六步造出一台会算棋的机器

视频的叙事是一条极干净的"能力升级线"，每一环都是上一环的痛点倒逼出来的。

### 1. 第一步的门槛：让电脑"合法地走子"

大多数人对棋类 AI 的想象从"智能"开始，而视频从最不智能的地方开始：**生成合法走法**。国际象棋规则里塞满了特例——兵第一步可以走两格、吃过路兵、王车易位不能穿过被将军的格子、马走日不能出棋盘。程序里每一条规则都是一个边界条件。视频开头的自嘲式演示恰好戳破了一个普遍错觉：AI 的"智能"感，九成建立在大量枯燥、精确、毫无美感的规则代码之上。这一段对初学者的价值超过很多教科书——**合法走法生成器（move generator）本身就是棋类引擎里最容易出 bug 的部件**，这也是为什么后来的开源引擎社区发明了 perft 测试（用已知深度的走法总数逐层校验生成器正确性）。

### 2. 基线：随机走子和"只看眼前"

有了合法走法，最早的"AI"只是随机挑一个。随后视频把它升级成贪心策略：走能吃掉对方子、或者吃子价值最大的那步。这一段直观展示了贪心的死穴——**你吃我一个兵，你被我将军杀棋**。程序"赢了眼前、输了整局"。这个演示是全片第一个认知冲击：像棋这种回合制完全信息零和博弈，"眼前最优"和"最终最优"可以完全相反。

### 3. 组合爆炸：为什么必须往前看，又不可能看太远

要摆脱短视，就得往后推演：我走一步，对手应对，我再走……视频给出了这个思路的天花板——**分支数**。国际象棋在中局阶段平均每回合约有 30~40 种合法走法，推演深度每加一层，局面数量就乘上这个系数。搜索 4~5 层，候选局面就会膨胀到千万乃至上亿级；著名的香农数（Shannon number）估算整局游戏树复杂度约为 10^120——作为对照，可观测宇宙的原子总数约 10^80。视频用可视化的搜索树把"往前看"这个朴素愿望当场撑爆，为下一个概念让路：**必须有选择地看**。

### 4. Minimax：把对手当成最聪明的敌人

视频随后引入 minimax（极小极大）框架：我在所有可选走法里选"对我评分最高"的，但每个候选走法的评分，要按"对手会走让他自己最优、也就是让我最差"的那一支来算。这个"敌我交替、各取极值"的递归结构，是全部博弈 AI 的骨架。它的哲学含义比算法本身更值钱：**你的最优决策，必须假设对手不犯错**。视频里引擎装上 minimax 后立刻变得"会算计"了——会设陷阱、会做交换、会为了两步后的收益故意送子。

### 5. Alpha-Beta 剪枝：不搜明显差的分支

Minimax 的问题还是慢。视频用一棵展开的搜索树演示了 alpha-beta 剪枝（α-β 剪枝）的直觉：如果我已知某条分支对我最差也是 X 分，而另一条分支推到一半就发现对手能把它压到比 X 更差，那这一支**剩下的部分根本不用看完**——它已经输了。剪枝不改变根节点的最终结论，只省掉无用的计算。在理想走法排序下，alpha-beta 能把搜索代价从 O(b^d) 降到大约 O(b^(d/2))，用计算机科学家克努特（Donald Knuth）的经典说法，等效于**用同样的时间把搜索深度翻倍**。视频里最戏剧性的画面就在这里：加上剪枝与走法排序后，同样一秒钟，引擎能"看到"的未来深了好几层，棋力肉眼可见地跳了一档。

### 6. 评估函数 + 遗传算法：让机器自己长出"棋感"

往前看得再深，叶子节点的局面总得打分——这就是**静态评估函数**：子力价值（后最贵、车次之）加上位置加成表（把兵推进敌方腹地加分、把王留在中心扣分）。这些权重传统上靠大师手工调，而视频做了一个漂亮的实验：**用遗传算法自动调参**——随机生成一批参数组（种群），让它们互相对弈，赢的留下、输的淘汰，再对幸存者做突变和交叉产生下一代。跑了若干代之后，机器自己"进化"出像样的棋感，其中一些权重的取值连作者都觉得意外。这一段把视频从"教学演示"抬到了"科学演示"：它让你亲眼看到**搜索是骨架、评估是灵魂，而灵魂可以被自动搜索出来**。

## 三、知识与理论溯源：每一步背后都是七十年

视频没有引用文献，但它踩着的每一块砖都有真实出处，这一节把它们钉牢。

**1. Minimax 的数学根基：冯·诺伊曼，1928。** 匈牙利数学家约翰·冯·诺伊曼在 1928 年论文《Zur Theorie der Gesellschaftsspiele》（《博弈论》）中证明了极小极大定理：二人零和完全信息博弈中，必存在最优策略，且先手优势可以被严格计算。这篇文章是博弈论的开山之作。也就是说，视频中引擎的决策框架，比电子计算机的诞生还早了十几年。

**2. "让计算机下棋"的第一份蓝图：香农，1950。** 信息论之父克劳德·香农 1950 年发表论文《Programming a Computer for Playing Chess》，第一次系统提出计算机下棋的框架，并把策略分为两类：Type A 靠暴力搜索全部走法，Type B 做选择性搜索——只考察"像样的"走法。视频里"暴力搜索撑爆了，所以要剪枝"的整个叙事，几乎就是香农七十五年前预测的 Type A→Type B 演进路线。香农还给出了那个著名的游戏树复杂度估算（约 10^120，后世称香农数）。

**3. Alpha-Beta 的成型：麦卡锡到克努特，1956—1975。** 剪枝思想在 1950 年代末被多人独立提出，约翰·麦卡锡（"人工智能"一词的定名者）在 1956 年前后明确表述了这一想法；1975 年，高德纳（Donald Knuth）与 Ronald Moore 发表论文《An Analysis of Alpha-Beta Pruning》，给出了它有效性的严格分析与那个"搜索深度等效翻倍"的经典结论。视频里那步神奇的加速，正是这份 1975 年分析的课堂级重现。

**4. 从深蓝到 Stockfish：这条技术路线的成人礼。** 1997 年，IBM 的深蓝（Deep Blue，核心工程师许峰雄 Feng-hsiung Hsu）以 3.5:2.5 击败时任世界冠军卡斯帕罗夫，专用硬件每秒评估约 2 亿个局面——那是"暴力 + 评估"路线的巅峰。而今天最强的开源引擎 Stockfish（GPL 协议，GitHub 上持续开发）在普通桌面 CPU 上每秒可搜索千万级节点，并于 2020 年合并了 NNUE（高效可更新神经网络）评估技术，把"手工评估函数"换成了小型神经网络。2027?不——2017 年，DeepMind 的 AlphaZero 用自我对弈 + 蒙特卡洛树搜索从零训练，压倒性战胜了当时的 Stockfish，证明了"不用人类棋谱知识"的路线可行。视频中"搜索 + 评估"的两件套，正是从深蓝到 Stockfish 共同的骨架；差别只在于工程深度差了几个数量级。

**5. 遗传算法：霍兰德，1975。** 视频的调参实验直接对应密歇根大学的约翰·霍兰德（John Holland）1975 年专著《Adaptation in Natural and Artificial Systems》确立的遗传算法框架（选择、交叉、变异）。值得一提的是，真实引擎社区后来用更讲究的统计方法做同样的事——Stockfish 长期用 SPSA（同步扰动随机逼近）在线调参，思路与视频中"让参数自己打架"一脉相承。

**6. 位置加成表的老传统。** 子力 + 位置表的评估结构可追溯到 1970 年代西北大学的 Chess 4.x 系列（David Slate 与 Larry Atkin 等人开发，多次夺得计算机象棋锦标赛冠军），这套结构至今仍是所有棋类教学引擎的标准配置。

## 四、批判性审查：哪些是硬通货，哪些要打折

**证据充分的部分：**
- Minimax 与 alpha-beta 的正确性与复杂度结论，有冯·诺伊曼 1928 与克努特-摩尔 1975 的严格数学背书，是教科书级定论，可以全盘接受。
- "剪枝效率依赖走法排序"这一点视频用实验展示得很诚实：先搜好走法，剪枝才狠。这与克努特-摩尔分析中"理想排序下才达到 b^(d/2)"的限定完全一致。
- 组合爆炸的量级（每回合约 30~40 合法走法、深度指数增长、香农数 10^120）是标准数据，无争议。

**需要打折或补充背景的部分：**
- **"同样时间看深一倍"是有条件的最佳情形。** 克努特-摩尔的分析指出，只有走法排序接近完美时才能达到深度翻倍；排序随机时收益会明显缩水。视频演示里排序是作者手工设计的启发式（优先吃子、将军等），效果可观，但观众不应把"翻倍"当成普适数。
- **遗传算法调参是教学级的，不是生产级的。** 现代引擎几乎不靠朴素遗传算法调评估权重——样本效率更高的 SPSA、以及直接上神经网络评估（NNUE）已是主流。视频的做法方向正确、工程粗糙，适合理解概念，不宜照搬去做竞技引擎。
- **视频引擎与顶级引擎差距悬殊。** 观众容易产生"我也快造出 Stockfish 了"的错觉。实际上 Stockfish 的优势来自数十年的工程积累：置换表（缓存重复局面）、null-move 剪枝、静态搜索（quiescence search，避免地平线效应）、精巧的棋盘表示、NNUE 评估与每年数千场测试对局的回归验证体系。教学引擎跟它对弈属于被让了九个车。
- **视频中出现的具体耗时/节点数与硬件强相关。** 不同机器上的绝对数字不可比，看相对变化即可。

**一个背景性的小提醒：** 视频类型是"Coding Adventure"项目实录，作者的首要目标是叙事流畅与可视化清晰，而非复现论文级实验。把它当成"博弈 AI 思维地图"极好，当成工程规范参考则需另寻 Stockfish 源码与相关文献。

## 五、认知提升与实用启示

**1. 剪枝思维：好决策是"不搜坏分支"。** Alpha-beta 的日常版本是：给选项排序，先深查最有希望的；一旦某个选项被证明"已知最好选项都不如"，立刻停止深入。多数人决策低效的根源不是算力不够，而是**对每个选项平均用力**。面试候选人、选技术方案、读论文，先排序、再深挖、敢截断。

**2. 评估函数思维：把"感觉"拆成可计算的分量。** "这个局面好"是玄学，"子力差 + 位置分 + 王的安全"是函数。任何模糊判断（这个候选人靠不靠谱、这段代码好不好）都可以试着拆成几个可观测分量再加权——然后像视频里那样，**让数据决定权重，而不是让权威决定权重**。你很可能像作者一样被机器算出的某些权重惊到。

**3. 造一遍，胜过看十遍。** 这条视频的传播力恰恰来自"一个人从零写完"的可信度。合法走法生成器教人敬畏规则，组合爆炸教人敬畏复杂度，剪枝教人敬畏顺序，遗传算法教人敬畏自动搜索——这些体感，读一百篇综述也换不来。挑一个你领域里的"玩具圣杯"（编译器、数据库、物理引擎、棋 AI），亲手造一个丑版本，是性价比最高的学习投资。

## 六、一张图看懂论证结构

```mermaid
flowchart TD
    A[合法走法生成<br/>规则代码的枯燥地基] --> B[随机与贪心基线<br/>只看眼前必输]
    B --> C[往前推演<br/>分支数指数爆炸]
    C --> D[Minimax<br/>假设对手不犯错]
    D --> E[Alpha-Beta剪枝<br/>坏分支不看完]
    E --> F[走法排序<br/>先搜好棋剪得更狠]
    F --> G[静态评估函数<br/>子力加位置加成]
    G --> H[遗传算法自动调参<br/>棋感自己进化出来]
    H --> I[引擎成型<br/>水平肉眼可见跃升]
```

## 延伸阅读

1. **Stockfish 开源引擎**：https://github.com/official-stockfish/Stockfish —— 把视频里"搜索 + 评估"两件套做到人类天花板的开源项目，源码即文档，适合看完视频后进阶。
2. **克劳德·香农《Programming a Computer for Playing Chess》（1950）**：https://en.wikipedia.org/wiki/Programming_a_Computer_for_Playing_Chess —— 本视频整条技术路线的七十五年前的原始蓝图，篇幅不长，读完你会对视频的叙事结构会心一笑。

## 参考来源

1. [Sebastian Lague 频道主页（Coding Adventure 系列）](https://www.youtube.com/@SebastianLague) —— 视频本体所在频道；单期播放量数据本篇未能实时复核，标注"据频道页面"。
2. [Minimax - Wikipedia](https://en.wikipedia.org/wiki/Minimax) —— 极小极大算法与冯·诺伊曼 1928 极小极大定理的词条综述。
3. [Alpha–beta pruning - Wikipedia](https://en.wikipedia.org/wiki/Alpha–beta_pruning) —— 剪枝思想的历史（麦卡锡等）与克努特-摩尔 1975 复杂度分析。
4. [Programming a Computer for Playing Chess - Wikipedia](https://en.wikipedia.org/wiki/Programming_a_Computer_for_Playing_Chess) —— 香农 1950 年论文及 Type A/Type B 策略、香农数的介绍。
5. [Stockfish 官方仓库](https://github.com/official-stockfish/Stockfish) —— NNUE 合并记录与引擎测试体系的一手资料。

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护，聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。
> 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
