Блоги

Пара слов о рейтинге в "Что? Где? Когда?"

Дмитрий Плотников, 25 декабря 2014, 4314

Дмитрий Плотников о различии аддитивной и балансной формул при подсчете рейтинга команд.

А вот вам немного псевдоаналитики и околоЧГК-шного трёпа на вечер.

    Каждый, кто играет в ЧГК достаточно давно, наверняка сталкивался с таким явлением, как рейтинг команд ЧГК (далее просто рейтинг). А те, кто играет недавно, наверняка ещё столкнутся, если только не соскочат с этого дела на пивко и КВН. В этой статье мы попытаемся разобраться, что же этот рейтинг такое, зачем он нужен и как к нему относиться.
    Команд, играющих в ЧГК огромное количество. Авторитетные источники (а именно сайт рейтинга команд ЧГК) сообщают, что всего их зафиксировано больше двадцати одной тысячи. Очевидно, что их нельзя свести между собой ни на одном турнире. Тем не менее, хочется сравнить команды между собой по силе. Причина этому — не только простое любопытство — «кто сильнее, моя команда, или команда из параллельного класса?», но и желание выделить наиболее сильные команды некоего множества(лузеры в чгк, как, впрочем, и в жизни, мало кому интересны). Например, я великий олигарх, организующий турнир, и я хочу, чтобы на мой турнир приехало тридцать сильнейших команд России (которым, разумеется, моя мега-прибыльная корпорация, занимающаяся благотворительностью исключительно из альтруизма, а не потому что она может быть рассмотрена, как уплата налогов, оплачивает дорогу, проживание, питание и гарем на время турнира). Необходимость выбора N сильнейших команд в первую очередь и обуславливает существование инструмента их сравнения.
    Давайте подумаем, как должен выглядеть этот инструмент? Очевидно, что он должен учитывать несколько турниров, поскольку у всех команд бывают неудачные игры. Также очевидно, что абсолютные значения типа количества взятых вопросов мало пригодны, поскольку сложность вопросов — очень непостоянная величина. Не менее очевидно, что турниры, проведённые недавно с большей степенью достоверности отражают силу команды, и поэтому должны рассматриваться в приоритете. Таким образом мы приходим к пулу вполне очевидных соображений, но построить математическую модель на этих соображениях — задача не из лёгких. Предоставим её математикам, статистикам и людям, посвятившим ЧГК времени больше, чем некоторые из нас прожили на Земле.
    Начало разработки официального рейтинга МАК (Международной Ассоциации Клубов — управляющего органа всего ЧГК-движения, если кто-то этого не знает) приходится на 2002 год. Командам был задан некий начальный рейтинг (исходя из некоторых существовавших до этого локальных рейтингов) и предложена аддитивная формула, суть которой сводилась к тому, что  на каждом турнире, исходя из сил-рейтингов команд-представителей определялось, какую сумму условных баллов получит каждое из мест. А рейтингом команды считалась сумма баллов за несколько лучших турниров. 
    После этого практически непрерывно шёл процесс косметической доработки формулы рейтинга — количество турниров, идущих в зачёт, максимальное допустимое число синхронов среди них, весовые коэффициенты турнирных формул, коэффициент инфляции — обесценивания суммы баллов за турниры в зависимости от прошедшего времени. Непрерывно шёл процесс редактирования Кодекса МАК, касающийся преемственности составов команд, в общем, инструментарий ранжирования команд по силе не стоял на месте, хоть и был постоянным предметом споров, рождающих, как известно, истину, пусть даже процесс выработки этой истины был асимптотическим.
    Однако с течением времени количество претензий к системе всё возрастало. Одной из них было проигрышное положение команд, далёких в географическом плане от Москвы и Санкт-Петербурга, являющихся центрами сосредоточения команд верхушки рейтинга,и, соответственно, играющих за год меньшее число турниров с сильным представительством (на которых разыгрывались большие суммы баллов рейтинга). Другая проблема — так называемая «инфляция рейтинга»: всё большее число турниров приносило победителю 2300 баллов (или близко к тому), максимальную, в силу специфики формулы, возможную сумму. Это, с очевидностью, вело к тому, что всё больше команд имело рейтинг, очень близкий к 5*2300=11500 (рейтингуется пять лучших турниров), а в таких условиях разница в десять-двадцать баллов (меньше одного процента от общей суммы), возможно, обусловленная совокупностью случайных факторов, решала судьбу команды — к тому времени положение в рейтинге зачастую решало вопрос попадания команды на самые престижные турниры, такие как Чемпионат России и Чемпионат Мира. Понятно, что чем выше положение команды, тем больше влиял каждый балл на её положение в рейтинге. Убедиться в этом можно, например, открыв страницу рейтинга, посчитанного по «старой» формуле:

Мы видим, насколько близко находятся команды друг к другу. В такой ситуации, изменение за счёт какого-либо из факторов может очень сильно повлиять на положение команды. Отсюда можно сделать смелое заявление о том, что рейтинг, считаемый по «старой» формуле всё больше утрачивает предсказательную силу по отношению к сильным командам.
    Поэтому, как альтернатива имеющемуся положению вещей, примерно в 2010 году была начата разработка принципиально иной системы. Идеологической основой новой системы являлся и является учёт всех турниров, более продуманная (и более сложная — чудес не бывает — формула) и уход от инфляции за счёт введения возможности не только увеличения, но и уменьшения рейтинга после каждого турнира, если команда сыграла его хуже, чем на то рассчитывалось.

    Рассмотрим теперь каждую из формул в отдельности и поймём, хотя бы примерно, как подсчитывается рейтинг по старой и новой формуле.

    Начнём со старой. 

На каждом турнире сначала по убыванию сортируются рейтинги участвующих команд. Для сборных команд учитывается технический рейтинг (Это сумма рейтингов четверых лучших игроков команды, а рейтинг игрока команды равен ¼ от рейтинга команды в базовом составе которой он играет). Получаем список убывающих рейтингов: R1≥ R2≥ R3≥ …
 После этого для каждого места на турнире высчитывается «первичный» рейтинг:
где ti – коэффициент уменьшения влияния (геометрическая прогрессия с коэффициентом0,5: 1, 1/2, 1/4, 1/8...; ti=1/2i-1).

Например, первичный бонус за первое место будет D1=R1+0.5R2+0.25R3+...+0.00006103515625R15, за десятое —  D10=R10+0.5R11+0.25R12+...+0.00006103515625R24. Чудовищное число 0.00006103515625 — это всего лишь 2-14. R с индексом i здесь — рейтинг, стоящий на месте с номером i в предложенном ранее упорядоченном списке.
После этого осталось умножить первичный рейтинг на нормирующий коэффициент C, определяемый по последнему релизу рейтинга и подобранный таким образом, чтобы рейтинг за первое место на турнире, в котором приняли участие пятнадцать сильнейших команд мира, составлял ровно 2300 баллов. Довольно просто заметить, что этот коэффициент в точности равен C=2300/(R1+0.5R2+0.25R3+...+0.00006103515625R15). Нормирующий коэффициент один и тот же для всех турниров во временном промежутке между двумя релизами.
Таким образом, рейтинг команды, занявшей n-ое место определятся рейтингами команд с n-ой — по n+15-ую по силе среди принявших участие в турнире.
После всех этих дел и подсчётов, при релизе, происходящем раз в три месяца, для каждой команды суммируются рейтинги за пять лучших турниров (с ограничением, что среди них должно быть не более пяти синхронов) и получившееся число радостно объявляется рейтингом команды в этом релизе.
Ничто не вечно и со временем турнирный рейтинг закономерно тает. При подсчёте рейтинга бонусы, полученные больше года назад умножаются на 2/3. Больше двух — на 1/3. Больше трёх лет назад — вообще не учитывается. Что и правильно — рейтинг должен показывать объективную силу команды, а не её былые заслуги.
Всё довольно просто: занимаешь высокие места при игре в турнирах с командами большой силы — получаешь высокий рейтинг. Вытекающие проблемы тоже очевидны и обозначены выше: сложно играть с командами большой силы (особенно столь нужный для учёта в рейтинге турнир, не являющийся синхроном), если живёшь в Биробиджане (Биробиджанцы, без обид). И в другую сторону: когда играешь в Москве и области твоя команда выстреливает и побеждает на крупном турнире, на который, почему-то, не пришли Афина и Команда Губанова и получает не 2300, а 2298 очков рейтинга, а команда условных конкурентов выстреливает на турнире, на который пришли все команды из топ-15 и получает 2300. Все остальные синхроны вы играете хорошо и одинаково, но из-за недополучения этих двух баллов проигрываете конкурентам место в рейтинге, и испытываете фрустрацию. (Все ситуации гипотетические, все совпадения с реальностью случайны).

    С «новым» рейтингом всё чуть сложнее.

В нём происходит примерно то же самое, только в два этапа. Сначала все команды упорядочиваются по силе и высчитывается «прогнозируемый» балл, тот, который получила бы каждая из них, если бы они заняли места именно в таком порядке. Потом же для каждой команды считается турнирный балл, согласно её фактическому месту на сыгранном турнире. При обоих этих подсчётах используется формула «старого рейтинга», описанная в предыдущем пункте. А потом (следите за руками) от турнирного балла отнимается прогнозируемый. 
Получившийся результат не всегда будет положительным. Более того, его знак напрямую зависит от занятого командой места относительно прогнозируемого по результатам сравнения её рейтинга и рейтингов команд-соперниц. Если рассматриваемая команда превосходит себя, разность положительна, если играет слабее предсказанного ей места — отрицательна. Если занимает место, в точности совпадающее с предсказанным — имеющийся результат нулевой. Думали всё? Не тут то было, впереди ещё сложные манипуляции. Сначала, если сумма отрицательная, она умножается на 0.6. Чтобы «наказывать» за плохо сыгранный турнир не так сильно. Если положительная — ни на что не умножается, конфетку не отбирают. 
К получившемуся результату прибавляется добавочный бонус, высчитываемый по сложной формуле: 400*e^((B-2300)/350), где B — как раз турнирный балл. Про добавочный бонус следует сказать одно: обычно он весьма невелик. Зачем он нужен — чтобы команды, сыгравшие в точности на своём уровне получили хотя бы маленькую конфетку и не ушли с ощущением «можно было и не играть». Ну и чуть-чуть подсластить пилюлю тем, кто своё прогнозируемое высокое место не подтвердил. Но и это ещё не всё.
Число, полученное в результате всех этих манипуляций умножается на «коэффициент влияния турнира». Если турнир очный, что это единичка, если синхрон — то 0.5, что тоже интуитивно понятно, хороший результат на очном турнире ценится больше, чем на синхроне, где и ведущий свой и вообще стены помогают.
После чего, если команда играла не сборной, а обычной командой с базовым составом, а легионеров больше двух, рейтинг за турнир уменьшается: при трёх легионерах — в 1,5 раза; при четырёх — в 2 раза; при пяти — в 2,5 раза. Обоснованность этого шага даже объяснять не нужно.
Выдыхаем. Рейтинг, полученный за турнир подсчитан.
Релиз подводится каждую неделю и равен сумме имевшегося неделю назад рейтинга и рейтинга за все сыгранные за прошедшую неделю турниры.
Рейтинг, который давался командам изначально был высчитан из довольно сложных соображений, останавливаться на которых мы сейчас не будем. Довольно очевидно, что весь процесс напоминает, опять же, итерационные методы поиска истины, сортировки и всего подобного и чем дольше работает, тем больше отражает реальное положение дел.
Опять же, вся система интуитивно понятна и описывается простыми словами: играешь выше предсказанного места, превосходишь ожидания — получаешь плюсы и со временем от тебя уже ждут большего. Хуже предсказанного — получаешь минусы и на тебя после этого рассчитывают уже не так сильно.
Плюсы системы, как это ни дико звучит, совпадают с минусами. Да, в учёт идут все турниры. В старой системе можно было хорошо сыграть пять турниров за год и провалить двадцать пять других. Новая не простит подобной вольности. С одной стороны это неприятно и не даёт права на большое количество ошибок. С другой — более честно, поскольку о команде, которая проваливает двадцать турниров в году и хорошо играет пять, судить по этим пяти было бы нелогично. Ещё, за неудачно сыгранные турниры, команда получает минусы к рейтингу. В старой системе команда просто получала меньший плюс, в то время, как команды-конкуренты — больший. В итоге место плохо сыгравшей команды всё равно понижалось, но это было не так обидно с точки зрения бытовой психологии — в первом случае что-то давали, во втором отнимают. Зато взамен этого умозрительного минуса мы уходим от «дурного» накопления рейтинга, когда разница рейтинга у двух соседних команд снижается от релиза к релизу, пока не начинает достигать считанных единиц, как это происходит в старой версии.
    Здесь нужно оговориться, что «новый» рейтинг ещё официально не введён в эксплуатацию, положение о нём до сих пор не утверждено, но сайт исправно работает и подсчитывает формулу как нового, так и старого рейтинга. Организаторы турнира вправе использовать любой из них для отбора участников на свой турнир. Что до меня, то мне больше нравится новый, который принято называть балансным (старый, кстати, называется аддитивным), но это дело вкуса, конечно.
    Теперь же самый главный вопрос. Как ко всему этому относиться. Думаю, каждый сам  должен ответить на этот вопрос. Кого интересует моё мнение — озвучу его: «Никак». Балансный рейтинг хорош своей наглядностью, он показывает (лично мне, можно с ним не соглашаться), растёт команда или падает в своей силе. Есть довольно большое количество игроков, которые воспринимает все турниры ЧГК в совокупности, как большой мета-турнир, а рейтинг — как результат этого турнира. Им предлагается определиться, какая из формул им больше по душе, вникнуть в неё полностью и начать спорить с хранителями рейтинга о коэффициентах в формуле. Нет, серьёзно, некоторые так и делают, присоединяйтесь, наверняка это весело. 
