♚在应用中打开

莫罗佐夫均衡指数(MBI):方法论

莫罗佐夫均衡指数(MBI)为 960 个 Chess960 起始局面各回答一个问题:白方的先行优势有多大?本页给出完整方法——本站的每一个数字都可以据此重新计算。

方法论作者:罗曼·莫罗佐夫(Roman Morozov)。 关于作者 · 版本 2.0 · 2026-09-18

CC BY 4.0 方法论与数据:CC BY 4.0 — 注明作者即可自由使用。

指数测量的是什么

国际象棋中白方先行。这一先手是有价值的,而在 Chess960 中,960 种摆法里这份价值各不相同。指数测量的是这份开局优势的大小,而不是谁形势更好。960 个局面中有 956 个的引擎评估处于均势或对白方有利;其余四个落在黑方一侧 2 到 7 个厘兵,比搜索在自身迭代之间的浮动还小,属于零附近的噪声,而非黑方占优。度量的是与零的距离,方向不限,因此诚实的说法是「这里的先手领先有多大」,而所谓均衡的局面,就是这份领先最小的局面。

MBI 是 0–100 的标度。100 表示 960 个局面中实测白方优势最小者——最均衡的起始局面;0 表示最大者。指数是对单一实测量的排名变换,因此它说明的是一个局面相对于其余 959 个的位置,而不是谁多出几个兵。

每个局面如何评估

每个起始局面由 Stockfish 从初始摆法分析一次,采用固定的搜索节点预算,而非固定时间。这是整个方法的关键决定:节点预算与机器无关。时间预算会让快机器搜得更深、得出不同数字,任何人都无法核对结果。

固定散列与固定节点数的单线程搜索是确定性的:同一可执行文件在任何机器上都返回逐位相同的厘兵值。正是这一点使独立核验成为可能,而不只是看起来合理。

从厘兵到指数

厘兵并非对任何人类感受的线性度量,+18 与 +22 之差本身没有意义。因此指数使用局面在 960 个中的排名,而不是原始数值:

rank(sp) = position of eval_cp(sp) in the sorted list of all 960 values
(ascending: smallest White edge first, ties share the mean rank)
MBI(sp) = round( 100 * (960 - rank(sp)) / (960 - 1) )
等级 白方优势 局面数
A — 最均衡 ≤ +19 cp 240
B — 均衡 +20…+26 cp 240
C — 优势明显 +27…+35 cp 240
D — 优势最大 > +35 cp 240

全部 960 个局面的引擎评估介于 -7 至 +83 厘兵之间,中位数 +26.0。

960 个数值的分布

每根柱代表一个五厘兵区间;右侧数字是落入该区间的局面数。

-10..-6 cp1
-5..-1 cp3
0..4 cp19
5..9 cp25
10..14 cp72
15..19 cp135
20..24 cp159
25..29 cp173
30..34 cp131
35..39 cp96
40..44 cp63
45..49 cp43
50..54 cp18
55..59 cp8
60..64 cp7
65..69 cp3
70..74 cp0
75..79 cp2
80..84 cp2

验证

引擎评估是对局面的一个论断。为检验该论断能否预测真实结果,会把一部分局面下完:引擎对引擎,每个局面多盘,随机种子固定并公开。如果指数称为均衡的局面,白方得分确实更接近 50%,那么指数测量的就是它所声称的东西。

基础种子:20260825。每盘棋均可精确重现。

