AllegSkill - Player's ranking: Difference between revisions

From FreeAllegiance Wiki
Jump to navigationJump to search
(→‎To each one's own: mu -> Mu in V_{j] formula)
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 it's players, <math>n</math>, thus:
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

Edit.png
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
About: AllegSkill · FAQ · Interim FAQ · Gaining ranks · Whore rating · more...
Technical Details: Commander's ranking · Player's ranking · Stack rating · AllegBalance