20:44
Всем привет!
В последнее время к нам поступает много вопросов с просьбой объяснить, как работает начисление рейтинга в рейтинговых боях. Для рейтинговых боев в Survarium мы остановили свой выбор на системе рейтинга ELO, который давно и успешно используется для определения силы игроков в шахматах, а также имеет ряд успешных реализаций в других играх. В данной статье мы постараемся объяснить принцип рейтинга ELO, а также рассказать о некоторых особенностях реализации рейтинга ELO в Survarium.
Что такое рейтинг ELO
ELO – численно выраженная характеристика силы игрока. На основании рейтингов двух игроков можно предсказать, кто из них выйдет победителем в очном противостоянии и с каким счетом он победит.
Перед боем система, на основании ELO рейтинга игрока, предсказывает его показатели в бою, после боя сравнивает предсказанный результат с фактическим. После этого оценка игрока изменяется, исходя из разницы предсказанного и фактического результата.
Правила вычисления ELO в рейтинговой игре.
В качестве критерия оценки уровня игрока в каждом конкретном матче мы будем использовать набранный им лично счет полезных действий (score, в дальнейшем просто счет). Так как счет конкретного игрока очень сильно зависит от характера и времени матча, то мы будем использовать относительный счет игрока – какой процент от общего счета всех игроков набрал именно этот игрок. Для начала рассмотрим более простую ситуацию – дуэль двух игроков.
Оценка процента счета игрока против определенного игрока осуществляется по следующей формуле:
ESTa = 1 / (1 + 10^((Rb – Ra)/dif_factor))
Где:
ESTa – ожидаемое количество процента набранных очков в диапазоне от 0 до 1.
Ra – ELO рейтинг игрока A
Rb – ELO рейтинг игрока Б
dif_factor – константа, которая определяет при какой разнице в ELO рейтинге, вероятность победы одного игрока в десять раз выше, чем другого. На данный момент равен 400.
Например, встречаются игрок А (рейтинг 1100), и игрок Б (рейтинг 1350). Между рейтингами игроков разница в 250 в пользу игрока Б, то в личном противостоянии игрок А должен набрать:
ESTa = 1/(1+10^(250/400)) = 1 / (1+4.22) = 0.19 либо 19 % от общего количества очков
ESTb = 1/(1+10^(-250/400))= 1/ (1 + 0.24) = 0.81 либо 81% от общего количества очков
По завершению матча происходит сравнение прогноза набранных очков с реальным показателем. После этого происходит изменение ELO рейтинга, в зависимости от разницы прогноза и показателей.
Изменение рейтинга ELO определяется по формуле:
Ra' = Ra + K_factor * (Sa - Ea)
Где:
Ra’ - новый рейтинг игрока
Ra – старый рейтинг игрока
Sa – реальные показатели игрока за бой.
Ea – прогнозируемые показатели игрока за бой.
K_factor – величина, регламентирующая скорость изменения рейтинга. Она зависит от количества игр, которые сыграл игрок:
100 - для квалификационных игр
50 – для игроков, сыгравших меньше 10 игр со старта сезона.
25 – для игроков, сыгравших больше 10 игр со старта сезона.
Например, в указанном выше случае игрок А сыграл отлично и набрал 30% от общего количества очков (хоть и проиграл бой). Игрок Б соответственно набрал 70% очков. Допустим, для игрока А это был второй бой (K_factor = 50), а для игрока Б это 11 бой (K_factor = 25)
Ra’ =1 100 + 50 * (0.3-0.19) = 1105,5
Rb’ =1 350 + 25 * (0.7-0.8) = 1347,5
Но, в отличие от шахмат, у нас в матчах участвуют команды 8 на 8 игроков. Для этого случая мы используем более сложный алгоритм прогнозирования результатов отдельных игроков. Мы исходим из допущения, что каждый матч, это аналог турнира, в котором каждый игрок одной команды встречается с каждым игроком другой команды равное количество раз (для простоты расчетов считаем, что по 1 разу). Таким образом мы можем спрогнозировать результат игрока, как средний результат дуэлей с каждым игроком команды противника. После окончания матча мы для каждого игрока считаем его реальное значение и на основании этого изменяем его ELO рейтинг.
В последнее время к нам поступает много вопросов с просьбой объяснить, как работает начисление рейтинга в рейтинговых боях. Для рейтинговых боев в Survarium мы остановили свой выбор на системе рейтинга ELO, который давно и успешно используется для определения силы игроков в шахматах, а также имеет ряд успешных реализаций в других играх. В данной статье мы постараемся объяснить принцип рейтинга ELO, а также рассказать о некоторых особенностях реализации рейтинга ELO в Survarium.
Что такое рейтинг ELO
ELO – численно выраженная характеристика силы игрока. На основании рейтингов двух игроков можно предсказать, кто из них выйдет победителем в очном противостоянии и с каким счетом он победит.
Перед боем система, на основании ELO рейтинга игрока, предсказывает его показатели в бою, после боя сравнивает предсказанный результат с фактическим. После этого оценка игрока изменяется, исходя из разницы предсказанного и фактического результата.
Правила вычисления ELO в рейтинговой игре.
В качестве критерия оценки уровня игрока в каждом конкретном матче мы будем использовать набранный им лично счет полезных действий (score, в дальнейшем просто счет). Так как счет конкретного игрока очень сильно зависит от характера и времени матча, то мы будем использовать относительный счет игрока – какой процент от общего счета всех игроков набрал именно этот игрок. Для начала рассмотрим более простую ситуацию – дуэль двух игроков.
Оценка процента счета игрока против определенного игрока осуществляется по следующей формуле:
ESTa = 1 / (1 + 10^((Rb – Ra)/dif_factor))
Где:
ESTa – ожидаемое количество процента набранных очков в диапазоне от 0 до 1.
Ra – ELO рейтинг игрока A
Rb – ELO рейтинг игрока Б
dif_factor – константа, которая определяет при какой разнице в ELO рейтинге, вероятность победы одного игрока в десять раз выше, чем другого. На данный момент равен 400.
Например, встречаются игрок А (рейтинг 1100), и игрок Б (рейтинг 1350). Между рейтингами игроков разница в 250 в пользу игрока Б, то в личном противостоянии игрок А должен набрать:
ESTa = 1/(1+10^(250/400)) = 1 / (1+4.22) = 0.19 либо 19 % от общего количества очков
ESTb = 1/(1+10^(-250/400))= 1/ (1 + 0.24) = 0.81 либо 81% от общего количества очков
По завершению матча происходит сравнение прогноза набранных очков с реальным показателем. После этого происходит изменение ELO рейтинга, в зависимости от разницы прогноза и показателей.
Изменение рейтинга ELO определяется по формуле:
Ra' = Ra + K_factor * (Sa - Ea)
Где:
Ra’ - новый рейтинг игрока
Ra – старый рейтинг игрока
Sa – реальные показатели игрока за бой.
Ea – прогнозируемые показатели игрока за бой.
K_factor – величина, регламентирующая скорость изменения рейтинга. Она зависит от количества игр, которые сыграл игрок:
100 - для квалификационных игр
50 – для игроков, сыгравших меньше 10 игр со старта сезона.
25 – для игроков, сыгравших больше 10 игр со старта сезона.
Например, в указанном выше случае игрок А сыграл отлично и набрал 30% от общего количества очков (хоть и проиграл бой). Игрок Б соответственно набрал 70% очков. Допустим, для игрока А это был второй бой (K_factor = 50), а для игрока Б это 11 бой (K_factor = 25)
Ra’ =1 100 + 50 * (0.3-0.19) = 1105,5
Rb’ =1 350 + 25 * (0.7-0.8) = 1347,5
Но, в отличие от шахмат, у нас в матчах участвуют команды 8 на 8 игроков. Для этого случая мы используем более сложный алгоритм прогнозирования результатов отдельных игроков. Мы исходим из допущения, что каждый матч, это аналог турнира, в котором каждый игрок одной команды встречается с каждым игроком другой команды равное количество раз (для простоты расчетов считаем, что по 1 разу). Таким образом мы можем спрогнозировать результат игрока, как средний результат дуэлей с каждым игроком команды противника. После окончания матча мы для каждого игрока считаем его реальное значение и на основании этого изменяем его ELO рейтинг.
Всего комментариев: 0 | |