Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   

Calendrier Calendrier

Derniers sujets
» Sessions d’entraînements/pédagogiques
Jeu 16 Nov 2017 - 20:30 par SirPuddy

» Shogi - jeux de société au CA Montparnasse - dimanche 19/11
Jeu 16 Nov 2017 - 11:03 par mikikimb

» CANNES 2018
Sam 11 Nov 2017 - 12:16 par KENAYU

» Un tournoi bien francophone...
Ven 10 Nov 2017 - 17:26 par bakashogi

» Forum International de Shogi
Dim 29 Oct 2017 - 18:00 par christophew

» 23ème Open de Colmar
Jeu 26 Oct 2017 - 17:50 par christophew

» Japan Touch (lyon) 2017
Mer 25 Oct 2017 - 15:14 par François

» Joueurs sur Bordeaux
Mer 18 Oct 2017 - 22:12 par Rekkae

» Shôgi de 9 cases
Mar 17 Oct 2017 - 18:47 par bakashogi

Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Les posteurs les plus actifs du mois
SirPuddy
 
mikikimb
 
gunjin
 
christophew
 
bakashogi
 
KENAYU
 

Flux RSS


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 



Calcul du Elo

Page 3 sur 3 Précédent  1, 2, 3

Voir le sujet précédent Voir le sujet suivant Aller en bas

Calcul du Elo

Message  Lelorrain le Lun 16 Jan 2012 - 20:08

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 Very Happy je vais voir ce que je peux faire avec mes moyens elephant
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas


Re: Calcul du Elo

Message  nivlinch le Lun 23 Jan 2012 - 8:12

Z'etes rigolo les gars Laughing !

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 !
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1733
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Lun 23 Jan 2012 - 9:00

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 ? What a Face
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Lun 23 Jan 2012 - 9:12

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 ;-).
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1733
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Lun 23 Jan 2012 - 9:21

hihi, voui c'est déjà fait :p
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Lun 23 Jan 2012 - 9:39

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.
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Lun 23 Jan 2012 - 10:06

@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 geek
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Lun 23 Jan 2012 - 10:38

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. Very Happy

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.
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Dim 29 Jan 2012 - 18:45

Tadadada da daaaa

Bon, ça y est, je fais marcher le code magique en lisp afro

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 ?
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  nivlinch le Dim 29 Jan 2012 - 19:17

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.
avatar
nivlinch
Eisei forumeur
Eisei forumeur

Nombre de messages : 1733
Age : 30
Localisation : York, UK
Date d'inscription : 07/03/2007

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Lelorrain le Dim 4 Mar 2012 - 15:57

Bon, je me remets sur le code... Je ne vous cache pas que j'y comprends pas grand chose mouhahahaha, bonne surprise Very Happy

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
avatar
Lelorrain
Général d'Or
Général d'Or

Nombre de messages : 498
Age : 33
Localisation : Nancy / Besancon
Date d'inscription : 10/04/2010

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  ezano le Dim 4 Mar 2012 - 19:39

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.

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.
avatar
ezano
Général d'Or
Général d'Or

Nombre de messages : 242
Date d'inscription : 16/07/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Calcul du Elo

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 3 sur 3 Précédent  1, 2, 3

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum