AllegSkill: Difference between revisions
No edit summary |
Badpazzword (talk | contribs) No edit summary |
||
| Line 5: | Line 5: | ||
==Technical details== | ==Technical details== | ||
What follows is the simplest incarnation of the Trueskill update algorithm, as used for commander ratings. We've provided as much information as is sensible, and we only assume that the reader is familiar with (or able to look up) the [http://en.wikipedia.org/wiki/Error_function error function] (<math>erf</math>). | What follows is the simplest incarnation of the Trueskill update algorithm, as used for commander ratings. We've provided as much information as is sensible, and we only assume that the reader is familiar with (or able to look up) the [http://en.wikipedia.org/wiki/Error_function error function] (<math>\text{erf}</math>). | ||
This scenario pits a newbie commander (<math>\,\!\mu_l = 25; \sigma_l = 8.333...</math>) against a slightly more experienced commander (<math>\,\!\mu_w = 32; \sigma_w = 5</math>) in a match where the more experienced commander won. | This scenario pits a newbie commander (<math>\,\!\mu_l = 25; \sigma_l = 8.333...</math>) against a slightly more experienced commander (<math>\,\!\mu_w = 32; \sigma_w = 5</math>) in a match where the more experienced commander won. | ||
=== Getting ready === | |||
Now let's put some letters and functions on the field: | Now let's put some letters and functions on the field: | ||
| Line 23: | Line 24: | ||
We will use the [http://en.wikipedia.org/wiki/Normal_distribution normal distribution], and more precisely its [http://en.wikipedia.org/wiki/Probability_density_function probability density function] (with a mean of zero and variance of one): | |||
:<math>\text{PDF}(x):=\frac{1}{\sqrt{2\pi}} \cdot e^{-\frac{x^2}{2}}</math>, | |||
We will also use its [http://en.wikipedia.org/wiki/Cumulative_distribution_function cumulative distribution function]: | We will also use its [http://en.wikipedia.org/wiki/Cumulative_distribution_function cumulative distribution function]: | ||
:<math>\text{CDF}(y)=\frac{1}{2}+\frac{1}{2}\text{erf}\left( \frac{1}{\sqrt{2}} y\right)</math>. | |||
<math>\text{CDF}(y)=\frac{1}{2}+\frac{1}{2}\text{erf}\left( \frac{1}{\sqrt{2}} y\right)</math>. | |||
=== The update formulas === | |||
The Trueskill update functions follow: | The Trueskill update functions follow: | ||
:<math>V_{win}(t,\varepsilon) := \frac{ \text{PDF}(t-\varepsilon)}{\text{CDF}(t-\varepsilon) }</math>; this formula is used to update a player's <math>\mu</math>. | |||
:<math>W_{win}(t,\varepsilon) := V_{win}(t,\varepsilon) \cdot \left( V_{win}(t,\varepsilon )+t-\varepsilon \right)</math>; this formula is used to update a player's <math>\sigma</math>. | |||
<math>W_{win}(t,\varepsilon ):=V_{win}(t,\varepsilon )\cdot \left( V_{win}(t,\varepsilon )+t-\varepsilon \right)</math> | |||
<math> | |||
We also need to introduce a variable that expresses the general uncertainty of the system: | |||
: <math>c=\sqrt{2\beta ^{2}+\sigma _{w}^{2}+\sigma _{l}^{2}}</math> | |||
This value is used throughout the calculation. | |||
Here is how the formulas are actually used: | |||
{| class="wikitable" border="1" cellspacing="0" cellpadding="5" align="center" | |||
! | |||
! align="center" | Mu | |||
! align="center" | Sigma | |||
|- | |||
! Winner | |||
| align="center" | <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> | |||
| align="center" | <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> | |||
|- | |||
! Loser | |||
| align="center" | <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> | |||
| align="center" | <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> | |||
|} | |||
Let's now grab a computer assisted algebra system and do the calculations: | |||
:<math>c = \frac{5}{6}\sqrt{186}</math> | |||
:<math>\mu '_{w}=32+\frac{\text{0}\text{.09195636321}\sqrt{186}\sqrt{2}}{\sqrt{\pi }} = 33.00064106</math> | |||
:<math>\sigma '_{w}=\sqrt{\frac{3601}{144}-\frac{\text{2}\text{.758690898}\sqrt{2}\left( \frac{\text{0}\text{.5701294519}\sqrt{2}}{\sqrt{\pi }}+\text{0}\text{.04463650105}\sqrt{186} \right)}{\sqrt{\pi }}}</math> | |||
:<math>\,\!\sigma '_{w}=\text{4}\text{.760851650}</math> | |||
:<math>\mu '_{l}=25-\frac{\text{0}\text{.2554343423}\sqrt{186}\sqrt{2}}{\sqrt{\pi }}</math> | |||
:<math>\,\!\mu '_{l}=\text{22}\text{.22044149}</math> | |||
<math>\,\!\sigma '_{l}=\text{7}\text{.168423552}</math> | :<math>\sigma '_{l}=\sqrt{\frac{10001}{144}-\frac{\text{21}\text{.28619519}\sqrt{2}\left( \frac{\text{0}\text{.5701294519}\sqrt{2}}{\sqrt{\pi }}+\text{0}\text{.04463650105}\sqrt{186} \right)}{\sqrt{\pi }}}</math> | ||
:<math>\,\!\sigma '_{l}=\text{7}\text{.168423552}</math> | |||
==Related Articles== | ==Related Articles== | ||
Revision as of 13:43, 13 October 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!
AllegSkill is a system for rating the skill of Allegiance players based on their overall performance in-game. AllegSkill is based on the Trueskill system developed by Microsoft Research (who also developed Allegiance) with some notable additions. The term 'AllegSkill' is intended to refer to the entire system, which includes additional statistics, and Microsoft Research should not be held responsible for differences when and where the occur.
Technical details
What follows is the simplest incarnation of the Trueskill update algorithm, as used for commander ratings. We've provided as much information as is sensible, and we only assume that the reader is familiar with (or able to look up) the error function (<math>\text{erf}</math>).
This scenario pits a newbie commander (<math>\,\!\mu_l = 25; \sigma_l = 8.333...</math>) against a slightly more experienced commander (<math>\,\!\mu_w = 32; \sigma_w = 5</math>) in a match where the more experienced commander won.
Getting ready
Now let's put some letters and functions on the field:
<math>\beta = \frac{25}{6} </math> is the standard variance around performance
<math>\gamma = \frac{25}{300}</math> is the dynamics variable, which prevents sigma from ever reaching zero
<math>\varepsilon \simeq 0.08</math> is derived empirically from the percentage of games which result in a draw, currently ~1.01%.
We will use the normal distribution, and more precisely its probability density function (with a mean of zero and variance of one):
- <math>\text{PDF}(x):=\frac{1}{\sqrt{2\pi}} \cdot e^{-\frac{x^2}{2}}</math>,
We will also use its cumulative distribution function:
- <math>\text{CDF}(y)=\frac{1}{2}+\frac{1}{2}\text{erf}\left( \frac{1}{\sqrt{2}} y\right)</math>.
The update formulas
The Trueskill update functions follow:
- <math>V_{win}(t,\varepsilon) := \frac{ \text{PDF}(t-\varepsilon)}{\text{CDF}(t-\varepsilon) }</math>; this formula is used to update a player's <math>\mu</math>.
- <math>W_{win}(t,\varepsilon) := V_{win}(t,\varepsilon) \cdot \left( V_{win}(t,\varepsilon )+t-\varepsilon \right)</math>; this formula is used to update a player's <math>\sigma</math>.
We also need to introduce a variable that expresses the general uncertainty of the system:
- <math>c=\sqrt{2\beta ^{2}+\sigma _{w}^{2}+\sigma _{l}^{2}}</math>
This value is used throughout the calculation.
Here is how the formulas are actually used:
| Mu | Sigma | |
|---|---|---|
| Winner | <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> |
| Loser | <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> |
Let's now grab a computer assisted algebra system and do the calculations:
- <math>c = \frac{5}{6}\sqrt{186}</math>
- <math>\mu '_{w}=32+\frac{\text{0}\text{.09195636321}\sqrt{186}\sqrt{2}}{\sqrt{\pi }} = 33.00064106</math>
- <math>\sigma '_{w}=\sqrt{\frac{3601}{144}-\frac{\text{2}\text{.758690898}\sqrt{2}\left( \frac{\text{0}\text{.5701294519}\sqrt{2}}{\sqrt{\pi }}+\text{0}\text{.04463650105}\sqrt{186} \right)}{\sqrt{\pi }}}</math>
- <math>\,\!\sigma '_{w}=\text{4}\text{.760851650}</math>
- <math>\mu '_{l}=25-\frac{\text{0}\text{.2554343423}\sqrt{186}\sqrt{2}}{\sqrt{\pi }}</math>
- <math>\,\!\mu '_{l}=\text{22}\text{.22044149}</math>
- <math>\sigma '_{l}=\sqrt{\frac{10001}{144}-\frac{\text{21}\text{.28619519}\sqrt{2}\left( \frac{\text{0}\text{.5701294519}\sqrt{2}}{\sqrt{\pi }}+\text{0}\text{.04463650105}\sqrt{186} \right)}{\sqrt{\pi }}}</math>
- <math>\,\!\sigma '_{l}=\text{7}\text{.168423552}</math>
Related Articles
| AllegSkill |
|
|---|