Система рейтингования Глико.

Профессор Марк Е. Гликман
Бостонский Университет
Июнь 1998
(смотри также Модифицированную систему Глико)

Вы можете соглашаться со мной или нет, но, по моему мнению, самым большим очарованием для игроков шахматных турниров или соперников в других видах спорта является измерение их игровой силы. Система ранжирования Эло, разработанная в начале 60-х Арпадом Эло, была первой шахматной системой ранжирования, которая несла в себе вероятностную основу. Позже она была принята многими шахматными федерациями и даже организациями, отвечающими за такие игры, как Scrabble, настольный теннис и т.д. Хоть система Эло и является значительным шагом вперед по отношению к более ранним системам, у нее тоже есть свои проблемы. В 1995 году, в ответ на имеющиеся там недостатки, я создал систему ранжирования Глико. Система моя получена путем рассмотрения статистической модели исходов шахматных игр, и принятия затем математических приближений, позволяющих простейшие вычисления. Система Эло является одним из специальных случаев моей системы. Математические детали могут быть найдены в статье под названием "Оценка параметра в больших экспериментах попарных сравнений", выдержки из которой были опубликованы в статистическом журнале Прикладная Статистика , а могут быть найдены по адресу http://math.bu.edu/people/mg/research.html. Система Глико применяется в настоящий момент на свободном интернетовском шахматном сервере (FICS), а вариации системы Глико были приспособлены для нескольких коммерческих интернетовских игровых организаций, таких как ChronX, Case's Ladder и других.

Проблема системы Эло, которую исправляет система Глико, это достоверность рейтинга игрока. Предположим, что два игрока, оба с коэффициентом Эло в 1700, встречаются на турнире, и первый побеждает второго. По версии Американской Шахматной Федерации системы Эло первый игрок получит в этом случае 16 рейтинговых очков, а второй игрок потеряет те же 16 очков. Но предположим, что первый игрок только что вернулся к играм на турнирах после многих лет "отдыха", а второй игрок режется в шахматы каждый выходной. В этой ситуации рейтинг первого игрока в 1700 очков является не совсем достоверным отражением его силы, в то время как рейтинг второго игрока в 1700 является вполне реальным отображением его игрового мастерства. Моя интуиция подсказывает мне, что (1) рейтинг первого игрока должен увеличиться намного   (больше 16-ти), поскольку его рейтинг не совсем реален, и то, что он побил игрока с практически точным рейтингом в 1700 очевидно наводит на мысль, что его сила заведомо превышает 1700, и (2) рейтинг второго игрока должен немного   уменьшиться (менее 16-ти очков), поскольку про его рейтинг и так уже известно, что а) он находится в районе 1700, и б) он проиграл игроку, чей рейтинг не заслуживает доверия, и потому о его собственной игровой силе могут быть сделаны лишь небольшие догадки.

Хоть большинство ситуаций не столь экстремальны, мне кажется, что в систему ранжирования полезно включить меру достоверности чьего-либо рейтинга. Потому-то система Глико и превосходит систему Эло, что вычисляет не только рейтинг R, который может быть представлен, как "наилучшая догадка" о чьей-либо игровой силе, но и "рейтинговое отклонение" (RD) (в статистической терминологии, стандартное отклонение), которое измеряет неопределенность рейтинга. Высокие RD отвечают ненадежным рейтингам, указывая, что игрок выступает не часто или что игрок участвовал лишь в небольшом количестве игр. Низкий RD указывает на то, что игрок постоянно принимает участие в турнирах.

В системе Глико игровой рейтинг изменяется только по прошествии игр, но его RD изменяется и после окончания игры, и по прошествии времени, в течение которого игрок не принимал участия в турнирах. Одним из свойств Системы является то, что сыгранные матчи всегда уменьшают RD игрока, а время, проведенное вне турниров, всегда его увеличивает. Смысл этого заключается в том, что чем больше сыграно игр, тем больше информации о способностях игрока получено, и тем точнее становится рейтинг. Время идет, и мы начинаем сомневаться в силе игрока, и это находит свое отражение в возрастании RD.

Обратите внимание, что в системе Глико изменения в рейтинге не столь сбалансированы, как это есть в системе Эло. Если рейтинг одного игрока возрос на x очков, то совсем необязательно, что рейтинг его соперника уменьшится на те же x очков. Фактически в системе Глико количество очков, на которое уменьшится рейтинг соперника, регулируется значениями RD обоих игроков.

