Méthode · Chess Computing · Étalonnage Elo
Procédure de
Calibration Elo —
Échelle Complète
Grand Tournoi d'Étalonnage · 76 moteurs · 75 parties chacun · 7 ancres absolues établies · Plan de montée en 6 étapes vers 4100+ Elo. Comment passer d'un classement relatif flottant à une échelle absolue ancrée, barre par barre, comme une règle sur une carte.
I. Le problème — cotes relatives contre échelle absolue
Un logiciel comme Ordo calcule des cotes Elo relatives à partir des résultats d'un tournoi. Sans ancre externe, le classement flotte librement : on sait que le moteur A est supérieur de 200 points au moteur B, mais on ne sait pas où ils se situent sur l'échelle absolue SSDF ou CCRL. Le grand tournoi seul ne suffit pas — il donne de l'ordre, pas de l'altitude.
Une ancre est un moteur dont la cote absolue est établie par gauntlet dédié — des parties jouées contre des adversaires eux-mêmes déjà calibrés, sur le hardware de référence Ryzen 9 7950X3D. En fixant plusieurs ancres à des niveaux différents, Ordo peut aligner tout le classement sur l'échelle absolue, comme poser une règle graduée sur une carte sans repères. On ne peut calibrer un moteur qu'en le faisant jouer contre des adversaires proches en force, eux-mêmes déjà ancrés. La stratégie est donc une montée progressive : chaque nouvelle ancre s'appuie sur les précédentes, étendant la zone calibrée vers le haut. C'est le principe de l'échelle de Jacob — un barreau à la fois.
Le grand tournoi sert à identifier la hiérarchie et choisir quels moteurs méritent d'être calibrés en priorité. Il ne remplace pas les gauntlets dédiés : ses cotes restent relatives, mais il montre les écarts entre moteurs et les zones de l'échelle qui manquent d'ancres.
Principe méthodologique — Chroniques Software, 2026II. Grand Tournoi — 76 moteurs, cotes relatives
Paramètres et zones de couverture
| # | Moteur | Elo | σ | Pts | N | % | Zone |
|---|---|---|---|---|---|---|---|
| 1 | Dragon by Komodo Chess 64-bit | 4071.7 | ±12.0 | 69.5 | 75 | 93% | HAUTE |
| 2 | Stockfish 18 8CPU | 4037.1 | ±13.0 | 68.5 | 75 | 91% | HAUTE |
| 3 | Caissa 1.24 POPCNT 8CPU | 4034.7 | ±13.0 | 68.5 | 75 | 91% | HAUTE |
| 4 | Fire 9.3 x64 avx2 8CPU | 4034.3 | ±13.0 | 68.5 | 75 | 91% | HAUTE |
| 5 | Stockfish 12 8CPU | 4006.7 | ±13.9 | 67.5 | 75 | 90% | HAUTE |
| 6 | Rebel-16.3 8CPU | 4002.6 | ±13.9 | 67.5 | 75 | 90% | HAUTE |
| 7 | Lc0 v0.31.0-rc1 | 3992.4 | ±14.3 | 67.0 | 75 | 89% | HAUTE |
| 8 | Fritz 20 AVX512 8CPU | 3959.0 | ±15.0 | 66.0 | 75 | 88% | HAUTE |
| 9 | Stockfish 11 64 BMI2 8CPU | 3955.7 | ±15.0 | 66.0 | 75 | 88% | HAUTE |
| 10 | Ethereal 12.75 (PEXT) 8CPU | 3898.3 | ±16.3 | 64.0 | 75 | 85% | HAUTE |
| 11 | Komodo 14.1 64-bit 8CPU | 3889.5 | ±16.6 | 63.5 | 75 | 85% | HAUTE |
| 12 | Rebel-Extreme-1.1 8CPU | 3885.9 | ±16.6 | 63.5 | 75 | 85% | HAUTE |
| 13 | Stockfish 8 64 BMI2 8CPU | 3874.4 | ±16.6 | 63.5 | 75 | 85% | HAUTE |
| 14 | Komodo 12.1.1 64-bit 8CPU | 3861.0 | ±16.9 | 63.0 | 75 | 84% | HAUTE |
| 15 | Caissa 1.5 8CPU | 3851.9 | ±17.2 | 62.5 | 75 | 83% | HAUTE |
| 16 | Wasp 7.00 8CPU | 3818.1 | ±18.0 | 61.0 | 75 | 81% | HAUTE |
| 17 | Wasp 5.50 8CPU | 3756.6 | ±18.9 | 59.0 | 75 | 79% | HAUTE |
| 18 | Deep Shredder 13 x64 8CPU | 3621.4 | ±20.9 | 53.5 | 75 | 71% | INTER. |
| 19 | Wasp 4.50 8CPU | 3619.4 | ±21.0 | 53.0 | 75 | 71% | INTER. |
| 20 | Gull 3 x64 BMI2 8CPU | 3597.9 | ±21.2 | 52.5 | 75 | 70% | INTER. |
| 21 | Houdini 4 Pro x64 8CPU | 3595.4 | ±21.3 | 52.0 | 75 | 69% | INTER. |
| 22 | Critter 1.6a 64-bit 8CPU | 3580.4 | ±21.4 | 51.5 | 75 | 69% | INTER. |
| 23 | Houdini 5.01 Pro x64 8CPU | 3564.9 | ±21.5 | 51.0 | 75 | 68% | INTER. |
| 24 | Rebel 14.1 | 3563.2 | ±21.7 | 50.5 | 75 | 67% | INTER. |
| 25 | Wasp 3.75 8CPU | 3522.9 | ±22.0 | 49.0 | 75 | 65% | INTER. |
| 26 | Deep Rybka 4.1 SSE42 x64 8CPU | 3512.9 | ±22.1 | 48.5 | 75 | 65% | INTER. |
| 27 | Houdini 6 Pro x64-popc 8CPU | 3506.9 | ±22.2 | 48.0 | 75 | 64% | INTER. |
| 28 | Critter 1.01 64-bit SSE4 8CPU | 3503.2 | ±22.2 | 48.0 | 75 | 64% | INTER. |
| 29 | Senpai 2.0 8CPU | 3477.0 | ±22.4 | 46.5 | 75 | 62% | INTER. |
| 30 | Fire 1.5 xTreme x64p 8CPU | 3474.5 | ±22.4 | 46.5 | 75 | 62% | INTER. |
| 31 | Naum 4.2 8CPU | 3420.4 | ±22.7 | 44.0 | 75 | 59% | INTER. |
| 32 | spark-1.0-win64-mp-corei 8CPU | 3352.3 | ±23.0 | 40.5 | 75 | 54% | INTER. |
| 33 | Senpai 1.0 8CPU | 3351.6 | ±23.0 | 40.5 | 75 | 54% | INTER. |
| 34 | Komodo64 3 | 3335.0 | ±23.1 | 39.5 | 75 | 53% | INTER. |
| 35 | Deep Shredder 12 x64 8CPU | 3334.9 | ±23.1 | 39.5 | 75 | 53% | INTER. |
| 36 | Absurd-1.0 8CPU | 3327.6 | ±23.1 | 39.0 | 75 | 52% | INTER. |
| 37 | Wasp 2.00 8CPU ANCRE A1 | 3297.0 | ±23.1 | 39.5 | 75 | 53% | ANCRÉE |
| 38 | Colossus 2025b 8CPU | 3243.4 | ±23.0 | 34.5 | 75 | 46% | COUVERTE |
| 39 | Rybka 2.4 mp 32-bit 8CPU ANCRE A2 | 3234.0 | ±23.1 | 39.5 | 75 | 53% | ANCRÉE |
| 40 | Toga II 1.4 beta5c | 3223.1 | ±23.0 | 33.5 | 75 | 45% | COUVERTE |
| 41 | Fritz 13 SE | 3217.7 | ±22.9 | 33.0 | 75 | 44% | COUVERTE |
| 42 | Zappa Mexico II x64 8CPU | 3206.9 | ±22.9 | 32.5 | 75 | 43% | COUVERTE |
| 43 | Gull 1.2 x64 | 3205.4 | ±22.9 | 32.5 | 75 | 43% | COUVERTE |
| 44 | Glaurung 2.2 JA 8CPU ANCRE A3 | 3163.0 | ±23.0 | 33.5 | 75 | 45% | ANCRÉE |
| 45 | Rybka 1.0 Beta 32-bit | 3153.1 | ±22.6 | 29.5 | 75 | 39% | COUVERTE |
| 46 | Loop M1-T-1234 8CPU | 3135.2 | ±22.4 | 28.5 | 75 | 38% | COUVERTE |
| 47 | FRUIT 2.3.1 | 3112.2 | ±22.2 | 27.0 | 75 | 36% | COUVERTE |
| 48 | Shredder 10 UCI ANCRE A4 | 3087.0 | ±20.1 | 19.0 | 75 | 25% | ANCRÉE |
| 49 | Deep Fritz 8 | 3084.3 | ±21.9 | 25.5 | 75 | 34% | COUVERTE |
| 50 | Fritz 10 | 3054.3 | ±21.5 | 24.0 | 75 | 32% | COUVERTE |
| 51 | Chess Tiger 2007 | 3049.1 | ±21.4 | 23.5 | 75 | 31% | COUVERTE |
| 52 | ProDeo 1.82 | 3037.5 | ±21.3 | 23.0 | 75 | 31% | COUVERTE |
| 53 | Gambit Fruit 1.0 Beta 4bx | 3019.4 | ±21.0 | 22.0 | 75 | 29% | COUVERTE |
| 54 | Pharaon 3.5.1 8CPU | 2999.4 | ±20.6 | 20.5 | 75 | 27% | COUVERTE |
| 55 | Deep Junior 7 ANCRE A5 | 2996.0 | ±18.9 | 16.0 | 75 | 21% | ANCRÉE |
| 56 | Ruffian 2.1.0 | 2979.5 | ±20.3 | 19.5 | 75 | 26% | COUVERTE |
| 57 | Crafty 20.14 | 2971.1 | ±20.1 | 19.0 | 75 | 25% | COUVERTE |
| 58 | Fritz 7 | 2965.1 | ±20.1 | 19.0 | 75 | 25% | COUVERTE |
| 59 | Shredder 6 | 2948.5 | ±19.7 | 18.0 | 75 | 24% | COUVERTE |
| 60 | Fritz 6 ANCRE A6 | 2947.0 | ±18.5 | 15.0 | 75 | 20% | ANCRÉE |
| 61 | Deep Fritz | 2922.2 | ±19.1 | 16.5 | 75 | 22% | COUVERTE |
| 62 | Gandalf 6.01 | 2918.3 | ±19.1 | 16.5 | 75 | 22% | COUVERTE |
| 63 | Gambit Tiger 2.0 | 2916.7 | ±18.9 | 16.0 | 75 | 21% | COUVERTE |
| 64 | Fritz 8 | 2907.3 | ±18.7 | 15.5 | 75 | 21% | COUVERTE |
| 65 | ProDeo 2.0 | 2907.1 | ±18.7 | 15.5 | 75 | 21% | COUVERTE |
| 66 | SOS 5 for Arena | 2900.7 | ±18.7 | 15.5 | 75 | 21% | COUVERTE |
| 67 | Hiarcs 8 | 2889.5 | ±18.2 | 14.5 | 75 | 19% | COUVERTE |
| 68 | Deep Sjeng 1.6 8CPU | 2870.0 | ±18.0 | 14.0 | 75 | 19% | COUVERTE |
| 69 | Junior 8 | 2869.1 | ±18.0 | 14.0 | 75 | 19% | COUVERTE |
| 70 | Junior 7 ANCRE A7 | 2862.0 | ±19.1 | 16.5 | 75 | 22% | ANCRÉE |
| 71 | List 512 | 2855.8 | ±17.5 | 13.0 | 75 | 17% | COUVERTE |
| 72 | Nimzo 8 | 2837.2 | ±17.2 | 12.5 | 75 | 17% | COUVERTE |
| 73 | Tao 5.6 | 2836.0 | ±17.2 | 12.5 | 75 | 17% | COUVERTE |
| 74 | Hiarcs 7.32 | 2813.2 | ±16.6 | 11.5 | 75 | 15% | COUVERTE |
| 75 | Yace Paderborn | 2778.6 | ±15.4 | 9.5 | 75 | 13% | COUVERTE |
| 76 | Fritz 5.32 | 2684.5 | ±13.0 | 6.5 | 75 | 9% | COUVERTE |
σ = 400 × √(p × (1−p) / N) où p = points/parties, N = 75 parties. Cotes relatives au pool — ancres (fond vert) servent de pivot absolu à Ordo. Les Elo sont ceux du tournoi total-3 (2850 parties).
II bis. Analyse du tournoi — performances notables
Dragon by Komodo Chess domine le tournoi avec 93 % (69,5/75), devançant nettement le trio Stockfish 18 / Caissa 1.24 / Fire 9.3 qui se partagent la 2e place à 91 % — et seulement 0,4 point d'Elo d'écart entre eux. Le classement de ce tournoi renverse l'ordre attendu au sommet.
— Observation Chroniques Software · tournoi total-3 · 2026Moteurs dominants — le sommet du tableau
Dragon by Komodo Chess s'impose avec 4071,7 Elo et 93 % de score — meilleure performance absolue du tournoi. Il devance Stockfish 18 (4037,1) d'un écart de 34 points, ce qui est significatif sur 75 parties. Stockfish 18, Caissa 1.24 et Fire 9.3 sont pratiquement à égalité (68,5 pts chacun), séparés par seulement 2,8 points d'Elo : un résultat statistiquement indiscernable qui exigerait au moins 200 parties supplémentaires pour être tranché. Rebel-16.3 confirme sa vigueur avec 90 %, devançant Lc0 qui se révèle légèrement en retrait par rapport aux autres moteurs modernes (89 %, 3992 Elo).
Moteurs n'ayant jamais perdu — ou presque
Dragon by Komodo (93 %), Stockfish 18, Caissa 1.24 et Fire 9.3 (91 % chacun) maintiennent un score plancher impressionnant sur 75 parties. Avec des σ de ±12 à ±13 points, leurs cotes sont les plus précises de tout le pool — une conséquence directe de leur domination constante. Stockfish 12 et Rebel-16.3 à 90 % ne perdent que contre le quatuor de tête.
Moteurs ayant surperformé leur classement attendu
- Wasp 7.00 8CPU (rang 16 · 3818) — impressionne avec 81 %, au-dessus des Komodo 14 et Rebel-Extreme qui le précèdent de peu. Sa montée en version est remarquable : +521 points Elo entre Wasp 2.00 et Wasp 7.00, la progression la plus spectaculaire d'un moteur au fil de ses versions dans ce pool.
- Colossus 2025b 8CPU (rang 38 · 3243) — moteur moderne qui se hisse au niveau des anciens champions des années 2005–2010. Ses 46 % dans ce pool très compétitif sont une performance solide pour un programme récent face à des machines multi-thread optimisées.
- Rebel 14.1 (rang 24 · 3563) — version monoprocesseur qui rivalise avec Houdini 4 et 5 Pro, moteurs pourtant configurés en 8CPU. Un score de 67 % suggère une efficacité algorithmique exceptionnelle par thread.
- Lc0 v0.31.0-rc1 (rang 7 · 3992) — le seul réseau de neurones du pool, il se glisse parmi les Stockfish et Komodo à 89 %. Remarquable compte tenu de son architecture radicalement différente.
- Shredder 10 UCI (rang 48 · 3087 · ancre A4) — seulement 25 % de score, très en-dessous des autres moteurs de sa génération dans ce pool. La cause probable n'est pas une faiblesse intrinsèque mais un effet de cadence : ce tournoi se joue à 3 minutes par partie, alors que lors de son gauntlet d'étalonnage, Shredder 10 avait 15 secondes par coup. Les moteurs classiques des années 2000 géraient typiquement un calcul court et intense à chaque coup ; en parties longues, les machines modernes à deep search et tablebase les écrasent plus facilement qu'en blitz. Sa cote absolue de 3087 Elo reste valable pour la cadence de référence du gauntlet.
- Deep Junior 7 (rang 55 · 2996 · ancre A5) — même diagnostic : 21 % en parties de 3 minutes contre 15 secondes/coup lors de l'étalonnage. Junior était architecturalement taillé pour l'attaque et la tactique à cadence rapide — son moteur sélectif à grande profondeur sur des lignes précises perd une partie de son avantage dès que les modernes peuvent aussi calculer profond. Sa cote absolue de 2996 reflète la cadence gauntlet, pas les 3 minutes du tournoi.
- Houdini 6 Pro (rang 27 · 3507) — version plus récente mais classée légèrement sous Houdini 4 et Houdini 5 dans ce tournoi. Probablement un artéfact de configuration (paramètres, tablebases) plutôt qu'une réalité intrinsèque.
Anomalie notable — Shredder 10 et sa σ basse
Shredder 10 UCI (rang 48) présente la particularité d'obtenir l'une des σ les plus basses hors sommet : ±20,1. Cela vient de son score atypiquement bas (19/75 = 25 %), qui réduit p×(1−p) à 0,25×0,75 = 0,19, valeur plus faible que celle des moteurs autour de 50 %. En pratique, cette précision apparente est trompeuse : un moteur écrasé par le pool est moins informatif qu'un moteur qui se bat à 50 %. Deep Junior 7 (21 %) et Fritz 6 (20 %) présentent le même phénomène. C'est précisément l'intérêt du gauntlet dédié — joué à la cadence d'étalonnage — pour confirmer les cotes absolues de ces moteurs ancienne génération.
II ter. Les 6 nouvelles ancres retenues
Avec 75 parties chacun, le tournoi total-3 permet d'identifier les meilleurs candidats à la calibration. Le critère de sélection est triple : spacing sous 150 points entre ancres consécutives, σ aussi basse que possible, et existence de données CCRL ou SSDF pour validation externe. Ce sont exactement les 6 ancres qui constituent le plan de calibration de la section IV.
- B1 · Naum 4.2 8CPU (3420 ±22,7) — +123 vs Wasp 2.00. Moteur au comportement stable et documenté, 59 % dans ce pool. Premier barreau de l'échelle, vs A1 + A2 + A3 pour triple ancrage.
- B2 · Wasp 3.75 8CPU (3523 ±22,0) — +103 vs Naum. Colonne vertébrale de la série Wasp, progression régulière garantie. Vs B1 + A1.
- B3 · Wasp 4.50 8CPU (3619 ±21,0) — +96 vs Wasp 3.75. Écart le plus court du plan, gauntlet le plus précis. Franchit le seuil des 3600. Vs B2 + B1.
- B4 · Wasp 5.50 8CPU (3757 ±18,9) — +138 vs Wasp 4.50. Étape pivot : ouvre la zone des moteurs modernes multi-CPU au-dessus de 3700. Vs B3 + B2.
- B5 · Ethereal 12.75 (PEXT) 8CPU (3898 ±16,3) — +141 vs Wasp 5.50. Moteur open-source de très haut niveau, σ ±16,3 la meilleure hors sommet du pool. Remplace Stockfish 11 dans le plan original : même zone, σ plus favorable, données CCRL abondantes. Vs B4 + B3.
- B6 · Stockfish 12 8CPU (4007 ±13,9) — +109 vs Ethereal. Ancre finale haute, saut maîtrisé. Une fois calibré, Ordo peut placer Dragon, SF18, Caissa 1.24 et Fire 9.3 en cascade — complétant l'échelle jusqu'à 4072. Vs B5 + B4.
III. Diagnostic — un gap critique de 775 points
La zone 3297 → 4072, de Wasp 2.00 jusqu'à Dragon by Komodo, couvre 775 points Elo et regroupe 17 moteurs — soit 22 % du pool total. Elle est intégralement dépourvue d'ancre.
— Diagnostic Chroniques Software · 2026 · Gap priorité absolue du plan de calibrationLes cotes Ordo de cette zone reposent uniquement sur l'extrapolation à partir de Wasp 2.00, avec une incertitude qui s'accumule à mesure qu'on monte. Un moteur classé à 4007 Elo relatif pourrait en réalité être à 3900 ou 4100 — sans ancre intermédiaire, impossible de le savoir. C'est la priorité absolue du plan qui suit.
- A1 · Wasp 2.00 8CPU — 3297 ±23,1 · Sommet actuel de la chaîne d'ancres
- A2 · Rybka 2.4 mp 8CPU — 3234 ±23,1 · +63 sous Wasp 2.00
- A3 · Glaurung 2.2 JA 8CPU — 3163 ±23,0 · 75 parties · résultat précis
- A4 · Shredder 10 UCI — 3087 ±20,1 · σ basse (score extrême p=0.25)
- A5 · Deep Junior 7 — 2996 ±18,9 · σ basse (score extrême p=0.21)
- A6 · Fritz 6 — 2947 ±18,5 · σ basse (score extrême p=0.20)
- A7 · Junior 7 — 2862 ±19,1 · Ancre de base — fond de l'échelle
IV. Plan de Calibration — montée en 6 étapes
On ne saute jamais plus de ~150 Elo entre deux ancres consécutives — au-delà, le gauntlet perd en précision. Les moteurs de la série Wasp constituent la colonne vertébrale de B1 à B4 : bien distribués sur l'échelle, chaque version est naturellement proche de la précédente. Ethereal remplace Stockfish 11 en B5 : même zone, σ plus favorable, sauts mieux équilibrés.
Naum 4.2 8CPU
✔ Rybka 2.4 (A2 · 3234)
✔ Glaurung 2.2 (A3 · 3163)
Wasp 3.75 8CPU
✔ Wasp 2.00 (A1 · 3297)
Wasp 4.50 8CPU
✔ Naum 4.2 (B1 · ~3420)
Wasp 5.50 8CPU
✔ Wasp 3.75 (B2 · ~3523)
Ethereal 12.75 (PEXT) 8CPU
✔ Wasp 4.50 (B3 · ~3619)
Stockfish 12 8CPU
✔ Wasp 5.50 (B4 · ~3757)
V. Résultat attendu — 13 ancres sur 1387 points
- Étendue calibrée : 2685 → 4072 — soit 1387 points Elo couverts
- Espacement moyen entre ancres : ~107 Elo sur 13 points de référence
- Incertitude maximale pour tout moteur entre deux ancres : ±35 Elo
- Parties gauntlets supplémentaires : ~420 réparties sur 6 gauntlets
- Tournoi final objectif : ≥ 100 parties par moteur pour cotes absolues définitives
- 76 moteurs disposant d'une cote absolue Ryzen 9 7950X3D exploitable contre SSDF et CCRL
