AllegSkill - Player's ranking: Difference between revisions

From FreeAllegiance Wiki
Jump to navigationJump to search
(Restored n as term for generic player)
(Sections, changed mu's into Mu's and sigma's into Sigmas when they were a team's rather than a player's)
Line 2: Line 2:


What follows is the method for updating a two-team game with an arbitrary number of players.
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>.
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>.
Line 9: Line 11:
Each player, <math>n</math>, has three variables associated with them:
Each player, <math>n</math>, has three variables associated with them:


*<math>\mu _n</math>, their average skill.
*<math>\mu _n</math>, their average skill;


*<math>\sigma _n</math>, their uncertainty about <math>\mu _{n}</math>.
*<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.
*<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 it's players, <math>n</math>, thus:
Each team, <math>j</math>, has a mu and sigma derived from the ratings of it's players, <math>n</math>, thus:


:<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>


:<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>
:<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 [[AllegSkill - Commander's ranking|Commander's ranking]] section.
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 [[AllegSkill - Commander's ranking|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>\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>\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>\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>


:<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:
Now we calculate the total variance:
Line 40: Line 55:




:<math>V_{j}=\frac{\sqrt{\beta _{total}}\left( \mu '_{j}-\mu _{j} \right)}{\sum\limits_{n \in T_{j}}{\left( \sigma _{n}^{2}f_{n}+\beta ^{2}+\gamma ^{2} \right)}-\beta ^{2}}</math>
:<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}=\frac{\beta _{total} \left( 1-\frac{\sigma_{j}'^{2}}{\sigma _{j}^{2}} \right)} {\sum\limits_{n \in T_{j}}{\left( \sigma _{n}^{2} f_{n} + \beta^2 + \gamma^2  \right)} - \beta^2 }</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>




Line 50: Line 65:




:<math>\mu '_{n}=\mu _{n}+\frac{\sigma _{n}^{2}+\gamma ^{2}}{\sqrt{\beta _{total}}}f_{n}V_{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}\frac{\sigma _{n}^{2}+\gamma ^{2}}{\beta _{total}}}-\sigma _{n} \right)</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}}
{{AllegSkill}}

Revision as of 18:17, 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 it's players, <math>n</math>, thus:

<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