À l'origine, je l'avais posté sur StackOverflow car cela pourrait être un bogue dans les implémentations, mais certains m'ont suggéré de publier en mathématiques. Je viens de trouver ce stackexchange, et je pensais qui mieux? Certains d'entre vous savent peut-être au départ que cela semble exact ou non, sans avoir besoin de débogage. Tous les liens vers des calculatrices en ligne ou d'autres méthodes de notation sont les bienvenus.
Glicko-2 est un système de notation utilisé dans les échecs, mais peut être utilisé dans de nombreuses autres situations. Glicko-2 est une amélioration par rapport à Glicko-1, qui traitait des problèmes de l'ancienne classification ELO.
Ce qui rend Glicko-2 spécial par rapport à la version 1, c'est qu'il incorpore un écart de notation (RD) plus élevé, plus une personne est inactive depuis longtemps. Il le fait avec la notion de constante système qui se rapporte aux périodes de temps / de notation.
Un exemple d'écriture de l'auteur se trouve ici: http://www.glicko.net/glicko/glicko2.pdf .
Dans ce document, il explique:
Le système Glicko-2 fonctionne mieux lorsque le nombre de parties dans une période de notation est modéré à élevé, disons une moyenne d'au moins 10 à 15 parties par joueur dans une période de notation. La durée d'une période de notation est à la discrétion de l'administrateur.
En faisant l'hypothèse qu'un groupe de joueurs d'échecs actifs joue en moyenne 10 à 15 parties sur une période de 1 mois, l'administrateur mettrait à jour les classements à la fin de chaque mois.
J'avais besoin d'une implémentation PHP du système de notation Glicko-2 et suis tombé sur les éléments suivants:
Implémentation de Glicko-2 JavaScript
- Le JavaScript avait une petite erreur, qui ne le laissait pas correspondre à l'exemple de rédaction technique, l'auteur l'a trouvé assez proche et n'a pas pris la peine de déboguer.
Implémentation de PHP Glicko-2
- L'implémentation de PHP était en proie à de nombreux bugs, mais cela n'était apparent que si vous aviez fait plus d'une période de notation (dont la rédaction technique ne montre jamais les valeurs attendues)
Calculatrice Glicko-2 dans Excel
- Enfin, la calculatrice Excel semblait être sans erreur et la plus professionnelle, réalisée par quelqu'un de la communauté des échecs. Une fois le bogue JavaScript résolu, le calculateur JavaScript et Excel correspondaient très étroitement l'un à l'autre (bien qu'ils ne soient pas parfaits, il pouvait y avoir une erreur d'arrondi)
J'avais corrigé les bugs (et soumis des problèmes / correctifs aux auteurs) que je pouvais trouver sur les versions PHP et JavaScript pour correspondre aussi étroitement à la calculatrice Excel
Maintenant, je suis sûr à 99% que j'ai une implémentation Glicko-2 précise (entre les 3 d'entre eux) pour analyse et c'est à ce moment que je suis tombé sur quelque chose d'étrange, et le sujet de cette discussion.
Étant donné la valeur par défaut suggérée pour Glicko-2 pour un nouveau joueur:
Rating: 1500
RD: 350
Volatility: 0.06
Si vous faites face à un adversaire moyen de cote 1378 et RD 99 ( Source ) une seule fois par période de notation (1 mois) pour les 12 prochaines périodes (1 an), vous aurez accumulé une cote nationale présumée de classe A (1800-1999) de 1852 alors qu'en réalité vous n'avez battu que 12 joueurs avec une note moyenne sur une période de 12 mois.
Month Rating RD Volatility Class
1 1625 259 0.059999 National Class B
2 1682 225 0.059998 〃
3 1718 205 0.059997 〃
6 1784 174 0.059994 〃
12 1852 148 0.059988 National Class A
24 1922 127 0.059976 〃
Si vous affrontez 2 adversaires moyens à chaque période de classement, vous pouvez accéder à la classe nationale A environ 4-5 mois, face à seulement 8-10 adversaires moyens.
Month Rating RD Volatility Class
1 1672 215 0.059999 National Class B
2 1733 183 0.059997 〃
3 1770 166 0.059995 〃
4 1797 154 0.059993 〃
5 1819 146 0.059992 National Class A
6 1836 140 0.059991 〃
Ces hypothèses sont-elles exactes? Y a-t-il un bug dans ma calculatrice?
Si ce n'est pas un bug, quelles sont les autres façons de contrer cela en plus:
- Considérez que la «vraie cote» est la borne inférieure de l'écart (cote - RD)
- Ne pas afficher la note de l'utilisateur inactif
- Ne pas afficher les utilisateurs avec moins de N jeux