Diferente pentru documentatie/rating intre reviziile #2 si #21

Nu exista diferente intre titluri.

Diferente intre continut:

h1. Rating infoarena
h1. Rating-ul infoarena
==include(page="template/todo")==
== include(page="documentatie/sidebar")==
== code(c) |
// 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 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)
Sistemul de rating infoarena ofera un mod de a ordona si diferentia utilizatorii in functie de performantele acestora in regim de concurs. Rating-urile se calculeaza folosind elemente de statistica si probabilitati.
Este important de retinut ca rating-ul unui utilizator se actualizeaza doar dupa finalizarea unui concurs organizat pe infoarena. Activitatea de pregatire din arhiva de probleme nu influenteaza rating-ul.
 
h2. La ce serveste?
 
Sistemul de rating ideal ne-ar permite sa afirmam care dintre doi concurenti este _mai puternic_. Evident, acest sistem ideal nu exista (chiar notiunea de _mai puternic_ este discutabila), totusi putem aproxima unul.
 
Rating-ul infoarena te ajuta sa...
 
* iti urmaresti *evolutia personala* in regim de concurs
* iti raportezi performantele la ceilalti utilizatori infoarena
 
h2. Cum imi cresc rating-ul?
 
Participa la concursurile infoarena si rezolva cat mai multe probleme. Tu iti vezi de treaba si rating-ul te urmareste :)
 
h2. Cum se calculeaza?
 
infoarena foloseste un sistem de rating relativ standard numit 'Glicko':http://math.bu.edu/people/mg/glicko/glicko.doc/glicko.html, adaptat la nevoile noastre.
 
Glicko este un sistem de rating folosit in campionatele de sah, o varianta imbunatatita a algoritmului larg acceptat 'ELO':http://en.wikipedia.org/wiki/Elo_rating_system.
 
h3. Distributie
 
!http://infoarena.ro/plot/distribution!
 
Din grafic se observa ca rating-urile infoarena aproximeaza 'distributia normala - Gauss':http://en.wikipedia.org/wiki/Normal_distribution.  Desi asta nu dovedeste nimic in particular, e un semn bun ca algoritmul functioneaza :)
 
h3. Detalii despre implementare
 
Vezi direct 'codul sursa al implementarii noastre de Glicko':http://hackers.devnet.ro/browser/trunk/common/rating.php.
Fata de 'algoritmul standard Glicko':http://math.bu.edu/people/mg/glicko/glicko.doc/glicko.html, am modificat urmatoarele:
 
* Glicko a fost inventat pentru jocuri de sah (sau, mai general, jocuri head-to-head) insa concursurile de informatica includ mai multi participanti. Astfel, consideram fiecare pereche de concurenti ca un joc head-to-head.
* Functia care calculeaza scorul probabil (expected value) normalizeaza diferentele de rating mai mari decat $IA_RATING_MAX_DIFF$
* Glicko acorda $0$ pentru infrangere, $1/2$ pentru remiza si $1$ pentru victorie. Am facut o functie care acorda un numar real din intervalul $[0, 1]$ in functie de 'deviatia standard':http://en.wikipedia.org/wiki/Standard_deviation. Astfel, acordam un numar real in intervalul $[0, 1/2)$ pentru o infrangere, $1/2$ pentru o remiza, respectiv un numar in intervalul $(1/2, 1]$ pentru o victorie.

Nu exista diferente intre securitate.

Topicul de forum nu a fost schimbat.