局面 分组 引擎,cp 对局数 胜/和/负 白方得分
42 随机 +23 50 6/44/0 56.0% (42.3–68.8%)
52 随机 +18 50 5/45/0 55.0% (41.3–67.9%)
80 最不均衡 +83 50 7/42/1 56.0% (42.3–68.8%)
86 随机 +34 50 1/48/1 50.0% (36.6–63.4%)
102 最均衡 0 50 3/47/0 53.0% (39.5–66.1%)
131 最均衡 0 50 0/50/0 50.0% (36.6–63.4%)
204 最均衡 0 50 0/46/4 46.0% (33.0–59.6%)
217 最均衡 +3 50 0/50/0 50.0% (36.6–63.4%)
259 最均衡 +3 50 2/43/5 47.0% (33.9–60.6%)
262 随机 +43 50 6/44/0 56.0% (42.3–68.8%)
266 随机 +26 50 3/47/0 53.0% (39.5–66.1%)
268 最不均衡 +58 50 8/42/0 58.0% (44.2–70.6%)
269 最均衡 0 50 1/46/3 48.0% (34.8–61.5%)
272 最不均衡 +58 50 13/36/1 62.0% (48.2–74.1%)
292 随机 +49 50 1/49/0 51.0% (37.6–64.3%)
300 最均衡 0 50 3/47/0 53.0% (39.5–66.1%)
332 最不均衡 +59 50 10/40/0 60.0% (46.2–72.4%)
348 最不均衡 +62 50 6/44/0 56.0% (42.3–68.8%)
399 最不均衡 +65 50 7/38/5 52.0% (38.5–65.2%)
401 最均衡 -7 50 0/49/1 49.0% (35.7–62.4%)
418 最均衡 -2 50 1/49/0 51.0% (37.6–64.3%)
424 随机 +23 50 6/44/0 56.0% (42.3–68.8%)
429 最均衡 0 50 0/50/0 50.0% (36.6–63.4%)
432 最均衡 +3 50 5/44/1 54.0% (40.4–67.0%)
433 最均衡 -4 50 4/45/1 53.0% (39.5–66.1%)
467 最均衡 +2 50 2/47/1 51.0% (37.6–64.3%)
471 最均衡 0 50 0/50/0 50.0% (36.6–63.4%)
481 随机 +5 50 1/49/0 51.0% (37.6–64.3%)
485 最均衡 +3 50 1/49/0 51.0% (37.6–64.3%)
497 最均衡 0 50 0/48/2 48.0% (34.8–61.5%)
499 随机 +18 50 4/46/0 54.0% (40.4–67.0%)
531 随机 +13 50 4/46/0 54.0% (40.4–67.0%)
556 随机 +21 50 2/48/0 52.0% (38.5–65.2%)
557 最不均衡 +63 50 15/35/0 65.0% (51.1–76.7%)
565 最不均衡 +60 50 4/44/2 52.0% (38.5–65.2%)
576 最均衡 0 50 1/48/1 50.0% (36.6–63.4%)
578 最不均衡 +56 50 12/38/0 62.0% (48.2–74.1%)
593 最均衡 +2 50 0/49/1 49.0% (35.7–62.4%)
604 最不均衡 +81 50 13/37/0 63.0% (49.1–75.0%)
620 最不均衡 +63 50 12/38/0 62.0% (48.2–74.1%)
637 随机 +21 50 7/43/0 57.0% (43.3–69.7%)
654 随机 +34 50 4/45/1 53.0% (39.5–66.1%)
665 随机 +22 50 6/44/0 56.0% (42.3–68.8%)
745 随机 +13 50 3/46/1 52.0% (38.5–65.2%)
748 随机 +42 50 6/43/1 55.0% (41.3–67.9%)
760 最不均衡 +61 50 8/40/2 56.0% (42.3–68.8%)
784 最不均衡 +58 50 10/38/2 58.0% (44.2–70.6%)
786 最均衡 +2 50 4/45/1 53.0% (39.5–66.1%)
794 最不均衡 +67 50 12/38/0 62.0% (48.2–74.1%)
801 随机 +11 50 1/49/0 51.0% (37.6–64.3%)
814 随机 +32 50 5/45/0 55.0% (41.3–67.9%)
823 最均衡 -5 50 2/48/0 52.0% (38.5–65.2%)
868 最不均衡 +75 50 9/41/0 59.0% (45.2–71.5%)
870 随机 +44 50 5/45/0 55.0% (41.3–67.9%)
879 最不均衡 +66 50 11/38/1 60.0% (46.2–72.4%)
880 最不均衡 +63 50 7/42/1 56.0% (42.3–68.8%)
885 随机 +14 50 1/49/0 51.0% (37.6–64.3%)
886 最不均衡 +58 50 5/45/0 55.0% (41.3–67.9%)
902 最不均衡 +62 50 5/44/1 54.0% (40.4–67.0%)
935 最不均衡 +78 50 11/38/1 60.0% (46.2–72.4%)

深度验证与分类 v2

2.0 版在指数之上增加了第二层。每个局面都沿引擎主线走了 30 回合(优先集合为 35 回合),最均衡的局面以及所有零值或负值局面以 3–10 倍的节点预算重新计算,零值/负值局面还额外进行了三线 MultiPV 搜索和第二轮自对弈。

均衡区段(按基础评估)

用绝对厘兵阈值取代四分位:E — 均势,|cp| ≤ 10;S — 轻微优势,11–25;M — 明显优势,26–40;L — 较大优势,≥ 41。四分位无论数据如何都会保证 240 个「均衡」局面;区段只容纳实际存在的数量。基础计算(400 000 000 节点,全部 960 个局面同一深度)决定区段,更深的搜索加以验证。

