Bayeselo - Bayesian Elo Rating - Echecs et informatique sur PC-Windows

Rechercher
Aller au contenu

Menu principal :

Programmes

Bayeselo - Bayesian Elo Rating

Application de calcul de points Elo


Cette petite application console, conçue par le français Rémi Coulom, permet à partir d'un PGN comportant si possible de très nombreuses parties, d'établir un classement Elo.



Téléchargement et installation


On trouve Bayeselo sur le  site de Rémi Coulom. Il consacre une grosse page rédigée en anglais à son utilitaire. Télécharger Bayeselo ?

Créez quelque part un dossier au nom de Bayeselo et copiez-y le fichier "bayeselo.exe" que vous venez de télécharger. Copiez-y également mon petit fichier "Fusion.bat". Ce mini- programme va rassembler toutes les parties que vous comptez utiliser pour établir un classement. Télécharger Fusion.bat ?


Mode d'emploi

Je n'entrerai pas dans le détail du fonctionnement de Bayeselo. Si vous souhaitez en savoir plus, vous pourrez toujours lire les explications, en anglais, de Rémi Coulom, sur la page indiquée plus haut. Pour ma part je resterai basique et pratique, en vous proposant une méthode pas à pas pour utiliser l'application.

Supposons par exemple que vous souhaitiez établir le niveau d'un moteur sur lequel vous auriez modifié des paramètres, afin de vérifier la validité de vos réglages.  

Étape  1 : choisir un joueur de référence

Choisissez un moteur que vous savez proche de votre moteur modifié et dont vous connaissez le classement Elo - que vous spécifirez plus tard à Bayeselo pour servir de point de référence.
Faites ensuite jouer ce moteur de référence avec votre moteur bricolé. Accumulez le plus grand nombre possible de parties. Au minimum une quarantaine. En conservant le même type d'épreuve (par exemple "parties de tournoi en 15 mn").
Faites également jouer vos deux moteurs contre des moteurs plus faibles et plus forts (80 à 150 Elo en plus ou en moins).  Plus il y aura de croisements, plus il sera facile à Bayeselo d'être juste dans son estimation.
Rassemblez aussi le maximum de parties de moteurs s'étant déroulées dans des conditions similaires. En n'oubliant pas toutefois qu'il ne sert à rien d'ajouter des tas de parties entre moteur A et moteur B si A et B ne jouent pas ailleurs avec d'autres moteurs de votre sélection.

Remarque : je vous conseille fortement d'utiliser Arena pour vos tournois. L'interface excelle dans ce rôle : elle organise les appariements, démarre et arrête les moteurs, calcule les scores et peut même éteindre elle-même votre ordinateur à la fin du tournoi ou au bout d'un nombre défini de parties. De plus, pratiquement tous les moteurs d'échecs, Winboard ou UCI,  fonctionnent avec Arena.


Étape 2 : rassembler et fusionner les parties

Copiez toutes les parties, qui doivent être au format Pgn dans un dossier avec Fusion.bat et lancez l'application. Fusion.bat lit toutes les parties et les regroupe dans un PGN unique appelé "Parties.pgn". Copiez "Parties.pgn" dans le dossier de Bayeselo.


Étape 3 : évaluation

Exécutez Bayeselo. Vous devez d'abord donner à l'invite de commande l'ordre de lire le fichier de parties ; tapez "readpgn Parties.pgn" et vérifiez que Bayeselo répond : "xxxx game(s) loaded".
Puis saisissez successivement "elo", "mm" et "exactdist".
A ce stade vous devez indiquer à l'application le moteur de référence, avec la commande "offset". Si par exemple vous comptez utiliser Adroitchess, moteur de 2080 Elo, saisissez "offset 2080 Adroitchess". Attention, le programme est sensible à la casse. Vous devez saisir le nom du moteur exactement comme il apparaît dans le fichier de parties.

Il ne reste plus qu'à afficher l'évaluation de Bayeselo en tapant "ratings". L'application numérote les joueurs par ordre de force décroissante et fournit pour chacun d'eux une évaluation Elo. Sont précisés aussi une marge d'erreur positive et négative, le nombre de parties utilisées pour le calcul, le score du joueur en pourcentage, le niveau moyen des opposants (je crois) et le pourcentage de parties nulles.  



Vous pouvez obtenir une édition texte en tapant "ratings>Evaluation_Elo.txt" (par exemple).

Il est évident que si vous cherchez à établir votre propre Elo plutôt que celui d'un moteur, la méthode restera identique. Vous pourrez vous comparer soit à des joueurs humains, soit à des moteurs dont vous connaissez le niveau Elo.

Fiabilité de l'évaluation

Bayeselo vous donne pour chaque évaluation d'un joueur une marge d'erreur positive et négative. J'ignore comment il parvient à ces chiffres ; je constate seulement que la marge positive est en général à peu près de même valeur que la marge négative - il est rare que la différence dépasse 5 points - et que plus il y a de parties, moins la marge est élevée. Il faut au moins une quarantaine de parties pour avoir une évaluation de qualité significative. Malgré tout, la marge d'erreur reste importante. Pour une cinquantaine de parties, elle est de l'ordre de 80 Elo en plus et en moins. Il faut au moins 1200 parties pour réduire cet interval à +15 / -15. Sur l'exemple ci-dessus, le joueur "Standard", est évalué à partir de 422 jeux mais a encore une marge d'erreur total de 50 points. Cela nous rappelle que la côte Elo n'est pas un système parfait et qu'elle ne rend compte qu'approximativement de la force d'un joueur. Bayeselo est même plus fin que le système Elo officiel. Il ne faut donc pas trop s'inquiéter de ces écarts - mais alimenter le plus possible le programme en parties.

Précision : j'ai observé que si un moteur fort parmis un tas de moteurs plus faibles bénéficie de davantages de parties que les autres, son niveau va être artificiellement augmenté. C'est assez logique :  il gagne beaucoup de parties et donc sa côte augmente artificiellement. Toutefois, cette hausse restera très limitée car gagner contre un moteur faible ne rapporte pas grand chose.


Quelques remarques

Gestion des noms

Il peut arriver que dans le listing d'évaluation le même joueur apparaisse sous des noms légèrement différents. Par exemple "R. Robinson" et "Rob Robinson", "Adroit Chess" et "AdroitChess"… L'ennui, c'est que Bayeselo les considère alors comme des joueurs différents. Pour contraindre l'application à les confondre, il y a une solution simple : changez le nom "Parties.pgn" en "Parties.txt" et ouvrez le fichier dans un traitement de texte. Utilisez le module de recherche (s'ouvre généralement avec "Ctrl+F") et convertissez Adroit Chess en AdroitChess, R. Robinson en Rob Robinson, etc. Lorsque tous les noms sont uniformisés, renommez "Parties.txt" en "Parties.pgn" et relancez Bayeselo.


Algorithmes


"exactdist" est l'un des quatre algorithmes disponibles pour calculer les intervalles. C'est celui qui est censé être le plus fiable, mais vous pouvez aussi tenter "covariance", qui peut donner également de bons résultats. Nous verrons plus bas l'intérêt de l'algorithme "Elostat".

Utiliser les évaluations de Computer Chess


Pour obtenir une évaluation vraiment fiable, je l'ai dit, il faut beaucoup de parties et beaucoup de croisements. Toutefois, si avec trop peu de parties Bayeselo peut donner un Elo approximatif, une quarantaine suffisent généralement à établir l'ordre de classement sans erreur. Donc, si vous intercalez dans votre PGN des parties de plusieurs moteurs dont vous connaissez le Elo, vous obtiendrez de précieux indices pour affiner l'évaluation de l'application. Plusieurs sites Internet publient des classements très fiables de moteurs d'échecs. Ils utilisent généralement… Bayeselo pour leurs évaluations ! Le plus réputé est le Computer Chess Ratings Lists, ou CCRL, qui met à jour régulièrement trois pages de classement de moteurs  dans plusieurs contrôle de temps :
CCRL 40/15 (évaluation des moteurs en parties de 40 coups / 15 mn)
CCRL 40 Blitz (évaluation en parties blitz)
CCRL 40/2 FRC (évaluation en parties de 15 mn et blitz pour moteurs d'échecs 960)



Ici, j'ai utilisé Bayeselo pour établir la force relative de mes différents fichiers de poids pour le moteur Chessterfield et mes joueurs "Cdrill".


Algorithme "EloStat"

EloStat est un algorithme de même type que Bayeselo mais fonctionnant sensiblement différemment. C'est d'ailleurs l'un des plugins accompagnant l'interface Arena. Rémi Coulom estime que Bayeselo donne un résultat plus juste et explique pourquoi. Je ne souhaite pas trancher ce débat et je préfère vous épargner ses explications. Comme je me base sur les évaluations de Computer Chess  pour mes articles et que celles-ci sont établies avec Bayeselo je préfère donner la préférence à ce dernier. Mais sachez quand même que Bayeselo peut utiliser alternativement l'algorithme EloStat. Voici comment procéder :
Lancer l'application puis saisir comme vu précédemment :

readpgn Parties.pgn
Bayeselo répond : "xxxx game(s) loaded".
elo
mm

A ce stade saisir "elostat" puis offset Elo avec le Elo et le nom du moteur de référence.

J'ai employé quelque fois EloStat alternativement à l'algorithme Bayeselo sans noter de différence importantes. Mais j'avoue ne pas avoir poussé le sujet bien loin. Si vous avez collecté des données, je serais intéressé de les connaître.


Rob Robinson, décembre 2020 (petite actualisation en décembre 2024)



 
 
 
 
 
 
Retourner au contenu | Retourner au menu _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })();