04-28-2016, 06:37 PM (This post was last modified: 04-28-2016, 09:48 PM by Зырянов.)
В игровом клубе "Своя игра" применялась примерно такая расчетная таблица - для определения изменений рейтинга (+ или -) в зависимости от результата игры.
Сказал "примерно", так как эту я наваял на скорую руку, как бы для нас... не как рабочий вариант, а как пример.
В клубе было 3 похожих варианта.
Разберемся с этой таблицей.
Зеленый квадрат слева - это диапазоны разницы значений рейтинга у соперников на момент внесения изменений.
Сверху такой же квадратик - это те диапазоны, которые были приняты у нас в ИКСИ.
В этой же таблице я диапазоны уменьшил, чтобы
1- показать, что таблицу можно очень легко трансформировать, по нашим нуждам
2- использовать не только первую строку таблицы, но и вторую, третью...
Что такое первая строка?
Это значения поправок к рейтингу в игре соперников, которые признаются условно равными. Как видим, их рейтинги не должны отличаться друг от друга более чем, на 20 пунктов.
Если разница этих значений больше 20, но меньше 40, то мы будем брать данные изменения их рейтингов из второй строки... И так далее.
Цифры внутри таблицы - это и есть поправки к рейтингу в зависимости от результата игры (2:0, ничья с плюсом или с минусом, 0:2). Таблица сориентирована на более сильного игрока (кроме 1 строки, естественно).
Изменение рейтинга его соперника - то же значение, но с противоположным знаком (не +, а - и наоборот).
Если он выиграл, то получит к рейтингу добавку - тем меньшую, чем больше будет превышение его рейтинга над соперником.
Если проиграл, его рейтинг потеряет - тем больше, чем больше превышение его рейтинга...
То же и при ничьих (плюсовых или минусовых).
Каждый цветной сектор кроме основных значений (жирным шрифтом) имеет и другие: их значения зависят от суммы выигранного (проигранного) капитала.
В клубе у нас было только две колонки - до 100 тысяч и более 100 тыс.
Здесь я просто показал возможность трансформировать таблицу под наши представления о том, на сколько сильно может влиять разница в капиталах игроков на изменения рейтингов. Не уверен, что нужна столь большая дифференциация. Но ее легко как уменьшить, так и увеличить.
Как работать с таблицей - думаю, понятно:
Пример 1: два равных игрока сыграли вничью, но разница капиталов составила более 100 и менее 200 тысяч. Смотрим первую строку. Победитель получит к рейтингу добавку = 6. Соперник получит -6.
Пример 2: более сильный игрок (его рейтинг выше рейтинга соперника на 50 очков) проиграл 0:2 с разницей меньше 50 тысяч. Смотрим третью строку. Наш игрок потеряет -12 от своего рейтинга. Соперник получит +12.
Здесь все предельно ясно и понятно. При необходимости легко трансформируется в любую нужную сторону.
И никаких "ожидаемых результатов" от Эло...
В следующем посте я покажу, как эта таблица "сработала" при изменениях рейтингов по результатам известных нам игр.
Известные нам результаты игр (увы, далеко не все, что были сыграны) показаны в следующей таблице.
В игры №12 и 40 я внес поправки (исправляя ошибки)... потому они аккуратно выделены...
Здесь же показано, как изменялся рейтинг наших игроков в зависимости от полученного результата (желтый сектор).
В игре 22 и 28 буква r - это Governor (я даже не понял, куда делось полное его имя...)
Здесь, конечно, трудно проследить за изменениями рейтинга каждого игрока.
Мы посмотрим на них в следующем посте. Я сделаю это позже, чтобы новый текст не "приклеился" к данному...
04-28-2016, 07:58 PM (This post was last modified: 04-28-2016, 09:19 PM by Зырянов.)
Верхняя таблица - это последовательное изменение рейтинга каждого из наших игроков.
Голубым цветом обозначено повышение рейтинга (победа или ничья с плюсом)
Коричневым - понижение рейтинга (поражение или ничья с минусом).
Здесь всё понятно.
Смотрим на маленькую табличку ниже.
Зеленая колонка - рейтинги игроков (от большего к меньшему), которые были у них после 40 учтенных игр.
Здесь же указано количество сыгранных партий каждым (партий, а не игр) и выигранных партий.
Теперь хочу обратить внимание на достаточно сильные повышения и понижения рейтинга после каждой игры.
Это не очень хорошо. Каждая новая игра, две-три игры нескольких человек могут в некоторых фрагментах рейт-таблицы постоянно тасовать игроков, меняя их местами. Таблица не очень стабильна.
Конечно, их можно было бы избежать, внеся изменения в расчетную таблицу рейтингов: просто уменьшить количество баллов за победу (не 10, а 5, например) и за ничью (не 5, а 2,5)... Но это неизбежно приведет к необходимости учитывать десятичные знаки в значениях рейтинга (1-2 после запятой). Тоже не очень хорошо.
Мы решили эту проблему таким образом.
Смотрим на желтую колонку.
Здесь даны тоже значения рейтинга, но... эти значения - среднее арифметическое последних пяти рейтингов, показанных в верхней таблице. Мы называли этот рейтинг табличным (именно он и вносился в таблицу рейтингов, которая демонстрировалась игрокам и считалась официальной). В отличие от предыдущих (как бы реальных) значений рейтинга, которые мы называли расчетными.
Что получилось в итоге?
В зеленой колонке разница между самым большим и минимальным рейтингом = 107,5.
В желтой колонке она же = 87.
То есть рейт-таблица как бы "ужалась". Одновременно с этим увеличивается стабильность таблицы. Прыжков по вертикали таблицы с места на место становится меньше.
Вместе с тем появляется эффект "инерции" рейтинга.
Кажется, что это плохо, не отражает реального положения вещей. Нет. Все находятся в одинаковом положении.
Кажется, что это плохо, если посмотреть на разницу расчетного и табличного рейтингов, например, Зырянова - ого, почти на 18 меньше... Обидно должно быть. Нет. Почему?
Он получит за эту "обиду" своеобразную компенсацию: после серии из 6 побед (включая плюсовые ничьи), рост его рейтинга получил такую сильную инерцию, что даже поражение в следующей игре (снижение расчетного рейтинга) приведет к росту его табличного рейтинга... пусть даже не такому большому, как при победе.
Допустим после поражения его расчетный рейтинг упадет на 10 пунктов (1044 - 10 = 1034). А табличный рейтинг при этом возрастет от 1025,8 до 1030,2.
Для слабых игроков табличный рейтинг тоже приятнее - он, как правило, выше расчетного. Правда, сила инерции от стабильного снижения расчетного рейтинга сработает и у них: после серии поражений одна победа все равно понизит их табличный рейтинг. Можно сказать и по-другому, более оптимистично: эта победа затормозит стремительно снижение рейтинга. А потом (новые победы) табличный рейтинг обретет тенденцию к росту. Тем более стабильную, чем больше будет новых побед.
Ну, посмотрим еще на самую нижнюю табличку. Там есть голубая колонка. Интереса ради я посчитал в ней табличный рейтинг, как среднее арифметическое трех последних расчетных рейтингов.
Справа, для сравнения указаны рейтинги, рассчитанные по какой-то формуле (не знаю ее варианта) и показанные Александром. Легкие расхождения в расстановке мест объясняю скорее всего тем, что он и я уитывали разное количество игр (у меня, кажется, учтено больше игр, штук на 5-6)... Возможны и какие-то погрешности в самой формуле.
Разница между максимальным и минимальным значением рейтинга не составляет и 20. Кажется, что его рейт-таблица будет более стабильна. Не уверен, но возможно. Но достигается это необходимостью учитывать 1 или даже 2 знака после запятой. Учтем: у нас показано всего 8 участников. А если увеличить их число до 20, до 30? Диапазон рейтингов не увеличился бы, но в него пришлось бы втиснуть всех... очень тесно станет в такой таблице.
В моих же таблицах можно вообще обойтись без запятой, округляя до целых значений, при их демонстрации (благо дело - в памяти компьютера эти знаки после запятой не пропадают для дальнейших расчетов). Не напугает меня и увеличение численности игроков: в моем диапазоне они все легко разместятся...
04-28-2016, 11:25 PM (This post was last modified: 04-28-2016, 11:36 PM by Зырянов.)
Зато здесь всё предельно просто и всем понятно...
Математику уважаю... формулы тоже...
Расчетная таблица (после ее согласованной корректировки) в виде формулы, наверное удобнее для программиста...
Я помню, что делал подобные таблицы для расчета морали игроков в одном футбольном менеджере...
Там нечто подобное нашей задаче было - мораль растет тем сильнее, чем более сильную команду одолели. И наоборот...
Так вот из моих таблиц программист делал формулу, которая в точности копировала все ее нюансы... Эта формула там до сих пор работает, уже лет около 10...
Он пробовал и меня научить делать такие формулы в экселе. С его помощью я одну такую формулу даже вывел для другой подобной задачи, но... начисто забыл всю эту технологию... просто не моё это...
Таблица замечательная, но в ней есть недостатки, которых нет в той формуле, что предложил я.
1. В твоей таблице учитывается только разность итоговых капиталов и даже не сама разность, а только 4 её ступеньки: свыше 200 000, от 100 000 до 200 000, от 50 000 до 100 000 и ниже 50 000. Но согласись, что разница в 50 000 для игры с итогом 35 000 : 85 000 это совсем не то же самое, что 1 050 000 : 1 000 000.
2. Опять же учитывается разность СУММ капиталов в 2 партиях игры, а они, как я неоднократно замечал, неравноценны.
3. В моей формуле (основанной на форуме Эло) все зависимости непрерывны, а это всегда лучше, чем ступенчатые функции. И если есть возможность выбора, всегда надо отдавать предпочтение им.
Ты никогда не сможешь логически объяснить, почему разность рейтингов до 20 пунктов надо учитывать так, а в 21 по-другому. Почему именно 20, а не 15?
Что касается легкости программирования, то программировать функцию проще, чем таблицу.
Я готов взять на себя труд подобрать в моей формуле коэффициенты a и b так, чтобы итоговый рейтинг был максимально близок к рейтингу, полученному по твоей таблице.
04-29-2016, 01:23 PM (This post was last modified: 04-29-2016, 02:23 PM by Зырянов.)
Ты меня ставишь в неловкое положение...
Я специально создал новую тему, чтобы уйти от бесплодного дискуса в двух других темах.
Я создал новую тему, чтобы
1- показать, как работала система поправок к рейтингу, которую я придумал для своих целей в безкомпьютерную эпоху, которая не позволяла прибегать к сложным формулам с возведением в степень, логарифмами и пр.
2- показать пример изменения рейтингов, который в принципе оправдал себя в течение 10 лет, если опустить некоторые негативы, сталкиваясь с которыми, в конечном итоге преодолевали...
3- показать некую методику апробации формул, которых уже несколько от Админа + твоя... (о методике ниже)
Но я не создавал эту тему для того, чтобы и здесь продолжать надоевшие всем споры о каких-то преимуществах отношений капиталов перед разницей капиталов, о выдуманной тобой "неравноценности" партий...
Я не создавал эту тему для того, чтобы обсуждать твою формулу, не зная даже, находится ли она в разработке Админом - ему, Творцу Сайта Сего, в конечном итоге решать, как он будет считать рейтинги и по какой формуле.
У Админа нет времени читать наши споры, которые, в конечном итоге, ему и адресованы. Потому я даже не спрашиваю у него об отношении к твоей формуле, о том насколько важно и нужно ли вообще её обсуждать.
Тем не менее постараюсь снабдить твои тезисы своими антитезисами.
(04-29-2016, 07:43 AM)Governor Wrote: 1. В твоей таблице учитывается только разность итоговых капиталов и даже не сама разность, а только 4 её ступеньки: свыше 200 000, от 100 000 до 200 000, от 50 000 до 100 000 и ниже 50 000. Но согласись, что разница в 50 000 для игры с итогом 35 000 : 85 000 это совсем не то же самое, что 1 050 000 : 1 000 000.
О ступеньках.
1) Говорил, что мы не уделяли столь много внимания суммам выигранного капитала. У нас было только 2 ступеньки: до 100 тысяч и более 100 тысяч, что называлось победой с крупным счетом. Всё! И я до сих пор уверен в том, что нет необходимости уделять выигранному капиталу столь много внимания... Кто-то считает это несправедливым? Пусть считает. А я скажу: на большом массиве игр все "несправедливости" взаимопогашаются. Сегодня ты у меня выиграл 100 тысяч, завтра я у тебя. Потом ты проиграл 200 тысяч Васе, а Петя выиграл у Васи 300 тысяч... и т.д.
2) да, в показанной расчетной таблице я показал 4 ступени... Мне они не нужны! Но зато ты, любитель формул, основываясь на этих 4 ступенях можешь вывести функцию (часть формулы). А она ликвидирует все эти ступени... Посмотри на маленький прикреплённый график и сделай нужную формула, вернее ту ее часть, которая будет учитывать разницу капиталов...
О "совсем не тоже самое"... другими словами, о "масштабе партий" высказывался ранее... если надо будет, то повторю... когда надо будет...
(04-29-2016, 07:43 AM)Governor Wrote: 2. Опять же учитывается разность СУММ капиталов в 2 партиях игры, а они, как я неоднократно замечал, неравноценны.
Повторяешься. Опять о масштабах партий...
Нет партий неравноценных! Они все равноценны, принося игроку победу или поражение, крупное или не очень.
А их "неравноценность" зависит от выбранной стратегии на игру, от расклада карт, от рисков, к которым готовы или не готовы ее участники, от везения или невезения, от глупости, в конце концов, одного из участников или обоих.
А в итоге мы имеем то, что имеем и суммируем полученные результаты.
(04-29-2016, 07:43 AM)Governor Wrote: 3. В моей формуле (основанной на форуме Эло) все зависимости непрерывны, а это всегда лучше, чем ступенчатые функции. И если есть возможность выбора, всегда надо отдавать предпочтение им.
Опять повторяешься... Опять о моей ступенчатости и твоей непрерывности.
Оторвись от моей ступенчатости и на основании значений, что есть на моих ступеньках, построй функцию (как еще одну составляющую формулы). Для этого просто посмотри на второй график (более крупный)... И будет тебе счастье.
Если при разнице в рейтингах = 21 поправка равна 9, а при этой же разнице = 41 поправка составит 8, то
легко определить (а формула это точно покажет), что при разнице = 31, поправка составит 8,5.
(04-29-2016, 07:43 AM)Governor Wrote: Ты никогда не сможешь логически объяснить, почему разность рейтингов до 20 пунктов надо учитывать так, а в 21 по-другому. Почему именно 20, а не 15?
Тебе не нравится 20? Забей в зеленую колонку расчетной таблицы диапазон в 15.
Не понравится 15? Заложи 10. Да хоть 5...
Только при 5, например (при 10 тоже)... тебе придется писать рейтинги с 2 или 3 знаками после запятой...
Говорил ранее, что у нас у клубе был забит в таблицу диапазон 30, 40 и даже 50... (см. изображения в моем 1 посте). И такие диапазоны себя оправдывали.
Только не забудь - изменение диапазонов будет менять функцию...
(04-29-2016, 07:43 AM)Governor Wrote: Что касается легкости программирования, то программировать функцию проще, чем таблицу.
Я готов взять на себя труд подобрать в моей формуле коэффициенты a и b так, чтобы итоговый рейтинг был максимально близок к рейтингу, полученному по твоей таблице.
1) Не спеши. Сначала убедись в том, что Админ готов взять в окончательную разработку именно твою формулу.
2) А не лучше ли вместо того, чтобы менять какие-то там коэффициенты в твоей формуле, построить нужные функции на основе моей расчетной таблицы? А в них будут учтены зависимости поправки к рейтингу и от разницы между рейтингами соперников, и от набранных сумм капиталов...
Только надо предложенную расчетную таблицу поправок привести к тем требованиям, которые нас интересуют.
Говорил в самом начале, что показал таблицу, как некий пример... не более. Хотя уверен, что он достаточно близок тому, что нас может интересовать.
Выбрать нужные диапазоны в разнице рейтингов, определиться с влиянием сумм выигранного капитала на величину поправки... и, конечно, с величиной самой поправки (за победу +/- 10 для равных соперников или 6 или 5...)
Знаю: тебя не устроит такая работа (создание формулы по моей таблице), так как нет в ней никаких отношений капиталов. Но и ты знай: я никогда не соглашусь на целесообразность этих отношений. И если тебе до сих пор не понятно мое такое к ним отношение, то я создам для этого отдельную тему, чтобы не замусоривать этими рассуждениями уже третью тему. Там и закончим, надеюсь, этот спор.
О методике создания формулы, о том как проверить отдаленные последствия внедрения той или иной формулы, я расскажу в следующем посте. Ибо этот уже превзошел разумные размеры.... Пардон! Тамже объясню, что за маленькая табличка находится внизу в Изображениях...
Governor, убедительная просьба: о неравноценности партий, об их "масштабах", об отношениях капиталов и пр. здесь больше не писать. Эту полемику в данной теме не поддержу... более того, как модератор, буду просто чистить тему. Но я готов продолжить с тобой этот разговор в другой теме. Я её создам... чуть позже.
Добавлю: Я очень рад, что легкий конфликт, между нами возникший, забыт...
Отлично! Похоже обсуждение решения для рейтинга начинает переходить в конструктивное русло. Предложен еще один вариант расчета, а это значит, что теперь есть с чем сравнивать первый. Очень хорошо, что произведен тестовый расчет на реальных данных двух турниров. Спасибо, Александр. Во-первых, отмечу, что формула Эло с логарифмом угадала первые три позиции. Смотрим закладку “рейтинг” https://docs.google.com/spreadsheets/d/1...sp=sharing
Gamer
Рейтинг ИКСИ
Рейтинг Эло
Shora
1052.8
1012.1
Зырянов
1033.7
1008.4
zaciek
1028.8
1003.9
Дальше пошла чехарда. Может ошибки во вводе данных в правой части, где указывается ожидаемый результат и старый рейтинг? Фиг знает... Лень проверять. Насчет того, учитывается ли ожидаемый результат в ИКСИ, Governor прав - учитывается неявно. Также, как и величина выигрыша (абсолютная). И да - рейтинг ИКСИ ступенчатый, а Эло - непрерывный.
Теперь плюсы - минусы вариантов:
Рейтинг ИКСИ
Плюсы - Готовое решение.
Минусы - Сложнее в реализации, чем формула Эло. Требуется хранить таблицы поправок. - Существует подпорка в виде усредненного рейтинга, которая странным образом влияет так, “что даже поражение игрока в следующей игре (снижение расчетного рейтинга) приведет к росту его табличного рейтинга”
Рейтинг Эло
Плюсы - Прост в реализации. - Нет эффекта “инерции”.
Минусы - Нет готового решения. Не подобраны подходящие поправки.
Идеальных решений не существует. Какой бы вариант расчета не был выбран в итоге, все равно найдутся те, кто будет недоволен теми или иными аспектами выбранной системы расчета. В принципе у нас есть время. Работы по реализации рейтинга в программе начнутся очень нескоро. А пока у вас есть возможность обкатать рейтинг ИКСИ в боевых условиях и попутно допилить формулу Эло (я не стал бы ее списывать со счетов - ведь можно и еще один рейтинг вести параллельно).
04-29-2016, 11:26 PM (This post was last modified: 04-29-2016, 11:39 PM by Зырянов.)
Очень интересное сообщение от Админа. О нём позже.
А пока я хочу закончить серию своих постов, в последнем из которых анонсировал тему этого сообщения.
О методике создания формулы, о том как проверить отдаленные последствия внедрения той или иной формулы
1. Обратим внимание на маленькую цветную табличку (под графиками) в конце предыдущего моего поста.
Это та же большая таблица расчета поправок к рейтингу, из которой удалено влияние на эти поправки капитала.
При необходимости можем поиграть с диапазонами разницы рейтингов или с самими цифрами внутри таблицы.
Но, допустим, нас устраивает в ней всё.
Смотрим на 1-ую колонку (2:0). И на более крупный график выше. Этот график характеризует зависимость изменения поправок к рейтингу при результате 2:0 от разницы между рейтингами соперников. График примитивный (прямая линия) и нет проблем сложить линейную формулу на его основании. Просто я давно забыл даже то, что в математике когда-то знал (да и знал немного).
Точно также строим графики для остальных трех колонок и описываем их формулами.
В итоге получим 4 формулы, которые, наверное, можно "сложить" в одну главную формулу...
Тут уж я полный профан. Потому предложу альтернативу, типа: если у нас победа 2:0, то поправку считаем по 1-й формуле, если ничья с плюсом - по 2-й, ничья с минусом - по 3-й, поражение 0:2 - по 4-й.
Но пусть кто-то знает, как из 4 формул сделать одну - главную: зависимость поправки от разницы рейтингов.
После этого обсудим те диапазоны в разнице капиталов, которые могут увеличить поправку к рейтингу (это те колонки, которые я удалил перед этим: до 50, более 50, более 100, более 200 тысяч).
Допустим, они нас устраивают. Рисуем график. Можно посмотреть на маленький график. Там тоже линейная функция. Но мне кажется, что логичнее там будет кривая... забыл, как называется... медленно поднимается и потом круто уходит вверх.
Повторяем все действия, показанные выше... цель та же получить формулу.
Можно усложнить себе задачу: предусмотреть, что чем больше разница между рейтингами, тем меньшей должна быть эта поправка. То есть понятно: опытному игроку легче выиграть крупную сумму у слабого игрока; потому и поощрять его за такую победу нужно меньше.
С усложнением или без него мы получим еще одну формулу-2: зависимость поправки от разницы капиталов.
И, кажется всё. Рейтинг новый = Рейтинг старый + главная формула + формула-2.
2. Допустим мы получили нужную нам формулу.
Проверили ее на 40 играх. Но остаются вопросы: а как она себя поведет после 200, после 1000 игр? Куда заведет? Какие значения рейтингов будут у лидеров к тому времени?
И как это проверить, если у нас только 40 учтенных игр?
Алконафт предлагал вводить в эксель-таблицы выдуманные результаты... Можно, но это долго и нудно.
Думаю, что можно просто скопировать первые 40 строк с введенными результатами игр и именами их участников и добавить их внизу... добавить не один раз, а 10 (получим результаты 400 игр) или 20 (800 игр). Конечно, лучше делать это вперемешку...
После этого остается посмотреть на конечные значения рейтингов каждого из 8 человек и понять, куда нас заведет та или иная формула.
3. Допустим кто-то не хочет создавать новые формулы, а хочет проверить один из вариантов, сделанный на основании формулы Эло.
Опять смотрим на маленькую цветную таблицу в предыдущем моем посте. Удаляем в ней внутреннее содержание (поправки к рейтингу).
После этого в расчетную эксель-таблицу с формулой вводим придуманные результаты игр, которые соответствуют параметрам каждой ячейки (можно даже без капиталов). И оцениваем те поправки к рейтингу, которые предложит нам формула. Сравниваем их с нашими предпочтениями.
Понятно, что потруднее будет проверить формулу, которая учитывает и разницу капиталов. Но тоже можно.
(04-29-2016, 11:26 PM)Зырянов Wrote: 2. Допустим мы получили нужную нам формулу.
Думаю, что можно просто скопировать первые 40 строк с введенными результатами игр и именами их участников и добавить их внизу... добавить не один раз, а 10 (получим результаты 400 игр) или 20 (800 игр). Конечно, лучше делать это вперемешку...
После этого остается посмотреть на конечные значения рейтингов каждого из 8 человек и понять, куда нас заведет та или иная формула.
Рандомным способом создаем десять тысяч люстр результатов с некоторыми границами.. сложности нет.
(04-30-2016, 06:58 AM)Alkonaft Wrote: Рандомным способом создаем десять тысяч люстр результатов с некоторыми границами.. сложности нет.
Так даже лучше... Наверное. Не важно, что я не знаю техники этого дела... Ты знаешь
А то при копировании Шора, Зырянов и Зациек будут всегда иметь позитивные результаты.
Правда, в этом есть и свой плюс, так как нам надо увидеть, как высоко поднимется рейтинг у успешных игроков, как сильно упадет рейтинг у наименее успешных. Или у тех, кто играл сначала слабо (много проигрывал), а потом свою игру усилил...
Это важно знать, чтобы понять - надо ли как-то ограничить прибавки к рейтингу... то есть начинать, например, не с 10 за победу равных, а с 7...
Думаю, что детали можно обсудить, когда дело дойдет до практики...