Calcul du Elo
5 participants
Page 3 sur 3
Page 3 sur 3 • 1, 2, 3
Calcul du Elo
Rappel du premier message :
Ou comment devenir dingo...
Pour répondre à une demande locale (ici à Besançon) nous aurions aimé calculer des Elo... Mais je dois avouer que j'ai beau reprendre les formules du PDF officiel, rien n'y fait, je n'arrive pas à retomber sur les résultats officiels. Je m'explique. Etape 1, j'identifie tous les paramètres de la formule :
le maximum de d et de d'. Si je prends l'exemple suivant : http://www.shogi.net/fesa/index.php?mid=4&dateid=Fall+2010&tournamentid=Colmar10 je suis le joueur 13.
Mon elo au début du tournoi est de 755, donc k=36.
res = 1 quand je gagne, 0 quand je perds.
tr=755
or = le elo de mon adversaire (j'ai pris le elo de l'adversaire au début du tournoi. Doije prendre le Elo recalculé à la ronde considérée suivant les résultats ?)
d=k x (res-1/(1+10^((or-tr)/400))
d’=k x (or – tr) / 160
Et là, je me suis amusé à faire un petit tableau excel pour calculer tout ça... Ca m'a permi de trouver quelques anomalies (sauf si je n'ai rien compris).
Max(d et d') d' d k res or tr
118,125 118,125 34,32832219 36 1 1280 755
-2,1952202997 0 -2,1952202997 36 0 1230 755
-1,7276050085 0 -1,7276050085 36 0 1274 755
11,6985527625 -28,575 11,6985527625 36 1 628 755
101,475 101,475 33,5021161507 36 1 1206 755
-3,2727272727 0 -3,2727272727 36 0 1155 755
-------------------------------------------------------------------------------
224,1030001816 191,025 72,3334385223 Somme
Première surprise, lorsque l'on gagne face à qqn de moins bien classé que sois, la formule d' est négative. Ce qui se traduit par j'ai gagné donc je perds du Elo. C'est, j'imagine, la raison de l'existence de la règle de prendre le max entre d et d'. Mais si je procède comme suit, et que je calcul la somme des Max (d & d') j'arrive à 224 au lieu de 198. Du coup, j'imagine que j'ai tord dans les "tr" et "or", il ne faut pas laisser le tr fixe mais le faire évoluer à chaque ligne, et concernant les or, j’imagine que cela correspond au elo de l'adversaire au moment de sa ronde. Par exemple, pour calculer le résultat lors de la troisième ronde, il faut prendre le or et tr évolués en fonction des résultats des deux premières rondes, c'est bien ça ?
Si quelqu'un pouvait me confirmer, ce serait top. Je continuerai de chercher ce soir.
Nb : un petit soft tout rapide pour calculer tout ça serait bienvenu je vais voir ce que je peux faire avec mes moyens
Ou comment devenir dingo...
Pour répondre à une demande locale (ici à Besançon) nous aurions aimé calculer des Elo... Mais je dois avouer que j'ai beau reprendre les formules du PDF officiel, rien n'y fait, je n'arrive pas à retomber sur les résultats officiels. Je m'explique. Etape 1, j'identifie tous les paramètres de la formule :
le maximum de d et de d'. Si je prends l'exemple suivant : http://www.shogi.net/fesa/index.php?mid=4&dateid=Fall+2010&tournamentid=Colmar10 je suis le joueur 13.
Mon elo au début du tournoi est de 755, donc k=36.
res = 1 quand je gagne, 0 quand je perds.
tr=755
or = le elo de mon adversaire (j'ai pris le elo de l'adversaire au début du tournoi. Doije prendre le Elo recalculé à la ronde considérée suivant les résultats ?)
d=k x (res-1/(1+10^((or-tr)/400))
d’=k x (or – tr) / 160
Et là, je me suis amusé à faire un petit tableau excel pour calculer tout ça... Ca m'a permi de trouver quelques anomalies (sauf si je n'ai rien compris).
Max(d et d') d' d k res or tr
118,125 118,125 34,32832219 36 1 1280 755
-2,1952202997 0 -2,1952202997 36 0 1230 755
-1,7276050085 0 -1,7276050085 36 0 1274 755
11,6985527625 -28,575 11,6985527625 36 1 628 755
101,475 101,475 33,5021161507 36 1 1206 755
-3,2727272727 0 -3,2727272727 36 0 1155 755
-------------------------------------------------------------------------------
224,1030001816 191,025 72,3334385223 Somme
Première surprise, lorsque l'on gagne face à qqn de moins bien classé que sois, la formule d' est négative. Ce qui se traduit par j'ai gagné donc je perds du Elo. C'est, j'imagine, la raison de l'existence de la règle de prendre le max entre d et d'. Mais si je procède comme suit, et que je calcul la somme des Max (d & d') j'arrive à 224 au lieu de 198. Du coup, j'imagine que j'ai tord dans les "tr" et "or", il ne faut pas laisser le tr fixe mais le faire évoluer à chaque ligne, et concernant les or, j’imagine que cela correspond au elo de l'adversaire au moment de sa ronde. Par exemple, pour calculer le résultat lors de la troisième ronde, il faut prendre le or et tr évolués en fonction des résultats des deux premières rondes, c'est bien ça ?
Si quelqu'un pouvait me confirmer, ce serait top. Je continuerai de chercher ce soir.
Nb : un petit soft tout rapide pour calculer tout ça serait bienvenu je vais voir ce que je peux faire avec mes moyens
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Z'etes rigolo les gars !
Si je savais comment ça marche et programmer, ça ferait longtemps que je l'aurais fais, ce programme. Mais vu que je ne comprends pas plus que vous (je pose juste les questions à la source) et que je ne sais pas programmer (je vis très bien sans, merci), je vous laisse faire.
@Lelorrain
Je regarde pour exemple concret demain. Pour commencer, un exemple avec un non classé, c'est la lose.
Grosso modo, tu convertis ELO A en grade, tu soustrais à ça le grade équivalent au handicap, et tu obtiens A'. La différence en A et A' est appelé E. Quand tu calcules l'évolution de A, tu estimes que B = B+E, et quand tu calcules l'évolution de B, tu estimes que A=A-E.
Et paf, ça fait des chocapics !
Si je savais comment ça marche et programmer, ça ferait longtemps que je l'aurais fais, ce programme. Mais vu que je ne comprends pas plus que vous (je pose juste les questions à la source) et que je ne sais pas programmer (je vis très bien sans, merci), je vous laisse faire.
@Lelorrain
Je regarde pour exemple concret demain. Pour commencer, un exemple avec un non classé, c'est la lose.
Grosso modo, tu convertis ELO A en grade, tu soustrais à ça le grade équivalent au handicap, et tu obtiens A'. La différence en A et A' est appelé E. Quand tu calcules l'évolution de A, tu estimes que B = B+E, et quand tu calcules l'évolution de B, tu estimes que A=A-E.
Et paf, ça fait des chocapics !
nivlinch- Eisei forumeur
- Nombre de messages : 1737
Age : 37
Localisation : York, UK
Date d'inscription : 07/03/2007
Re: Calcul du Elo
héhéhé
Bon je vais essayer de trouver et de formaliser tout ça de manière logique :p j'aime bien les organigrammes. Une fois qu'on a ça, la prog ce n'est plus rien... mais tant qu'on ne comprends pas ce qu'on fait, c'est autre chose.
Pensez vous que Asle me répondrait si je lui demandais des précisions sur son fichier et sur comment l'exécuter ? Parce qu'en cherchant à le compiler et en débuggant ce matin, il semblerait que le fichier ne soit pas à jour... Plusieurs fonctions non définies sont utilisées et des paquets semblent manquer. J'aurais aimé savoir avec quoi il le compilait, et comment il s'utilisait. Quelqu'un a-t-il déjà vu ce fantôme fonctionner ?
Bon je vais essayer de trouver et de formaliser tout ça de manière logique :p j'aime bien les organigrammes. Une fois qu'on a ça, la prog ce n'est plus rien... mais tant qu'on ne comprends pas ce qu'on fait, c'est autre chose.
Pensez vous que Asle me répondrait si je lui demandais des précisions sur son fichier et sur comment l'exécuter ? Parce qu'en cherchant à le compiler et en débuggant ce matin, il semblerait que le fichier ne soit pas à jour... Plusieurs fonctions non définies sont utilisées et des paquets semblent manquer. J'aurais aimé savoir avec quoi il le compilait, et comment il s'utilisait. Quelqu'un a-t-il déjà vu ce fantôme fonctionner ?
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Tu peux le contacter, mais perso, lis bien les échanges qu'il a déjà eu avec shogiban, histoire de ne pas lui poser des questions auxquelles il a déjà répondu ;-).
nivlinch- Eisei forumeur
- Nombre de messages : 1737
Age : 37
Localisation : York, UK
Date d'inscription : 07/03/2007
Re: Calcul du Elo
hihi, voui c'est déjà fait :p
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Pour le lisp y a rien de mieux qu'emacs normalement.
Le logiciel est lui même codé en lisp donc ils s'entendent très bien.
Le logiciel est lui même codé en lisp donc ils s'entendent très bien.
ezano- Général d'Or
- Nombre de messages : 242
Date d'inscription : 16/07/2008
Re: Calcul du Elo
@ezano
Emacs est juste un éditeur de texte qui va faire appel à un noyau (dans mon cas, sous linux, clisp). Il est en revanche très agréable, parce qu'il permet de mettre en évidence toute la syntaxe du programme !! Apparemment il en existe d'autres, mais je ne suis pas sur qu'il y ai qqch de très friendly... du coup, moi c'est éditeru de texte + terminal
Emacs est juste un éditeur de texte qui va faire appel à un noyau (dans mon cas, sous linux, clisp). Il est en revanche très agréable, parce qu'il permet de mettre en évidence toute la syntaxe du programme !! Apparemment il en existe d'autres, mais je ne suis pas sur qu'il y ai qqch de très friendly... du coup, moi c'est éditeru de texte + terminal
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Pour info sur le message envoyé au programmeur du code :
les questions posées concernent lisp :
- 1) Au tout début de son programme il charge une fonction / outil qui vient d'un de ses fichiers. Par conséquent, dès le début du programme, il manque qqch => je lui ai donc demandé de m'en dire plus sur le sujet.
- 2) Je lui ai demandé ce qui n'allait pas dans ma manière de compiler son fichier, car à chaque fois il me manque qqch, ou alors des fonctions sont utilisées mais pas définies (elles sont sans doute issues de ce qui est chargé au départ, mais j'ai quand même demandé confirmation).
A l'occasion, si je fini par réussir à faire marcher le code, j'essaierai de l'intégrer à du java. J'aime bien java, on peut le mettre sur le net si on veut, et en plus c'est multi plateforme :p
Entre temps il faudra que je me mette un peu au java.
nb, après avoir fait qq tuto sur lisp, ce n'est pas si compliqué. Je dirais même que ça se prends assez facilement en main. Si ça intéresse des gens, je pourrais vous retrouver qq liens.
les questions posées concernent lisp :
- 1) Au tout début de son programme il charge une fonction / outil qui vient d'un de ses fichiers. Par conséquent, dès le début du programme, il manque qqch => je lui ai donc demandé de m'en dire plus sur le sujet.
- 2) Je lui ai demandé ce qui n'allait pas dans ma manière de compiler son fichier, car à chaque fois il me manque qqch, ou alors des fonctions sont utilisées mais pas définies (elles sont sans doute issues de ce qui est chargé au départ, mais j'ai quand même demandé confirmation).
A l'occasion, si je fini par réussir à faire marcher le code, j'essaierai de l'intégrer à du java. J'aime bien java, on peut le mettre sur le net si on veut, et en plus c'est multi plateforme :p
Entre temps il faudra que je me mette un peu au java.
nb, après avoir fait qq tuto sur lisp, ce n'est pas si compliqué. Je dirais même que ça se prends assez facilement en main. Si ça intéresse des gens, je pourrais vous retrouver qq liens.
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Tadadada da daaaa
Bon, ça y est, je fais marcher le code magique en lisp
Je vais donc commencer à faire tourner quelques cas test pour que nous puissions calibrer nos logiciels respectifs.
Je vous demanderai votre aide pour définir les différents paramètres à analyser (dites moi si j'oublie qqch) :
1) mode match unique / mode rondes
2) joueur NC / pas NC / première participation
3) joueur ayant joué plus de 100 matchs ou pas
4) partie à handicap ou pas
d'autes variations à envisager ?
Bon, ça y est, je fais marcher le code magique en lisp
Je vais donc commencer à faire tourner quelques cas test pour que nous puissions calibrer nos logiciels respectifs.
Je vous demanderai votre aide pour définir les différents paramètres à analyser (dites moi si j'oublie qqch) :
1) mode match unique / mode rondes
2) joueur NC / pas NC / première participation
3) joueur ayant joué plus de 100 matchs ou pas
4) partie à handicap ou pas
d'autes variations à envisager ?
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Les matchs nuls.
Les personnes ayant un grade non FESA (chinois, japonais, brésilen) ou ayant un grade d'avant le système ELO de la FESA.
Les personnes ayant un ELO, mais pas de grade (1028*, par exemple).
Si je pense à d'autres paramètres, je posterais à nouveau.
Les personnes ayant un grade non FESA (chinois, japonais, brésilen) ou ayant un grade d'avant le système ELO de la FESA.
Les personnes ayant un ELO, mais pas de grade (1028*, par exemple).
Si je pense à d'autres paramètres, je posterais à nouveau.
nivlinch- Eisei forumeur
- Nombre de messages : 1737
Age : 37
Localisation : York, UK
Date d'inscription : 07/03/2007
Re: Calcul du Elo
Bon, je me remets sur le code... Je ne vous cache pas que j'y comprends pas grand chose mouhahahaha, bonne surprise
Ca ne veut pas dire que j'abandonne, mais bon... ça va me demander plus d'acharnement que prévu. Le code (pour un mécanicien) n'est vraiment pas évident... désolé de prendre autant de temps :s
Ca ne veut pas dire que j'abandonne, mais bon... ça va me demander plus d'acharnement que prévu. Le code (pour un mécanicien) n'est vraiment pas évident... désolé de prendre autant de temps :s
Lelorrain- Chariot Volant
- Nombre de messages : 571
Age : 40
Localisation : Besancon
Date d'inscription : 10/04/2010
Re: Calcul du Elo
Vu que t'es chaud pour le faire et que Oncle Ben m'a donné plein de taf, j'ai du arréter, mais je t'avance le travail.
J'ai localisé deux fonctions importantes et traduites en pseudo langage pour que n'importe qui puisse comprendre.
Il suffit de localisé les fonctions qui les appellent et essayer de les comprendre pour je pense comprendre ce qu'il se passe.
Déjà la y a des truc louche genre les conditions à 800 et 900 je ne comprend pas pourquoi elles sont la.
J'ai localisé deux fonctions importantes et traduites en pseudo langage pour que n'importe qui puisse comprendre.
Il suffit de localisé les fonctions qui les appellent et essayer de les comprendre pour je pense comprendre ce qu'il se passe.
- Code:
function innsats(point, list_elo_adv, &key, dummy=null, show=t):
Si dummy:
point = point + 0.5
tr = list_elo_adv[0]
limit = 0.001
Boucle:
a = 0
b = 0
Pour or dans list_elo_adv:
k1 = 10^((or - tr) / 400)
k2 = 1 / (1 + k1)
a = a + k2
b = b + (k1 * k2 * k2)
modification = (point - a) / (b * (log 10 / 400))
Si modification > 900:
modification = 900
Sinon si modification < -900:
modification = -900
Si valeur_absolue(modification) < limit + 0.0001:
Si show:
Affichage de message pour suivre l'évolution
retourne arrondi(tr + modification)
tr = tr + modification
function innsats2(adv_point_k_list, &key, show=t):
tr = adv_point_k_list[0][0]
limit = 0.001
log = log(10) / 400
Boucle:
a = 0
b = 0
Pour m-p-k dans adv_point_k_list:
u1 = 10^((m-p-k[0] - tr) / 400)
u2 = 1 / (u1 + 1)
a = a + (m-p-k[2] * (m-p-k[1] - u2))
b = b + (m-p-k[2] * u1 * u2 * u2)
modification = a / b / log
Si modification > 800:
modification = 800
Sinon Si modification < -800:
modification = -800
Si valeur_absolue(modification) < limit + 0.0001:
Si show:
Affichage de message pour suivre l'évolution
retourne arrondi(tr + modification)
tr = tr + modification
(return-from innsats2 (max (if *old-rule* 400 1)
Déjà la y a des truc louche genre les conditions à 800 et 900 je ne comprend pas pourquoi elles sont la.
ezano- Général d'Or
- Nombre de messages : 242
Date d'inscription : 16/07/2008
Page 3 sur 3 • 1, 2, 3
Sujets similaires
» Calcul du elo
» Calcul de variation de Elo
» Code de calcul Elo en Python
» bonification Wiel dans le calcul du Elo
» Comment faire un Calcul de Elo sans rien n'y connaitre
» Calcul de variation de Elo
» Code de calcul Elo en Python
» bonification Wiel dans le calcul du Elo
» Comment faire un Calcul de Elo sans rien n'y connaitre
Page 3 sur 3
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Mer 23 Oct 2024 - 10:53 par bakashogi
» 2024 10 19 : Du shôgi + et des jeux :)
Sam 19 Oct 2024 - 23:37 par Fritz Bobun
» [Défi] Images sur ShogiWars !
Mar 8 Oct 2024 - 12:13 par Fritz Bobun
» 2024 10 05 : une famille japonaise en visite et des jeux
Dim 6 Oct 2024 - 18:58 par Fritz Bobun
» 2024 10 06 : NISHIYAMA vs YAMAKAWA exam pro partie 2
Dim 6 Oct 2024 - 18:37 par Fritz Bobun
» 2024 09 28 : 2 lyonnais à Colmar
Sam 5 Oct 2024 - 12:23 par Fritz Bobun
» OZASEN 2024
Sam 5 Oct 2024 - 12:05 par Fritz Bobun
» 28è Colmar Shogi Open - 28 & 29 septembre 2024
Jeu 3 Oct 2024 - 17:29 par bakashogi
» 2024 09 15 : FUJII vs NISHIYAMA NHK Cup
Sam 21 Sep 2024 - 22:27 par Fritz Bobun