segunda-feira, abril 23, 2007

Algoritmo ELO

Para quem não sabe o algoritmo ELO foi criado pelo húngaro Árpád Élő e tem como objectivo calcular a perícia relativa de jogadores num ranking de um qualquer jogo. Apesar do algoritmo estar bem definido, tem algumas variáveis que possibilitam ajustes à formula dependendo do jogo em questão, por exemplo e possível ajustar o peso do número de jogos já efectuado pelo utilizador, o peso da diferença de ranking dos dois jogadores, etc.

Além destes ajustes ainda encontrei pequenas variações ao algoritmo, dependendo se o jogo é de equipa ou sigular, ou ainda se o resultado do confronto entre dois jogadores é mensurável em pontos ou se é simplesmente uma vitória ou uma derrota.

A fórmula começa com a seguinte equação:

RN = R + ( K x (S - EA) )

RN -> Novo valor de ranking que se quer calcular
R -> Valor de ranking actual do jogador
K -> Variável que traduz o peso do númeor de jogos já efectuados pelo jogador
S -> Variável que traduz o peso dos pontos envolvidos no confronto
SE -> Variável que traduz o peso da diferença de ranking entre os dois jogadores

K = 1 + (90 /(10 + NJ))

NJ -> Número de jogos já efectuado pelo jogador

E_A = \frac 1 {1 + 10^{(R_B - R_A)/400}}.

RB -> Ranking actual do adversário
RA -> Ranking actual do jogador (RA = R)









PA -> Pontos ganhos pelo jogador
PB -> Pontos ganhos pelo adversário

Todas as constantes das diferentes formulas podem ser modificadas de modo a adaptar o algoritmo ao jogo em questão, apesar de isto desvirtualizar o algoritmo de ELO.

1 comentário:

Anónimo disse...

Caro Tiago

Durante umas das minhas viagens pela web, encontrei o post no seu bloque em que falava do Elo Rating.
Tenho feito essa classificação das equipas Portuguesas, num ficheiro de Excel. - Apenas para uso pessoal.
Existem sites que fazem essa classificação mundial e são bastante profissionais, como este que acompanho religiosamente: http://clubelo.com/

Mas o calculo desses valores para equipas já se tornaram recorrentes, e pretendia dar um passo maior, que seria o calculo da "força" de cada jogador de futebol.

Não sei se é possível fazer isso usando o Elo Rating - ou adaptando o algoritmo-, ou por outro sistema semelhante.

Assim se porventura tiver alguma ideia em como solucionar esta questão e possa partilhar, teria muito gosto em poder trocar algumas ideias.

Um abraço
Filipe Rodrigues
filipe1977@hotmail.com