[вынес из http://www.braingames.ru/forum/index.php?showtopic=8661&pid=109664&st=0entry109664
© alan]
Что касается "лучшего", то, конечно, если считать индивидуальные рейтинги, то лучший выбор - WHR, вот пдфка для вкуривания:
https://www.remi-coulom.fr/WHR/WHR.pdf
Глико несложен по сравнению с WHR, но почему-то его не любят.
Эло - простейший в реализации из этих трех рейтинг, обкатанный поколениями.
Гошники (и не только) уже некоторое время используют WHR, шахматисты не перейдут никуда никогда, потому что... ну, шахматы - такая странная игра, где всем по фиг, что матожидание очков в турнире зависит от твоего номера в турнирной таблице, а матожидание в партии - от того, каким цветом ты играешь (и если убрать ничьи, то на топ-уровне там что-то типа 5:3 для шансов на победу). Если шахматные лидеры даже с этим не хотят бороться, то апгрейдить худо-бедно работающий рейтинг они не станут точно.
alan написал мне очень странный приват про то, что Эло вообще не соответствует игре, типа как в шахматный рейтинг съеденные фигуры считать. Это, конечно, вообще не так.
По порядку.
Во-первых, победа в шахматах сама по себе ничего не значит. Надо выиграть турнир, а в турнире надо побольше народу обыграть. Если взять круговую систему или ее любой аналог (а это турнир претендентов, многие топовые турниры, суперфинал чемпионата России и т.д.), то аналогия с магараджами полная: и там, и там берутся попарные результаты и суммируются (в шахматах еще умеют разрешать ситуации равенства набранных очков - ты в магараджах пока не дозрел до использования этого опыта). И рейтинг работает отлично при этом.
Далее.
Давай внимательно разберем твой пример.
> Игрок1 может набрать 10 баллов благодаря позиции игрока-10, и по 0 баллов благодаря всем остальным противникам. В то время как Игрок2 наберет по 1 баллу благодаря 5 противникам и по 0 баллов благодаря всем остальным. Итого Игрок1 получил в 2 раза больше баллов, но выиграл в 5 раз меньше раз.
Пусть амплитуда изменения рейтинга для ясности будет 20, т.е. за победу над равным получишь 10 очков (сам Арпад Эло завещал амплитуду 32, но это неважно).
Тогда игрок1 имеет равный рейтинг со всеми остальными (иначе не будет изменения 0, оно будет положительным или отрицательным) и равный с игроком-10. Он одну выиграл, скатал кучу ничьих в равном турнире - немножко рейтинга набрал. Хорошо.
Теперь игрок2. Он набрал по 1 баллу в 5 выигранных партиях - стало быть, у него запредельно выше рейтинг, если за победу он получает 1 (а за поражение теряет 19). Результат "победа" против столь низких по рейтингу соперников является высоковероятным.
В твой турнир он уже не особо вписывается, так как там, как мы выяснили, у всех рейтинга поровну, а у этого товарища значительно выше рейтинг, чем у 5 побежденных визави. И эта проблема вырастает еще сильнее, если там еще есть кто-то, с кем он набирает ноль. Это либо ничьи с равными, либо победа над соперниками, с которыми за победу положено около нуля - то есть за предыдущую историю набралось МОРЕ побед уже в одну калитку (потому что эту разницу надо было создать все уменьшающимися добавками, которые сейчас уже пришли к нулю).
Какой мы делаем вывод из твоего примера? Ну, во-первых, он не получился корректным, ситуация невозможна в принципе. Во-вторых, когда ты его подкорректируешь, тебе надо будет держать в голове тот факт, что если А набирает на Х 1 очко в случае победы, а Б набирает 10 на Х, то у А сейчас много-много-много больший рейтинг, и Б, показывая равный уровень игры, просто сокращает разрыв, и это правильно и хорошо.
> результаты отдельных недель и рейтинг не будут соответствовать
Так и есть, и это нормально. "Выстрелил" на первое место один раз, остальные разы играя в минус? Довольно странно оказаться на первом месте рейтинга, для него лучше подходят люди, которые стабильно играют в плюс (и, возможно, тоже бывали первыми).
Рейтинг - величина, сглаживающая и усредняющая выступление игрока за некоторый период. По истории рейтинга, понятно, будет виден пиковый перформанс, но не он будет определять итоговый рейтинг, а история в целом (и для Эло чем новее соревнования, тем больше фактический вклад).
> Систему Эло можно адаптировать для игры 1 против всех, если рассчитать вероятность, что игрок с рейтингом Х, играя против N игроков с рейтингами Х1,X2,...ХN займет место K.
Система Эло в одно действие дает матожидание количества набранных очков. Если сравнить это матожидание у всех игроков, получишь результат.
Кстати, Глико делает это лучше (давая еще дисперсию), но пока надо начать с понимания (высказанного уже не только мной, кстати), что Эло подходит магараджам вполне.
Owen, я устал спорить. Ощущение, что ты придираешься к словам и не хочешь видеть суть. Я не могу рассмотреть все возможные системы 1 на 1, со всеми возможными рейтингами игроков итд.
Победить максимальное число участников на неделе и набрать максимальное число баллов на неделе - это разные задачи, и ход позволяющий победить в первой часто не будет побеждать во второй, и наоборот.
Рейтинг за все игры и рейтинг за неделю/турнир (т.е. баллы) должны поощрять использование одной и той же стратегии, а не разных. Если ИгрокА Всегда набирает большее число баллов за неделю чем ИгрокБ, то он гарантированно должен иметь большее количество рейтинга, чем ИгрокБ. Система Эло это не обеспечивает.
Если Магараджа и Король не достаточно яркий пример, чтобы сразу понять в чем отличие от шахматных турниров, то вот одна из следующих вариаций игры, которые я планирую:
Ваша задача — набрать максимальное количество балов, разместив на шахматной доске произвольное количество королей и пешек. Единственное ограничение - ваши фигуры не могут стоять в соседних клетках.
За каждого размещенного вами короля вы получите число баллов, равное числу других игроков, НЕ разместивших на данной клетке пешки.
За каждого короля, размещенного другими игроками на клетках, где стоят ваши пешки, вы получите по 5 баллов.
> в) хотелось бы чтобы все же рейтинг поощрял играть и оставаться на сайте, а не вызывал тревогу потери баллов.
Вот это серьезный аргумент против всех видов игровых рейтингов, рассчитываемых по попарным встречам, так как там как раз потеря рейтинга - вещь нормальная.
Путей решения два.
Первый: оставить Эло, вычитать инфляционную поправку за каждый сыгранный турнир с тех, кто не участвовал (и можно что-то прибавлять тем, кто участвовал - но нелинейно, с капом).
Второй: отказаться от рейтинга, который может уменьшиться, оставить такой, который может только расти. Тут еще раз проблема текущего рейтинга, связанная с демотивирующей недосягаемостью лидеров для тех, кто подключится захода с пятого-десятого.
> Если ИгрокА Всегда набирает большее число баллов за неделю чем ИгрокБ, то он гарантированно должен иметь большее количество рейтинга, чем ИгрокБ. Система Эло это не обеспечивает.
Чтобы это утверждать, тебе надо построить непротиворечивый контрпример. Ты не справился с первого раза, и нет интуитивных оснований утверждать, что это вообще возможно.
Упрощаю постановку задачи. А и Б участвуют в одной и той же серии из 10 турниров с одними и теми же соперниками, у всех стартовый рейтинг одинаков. Я утверждаю, что из того, что А все турниры набирал больше очков, чем Б, следует, что у А будет выше рейтинг Эло, чем у Б.
> Победить максимальное число участников на неделе и набрать максимальное число баллов на неделе - это разные задачи
Ты что?! Они математически идентичны.
Победить максимальное число игроков - это максимизировать разницу между "выигрышами" (ты побил короля соперника, он не побил твоего короля) и "проигрышами" (твоего короля побили, ты короля не побил).
Открываем скобки, группируем слагаемые, получаем максимизируемую величину "количество побитых тобой королей минус количество побивших твоего короля".
Для других игр надо будет думать над другими рейтингами, будет день - будет пища.
Добавлю еще вот что.
Надо понимать, что выражение "Эло поощряет обыгрывать тех, у кого рейтинг выше" не вполне корректно. Проигрыш от выигрыша разделяет амплитуда, если ты выиграл и получишь x, то при проигрыше получишь x-амплитуду. То, что обыгрывание сильного дает больше очков рейтинга, имеет обратную сторону медали: проигрыш слабому отнимет тоже больше очков рейтинга.
Если у тебя при рейтинге R0 есть N соперников с рейтингами R1..RN, ты набираешь против них k очков (0<= k <= N), то неважно, на ком конкретно ты какие очки набрал, конечный твой рейтинг будет зависеть только от R0, набора R1..RN и k, но не от частных результатов партий. Это математика.
Упрощенно, если у тебя один соперник с высоким рейтингом и один с низким, то ты получишь тождественное изменение рейтинга в обоих случаях: обыграв сильного и проиграв слабому и обыграв слабого и проиграв сильному.
Надеюсь, ты учитываешь этот факт в своих рассуждениях.
> Я не справился, потому что ты взял мой контрпример, назвал его невозможным
Потому что ты построил невозможный контрпример. Приведи конкретные стартовые рейтинги в турнире и попарные результаты, я тебе все посчитаю - и вместе посмотрим. Но один турнир не должен быть показателен, какой смысл считать какое-либо усреднение, если мы хотим, чтобы выигравший последний турнир всегда был топ-1 в рейтинге, грубо говоря?
А вот если мы говорим о серии турниров, то мне совсем не очевидно, что построение контрпримера в тех простых рамках, которые я задал, вообще возможно.
Смотри.
Тезис номер один, который, мне кажется, важнее всего остального, написанного ниже, заключается в том, что игры и эта вся движуха - это круто, ты большой молодец и респект тебе за то, что ты это замутил. Если тебя раздражает этот спор, я готов заткнуться и никогда про рейтинги больше не писать, делай, как считаешь нужным. Моя цель в этом споре - сделать мир лучше, но если единственным результатом станет твое раздражение, то ну его на хрен, этот спор.
Далее. То, как рейтинг считается сейчас (не результат выступления, который выглядит идеально, а именно кумулятивная по конкурсам штука), мне представляется просто ужасным. Недостатки я писал выше.
Продолжаю. Рейтинг для игр стоит обдумать заранее, и мой опыт внедрения рейтингов (а я, кстати, состою в комиссии по рейтингам международной федерации рэндзю и отдельно состою в комиссии по разрядам и рейтингам ассоциации рэндзистов России, т.е. имею дело с математикой этого дела с завидной регулярностью уже много лет), так вот, мой опыт говорит, что изобретать велосипед не нужно, все изобретено до нас, и Эло будет как минимум неплох. И, кстати, адаптировать Эло (Глико, WHR) под нетривиальные игры типа игры с королями и пешками вполне реально и не так уж сложно.
Ну вот. А все портянки выше - это крестовый поход на мельницы, мне почему-то представляется, что ты не имел дела с реальной реализацией рейтинга Эло, не очень представляешь, как он работает, и у тебя есть иллюзии или недопонимание. Вот против этого недопонимания я и взметнулся, потому что речь о чисто математических фактах.
Уважаемые админы , давайте не будем ссориться.
1. Алан молодец, он по собственной инициативе в свое время, как он считает нужным сделал игру. И планирует сделать еще.
2. Оуэн, уважая твой опыт в рейтингах и турнирах, я хотел бы попросить тебя быть немного мягче в высказываниях, учитывая именно "желание сделать мир лучше".
Возможго имеет сиысл сделать "рейтинговую" песочницу с пользовательскими настройками
Давай есть слона по частям, сначала надо придумать рейтинг, который хотя бы с магараджами будет нормально работать. Тут п.1 неактуален, п.2 неактуален (всегда 0<= k <= N), сумма нулевая.
Эло обобщается без проблем и на матчевую игру. Так, если можно набрать от -5 до 5, то есть два пути, можно (из той же функции) вытаскивать вероятности для исходов, а можно давать пропорционально, при амплитуде 32 и равных рейтингах давать +16 за +5, +12.8 за +4, +3.2 за +1.
Вот асимметрия в исходах (неприводимость к нулевой сумме) может быть проблемой, я подумаю, как с этим бороться.
Вообще, если думать про рейтинги, то надо бы сделать следующее.
1. Выписать максимально формализованные требования к математике, каким требованиям должен удовлетворять рейтинг. Нужна ли нулевая сумма или растущий ОК? Как формализовать наше желание "подсаживать" игроков на игру? Как должен вести себя рейтинг пропустившего неделю? Ну и так далее.
2. Выписать грядущие игры, чтобы было понимание, с чем придется столкнуться.
Если придти к согласию по первому пункту, остальное - дело техники.
Прикольно, я это писал, когда последними словами в теме были "но не факт".
А дальше в одном направлении думаем.
> б) Каждый из них может набрать произвольное целое число баллов. В известных теоретических пределах от Bmin до Bmax, однако Bmin и Bmax меняются каждый матч.
Вот тут есть некоторая сложность, лучше бы, наверное, знать, как для данной игры очки распределяются. И чтобы понимать про возможность нулевой суммы (и какие телодвижения надо предпринять), и вообще.
Есть одна штука, которая меня смущает.
Ты после магарадж запустишь какие-нибудь пешки с королями, коней, а то и вообще какую-нибудь числовую игру, скажем. И тут у меня два вопроса. Первый такой: а что, в магарадж будет уже не поиграть? Может, экстенсивно развивать направление, а не сменой жанра каждую неделю? И тебе это будет проще (если процесс полностью автоматизирован), и нам больше развлекухи.
Второй такой: корректно ли считать в один и тот же рейтинг много разных игр? Я не знаю, какие идеи роятся в тебе, текущие магараджи выглядят вполне однородно, но могут быть и игры на совсем другие навыки. И, возможно, лучше бы для них отдельный рейтинг (отдельные рейтинги), нет?