ChessRank.org
← 博客
2026年9月18日

Board Analysis 现已接入 Syzygy 残局库

有什么新变化

自 2026 年 9 月 18 日起,ChessRank.org 上的 Board Analysis 开始使用 Syzygy 残局库。只要棋盘上不超过七枚棋子(包括双方的王),我们就会在残局库中查找该局面。结果一返回,面板就不再显示引擎的估算,而是显示精确结果:白方胜、黑方胜或和棋,并列出能保持这一结果的着法。

对于这些残局局面,分析因此变得更快、更准。更快,是因为结果是查出来的,而不是算出来的,你不必等待引擎搜索得更深。更准,是因为它根本不是估算,而是该局面经过证明的结果。

与此同时,Stockfish 仍会像以前一样在每个局面上启动。棋盘上超过七枚棋子时,一切照旧。如果无法连接残局库,例如你处于离线状态,棋盘就会继续使用 Stockfish 的分析。

引擎与残局库

Stockfish 只向前搜索有限的步数,然后评估它所到达的局面。它的评估是一种估算:非常出色,但随着搜索加深仍可能改变。在残局中这一点很重要,因为巨大的子力优势有时根本无法转化为胜利。例如王、象加边兵对单王,如果象控制不了兵的升变格,而防守方的王已经守在那个角上,这就是和棋,尽管白方多出整整一个象和一个兵。

残局库的思路正好相反。对于给定的一组棋子,例如王车对王马,计算机会遍历这些棋子所能构成的每一个合法局面,并在双方都完美下棋的前提下确定每个局面的结果。没有任何估算,也没有任何遗漏。

残局库是如何建立的

这种方法叫作逆向分析(retrograde analysis)。它从结果已知的局面出发:将死、逼和,以及通过吃子或兵升变进入另一个已被解出的残局的局面。计算机从这些局面开始倒推:

  • 如果轮到走棋的一方至少有一步棋能走到对手必败的局面,这个局面就是必胜。
  • 如果每一步合法着法都会走到对手必胜的局面,这个局面就是必败。
  • 重复这两步,直到再没有新的局面得到结果。此时仍未确定的每个局面都是和棋,因为任何一方都无法从中强制取胜。

为什么结果在数学上是确定的

由于每个局面都经过检验,残局库的结论既不是观点,也不是概率。它是一种穷举证明,也就是数学家在只能逐一检验所有情况才能判定一个命题时所用的那种证明。当 Board Analysis 显示“白方胜”时,就证明了白方无论面对何种防守都能强制取胜。当它显示“和棋”时,就证明了任何一方都无法强制取胜。

着法也是如此。每一步带绿色圆点的着法都能保持该局面所允许的最佳结果:胜仍是胜,和仍是和。这同样是经过证明的,而不是估算。灰色圆点表示这步棋丢掉了胜利但仍能守和,红色圆点表示这步棋会输。

严格地说,与所有计算机辅助证明一样,这一证明依赖于生成残局库的程序运行正确。因此 Syzygy 文件带有校验和,生成程序也附带一个检查残局库内部一致性的工具。

另外,“正确”并不意味着以下两点:

  • 正确的着法可能不止一个。常常有不止一步棋能保持胜势。Board Analysis 最多列出四步着法,最佳的排在最前。
  • 最佳着法不一定是最快的将杀。Syzygy 按 DTZ(distance to zeroing)为取胜着法排序,即在最佳应对下,距离下一次吃子、兵的走动或将死还有多少个半回合。正是这一点让胜利不会被 50 回合规则葬送。另一步棋可能更快将杀,因此即使两者都能取胜,残局库给出的着法也可能与 Stockfish 偏好的着法不同。

胜、和与受限胜

残局库还会考虑 50 回合规则。根据这条规则,当连续 50 个回合(双方各走 50 步)都没有吃子也没有兵的走动时,对局可以判和。在实体棋盘上,需要由棋手提出和棋要求。在线对局中,这条规则通常会自动执行。

有些残局在理论上是胜局,但取胜过程需要一段超过 50 个回合、既不吃子也不动兵的着法。Syzygy 称之为受限胜(cursed win):在完美下法下是胜局,但防守方可以凭借 50 回合规则守成和棋。从防守方的角度看,同一局面则是受限负(blessed loss)。Board Analysis 会把受限胜作为单独的结论显示,并把评估条放在正中间,因为按照棋规它就是和棋。

