♚Abrir no app

Índice de Morozov (MBI): metodologia

O Índice de Morozov (MBI) responde a uma única pergunta para cada uma das 960 posições iniciais do Chess960: qual é o tamanho da vantagem das brancas na saída? Esta página traz o método inteiro — qualquer número do site pode ser recalculado a partir dele.

Autor da metodologia: Roman Morozov. Sobre o autor · Versão 2.0 · 2026-09-18

CC BY 4.0 Metodologia e dados: CC BY 4.0 — uso livre com atribuição ao autor.

O que o índice mede

No xadrez as brancas jogam primeiro. Esse primeiro lance vale alguma coisa e, no Chess960, vale um valor diferente em cada uma das 960 disposições. O índice mede o TAMANHO dessa vantagem inicial, não quem está melhor. Em 956 das 960 posições a avaliação do motor para a posição inicial é de igualdade ou superior a favor das brancas; as outras quatro ficam entre 2 e 7 centipeões do lado das pretas, menos do que a própria busca varia entre iterações: ruído em torno de zero, não uma vantagem das pretas. A medida é a distância a zero em qualquer sentido, por isso a formulação honesta é «qual é a vantagem inicial aqui», e uma posição equilibrada é aquela em que essa vantagem é a menor possível.

O MBI é uma escala de 0 a 100. 100 é a menor vantagem medida das brancas entre as 960 posições — a saída mais equilibrada. 0 é a maior. O índice é uma transformação baseada no POSTO de uma única grandeza medida, ou seja, diz como a posição se compara com as outras 959, não quantos peões alguém tem de vantagem.

Como cada posição é avaliada

Cada posição inicial é analisada uma vez pelo Stockfish a partir da disposição de saída, com um orçamento fixo de NÓS de busca em vez de um tempo fixo. É a decisão central de todo o método: um orçamento de nós não depende da máquina. Um orçamento de tempo daria a um computador rápido uma busca mais profunda e, portanto, outro número, e ninguém poderia conferir o resultado.

A busca de thread única com hash fixo e número fixo de nós é determinística: o mesmo binário em qualquer máquina devolve o mesmo valor em centipeões, bit a bit. É isso que torna uma verificação independente possível, e não apenas plausível.

Dos centipeões ao índice

Centipeões não são uma medida linear de nada humano, e a diferença entre +18 e +22 não significa nada sozinha. Por isso o índice usa o POSTO da posição entre as 960, e não o número bruto:

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 Vantagem das brancas Posições
A — as mais equilibradas ≤ +19 cp 240
B — equilibradas +20…+26 cp 240
C — vantagem perceptível +27…+35 cp 240
D — maior vantagem > +35 cp 240

Nas 960 posições o valor do motor vai de -7 a +83 centipeões, mediana +26.0.

Como os 960 valores se distribuem

Cada barra é um intervalo de cinco centipeões; o número à direita diz quantas das 960 posições caem nele.

-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

Validação

A avaliação de um motor é uma afirmação sobre a posição. Para verificar se essa afirmação prevê resultados reais, parte das posições é jogada até o fim: motor contra motor, muitas partidas por posição, com as sementes fixadas e publicadas. Se as posições que o índice chama de equilibradas realmente pontuarem mais perto de 50% para as brancas, o índice mede o que diz medir.

Semente base: 20260825. Qualquer partida pode ser repetida exatamente.

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

Verificação profunda e classificação v2

A versão 2.0 adiciona uma segunda camada ao índice. Cada posição foi jogada ao longo da linha principal do motor por 30 lances (35 para o conjunto prioritário), as posições mais equilibradas e todas as nulas ou negativas foram recalculadas com um orçamento de nós 3–10 vezes maior, e as nulas/negativas receberam ainda uma busca MultiPV de três linhas e uma segunda série de self-play.

Faixa de equilíbrio (pela avaliação base)

Limiares absolutos em centipeões em vez de quartis: E — igual, |cp| ≤ 10; S — leve, 11–25; M — moderada, 26–40; L — grande, ≥ 41. Os quartis garantiam 240 posições «equilibradas» independentemente dos dados; uma faixa contém apenas quantas realmente existem. A execução base (400 000 000 nós, a mesma profundidade para as 960) define a faixa; a busca mais profunda a verifica.

Faixa Posições
E — igual 64
S — leve vantagem 386
M — vantagem moderada 377
L — grande vantagem 133

Dinâmica (ao longo da partida jogada)