Поскольку игрок в системе Глико имеет и рейтинг, и RD, то обычно более информативно описать силу игрока в виде интервала (нежели просто указать его значение). Одним из путей является создание 95% доверительного интервала. Наименьшим значением интервала является рейтинг игрока минус двойной RD, а наивысшим значением является рейтинг игрока плюс двойной RD. Так, например, если чей-либо рейтинг равен 1850 и RD равно 50, то интервал будет простираться между 1750 и 1950. Мы можем сказать тогда, что мы на 95% уверены, что реальная сила игрока лежит находится между 1750 и 1950. Если у игрока низкий RD, то интервал будет уже, и мы будем на 95% уверены в реальной силе игрока в меньшем интервале значений.

Формулы:

Чтобы применить рейтинговый алгоритм, будем считать, что игры внутри "рейтингового периода" происходят одновременно. Период этот может быть и несколько месяцев, и одна минута. В первом случае берутся рейтинги и RD игроков на начало рейтингового периода, затем рассмотриваются исходы встреч, и в конце периода вычисляются обновленные рейтинги и RD (которые потом в свою очередь будут использованы как начальные рейтинги и RD для последующего рейтингового периода). Когда период равен минуте, рейтинги и RD будут обновляются на поматчевой основе (именно этой системой пользуется FICS). Система Глико работает наилучшим образом, когда число игр в рейтинговом периоде невелико, скажем в среднем 5-10 на одного игрока за период. Длина времени рейтингового периода есть воля администратора.

Шаг 1. Определим рейтинг и RD для каждого игрока в начале рейтингового периода.

(а) Игрок еще не включенный в рейтинги получает 1500 очков рейтинга и RD, равный 350.
(б) В противном случае, используя наипоследнейший рейтинг, и вычислив новый RD из старого RD (RDold) по формуле:

где t - число рейтинговых периодов со дня последней игры (т.е. если ранжируемый играл в самом последнем из рейтинговых периодов, то t = 1), а c является константой, регулирующей увеличение неопределенности со временем. Выбор c мы обсудим чуть ниже. Вышеописанная формула гарантирует, что RD в начале рейтингового периода никогда не будет больше 350 - значения RD для необсчитанного игрока.

Шаг 2. Для обновления рейтинга каждого игрока по отдельности выполняются следующие вычисления:

Предположим, что рейтинг игрока перед началом рейтингового периода равен r, и отклонение рейтинга равно RD. Допустим, что рейтинги m соперников перед началом того же рейтингового периода равны r1, r2, ..., rm и рейтинговые отклонения RD1, RD2, ..., RDm. Также допустим, что s1, s2, ... , sm - это исходы встреч с каждым из соперников, и они могут принимать значения либо 1, 0.5 или 0 соответственно в случае победы, ничьей или поражения. Заметим, что несколько игр против одного и того же соперника трактуются, как игры против разных соперников с одинаковыми рейтингами и RD.

Пусть r' и RD' означают рейтинги и рейтинговые отклонения на момент окончания рейтингового периода. Тогда формулы обновления рейтинга и рейтинговых отклонений примут следующий вид:

Эти вычисления следует выполнить для каждого игрока, попавшего в рейтинговый период.

Пример:

Для демонстрации Шага 2 предположим, что игрок с рейтингом в 1500 сыграл матчи против 1400, 1550 и 1700, выиграв первую встречу и проиграв две оставшиеся. Предположим, что отклонение рейтинга этого игрока равно 200, а у его оппонентов 30, 100, и 300 соответственно.

Тогда получим:

j rj RDj gj Ej исход (sj)
1 1400 30 0.9955 0.639 1
2 1550 100 0.9531 0.432 0
3 1700 300 0.7242 0.303 0

d2 = ... = 231.662

отсюда имеем

r ' = 1464

RD ' = 151.4

Замечания:

Значение c используемое на шаге 1(б) может быть определено либо путем анализа данных (но это может потребовать значительных вычислительных затрат), либо определяя – сколько времени (в единицах рейтинговых периодов) потребуется, чтобы рейтинг типичного игрока стал таким же неопределенным, как у игрока, не включенного в рейтинг. Для демонстрации вычислений, которые могут случиться в результате этого подхода, предположим, что типичный игрок имеет RD, равное 50, рейтинговый период в две недели, и предполагается, что чуть меньше двух лет (96 недель) потребуется для того, чтобы рейтинг типичного игрока стал таким же неопределенным, как и "рейтинг" неранжируемого игрока. Необходимое время будет равняться t = 48 рейтинговых периодов (48 2-недельных периодов). Мы хотим найти такое c, чтобы:

3502 = 502 + c2(48).

В данном случае должно быть использовано с = 50


К содержанию