♚Ouvrir dans l’app

Indice de Morozov (MBI) : méthodologie

L'indice de Morozov (MBI) répond à une seule question pour chacune des 960 positions initiales du Chess960 : quelle est l'ampleur de l'avantage des Blancs au départ ? Cette page contient la méthode entière — chaque chiffre du site peut être recalculé à partir d'elle.

Auteur de la méthodologie : Roman Morozov. À propos de l'auteur · Version 2.0 · 2026-09-18

CC BY 4.0 Méthodologie et données : CC BY 4.0 — libre d'usage avec attribution à l'auteur.

Ce que mesure l'indice

Aux échecs, les Blancs jouent en premier. Ce premier coup vaut quelque chose, et au Chess960 il vaut une valeur différente dans chacune des 960 dispositions. L'indice mesure l'AMPLEUR de cet avantage initial, et non qui est mieux placé. Dans 956 des 960 positions, l'évaluation du moteur pour la position de départ est à l'égalité ou au-dessus en faveur des Blancs ; les quatre autres ressortent entre 2 et 7 centipions du côté des Noirs, moins que ce dont la recherche bouge entre ses propres itérations : du bruit autour de zéro, et non un avantage noir. La mesure est la distance à zéro dans un sens comme dans l'autre, la formulation honnête est donc « quelle est l'avance ici », et une position équilibrée est celle où cette avance est la plus faible.

Le MBI est une échelle de 0 à 100. 100 correspond au plus faible avantage mesuré des Blancs parmi les 960 positions — le départ le plus équilibré. 0 au plus fort. L'indice est une transformation fondée sur le RANG d'une seule grandeur mesurée : il dit comment une position se situe par rapport aux 959 autres, pas de combien de pions quelqu'un mène.

Comment chaque position est évaluée

Chaque position initiale est analysée une fois par Stockfish depuis la disposition de départ, avec un budget fixe de NŒUDS de recherche plutôt qu'un temps fixe. C'est la décision clé de toute la méthode : un budget de nœuds ne dépend pas de la machine. Un budget de temps donnerait à un ordinateur rapide une recherche plus profonde, donc un autre chiffre, et personne ne pourrait vérifier le résultat.

Une recherche mono-thread avec un hachage fixe et un nombre de nœuds fixe est déterministe : le même binaire sur n'importe quelle machine renvoie la même valeur en centipions, bit pour bit. C'est ce qui rend une vérification indépendante possible, et pas seulement plausible.

Des centipions à l'indice

Les centipions ne mesurent linéairement rien d'humain, et l'écart entre +18 et +22 ne signifie rien en soi. L'indice utilise donc le RANG de la position parmi les 960, pas le chiffre brut :

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) )
Classe Avantage des Blancs Positions
A — les plus équilibrées ≤ +19 cp 240
B — équilibrées +20…+26 cp 240
C — avantage sensible +27…+35 cp 240
D — avantage le plus fort > +35 cp 240

Sur les 960 positions, la valeur du moteur va de -7 à +83 centipions, médiane +26.0.

Comment se répartissent les 960 valeurs

Chaque barre est un intervalle de cinq centipions ; le nombre à droite indique combien des 960 positions y tombent.

-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

Validation

Une évaluation de moteur est une affirmation sur une position. Pour vérifier qu'elle prédit des résultats réels, une partie des positions est jouée jusqu'au bout : moteur contre moteur, de nombreuses parties par position, graines fixées et publiées. Si les positions que l'indice qualifie d'équilibrées marquent effectivement plus près de 50 % pour les Blancs, l'indice mesure bien ce qu'il annonce.

Graine de base : 20260825. Chaque partie est rejouable à l’identique.

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

Vérification approfondie et classification v2

La version 2.0 ajoute une seconde couche à l'indice. Chaque position a été jouée le long de la ligne principale du moteur sur 30 coups (35 pour l'ensemble prioritaire), les positions les plus équilibrées et toutes celles nulles ou négatives ont été recalculées avec un budget de nœuds 3 à 10 fois plus grand, et les nulles/négatives ont reçu en plus une recherche MultiPV à trois lignes et une seconde série de self-play.

Bande d'équilibre (selon l'évaluation de base)

Seuils absolus en centipions au lieu de quartiles : E — égale, |cp| ≤ 10 ; S — léger, 11–25 ; M — modéré, 26–40 ; L — grand, ≥ 41. Les quartiles garantissaient 240 positions « équilibrées » quelles que soient les données ; une bande ne contient que celles qui existent vraiment. Le calcul de base (400 000 000 nœuds, même profondeur pour les 960) fixe la bande ; la recherche plus profonde la vérifie.

Bande Positions
E — égale 64
S — léger avantage 386
M — avantage modéré 377
L — grand avantage 133

