AllegSkill - Player's ranking: Difference between revisions
(→To each one's own: mu -> Mu in V_{j] formula) |
Badpazzword (talk | contribs) |
||
Line 25: | Line 25: | ||
=== Packing teams up === | === Packing teams up === | ||
Each team, <math>j</math>, has a mu and sigma derived from the ratings of | Each team, <math>j</math>, has a mu and sigma derived from the ratings of its players according to the formulas below. We will use capitalization to help distinguish between a player's mu (<math>\mu</math>) and sigma (<math>\sigma</math>) and a team's mu (<math>\Mu</math>) and sigma (<math>\Sigma</math>). | ||
:<math>\Mu _j=\sum\limits_{n \in T_j}{\mu_n f_n}</math> | :<math>\Mu _j=\sum\limits_{n \in T_j}{\mu_n f_n}</math> |
Revision as of 19:06, 24 November 2008
Stub This article is incomplete This is an article about a topic that should be covered in more detail by the FreeAllegiance Wiki, but is lacking in content.
You can help by improving it!
What follows is the method for updating a two-team game with an arbitrary number of players.
Getting ready
From a population of n players <math>\{1,...,n\}</math> let <math>k</math> teams compete in a match. Teams are defined by <math>k</math> non-overlapping subsets, <math>T_{j}\subset \{1,...,n\}</math>, of the player population, <math>T_{i}\cap T_{j}=0</math> if <math>i\ne j</math>.
In layman's terms, this means that no player can appear on more than one team at the same time.
Each player, <math>n</math>, has three variables associated with them:
- <math>\mu _n</math>, their average skill;
- <math>\sigma _n</math>, their uncertainty about <math>\mu _{n}</math>;
- <math>f_{n}</math>, the fraction of the total game played for their team.
We also have three very important constants to recall:
- <math>\beta</math>, standard variance around performance;
- <math>\gamma</math>, the dynamics variable that keeps sigma from reaching zero;
- <math>\epsilon</math>, the draw factor.
Packing teams up
Each team, <math>j</math>, has a mu and sigma derived from the ratings of its players according to the formulas below. We will use capitalization to help distinguish between a player's mu (<math>\mu</math>) and sigma (<math>\sigma</math>) and a team's mu (<math>\Mu</math>) and sigma (<math>\Sigma</math>).
- <math>\Mu _j=\sum\limits_{n \in T_j}{\mu_n f_n}</math>
- <math>\Sigma _{j}=\sqrt{\left( \sum\limits_{n \in T_j}{\left( \sigma_n^2 f_n +\beta ^{2}+\gamma ^{2} \right)} \right) -\beta ^{2} -\gamma ^{2}}</math>
Back to the 1 vs 1 scenario
For the next step, each team is designated according to whether they won or lost the game. We now calculate a new mu and sigma for our teams using the standard Trueskill update formulae. Definitions of <math>W_{win}</math> etc can be found in the Commander's ranking section.
- <math>\Mu '_{w}=\Mu _{w}+\frac{\Sigma _{w}^{2}}{c}\cdot V_{win}\left( \frac{\Mu _{w}-\Mu _{l}}{c},\frac{\varepsilon }{c} \right)</math>
- <math>\Sigma '_{w}=\sqrt{\Sigma _{w}^{2}\left( 1-\frac{\Sigma _{w}^{2}}{c^{2}}\cdot W_{win}\left( \frac{\Mu _{w}-\Mu _{l}}{c},\frac{\varepsilon }{c} \right) \right)+\gamma ^{2}}</math>
- <math>\Mu '_{l}=\mu _{l}-\frac{\Sigma _{l}^{2}}{c}\cdot V_{win}\left( \frac{\Mu _{w}-\Mu _{l}}{c},\frac{\varepsilon }{c} \right)</math>
- <math>\Sigma '_{l}=\sqrt{\Sigma _{l}^{2}\left( 1-\frac{\Sigma _{l}^{2}}{c^{2}}\cdot W_{win}\left( \frac{\Mu _{w}-\Mu _{l}}{c},\frac{\varepsilon }{c} \right) \right)+\gamma ^{2}}</math>
- Note. The acute reader will notice that this is the point that keeps the current incarnation of AllegSkill from supporting multi team games.
To each one's own
Now we calculate the total variance:
- <math>\beta _{total}=\sum\limits_{j=1}^{k}{\left( \sum\limits_{n \in T_{j}}{\left( \sigma _{n}^{2}f_{n}+\beta ^{2}+\gamma ^{2} \right)} \right)}</math>
Each team has a <math>V</math> and <math>W</math> factor:
- <math>V_{j}=\tfrac{\sqrt{\beta _{total}}}{\sum\limits_{n \in T_{j}}{\left( \sigma _{n}^{2}f_{n}+\beta ^{2}+\gamma ^{2} \right)}-\beta ^{2}} \left( \Mu '_{j}-\Mu _{j} \right)</math>
- <math>W_{j}=\tfrac{\beta _{total}} {\sum\limits_{n \in T_{j}}{\left( \sigma _{n}^{2} f_{n} + \beta^2 + \gamma^2 \right)} - \beta^2 }\left( 1 - \frac{\Sigma_{j}'^{2}}{\Sigma _{j}^{2}} \right)</math>
Then each player, <math>n</math>, is updated using the values calculated for their team, <math>j</math>:
- <math>\mu '_{n}=\mu _{n}+\tfrac{\sigma _{n}^{2}+\gamma ^{2}}{\sqrt{\beta _{total}}}f_{n}V_{j}</math>
- <math>\sigma '_{n}=\sigma _{n}+f_{n}\left( \sigma _{n}\sqrt{1-W_{j}\tfrac{\sigma _{n}^{2}+\gamma ^{2}}{\beta _{total}}}-\sigma _{n} \right)</math>
AllegSkill |
|
---|