Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2006-12-10 18:42:57.
Revizia anterioară   Revizia următoare  

Rating infoarena

Aceasta pagina nu este finalizata. Te rugam sa o imbunatatesti.

In laymen terms, rating systems provide a way to rank and differentiate contestants in multiple-round competitions. Ratings are computed with black math & statistics voodoo magic :).

Infoarena uses a home-baked rating system combining features from glicko, TrueSkill, ELO and possibly others.

We decided upon using [http://math.bu.edu/people/mg/glicko/glicko.doc/glicko.html glicko]. The implementation is pretty much a straightforward copy of the glicko documentation, except some differences in constants (see source code), and the following details:

  • The function that computes the expected value is implemented as to normalize any rating difference bigger than MAX_DIFF to MAX_DIFF; without this the results were way off, most probably because of precission issues (is this true?)
  • Like the documentation states, there is a need for a MIN_DEVIATION constants, that '''must''' also be included when computing the weight for a game
  • Since glicko was invented for chess games, and our contests include multiple users, we consider each possible pair of users as a game; this tends to flip out when we have contents with a huge number of users and will be fixed soon
  • The scores in glicko were 0 for loss , 1/2 for draw, 1 for winning. I made a function that gives a real number in the interval [0..1] based on the [http://en.wikipedia.org/wiki/Standard_deviation standard deviation] of the score set; the result is 0.5 for equal score, a number from (0.5 , 1] if the first score is bigger and a number from [0, 0.5) if the second score is bigger. The current formula gives scores based on the proportion of the score difference and double the value of the deviation. (Feel free to suggest something else, this formula is based an educated guess)