Après de nombreux tournois entre modules, il est intéressant d’établir un classement des moteurs entre eux, et cela même s’ils n’ont pas joué tous l’un contre l’autre, ou au contraire, même s’ils ont joué de nombreuses fois l’un contre l’autre....
Le classement de référence
On prendra pour exemple le classement actuel du site IPON RATING List à cette adresse : http://www.inwoba.de/
Il existe des programmes qui permettent d’établir un classement et font cela et bien même :
Dans un premier temps, nous allons constituer un échantillon de parties, le principe est l’évaluation des moteurs entre eux en fonction de leurs performances dans leurs résultats.
Rassemblez vos parties dans le même fichier PGN
Rassembler dans un même dossier tous vos fichiers PGN que vous souhaitez intégrer dans le calcul du classement, plus le nombre de parties est élevé, plus les moteurs jouent entre eux, plus le classement est fiable.
Dans notre exemple, le fichier est constitué de nombreuses parties issus de mes propres tournois et ceux trouvé sur le net (notamment, sur le site du fou numérique
Nous allons donc créer un petit exécutable qui va faire cela aisément. Créez un fichier texte et insérez à l’intérieur la ligne de code suivante : type *.pgn >> a.txt
rename a.txt a.pgn
enregistrez et renommez le en " fusion.bat ". Vous placerez le fichier ainsi crée dans le dossier qui contient les fichiers pgn.
Double cliquez sur ce fichier, et blop, un fichier a.pgn apparait avec toutes les parties rassemblées dans ce seul fichier.
Le classement Bayesian Elo Rating par Rémi Coulom
(un conseil, lisez la documentation, c’est plutôt intéressant et cela vous explique la différence de traitement avec la méthode Elostat...)
Une page de commande s’affiche, puis saisissez les éléments en gras :
ResultSet>readpgn a.pgn 3517 game(s) loaded, 11 game(s) with unknown result ignored. ResultSet>elo ResultSet-EloRating>mm Iteration 100 : 0.000224454 00:00:00,04 ResultSet-EloRating>exactdist 00:00:02,94 ResultSet-EloRating>offset 2895 Houdini_w32_1.02_2CPU ResultSet-EloRating>ratings Rank Name Elo + - games score oppo. draws ResultSet-EloRating>ratings >Elo.txt
et voila, au bout de la procédure, vous obtenez le classement dans le fichier Elo.txt. Lors de cette manœuvre, on a mis arbitrairement le module Houdini avec une évaluation à 2895 (offset), tous les classements des autres modules découle de cette valeur de référence.
Rank Name Elo + - games score oppo. draws
1 FireBird_11_no_SSE2_NS 2932 192 154 14 86% 2677 29%
2 Houdini_1.3A_w32_2CPU 2896 104 96 32 75% 2738 38%
3 Houdini_w32_1.02_2CPU 2895 79 76 46 63% 2822 52%
4 FireBird_12_w32_new_SMP 2855 75 71 68 75% 2677 35%
5 Fire_131_w32_KLO 2851 82 80 44 60% 2787 43%
6 FireBird_11_w32_ms 2851 72 70 58 59% 2795 45%
7 Houdini_w32_2CPU 2849 131 122 18 69% 2735 50%
8 IvanMod12cSSE2 2841 97 97 26 52% 2825 65%
9 RobboLito_0085g3_w32 2834 50 49 116 63% 2737 53%
10 Stockfish-18-32-ja 2831 77 75 52 58% 2783 38%
11 MishasMauler12T x86 2830 136 138 12 46% 2849 75%
12 Stockfish-17-32-ja 2822 83 83 42 49% 2824 40%
13 FireBird_11_w32_in 2817 122 116 20 65% 2728 50%
14 Tankist 1.7 32-bit 2817 121 112 24 69% 2687 38%
15 RobboLito_009_w32 2800 129 124 18 58% 2740 39%
16 RobboLito_0085g3_w32_no_SSE2 2798 63 61 96 68% 2658 26%
17 Fire_12_w32_new_SMP 2784 100 96 34 60% 2696 32%
18 Crab_PGO 2782 147 147 12 50% 2788 50%
19 RobboLite 2780 39 38 240 69% 2636 34%
20 IvanHoe-BetaWH_35 2779 125 121 20 58% 2732 35%
21 DamirsRybkaKiller51 2778 119 117 18 56% 2743 67%
22 FireBird_10_beta_w32_noSSE2 2777 126 117 20 70% 2645 50%
23 Stockfish-171-32-ja 2777 62 60 99 67% 2639 32%
24 FireBird_10_w32_noSSE2 2776 112 106 28 64% 2671 36%
25 IvanHoe-BetaWH_31 2770 131 129 20 55% 2733 20%
26 Stockfish-163-32-ja 2759 63 62 87 60% 2681 33%
27 Fire_131_w32_NS 2752 138 143 12 42% 2793 67%
28 RobboLito_0085d11_w32 2743 135 118 24 77% 2544 29%
29 IvanHoe999953 2738 140 147 12 38% 2795 58%
30 IvanHoe999963 2736 121 123 18 47% 2747 50%
31 IvanHoe_v81_w32_no_SEE2 2726 127 123 20 60% 2650 40%
32 Critter_0.80_32bit 2709 97 100 32 42% 2762 28%
33 Stockfish-162-ja 2669 73 71 70 61% 2583 26%
34 Komodo-12-32-ja 2661 63 63 85 50% 2649 36%
35 Critter_0.60_32bit 2660 114 117 24 44% 2700 29%
36 Rybka v2.2n2.mp.w32 2649 130 121 20 65% 2545 30%
37 RobboLito085d2_w32 2642 159 150 10 65% 2571 70%
38 RobboLito_0085e4_w32_no_SSE2 2637 112 115 20 43% 2672 65%
39 Rybka 2.2 32 bit 2631 32 32 338 65% 2530 34%
40 Spark-0.4-win32-mp 2624 69 69 71 50% 2616 35%
41 Stockfish_151_ja 2617 41 41 190 61% 2543 38%
42 Naum 4.2 2614 127 141 20 30% 2748 20%
43 Komodo-10-32-ja 2595 54 55 121 34% 2706 31%
44 Naum4 2595 85 89 48 38% 2679 21%
45 Protector-136-rev308-32-ja 2594 120 133 20 25% 2750 40%
46 Cyclone xTreme Fear 2591 123 128 24 42% 2653 17%
47 Doch_09.980_32_ja 2588 82 83 44 45% 2614 45%
48 Bright-0.5c-frc 2585 55 56 109 43% 2634 39%
49 Stockfish_14_ja 2575 48 47 142 61% 2498 38%
50 Doch32-134-ja 2571 84 83 50 53% 2547 22%
51 Critter_0.70_32bit 2558 105 100 33 64% 2462 30%
52 Cyclone xTreme 2557 116 117 20 48% 2564 45%
53 Cyclone xTreme II 2553 47 46 146 57% 2510 36%
57 Protector_Win32 2543 62 63 93 42% 2609 23%
55 Critter_0.52b_32bit 2541 96 103 38 30% 2685 24%
56 Strelka_1.8_UCI 2535 82 83 48 46% 2564 29%
57 T20080620 2521 94 90 34 63% 2439 50%
58 Bright-0.5c 2518 63 65 92 36% 2627 24%
59 Spike1.2 2507 31 31 337 47% 2533 39%
60 Fruit-2-3-1 2503 32 32 322 46% 2533 37%
61 Strelka_2_0 2499 84 86 44 40% 2568 34%
62 Bright-0.4a 2498 35 35 268 47% 2520 32%
63 Spark-0.3a-gcc32-mp 2494 79 86 60 23% 2694 23%
64 List512 2490 108 100 30 72% 2353 37%
65 Rybka v1.0 Beta.w32 2485 136 143 14 39% 2541 50%
66 TogaII 2478 54 55 110 45% 2507 34%
67 Doch12-ja 2477 104 111 30 35% 2576 30%
68 T20090922 2448 50 51 122 43% 2497 37%
69 Bison 9.11 w32 2443 70 71 63 45% 2472 40%
70 Naum 2432 46 47 144 43% 2477 40%
71 Critter_0.42 2431 42 43 176 36% 2524 38%
72 Colossus2008b 2424 46 46 148 47% 2443 36%
73 Booot415 2423 49 49 127 47% 2442 42%
74 Fruit_21 2422 93 94 34 46% 2445 44%
75 Delfi 2420 45 46 149 43% 2467 44%
76 Cyrano 2418 44 44 160 46% 2446 39%
77 Crafty_230_win32_ja 2396 68 70 72 38% 2487 28%
78 Alaric707 2391 40 41 199 41% 2455 33%
79 Pharaon 2390 49 49 131 44% 2436 38%
80 Daydreamer-175-32-ja 2380 97 102 33 36% 2473 36%
81 Bison 9.8 w32 2378 57 58 98 43% 2425 35%
82 Hamsters 2368 71 72 63 42% 2420 33%
83 Slow 2367 46 46 151 38% 2445 38%
84 Movei00_8_438 2361 100 100 30 50% 2361 40%
85 WildCat_8 2356 50 51 127 37% 2446 36%
86 Ruffian_105 2356 102 102 30 50% 2362 33%
87 Aristarch 4.50 2350 101 101 30 48% 2362 37%
88 Zappa 2303 102 107 30 40% 2365 27%
89 GarboChess2 2261 101 109 30 33% 2368 27%
90 Ktulu 2240 106 122 34 22% 2456 15%
91 Alfil811 2148 108 126 30 17% 2376 27%
92 T20100131x 1937 221 482 16 0% 2487 0%
NB : Attention, le classement ainsi établi ne représente qu’une tendance et une évaluation très sommaire des moteurs car :
la taille de l’échantillon utilisée est trop petite le volume de parties joué entre ces modules ainsi évalués est également trop faible.
Le classement EloStat d’Arena
Le programme Arena 2.01 à une option qui permet d’établir un classement, il suffira donc d’installer Arena et d’ouvrir cette routine (menu Extras>Calculer performance avec ELOStat) . La méthode de calcul est différente de Bayessan mais on peut constater cependant que le classement rencontre des similitudes :
Le classement de départ est fixé arbitrairement à 2400.
Program Elo + - Games Score Av.Op. Draws
1 FireBird_11_no_SSE2_NS : 2827 224 153 14 85.7 % 2516 28.6 %
2 Houdini_1.3A_w32_2CPU : 2757 105 97 32 75.0 % 2566 37.5 %
3 Houdini_w32_1.02_2CPU : 2750 71 69 46 63.0 % 2657 52.2 %
4 Houdini_w32_2CPU : 2707 124 109 18 69.4 % 2564 50.0 %
5 FireBird_12_w32_new_SMP : 2703 72 69 68 75.0 % 2512 35.3 %
6 Fire_131_w32_KLO : 2694 80 78 44 60.2 % 2622 43.2 %
7 FireBird_11_w32_ms : 2693 68 67 58 58.6 % 2633 44.8 %
8 IvanMod12cSSE2 : 2677 81 79 26 51.9 % 2663 65.4 %
9 Stockfish-18-32-ja : 2671 76 75 52 57.7 % 2617 38.5 %
10 RobboLito_0085g3_w32 : 2667 44 42 116 62.9 % 2575 53.4 %
11 FireBird_11_w32_in : 2665 115 107 20 65.0 % 2557 50.0 %
12 MishasMauler12T x86 : 2661 94 107 12 45.8 % 2690 75.0 %
13 Tankist 1.7 32-bit : 2658 119 114 24 68.8 % 2521 37.5 %
14 Stockfish-17-32-ja : 2656 83 83 42 48.8 % 2665 40.5 %
15 RobboLito_0085g3_w32_no_SSE2 : 2633 64 62 96 68.2 % 2500 26.0 %
16 FireBird_10_beta_w32_noSSE2 : 2633 117 102 20 70.0 % 2485 50.0 %
17 RobboLito_009_w32 : 2631 134 131 18 58.3 % 2573 38.9 %
18 Crab_PGO : 2619 147 147 12 50.0 % 2619 50.0 %
19 RobboLite : 2618 37 37 240 69.2 % 2477 34.2 %
20 IvanHoe-BetaWH_35 : 2615 130 128 20 57.5 % 2562 35.0 %
21 DamirsRybkaKiller51 : 2613 98 91 18 55.6 % 2575 66.7 %
22 FireBird_10_w32_noSSE2 : 2613 110 107 28 64.3 % 2511 35.7 %
23 Fire_12_w32_new_SMP : 2604 101 99 34 60.3 % 2532 32.4 %
24 IvanHoe-BetaWH_31 : 2599 146 143 20 55.0 % 2564 20.0 %
25 RobboLito_0085d11_w32 : 2598 137 127 24 77.1 % 2387 29.2 %
26 Stockfish-171-32-ja : 2594 59 58 99 66.7 % 2474 32.3 %
27 Stockfish-163-32-ja : 2594 61 61 87 60.3 % 2521 33.3 %
28 Fire_131_w32_NS : 2569 108 125 12 41.7 % 2627 66.7 %
29 IvanHoe_v81_w32_no_SEE2 : 2563 125 122 20 60.0 % 2492 40.0 %
32 IvanHoe999963 : 2561 117 118 18 47.2 % 2580 50.0 %
30 IvanHoe999953 : 2543 123 140 12 37.5 % 2632 58.3 %
31 Critter_0.80_32bit : 2539 105 107 32 42.2 % 2593 28.1 %
32 RobboLito085d2_w32 : 2526 164 85 10 65.0 % 2419 70.0 %
33 Stockfish-162-ja : 2504 73 72 70 61.4 % 2423 25.7 %
34 Rybka v2.2n2.mp.w32 : 2502 140 135 20 65.0 % 2395 30.0 %
35 Critter_0.60_32bit : 2492 121 123 24 43.8 % 2535 29.2 %
36 Komodo-12-32-ja : 2482 59 59 85 50.0 % 2482 36.5 %
37 Rybka 2.2 32 bit : 2476 31 31 338 64.6 % 2372 34.0 %
38 Stockfish_151_ja : 2466 39 39 190 61.3 % 2386 38.4 %
39 RobboLito_0085e4_w32_no_SSE2 : 2461 88 95 20 42.5 % 2514 65.0 %
40 Spark-0.4-win32-mp : 2448 66 66 71 50.0 % 2448 35.2 %
41 Naum 4.2 : 2433 149 159 20 30.0 % 2581 20.0 %
42 Cyclone xTreme Fear : 2433 133 136 24 41.7 % 2491 16.7 %
43 Komodo-10-32-ja : 2432 53 54 121 34.3 % 2545 30.6 %
44 Naum4 : 2427 91 93 48 37.5 % 2516 20.8 %
45 Doch_09.980_32_ja : 2424 77 77 44 45.5 % 2456 45.5 %
46 Stockfish_14_ja : 2421 46 45 142 61.3 % 2342 38.0 %
47 Bright-0.5c-frc : 2417 51 52 109 42.7 % 2468 39.4 %
48 Doch32-134-ja : 2408 87 87 50 53.0 % 2387 22.0 %
49 Cyclone xTreme II : 2400 46 46 146 56.8 % 2352 35.6 %
50 Cyclone xTreme : 2398 117 118 20 47.5 % 2416 45.0 %
51 Protector-136-rev308-32-ja : 2394 118 133 20 25.0 % 2585 40.0 %
52 Critter_0.70_32bit : 2390 105 103 33 63.6 % 2293 30.3 %
53 Protector_Win32 : 2390 63 64 93 42.5 % 2443 22.6 %
54 Strelka_1.8_UCI : 2382 84 85 48 45.8 % 2411 29.2 %
55 Critter_0.52b_32bit : 2381 103 107 38 30.3 % 2526 23.7 %
56 T20080620 : 2373 86 82 34 63.2 % 2279 50.0 %
57 Bright-0.5c : 2366 64 65 92 35.9 % 2467 23.9 %
58 Spike1.2 : 2352 29 29 337 46.9 % 2374 39.2 %
59 Fruit-2-3-1 : 2347 30 30 322 46.0 % 2376 36.6 %
60 Bright-0.4a : 2345 34 34 268 47.4 % 2364 32.1 %
61 List512 : 2344 108 102 30 71.7 % 2182 36.7 %
62 Strelka_2_0 : 2341 85 87 44 39.8 % 2413 34.1 %
63 Spark-0.3a-gcc32-mp : 2325 85 89 60 23.3 % 2532 23.3 %
64 TogaII : 2316 53 54 110 45.0 % 2350 33.6 %
65 Doch12-ja : 2312 109 112 30 35.0 % 2419 30.0 %
66 Rybka v1.0 Beta.w32 : 2312 132 138 14 39.3 % 2387 50.0 %
67 T20090922 : 2289 49 50 122 43.0 % 2338 36.9 %
68 Bison 9.11 w32 : 2274 67 68 63 45.2 % 2307 39.7 %
69 Critter_0.42 : 2270 41 42 176 36.4 % 2367 37.5 %
70 Naum : 2268 44 45 144 42.7 % 2319 39.6 %
71 Colossus2008b : 2262 45 45 148 47.3 % 2281 36.5 %
72 Cyrano : 2256 42 42 160 46.2 % 2282 38.8 %
73 Fruit_21 : 2255 89 90 34 45.6 % 2286 44.1 %
74 Booot415 : 2255 46 47 127 46.9 % 2277 41.7 %
75 Delfi : 2254 42 42 149 42.6 % 2306 43.6 %
76 Crafty_230_win32_ja : 2241 70 71 72 37.5 % 2329 27.8 %
77 Alaric707 : 2231 40 40 199 41.2 % 2293 33.2 %
78 Pharaon : 2227 47 47 131 43.5 % 2272 38.2 %
79 Bison 9.8 w32 : 2213 56 57 98 42.9 % 2263 34.7 %
80 Daydreamer-175-32-ja : 2207 97 100 33 36.4 % 2304 36.4 %
81 Slow : 2200 44 44 151 38.4 % 2282 38.4 %
82 Hamsters : 2196 71 72 63 42.1 % 2251 33.3 %
83 Ruffian_105 : 2192 105 105 30 50.0 % 2192 33.3 %
84 Movei00_8_438 : 2192 99 99 30 50.0 % 2192 40.0 %
85 WildCat_8 : 2189 49 50 127 37.0 % 2281 36.2 %
86 Aristarch 4.50 : 2182 102 102 30 48.3 % 2193 36.7 %
87 Zappa : 2126 110 113 30 40.0 % 2197 26.7 %
88 GarboChess2 : 2080 112 116 30 33.3 % 2200 26.7 %
89 Ktulu : 2077 125 135 34 22.1 % 2297 14.7 %
90 Alfil811 : 1930 118 132 30 16.7 % 2210 26.7 %
91 T20100131x : 1719 0 0 16 0.0 % 2319 0.0 %
Conclusion : Avec une base de donnée (pgn) de qualité médiocre (faible taille de l’échantillon), il n’est pas concevable d’établir un classement fiable, par contre, il est tout a fait possible de montrer des tendances générales pour évaluer le niveau des moteurs.
Attention, ce classement ne peut en aucun cas se corréler avec l’évaluation ELO des humains . En effet, même si le système d’évaluation est proche, il faut absolument éviter de comparer avec les joueurs du top 100 mondial par exemple puisque ici, nous faisons appel de manière arbitraire à un module étalon.
Des exemples d’utilisation de ces méthodes :