Zasady punktacji w Rankingu Open League
Wprowadzenie
Ranking zawodników w Open League jest oparty na rankingu Elo.
Wybraliśmy Elo ze względu na to, że jest to sprawdzony i świetnie nadający się mechanizm do porównywania umiejętności graczy.
Założenia
- Każdy zawodnik ma wyjściowy (startowy) ranking np. 1200
- Po każdym meczu ranking jest aktualizowany
- Zawodnik z wyższym rankingiem ma większe prawdopodobieństwo wygrania meczu
- Jeżeli zawodnik z wyższym rankingiem wygra "zabiera" niewielką część rankingu zawodnikowi słabszemu - w odwrotnej zaś sytuacji słabszy "zabiera" mocniejszemu więcej punktów
- Suma rankingów zawodników przed i po meczu jest taka sama (ranking przepływa do zwycięzcy)
Jak działa algorytm?
Algorytm aktualizuje ranking na podstawie formuły:
rankingPoMeczu = rankingPrzedMeczem + K * (AktualnyWynik - P)
gdzie:
- K - współczynnik wagi meczu (im większy tym więcej rankingu będzie przepływać)
- AktualnyWynik - przyjmuje wartości 1 (wygrana) lub 0 (porażka)
- P - prawdopodobieństwo wygrania meczu
Aby wyznaczyć P, załóżmy, że mamy 2 zawodników A i B z rankingami rankingA i rankingB.
Niech:
- PA oznacza prawdopodobieństwo, że zawodnik A wygra mecz
- PB oznacza prawdopodobieństwo, że zawodnik B wygra mecz
wówczas
Oczywiście suma prawdopodobieństw PA + PB = 1.
Jak to wygląda w OpenLeague?
Ranking startowy
W zależności od poziomu umiejętności przyznawany jest różny ranking startowy.
Przykładowo - w Klubie Sportowym Grzegórzecki najwyższy ranking startowy przyznawany jest dla poziomu Top Pro (1500) a najniższy dla poziomu Junior (1000).
Niżej szczegóły:
Top Pro | 1500 |
Pro | 1400 |
Zaawansowany | 1300 |
Średniozaawansowany wyższy | 1200 |
Średniozaawansowany | 1100 |
+55 | 1200 |
Kobiety zaawansowany | 1300 |
Kobiety średniozaawansowany | 1100 |
Debel Pro | 1400 |
Debel Zaawansowany | 1300 |
Debel Średniozaawansowany | 1100 |
Junior | 1000 |
Współczynnik wagi meczu K
Wynosi:
- 8 - dla meczów towarzyskich
- 16 - dla meczów ligowych
- 48 - dla meczów pucharowych
Przykłady:
Przykład 1
Mamy 2 zawodników A i B z rankingami rankingA = 1200 i rankingB = 1000 oraz niech K = 16 (mecz ligowy)
wówczas
Możliwe są przypadki, że
-
Wygra zawodnik A i wtedy:
rankingA = 1200 + 16 * (1 - 0.76) = 1203.84
rankingB = 1000 + 16 * (0 - 0.24) = 996.16 -
Wygra zawodnik B i wtedy
rankingA = 1200 + 16 * (0 - 0.76) = 1187.84
rankingB = 1000 + 16 * (1 - 0.24) = 1012.16
Przykład 2
Mamy tych samych 2 zawodników A i B z rankingami rankingA = 1200 i rankingB = 1000 ale niech K = 48 (mecz play-off)
-
wówczas jeśli wygra zawodnik A i wtedy
rankingA = 1200 + 48 * (1 - 0.76) = 1211.52
rankingB = 1000 + 48 * (0 - 0.24) = 988.48 -
a gdy wygra zawodnik B to
rankingA = 1200 + 48 * (0 - 0.76) = 1163.52
rankingB = 1000 + 48 * (1 - 0.24) = 1036.48
Powyższe przykłady pokazują wpływ rankingu przed meczem i wyniku meczu na ranking po meczu a także wpływ współczynnika K na wielkość przepływu rankingu.