一盘完美的残局最长能有多长?2012 年,在七子罗蒙诺索夫残局库即将完成之际,人们发现了一个局面,其中最快的强制将杀需要 549 个回合。这远远超出了引擎通过向前搜索所能看到的范围。

谁想出了这一切

  • 1913 年,恩斯特·策梅洛。这位德国数学家发表了关于集合论在国际象棋中应用的论文(《Über eine Anwendung der Mengenlehre auf die Theorie des Schachspiels》),常被视为博弈论的第一篇论文。以他命名的结论指出:在国际象棋中,要么白方能强制取胜,要么黑方能强制取胜,要么双方都至少能强制和棋。残局库则逐个残局地给出具体答案。
  • 1970 年,Thomas Ströhlein。他在慕尼黑工业大学的博士论文中描述了国际象棋逆向分析的第一个计算机实现,并解出了若干三子和四子残局,其中包括王后对车(王加后对王加车)。
  • 20 世纪 70 年代末至 80 年代,肯·汤普森。这位贝尔实验室的计算机科学家以 Unix 的创造者之一而闻名,他为许多不超过五子的残局建立了残局库。他的王后对车数据库之所以出名,是因为特级大师沃尔特·布朗执王后一方对抗计算机的完美防守时,第一次尝试未能在 50 回合内取胜,尽管那个局面本是胜局。
  • 1991 年,Lewis Stiller。他在一台大规模并行计算机上解出了部分六子残局。
  • 20 世纪 90 年代末起,Eugene Nalimov。他的残局库给出距离将杀的步数,被广泛用于国际象棋程序,先是覆盖所有五子残局,后来又覆盖所有六子残局。
  • 2012 年,罗蒙诺索夫残局库。莫斯科国立大学的 Vladimir Makhnychev 和 Victor Zakharov 在“罗蒙诺索夫”超级计算机上计算出了七子残局库。
  • 2013 年,Ronald de Man 与 Syzygy。2013 年 4 月,Ronald de Man 发布了覆盖所有不超过六子残局的 Syzygy 残局库。Syzygy 不存储距离将杀的步数,而是存储两样东西:考虑 50 回合规则后的结果(WDL,即 win、draw、loss:胜、和、负)以及 DTZ。这使残局库小得多,而且足够快,引擎可以在搜索过程中直接使用。
  • 2018 年,七子。2018 年 8 月,Bojun Guo 与 Ronald de Man 完成了七子 Syzygy 残局库。这是第一个完整的七子残局库,因为罗蒙诺索夫残局库省略了六子对单王的残局。整套残局库覆盖超过 423 万亿个局面,占用 18.4 TB,Lichess 将其免费向所有人开放。

答案从哪里来

七子残局库太大,无法下载到浏览器中,因此 Board Analysis 会查询由 Lichess 运营的免费公共残局库服务。请求中只包含局面本身,不含任何账户或对局数据。每个结果在页面打开期间都会被记住,所以回到已经看过的局面时,结果会立即显示。

明确的限制

  • 最多七枚棋子,包括双方的王。八枚或更多棋子时,Board Analysis 继续使用 Stockfish。
  • 不考虑王车易位权和吃过路兵权。Syzygy 不覆盖仍允许王车易位的局面,因此 Board Analysis 查询时会去掉王车易位权,同时也去掉吃过路兵的可能。在实际残局中,这只在少数情况下有影响。
  • 50 回合计数从零开始。在棋盘上摆出的局面没有着法历史,因此查询时会假定 50 回合计数刚刚开始。如果你的实际对局中已经走了很多步既不吃子也不动兵的棋,这里显示的胜局实际上可能来不及在 50 回合规则生效前完成。

接下来

截至 2026 年 9 月 18 日,残局库已在 Board Analysis 中启用。我们计划将其扩展到 ChessRank.org 的其他部分,包括 Game Analysis、Report、Blunder Puzzles、Play Bots、Opponent Prep 等。自 2026 年 9 月 23 日起,它们也会在 Game Analysis 中通过可选的深入分析按钮给出答案(在设置的 Game Analysis 部分开启)。它们在那里只用于查看局面,绝不会改变你的报告。

亲自试试吧:在 Board Analysis 中摆出任意不超过七枚棋子的残局,例如王后对车,你看到的将是精确的结论,而不是引擎的估算。