Elo Rating System
게임이나 스포츠에 있어서 실력 점수(Skill Rating)는 크게 3가지 역할을 한다.1
- 비슷한 실력의 플레이어끼리 매칭시켜, 재밌고 균형이 맞는 매치를 만든다.
- 실력 점수를 공개함으로써 흥미와 경쟁을 유발한다.
- 토너먼트 자질의 기준이 된다.
Elo Rating
실력 점수를 나타내는 기본적인 방법으로 Elo Rating System이 있다. 체스선수들의 실력 평가를 위해 고안된 방법이다. 각 플레이어의 현재 알려지지 않은 실력이 있고 이를 점수로 가늠한다. 두 플레이어의 실력을 각 \(R_A, R_B\)라고 했을 때, 플레이어 A의 점수 기대값은 다음과 같다.
\[E = \frac{1}{1 + 10 ^{(R_A-R_B)/400}}\]여기서 점수는 게임을 승리했을 시에는 1, 비겼을 때는 \(\frac{1}{2}\), 졌을 때는 0이다.
예를 들어, 플레이어 A와 B가 각각 1500, 1700 실력 점수를 갖고 있다고 하자. 그렇다면 A의 점수 기대값은
\[E(A) = \frac{1}{1+10^{200/400}} \approx 0.24\]즉, 플레이어 A는 약 0.24 확률로 승리할 것이라 예측할 수 있다.
\[E(B) = \frac{1}{1+10^{-200/400}} \approx 0.76\]반대로 플레이어 B는 0.76 확률로 승리할 것이라 예측할 수 있다.
Update
매 게임 결과에 따라 플레이어의 실력 점수는 수정된다. 새로운 실력 점수는 각 플레이어의 점수 기대값을 반영한다. 패배할 확률이 높은 플레이어가 이겼을 때는 높은 점수를 얻게 되고, 반대로 이길 확률이 높은 플레이어가 이겼을 때는 점수가 크게 개선되지 않는다. 업데이트 식은 다음과 같다.
\[R^{'}_{A} = R_{A} + K(S_A - E_A)\]여기서 \(R^{'}_A\)는 업데이트된 플레이어의 실력 점수이고 \(S_A\)는 실제 게임 결과를 의미한다.
Idea Behind
Elo 시스템은 각 플레이어의 게임 실력은 랜덤 변수이고 이 랜덤 변수가 정규 분포를 따른다고 가정한다. 어느 게임에서는 평소보다 잘 플레이하고 어느 게임에서는 못할 수도 있지만 평균을 크게 벗어나지 않는다.
플레이어 A,B의 실력 점수 분포
그리고 상대방과의 점수 차이가 +200일 때, 이길 확률은 75%이다.
점수 차이에 따른 이길 확률
Comments
- 간단하고 쉽게 사용할 수 있다.
- 1대1 점수 평가만 지원한다.
- K 파라미터를 조정하여 사용해야 한다.
- 새로운 플레이어의 실력 점수가 수렴하기까지 비교적 오래 걸린다.
Leave a comment