Dynamique (le long de la partie jouée)

Le même moteur joue les deux camps avec un budget fixe de 5 000 000 nœuds par coup et l'évaluation est enregistrée avant chaque demi-coup. volatile — l'évaluation a oscillé de ≥ 60 cp ou a changé de signe au moins 2 fois (seules les valeurs au-delà de ±15 cp comptent) ; égalisante — l'avantage final est inférieur d'au moins 10 cp à celui du départ ; aiguisante — supérieur d'au moins 15 cp ; stable — tout le reste.

Les évaluations à ce budget par coup surestiment l'avantage blanc en début de partie et convergent vers zéro à mesure que la position se simplifie, si bien que la trajectoire brute de presque toute position « s'égalise ». Avant l'étiquetage, on soustrait à chaque partie jouée la trajectoire médiane des 960 positions (par demi-coup) : la dérive commune s'annule et il reste ce qui distingue cette position d'une position typique. Les points bruts à 10, 20 et 30 coups sont publiés tels quels.

Dynamique Positions
stable 542
égalisante 285
aiguisante 25
volatile 108

Bandes × dynamique

Bande stable égalisante aiguisante volatile
E 28 33 1 2
S 234 120 6 26
M 240 81 14 42
L 40 51 4 38

Recalcul plus profond

Les positions avec |cp| ≤ 25 ont été recalculées avec 1 200 000 000 nœuds, les nulles et négatives avec 4 000 000 000 nœuds — un thread, hash fixe, chaque nombre est reproductible bit à bit. Une position est dite vérifiée quand la valeur profonde reste à 10 cp du calcul de base (le double du bruit entre itérations de la recherche de base) : 123 sur 147 vérifiées. La recherche plus profonde décale ces positions systématiquement vers le haut — médiane +3 cp à ×3 et +9 cp à ×10 — et aucune n'est ressortie négative ; la bande selon la valeur profonde est publiée à côté de la bande de base, le lecteur voit les deux.

Les treize contestées

Treize positions sont ressorties nulles ou légèrement négatives au calcul de base. La recherche profonde décide du signe ; la recherche MultiPV à trois lignes (800 000 000 nœuds) et une seconde série de self-play (100 parties par position à 1 000 000 nœuds par coup) sont des contrôles indépendants, pas un veto.

Position Moteur, cp Profond, cp Verdict Self-play v2
102 0 +20 avantage blanc — le moins était du bruit 54.5% (44.8–63.9%)
131 0 +5 égale — dans le bruit du moteur 50.5% (40.9–60.1%)
204 0 +9 égale — dans le bruit du moteur 47.5% (38.0–57.2%)
269 0 +15 avantage blanc — le moins était du bruit 48.5% (38.9–58.2%)
300 0 +12 avantage blanc — le moins était du bruit 51.5% (41.8–61.1%)
401 -7 0 égale — dans le bruit du moteur 49.0% (39.4–58.7%)
418 -2 +5 égale — dans le bruit du moteur 50.5% (40.9–60.1%)
429 0 +10 égale — dans le bruit du moteur 51.0% (41.3–60.6%)
433 -4 +3 égale — dans le bruit du moteur 51.5% (41.8–61.1%)
471 0 +15 avantage blanc — le moins était du bruit 50.0% (40.4–59.6%)
497 0 +6 égale — dans le bruit du moteur 49.0% (39.4–58.7%)
576 0 +13 avantage blanc — le moins était du bruit 50.0% (40.4–59.6%)
823 -5 0 égale — dans le bruit du moteur 51.5% (41.8–61.1%)

Bandes par famille de positions

Nomenclature 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

Limites — à lire avant de citer les chiffres

Vérifier soi-même

Tout ce qu'il faut pour recalculer le jeu de données est public : la compilation exacte du moteur, le budget, les scripts et la sortie brute. Recalculer une position prend quelques minutes sur un seul cœur ; l'ensemble, une nuit.

  1. Téléchargez les données brutes et les scripts depuis la page des données ouvertes. Données ouvertes
  2. Vérifiez une position contre le jeu de données publié — la commande la recalcule entièrement et compare :
    python tools/balance/verify_reproduce.py --sp 518
  3. Ou recalculez l'ensemble (reprise possible : après une interruption, l'exécution complète le même fichier) :
    python tools/balance/eval_all.py --nodes 400000000 --workers 20

Si votre valeur diffère, c'est là le résultat intéressant : la compilation du moteur, le budget de nœuds ou les options ne correspondront pas. Les trois sont imprimés ci-dessus.

Citation et licence

La méthodologie et le jeu de données sont publiés sous CC BY 4.0 : utilisez-les pour tout usage, y compris commercial, avec attribution à l'auteur.

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

Équilibre des 960 positions · Jeu de données et sortie brute du moteur