在"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"找到。
视频的叙事是一条极干净的"能力升级线",每一环都是上一环的痛点倒逼出来的。
大多数人对棋类 AI 的想象从"智能"开始,而视频从最不智能的地方开始:生成合法走法。国际象棋规则里塞满了特例——兵第一步可以走两格、吃过路兵、王车易位不能穿过被将军的格子、马走日不能出棋盘。程序里每一条规则都是一个边界条件。视频开头的自嘲式演示恰好戳破了一个普遍错觉:AI 的"智能"感,九成建立在大量枯燥、精确、毫无美感的规则代码之上。这一段对初学者的价值超过很多教科书——合法走法生成器(move generator)本身就是棋类引擎里最容易出 bug 的部件,这也是为什么后来的开源引擎社区发明了 perft 测试(用已知深度的走法总数逐层校验生成器正确性)。
有了合法走法,最早的"AI"只是随机挑一个。随后视频把它升级成贪心策略:走能吃掉对方子、或者吃子价值最大的那步。这一段直观展示了贪心的死穴——你吃我一个兵,你被我将军杀棋。程序"赢了眼前、输了整局"。这个演示是全片第一个认知冲击:像棋这种回合制完全信息零和博弈,"眼前最优"和"最终最优"可以完全相反。
要摆脱短视,就得往后推演:我走一步,对手应对,我再走……视频给出了这个思路的天花板——分支数。国际象棋在中局阶段平均每回合约有 30~40 种合法走法,推演深度每加一层,局面数量就乘上这个系数。搜索 4~5 层,候选局面就会膨胀到千万乃至上亿级;著名的香农数(Shannon number)估算整局游戏树复杂度约为 10^120——作为对照,可观测宇宙的原子总数约 10^80。视频用可视化的搜索树把"往前看"这个朴素愿望当场撑爆,为下一个概念让路:必须有选择地看。
视频随后引入 minimax(极小极大)框架:我在所有可选走法里选"对我评分最高"的,但每个候选走法的评分,要按"对手会走让他自己最优、也就是让我最差"的那一支来算。这个"敌我交替、各取极值"的递归结构,是全部博弈 AI 的骨架。它的哲学含义比算法本身更值钱:你的最优决策,必须假设对手不犯错。视频里引擎装上 minimax 后立刻变得"会算计"了——会设陷阱、会做交换、会为了两步后的收益故意送子。
Minimax 的问题还是慢。视频用一棵展开的搜索树演示了 alpha-beta 剪枝(α-β 剪枝)的直觉:如果我已知某条分支对我最差也是 X 分,而另一条分支推到一半就发现对手能把它压到比 X 更差,那这一支剩下的部分根本不用看完——它已经输了。剪枝不改变根节点的最终结论,只省掉无用的计算。在理想走法排序下,alpha-beta 能把搜索代价从 O(b^d) 降到大约 O(b^(d/2)),用计算机科学家克努特(Donald Knuth)的经典说法,等效于用同样的时间把搜索深度翻倍。视频里最戏剧性的画面就在这里:加上剪枝与走法排序后,同样一秒钟,引擎能"看到"的未来深了好几层,棋力肉眼可见地跳了一档。
往前看得再深,叶子节点的局面总得打分——这就是静态评估函数:子力价值(后最贵、车次之)加上位置加成表(把兵推进敌方腹地加分、把王留在中心扣分)。这些权重传统上靠大师手工调,而视频做了一个漂亮的实验:用遗传算法自动调参——随机生成一批参数组(种群),让它们互相对弈,赢的留下、输的淘汰,再对幸存者做突变和交叉产生下一代。跑了若干代之后,机器自己"进化"出像样的棋感,其中一些权重的取值连作者都觉得意外。这一段把视频从"教学演示"抬到了"科学演示":它让你亲眼看到搜索是骨架、评估是灵魂,而灵魂可以被自动搜索出来。
视频没有引用文献,但它踩着的每一块砖都有真实出处,这一节把它们钉牢。
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),亲手造一个丑版本,是性价比最高的学习投资。
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/>水平肉眼可见跃升]
本文由「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 等场景全覆盖。
