new default glicko values: deviation=600, volatility=0.1

initial-glicko
Thibault Duplessis 2020-09-21 09:56:19 +02:00
parent e86bdd9398
commit b301859f81
3 changed files with 9 additions and 11 deletions

View File

@ -93,7 +93,7 @@ case class Hook(
member = lila.pool.PoolMember(
userId = user.??(_.id),
sri = sri,
rating = rating | lila.rating.Glicko.defaultIntRating,
rating = rating | lila.rating.Glicko.default.intRating,
ratingRange = realRatingRange,
lame = user.??(_.lame),
blocking = lila.pool.PoolMember.BlockedUsers(user.??(_.blocking)),

View File

@ -42,5 +42,5 @@ case class LobbyPerf(rating: Int, provisional: Boolean)
object LobbyPerf {
val default = LobbyPerf(Glicko.defaultIntRating, provisional = true)
val default = LobbyPerf(Glicko.default.intRating, provisional = true)
}

View File

@ -62,19 +62,11 @@ case object Glicko {
val minRating = 600
val default = Glicko(1500d, 500d, 0.08d)
// managed is for students invited to a class
val defaultManaged = Glicko(900d, 500d, 0.08d)
val defaultManagedPuzzle = Glicko(800d, 500d, 0.08d)
val defaultIntRating = default.rating.toInt
val minDeviation = 45
val variantRankableDeviation = 65
val standardRankableDeviation = 75
val provisionalDeviation = 110
val maxDeviation = 350
val maxDeviation = 600d
// past this, it might not stabilize ever again
val maxVolatility = 0.1d
@ -82,6 +74,12 @@ case object Glicko {
// Chosen so a typical player's RD goes from 60 -> 110 in 1 year
val ratingPeriodsPerDay = 0.21436d
val default = Glicko(1500d, maxDeviation, maxVolatility)
// managed is for students invited to a class
val defaultManaged = Glicko(900d, maxDeviation, maxVolatility)
val defaultManagedPuzzle = Glicko(800d, maxDeviation, maxVolatility)
val tau = 0.75d
val system = new RatingCalculator(default.volatility, tau, ratingPeriodsPerDay)