Тем же, кто не хочет заниматься подобными вещами, а так же тем, кто промотал всю статью до предпоследнего абзаца предлагаю и дальше получать удовольствие от каждого вопроса, во взятии которого поучаствовал ваш мозг. Ну и сильно не смеяться над теми, для кого их порядковый номер в том или ином списке имеет такую большую важность, что они всерьёз задумываются над тем, чтобы не играть какой-либо турнир, чтобы не опуститься в синей или жёлтой табличке на одну строчку.
    За сим откланиваюсь. Помните, думать — это приятно. Самоутверждаться за счёт интеллектуальных игр — удел странных личностей. Придумывать формулы — занятие весёлое и занимательное, а трястись над своей славой, как царь Кощей над златом — довольно жалкое. Никого не хотел обидеть. Всех люблю.

Источники и душеполезные ссылки:


http://rating.chgk.info/index.php. Сайт рейтинга. Помимо всего прочего — огромная база данных о многом, что происходило в движении, когда вам ещё нравилась Сейлор-Меркурий. Думаю, будет неплохой находкой для начинающего кибер-археолога: проверьте, вдруг ваша мама тоже играла в ЧГК в студенчестве, а вы и не знали.
Переключение между аддитивной (старой) и балансной (новой) идеологиями происходит нажатием буковок А и Б слева сверху. Подскажу, что у аддитивной системы фон серо-синий, а балансной — жёлто-коричневый.
rating.chgk.info/documents/24.condition-new.doc. Положение о рейтинге спортивного ЧГК. Простое, приятное чтение на вечер.
http://tugarev.livejournal.com/9180.html. Описание балансной формулы. Поскольку в положение не утверждена, то и в качестве документа оформления не удостоилась. Кто прочитал, как определялся начальный рейтинг команд и понял это — пусть возьмёт с полки пирожок за усидчивость.
http://ru-chgk.livejournal.com/tag/Инфо: Рейтинг МАК. Спор, с котором рождается истина. Если у вас есть гениальное соображение насчёт рейтинга, предлагается перечитать все обсуждения, вероятно его ещё не высказали. Тогда с чистой совестью можно пойти капать на мозги уважаемым членам МАК и комиссии по рейтингу. Кстати, сделать это вы можете как раз в комментариях к записям с этим тегом. Или даже создать свою. (С осторожностью, сообщество модерируется).