区段 局面数
E — 均势 64
S — 轻微优势 386
M — 明显优势 377
L — 较大优势 133

走势(沿对局推演)

同一引擎以每步固定 5 000 000 节点的预算执双方,并在每个半回合前记录评估。volatile — 评估波动 ≥ 60 cp 或至少变号 2 次(仅 ±15 cp 以外的值计入变号);equalizing — 终局优势比开局至少小 10 cp;sharpening — 至少大 15 cp;stable — 其余情况。

在此每步预算下,评估会在开局阶段高估白方优势,并随着局面简化而趋近于零,因此几乎任何局面的原始走势都会「趋于均势」。在标注之前,会从每个推演中减去全部 960 个局面的中位数走势(按半回合计算):共同的漂移被抵消,剩下的就是该局面与典型局面的差异。第 10、20、30 回合的原始参考点按原样发布。

走势 局面数
稳定 542
趋于均势 285
趋于尖锐 25
不稳定 108

区段 × 走势

区段 稳定 趋于均势 趋于尖锐 不稳定
E 28 33 1 2
S 234 120 6 26
M 240 81 14 42
L 40 51 4 38

更深的重新计算

|cp| ≤ 25 的局面以 1 200 000 000 节点重新计算,零值与负值局面以 4 000 000 000 节点计算——单线程、固定哈希,每个数字都可逐位复现。当深度值与基础计算相差不超过 10 cp(基础搜索相邻迭代噪声的两倍)时,该局面视为已验证:147 个中有 123 个已验证。更深的搜索会系统性地上调这些局面——×3 时中位数 +3 cp,×10 时 +9 cp——且没有一个变为负值;按深度值划分的区段与基础区段并列发布,读者两者皆可见。

有争议的十三个局面

十三个局面在基础计算中为零或略负。符号由深度搜索决定;三线 MultiPV 搜索(800 000 000 节点)和第二轮自对弈(每个局面 100 局,每步 1 000 000 节点)是独立的核查,而非否决权。

局面 引擎,cp 深度,cp 结论 自对弈 v2
102 0 +20 白方优势——负号只是噪声 54.5% (44.8–63.9%)
131 0 +5 均势——处于引擎噪声范围内 50.5% (40.9–60.1%)
204 0 +9 均势——处于引擎噪声范围内 47.5% (38.0–57.2%)
269 0 +15 白方优势——负号只是噪声 48.5% (38.9–58.2%)
300 0 +12 白方优势——负号只是噪声 51.5% (41.8–61.1%)
401 -7 0 均势——处于引擎噪声范围内 49.0% (39.4–58.7%)
418 -2 +5 均势——处于引擎噪声范围内 50.5% (40.9–60.1%)
429 0 +10 均势——处于引擎噪声范围内 51.0% (41.3–60.6%)
433 -4 +3 均势——处于引擎噪声范围内 51.5% (41.8–61.1%)
471 0 +15 白方优势——负号只是噪声 50.0% (40.4–59.6%)
497 0 +6 均势——处于引擎噪声范围内 49.0% (39.4–58.7%)
576 0 +13 白方优势——负号只是噪声 50.0% (40.4–59.6%)
823 -5 0 均势——处于引擎噪声范围内 51.5% (41.8–61.1%)

各局面家族的区段分布

命名法 E S M L
BastionGuard 14 69 58 27
BastionScout 14 61 70 23
RampartGuard 11 53 67 13
RampartScout 2 30 30 10
ThroneGuard 16 98 65 25
ThroneScout 7 75 87 35

局限——引用数字前请先阅读

自行复核

重新计算数据集所需的一切都是公开的:确切的引擎构建、预算、脚本与原始输出。单核重算一个局面需要几分钟;整套数据需要一夜。

  1. 从开放数据页面下载原始数据与脚本。 开放数据
  2. 用已发布的数据集核对某个局面——该命令会从头重算并比对:
    python tools/balance/verify_reproduce.py --sp 518
  3. 或重算整套数据(可续跑:中断后会续写同一文件):
    python tools/balance/eval_all.py --nodes 400000000 --workers 20

如果你的数值不同,这个差异本身就是发现:引擎构建、节点预算或选项三者中必有不一致。三者均列于上方。

引用与许可

方法论与数据集以 CC BY 4.0 发布:可用于任何用途(含商业用途),注明作者即可。

Morozov R. Chess960 Balance Index (MBI). ch960.com/balance, 2026. CC BY 4.0.

全部 960 个局面的均衡度 · 数据集与引擎原始输出