O mesmo motor joga os dois lados com um orçamento fixo de 5 000 000 nós por lance e a avaliação é registrada antes de cada meio-lance. volátil — a avaliação oscilou ≥ 60 cp ou mudou de sinal pelo menos 2 vezes (só contam valores além de ±15 cp); equalizante — a vantagem final é pelo menos 10 cp menor que no início; agudizante — pelo menos 15 cp maior; estável — todo o resto.

As avaliações com esse orçamento por lance superestimam a vantagem branca no início e convergem para zero à medida que a posição se simplifica, então a trajetória bruta de quase qualquer posição «se iguala». Antes de rotular, de cada partida jogada subtrai-se a trajetória mediana das 960 posições (por meio-lance): a deriva comum se cancela e resta o que distingue esta posição de uma típica. Os pontos brutos em 10, 20 e 30 lances são publicados como estão.

Dinâmica Posições
estável 542
equalizante 285
agudizante 25
volátil 108

Faixas × dinâmica

Faixa estável equalizante agudizante volátil
E 28 33 1 2
S 234 120 6 26
M 240 81 14 42
L 40 51 4 38

Recálculo mais profundo

Posições com |cp| ≤ 25 foram recalculadas com 1 200 000 000 nós, as nulas e negativas com 4 000 000 000 nós — uma thread, hash fixo, cada número é reproduzível bit a bit. Uma posição conta como verificada quando o valor profundo fica a até 10 cp da execução base (o dobro do ruído entre iterações da busca base): 123 de 147 verificadas. A busca mais profunda desloca essas posições sistematicamente para cima — mediana +3 cp a ×3 e +9 cp a ×10 — e nenhuma resultou negativa; a faixa pelo valor profundo é publicada ao lado da faixa base, para que o leitor veja ambas.

As treze em disputa

Treze posições saíram nulas ou levemente negativas na execução base. A busca profunda decide o sinal; a busca MultiPV de três linhas (800 000 000 nós) e uma segunda série de self-play (100 partidas por posição a 1 000 000 nós por lance) são verificações independentes, não um veto.

Posição Motor, cp Profundo, cp Veredito Self-play v2
102 0 +20 vantagem branca — o sinal negativo era ruído 54.5% (44.8–63.9%)
131 0 +5 igual — dentro do ruído do motor 50.5% (40.9–60.1%)
204 0 +9 igual — dentro do ruído do motor 47.5% (38.0–57.2%)
269 0 +15 vantagem branca — o sinal negativo era ruído 48.5% (38.9–58.2%)
300 0 +12 vantagem branca — o sinal negativo era ruído 51.5% (41.8–61.1%)
401 -7 0 igual — dentro do ruído do motor 49.0% (39.4–58.7%)
418 -2 +5 igual — dentro do ruído do motor 50.5% (40.9–60.1%)
429 0 +10 igual — dentro do ruído do motor 51.0% (41.3–60.6%)
433 -4 +3 igual — dentro do ruído do motor 51.5% (41.8–61.1%)
471 0 +15 vantagem branca — o sinal negativo era ruído 50.0% (40.4–59.6%)
497 0 +6 igual — dentro do ruído do motor 49.0% (39.4–58.7%)
576 0 +13 vantagem branca — o sinal negativo era ruído 50.0% (40.4–59.6%)
823 -5 0 igual — dentro do ruído do motor 51.5% (41.8–61.1%)

Faixas por família de posições

Nomenclatura 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

Limitações — leia antes de citar os números

Como conferir você mesmo

Tudo o que é preciso para recalcular o conjunto de dados é público: a compilação exata do motor, o orçamento, os scripts e a saída bruta. Recalcular uma posição leva alguns minutos em um único núcleo; o conjunto inteiro, uma noite.

  1. Baixe os dados brutos e os scripts na página de dados abertos. Dados abertos
  2. Confira uma posição contra o conjunto publicado — o comando recalcula do zero e compara:
    python tools/balance/verify_reproduce.py --sp 518
  3. Ou recalcule o conjunto inteiro (é retomável: após uma interrupção continua no mesmo arquivo):
    python tools/balance/eval_all.py --nodes 400000000 --workers 20

Se o seu valor diferir, essa diferença é o achado: não vai coincidir a compilação do motor, o orçamento de nós ou as opções. As três estão impressas acima.

Citação e licença

A metodologia e o conjunto de dados são publicados sob CC BY 4.0: use para o que quiser, inclusive comercialmente, com atribuição ao autor.

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

Equilíbrio das 960 posições · Conjunto de dados e saída bruta do motor