♚アプリで開く

モロゾフ・バランス指数(MBI):方法論

モロゾフ・バランス指数(MBI)は、960 の Chess960 初期局面それぞれについて一つの問いに答えます — 白の先手の優位はどれほど大きいか。このページが方法のすべてです。本サイトのどの数値も、ここから再計算できます。

方法論の著者:ロマン・モロゾフ(Roman Morozov)。 著者について · バージョン 2.0 · 2026-09-18

CC BY 4.0 方法論とデータ:CC BY 4.0 — 著者を明記すれば自由に利用できます。

この指数が測るもの

チェスでは白が先に指します。その先手には価値があり、Chess960 では 960 通りの配置ごとに価値が異なります。指数が測るのはその開始時の優位の「大きさ」であり、どちらが良いかではありません。960 局面のうち 956 局面で、初期局面のエンジン評価は互角かそれ以上に白寄りです。残る 4 局面は黒側に 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 の値の分布

各バーは 5 センチポーン幅の区間で、右の数字はその区間に入る局面の数です。

-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

検証

エンジン評価は局面についての主張です。その主張が実際の結果を予測できるかを確かめるため、一部の局面を最後まで指させます。エンジン同士、1 局面あたり多数の対局、シードは固定して公開します。指数がバランス良好と呼ぶ局面が実際に白の得点率 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 倍にして再探索され、ゼロ/マイナスの局面にはさらに 3 本の 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

推移(進行に沿って)

同じエンジンが 1 手あたり固定 5 000 000 ノードで両側を指し、各半手の前に評価を記録します。volatile — 評価が 60 cp 以上変動、または少なくとも 2 回符号が反転(±15 cp を超える値のみ符号として数える);equalizing — 最終の優勢が開始時より 10 cp 以上小さい;sharpening — 15 cp 以上大きい;stable — それ以外。

この 1 手あたり予算での評価は序盤で白の優勢を過大評価し、局面が単純化するにつれてゼロへ収束するため、ほぼどの局面でも生の推移は「均衡化」します。ラベル付けの前に、各進行から 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 ノードで再探索——1 スレッド、固定ハッシュにより、すべての数値はビット単位で再現可能です。深い値が基準計算から 10 cp 以内(基準探索の反復間ノイズの 2 倍)に留まる場合、その局面は検証済みとみなします:147 局面中 123 が検証済み。より深い探索はこれらの局面を系統的に上方へ動かし——×3 で中央値 +3 cp、×10 で +9 cp——マイナスになった局面は一つもありません。深い値によるバンドは基準バンドの隣に公開され、読者は両方を見られます。

係争中の 13 局面

13 の局面は基準計算でゼロまたはわずかにマイナスでした。符号は深い探索が決めます。3 本の MultiPV 探索(800 000 000 ノード)と第二の自己対局シリーズ(1 局面あたり 100 局、1 手 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 局面の再計算は 1 コアで数分、全体では一晩です。

  1. オープンデータのページから生データとスクリプトをダウンロードします。 オープンデータ
  2. 公開データセットと 1 局面を照合します — このコマンドは一から再計算して比較します:
    python tools/balance/verify_reproduce.py --sp 518
  3. あるいは全体を再計算します(再開可能。中断後は同じファイルに追記されます):
    python tools/balance/eval_all.py --nodes 400000000 --workers 20

値が食い違えば、その差こそが発見です。エンジンのビルド、ノード予算、オプションのいずれかが一致していません。3 つとも上に記載しています。

引用とライセンス

方法論とデータセットは CC BY 4.0 で公開しています。著者を明記すれば、商用を含め自由に利用できます。

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

960 局面すべてのバランス · データセットとエンジンの生出力