Наша библиотека. Переводы и оригиналы |
Профессор Марк Е. Гликман
Бостонский Университет
Июнь 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, и что он проиграл игроку, чей рейтинг не заслуживает доверия, и потому лишь небольшая часть о его собственной игровой силе может быть получена.
Хоть большинство ситуаций не столь экстремальны, я чувствую, что было бы полезным включить в систему ранжирования меру достоверности чьего-либо рейтинга. Система Глико поэтому превосходит систему Эло, вычисляя не только рейтинг, который может быть представлен, как "наилучшая догадка" о чьей-либо игровой силе, но и "рейтинговом отклонении " (РО), или, в статистической терминологии, стандартным отклонении, которая измеряет неопределенность рейтинга (высокие РО отвечают ненадежным рейтингам). Высокие РО показывают, что игрок играет не часто или игрок участвовал лишь в небольшом количестве игр. Низкий РО указывает на то, что игрок постоянно принимает участие в турнирах.
В системе Глико игровой рейтинг изменяется только по прошествии игр, но его РО изменяеются и после окончания игры, и по прошествии времени, в течение которого игрок не принимал участия в турнирах. Одним из свойств системы является то, чтосыгранные матчи всегда уменьшают РО игрока, а время, проведенное вне турниров всегда его увеличивает. Смысл этого заключается в том, что чем больше сыграно игр, тем больше информации о способностях игрока получено , и тем точнее становится рейтинг. Время идет, и мы начинаем омневаться в силе игрока, и это находит свое отражение в возрастании РО.
Обратите внимание, что в системе
Глико изменения в рейтиге
не столь сбалансированы, как это есть в системе Эло.
Если рейтинг одного игрока возрос на x очков, то совсем
необязательно , что рейтиг его соперника уменьшится
на те же x очков.Фактически
в системе Глико количетсво
очков, на которое умнеьшится рейтинг соперника
регулируется значениями РО обоих игроков.
Поскольку игрок в системе Глико имеет и рейтинг и РО, то обычно более информативно
описать силу игрока в виде интервала (нежели просто указать его значение). Одним
из путей является создание 95% доверительного интервала. Наименьшим значением
интервала являеься рейтинг игрока минус двойной РО, а
наивысшим значением является рейтинг игрока плюс двойной РО. Так, например,
если чей-либо рейтинг равен 1850 и РО равно 50, то интервал будет простираться
между 1750 и 1950. Мы можем сказать тогда, что мы на 95% уверены, что реальная
сила игрока лежит находится между 1750 и 1950. Если у игрока низкий РО, то
интервал будет уже, и мы будем на 95% уверены в реальной силе игрока в меньшем
интервале значений.
Чтобы применить рейтинговый алгоритм, возьмем что игры внутри "рейтингового периода" происходят одновременно. Период этот может быть и несколько месяцев, и одна минута. В первом случае у игроков будут рейтинги и РО в начале рейтингового периода, потом мы рассмотрим исходы встреч, и в конце периода будут вычслены обновленные рейтинги и РО (которые потом в свою очередь будут использованы как начальные рейтинги и РО для последующего рейтиногвого периода). В последнем случае рейтигни и Робудут обновлены напоматчевой основе (именно этой системой пользуется FICS). Система Глико раьботает наилучшим образом, когда число игр в рейтинговом периоде невелико, скажем в среднем 5-10 на одного игрока за период. Длина времени рейтигового периода есть воля администратора.
Шаг 1. Определим рейтиг и РО для каждого игрока в начале рейтингового периода.
(а) Игрок еще не включенный в
рейтинги получает 1500 очков рейтига и РО, равный
350.
(б) В противном случае, используя наипоследнейший
рейтинг, и вычислив новый РО из старого РО (РОстарый)
по формуле
Где t - число рейтинговых периодов со дня последней игры (т. е. если ранжируемы играл в самом последнем из рейтинговых периодов, то t=1), а c является константой, регулирующей увеличение неопределенности со временем. Выбор с мы обсудим чуть ниже. Вышеописанная формула гарантирует, что РО в начале рейтингового периода никигда не будет больше 350, РО для необсчитанного игрока.
Шаг 2. Выполнение следующих вычислений для обновления рейтинга каждого игрока по отдельности:
Предположим, что рейтиг игрока перед началом рейтингового периода равен r, и отклонение рейтига равно РО. Допустим, что рейтинги m соперников перед начало мтого же рейтингового периода равны r1, r2, …, rm и рейтинговые отклонения РО1, РО2, …, РОm. Также допусти, что s1, s2, … , sm - это исходы встреч с каждым из соперников, и они могут принимать значения либо 1, 0.5 или 0 соответсвенно в случае победы, ничьей или поражения. Заметим, что несколько игр против одного и того же соперника трактуются, как игры против разных соперников с одинаковыми рейтингами и РО.
Пусть r' и РО' означают рейтинги и рейтинговые отклонения на момент окончания рейтингового периода. Обновленческие формулы тогда примут следующий вид:
где
q
= log 10 /
400 = 0.0057565
Эти вычисления следут выполнить для каждого игрока, попашего в рейтинговый период.
Пример:
Для демонстрации Шага 2 предположим, что игрок с рейтингом в 1500 сыграл матчи против 1400, 1550 и 1700, выиграв первую встресу и проиграл две оставшиеся. Предположим, что отклонение рейтинга этого игрока равно 200, а у его оппонентов 30, 100, и 300 соответственно.
Тогда получаем:
j |
rj |
РОj |
g(РОj) |
E(s|r, rj, РОj) |
исход (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,
РО'=151.4
Замечания:
Значение c используемое на шаге 1б может быть определено путем анализа данных, хоть это и может потребовать значительных вычислительных затрат. Другим подходом является определение – сколько времени (в единицах рейтинговых периодов) потребуется, чтобы рейтинг типичного игрока стал таким же неопределенным, как и игрока, не включенного в рейтигн. Для демонстрации вычислений, которые могут получиться в результате этого подхода, предположим, что типичный игрок имеет РО, равное 50, рейтинговый период в два месяца, и предполагается, что 5 лет (60 месяцев) потребуется для того, чтобы рейтиг типичного игрока стал таким же неопределенным, как и "рейтинг" неранжируемого игрока. Необходимое время будет равняться t=30 рейтинговых периодов (30 2-месячных периодов). Мы хотим найти такое c , чтобы
350=Ö502+с2(30)
В данном случае должно быть использовано с=63.2.
Одной из возникающих при вычислениях проблем системы Глико является то, что когда игрок сражается очень часто, то его рейтинг перестает ощутимо меняться (это соответсвует малому РО). Иногда э
то может
воспрепятствовать значительному изменению рейтинга, когда игрок резко начал
прогрессировать. Для разрешения данной проблемы я рекомендую, чтобы РО никогда
не становилось меньше какого-то минимального значения, например 30, и тогда в
короткий отрезок времени будут заметны рейтинговые изменения.