Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Предложение по подсчету рейтинга игрока
#91
(04-25-2016, 07:03 PM)Admin Wrote:
Quote:Т.е. формулы как таковой еще нет, 

Формула есть. К ней нужно просто подобрать правильные значения коэффициентов.

Если это просто - почему не делаем ?
Если сложно - формула нам не подходит.

Чатланский разум крепнет Smile
Reply
#92
(04-25-2016, 07:03 PM)Admin Wrote:
Quote:Т.е. формулы как таковой еще нет, 

Формула есть. К ней нужно просто подобрать правильные значения коэффициентов.

Во-первых, нужно избавиться от десятых долей в значениях рейтинга. Как вариант, добавить коэффициент-константу, например, равной 10.
Во-вторых, подобрать такой вариант расчета коэффициента C, чтобы он оказывал влияние, меньшее, чем заработанные очки.

1) От десятых долей можно избавиться просто округляя получаемые значения до целых.
Понимаю - может получиться так, что сразу несколько человек после таких округлений, будут иметь одинаковые значения рейтинга.
2) А если взять константу = 10, то нас ждет другая неприятность... Например, прибавка к рейтингу составит не 5 очков, как в моем примере, а 50... не 2,5, а 25... Рейтинговая таблица потеряет свою стабильность. Одно поражение и вчерашний лидер упал на несколько мест. Кто-то выиграл и вдруг с 5 места вознесся на 1... Такие скачки совершенно не приемлемы...
Если наша формула допускает только 2 таких альтернативы (константа = 5 нам тоже не поможет), ни одна из которых нас не устраивает, значит надо строить другую формулу.
Reply
#93
Вот какое у меня предложение по формуле:

Rn = Ro + C + (W - We)*10

Rn - новый рейтинг
Ro - старый рейтинг. 
Начальный рейтинг игрока - 1000 ед.

C = (КaА-КbA)/(KaА+KbА) + (КaB-КbB)/(KaB+KbB) 

Где КaA - капитал игрока а в партии А, КbA - капитал игрока b в партии А
КaB - капитал игрока а в партии B, КbB - капитал игрока b в партии B

W - результат игры ( 2- победа, 1 - ничья, 0 - поражение)
We - ожидаемый результат игры. Вычисляется по фрмуле:

                   Ra - Rb / 400
We = 2 / ( 10                    + 1)

Ra - рейтинг игрока А
Rb - рейтинг игрока В

Ra - Rb / 400 - это показатель степени.

Чем хороша такая формула? 

1. Победитель гарантированно повышает свой рейтинг при любом соотношении капиталов
2. При ничье и равенстве капиталов (С=0) рейтинг более сильного игрока понижается, а более слабого - повышается.
3. Если равные по рейтингу игроки сыграют вничью, но в одной из партий у них капиталы будут примерно равны, а в другой один игрок сильно оторвётся от противника (C>>0), то его рейтинг вырастет, а рейтинг соперника упадёт.
4. Только очень большой перевес по капиталам в случае ничьей может уравновесить перевес по исходному рейтингу. Т.е. более сильный игрок, если сыграет вничью с более слабым должен очень сильно победить по капиталу, чтобы сохранить свой рейтинг.
5. Тут капиталы в обеих партиях суммируются - как завещал нам наш любимый Автор
6. Но суммируются не абсолютные, а относительные капиталы - таким образом учитываются масштабы партий.
Reply
#94
Поправочка - при результатах игры 2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка.
Администратор сайта "Игра "Акционер"
Reply
#95
(04-26-2016, 09:26 AM)Admin Wrote: Поправочка - при результатах игры  2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка.


То Admin:

Это единственное, что ты можешь сказать по поводу этой формулы?

Ты не видишь необходимости прокомментировать шесть пунктов, объединенных самонадеянным заголовком "Чем хороша эта формула"?
Reply
#96
(04-26-2016, 09:26 AM)Admin Wrote: Поправочка - при результатах игры  2- победа, 1 - ничья, 0 - поражение в формуле расчета ожидаемого результата в числителе должна быть двойка.

Подправил, спасибо!
Reply
#97
(04-25-2016, 06:37 PM)Alkonaft Wrote:
(04-25-2016, 05:59 PM)Зырянов Wrote: Строим таблицу.

За победу 2:О Игрок получает прибавку к рейтингу 5 очков (возьмем пока за основу эти очки).
Ещё, допустим, 0,7 очка (вряд ли больше) он может получить за крупную победу: например с разницей в 100 (200) тысяч и больше.
То есть в зависимости от суммы выигрыша он может получить от 0 до 0,7 дополнительных очков.
За ничью 1:1 с плюсом по капиталу Игрок получает прибавку не 5, а только 2,5 очка.
Ещё - в зависимости от суммы выигрыша - от 0 до 0,7 дополнительных очка.
Ровно на такие же значения будет уменьшаться его рейтинг при ничьей с минусом и при поражении 0:2.

Теперь в соперники нашего Игрока возьмем более слабого соперника (но не очень - это определяет разница их рейтингов).
За победу 2:0 Игрок получит уже не 5, а только 4,5 очка. Возможная добавка - от 0 до 0,65.
За ничью 1:1 с плюсом прибавка Игрока к рейтингу составит 2,25 очка. И еще от 0 до 0,65 за сумму выигрыша.
За ничью с минусом рейтинг игрока упадет на 2,75. И еще от 0 до 0,65 за сумму проигрыша.
За поражение 0:2 рейтинг Игрока упадет на 5,5 очков. И еще от 0 до 0,65 за сумму проигрыша.

Возьмём в соперники Игроку еще более слабого соперника (по разнице их рейтингов).
Победа 2:0 даст прибавку к рейтингу уже не 5 и не 4,5 а только 4 очка. Дополнительно от 0 до 0,6.
За ничью 1:1 с плюсом он получит уже только 2 очка. И дополнительно от 0 до 0,6.
За ничью 1:1 с минусом его рейтинг упадет на 3 очка. И дополнительно от 0 до 0,6.
За поражение 0:2 рейтинг упадет уже на 6 очков. И дополнительно от 0 до 0,6.

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

Т.е. формулы как таковой еще нет, и ее надо вывести из вышеописанных правил ?  На первый взгляд сложности не вижу.

Я тоже думаю, что большой сложности сделать формулу из описанных правил НЕТ... Но сам этого сделать не могу. Иначе давно эту формулу показал бы...
Reply
#98
Формулу может и не выведу с ходу, но автоматизировать подсчеты вроде ничего сложного.

Единственное, тут не описывается где грань "слабого" и "сильного" соперника. Какая величина рейтинга должна их отделять ? Или пропорционально сделать ?

5 очков базовых. +- поправка рейтинга.
Поправка рейтинга = модуль ((рейтинг1 - рейтинг2) /(5*100))

100 - с потолка взял

т.е. в этом примере - если разница в рейтинге 500, то победа (2:0) сильного игрока, даст ему +4 к рейту (-4 слабому). Победа слабого +6 (-6 сильному).
если разница в рейтинге 50, то победа (2:0) сильного игрока, даст ему +4,9 к рейту. Победа слабого +5,1.

Это я сходу изобразил,. коллективный разум меня поправит..
Reply
#99
Quote:За победу 2:О Игрок получает прибавку к рейтингу 5 очков (возьмем пока за основу эти очки).
Ещё, допустим, 0,7 очка (вряд ли больше) он может получить за крупную победу: например с разницей в 100 (200) тысяч и больше.
То есть в зависимости от суммы выигрыша он может получить от 0 до 0,7 дополнительных очков.
За ничью 1:1 с плюсом по капиталу Игрок получает прибавку не 5, а только 2,5 очка
Ещё - в зависимости от суммы выигрыша - от 0 до 0,7 дополнительных очка.
Ровно на такие же значения будет уменьшаться его рейтинг при ничьей с минусом и при поражении 0:2.

Теперь в соперники нашего Игрока возьмем более слабого соперника (но не очень - это определяет разница их рейтингов). 
За победу 2:0 Игрок получит уже не 5, а только 4,5 очка. Возможная добавка - от 0 до 0,65
За ничью 1:1 с плюсом прибавка Игрока к рейтингу составит 2,25 очка. И еще от 0 до 0,65 за сумму выигрыша.
За ничью с минусом рейтинг игрока упадет на 2,75. И еще от 0 до 0,65 за сумму проигрыша.
За поражение 0:2 рейтинг Игрока упадет на 5,5 очков. И еще от 0 до 0,65 за сумму проигрыша.

Возьмём в соперники Игроку еще более слабого соперника (по разнице их рейтингов).
Победа 2:0 даст прибавку к рейтингу уже не 5 и не 4,5 а только 4 очка. Дополнительно от 0 до 0,6.
За ничью 1:1 с плюсом он получит уже только 2 очка. И дополнительно от 0 до 0,6
За ничью 1:1 с минусом его рейтинг упадет на 3 очка. И дополнительно от 0 до 0,6.
За поражение 0:2 рейтинг упадет уже на 6 очков. И дополнительно от 0 до 0,6

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

В формуле Эло победитель увеличивает свой рейтинг на величину, пропорциональную 2-WE, где WE - ожидаемое количество очков в партии, зависящее от соотношения исходных рейтингов игроков. 
Если сильный игрок играет со слабым, то у сильного 1<WE<2, а у слабого 0<WE<1.

При ничье более сильный игрок теряет в рейтинге, а более слабый - выигрывает. Величина изменения пропорциональна разности WE и 1. 

Та формула, по которой я считал, плоха тем, что по ней получается, что если более сильный игрок сыграл со слабым вничью, но победил по капиталу, он всё равно теряет рейтинг, причём тем больше, чем с большим счётом он победил!  Поэтому я и придумал не умножать коэффициент С, определяющий победу по капиталу на (W-WE), а складывать с каким-то весом. Тогда победа в ничье по капиталу для более сильного игрока будет уравновешивать падение рейтинга при ничьей.


Пример: пусть у Васи был рейтинг 1200, а у Пети - 800.
Тогда ожидаемый исход игры для Васи 

            (800-1200) / 400                   (1200-900) / 400
We = 2 / ( 10                    + 1):2 / ( 10                    + 1)=2/1.1:2/11=1.8:0.18

Т.е. Вася в среднем играет с Петей со счётом 1.8 : 0.18

Предположим, они сыграли вничью. Тогда для Васи W-WE = 1 - 1.8 = -0.8
А для Пети W-WE = 1-0.18= 0.82

Если мы умножим эту разность на некоторую величину С, зависящую от соотношения капиталов Васи и Пети (не важно, отношения их или суммы), то Вася потеряет тем больше, чем больше С. Ведь формула такая:

Rновый = Rстарый + С*(W-WE)


Поэтому надо не умножать C на W-WE, а складывать их с весами:

Rновый = Rстарый + a*С+b*(W-WE)

Какие надо взять величины a и b - вопрос открытый.
Если a=0, то изменение рейтингов не будет зависеть от соотношения капиталов и получится чисто шахматный рейтинг.
Если b=0, то изменение рейтингов не будет зависеть от исходных рейтингов игроков, а только от соотношения капиталов.

Если надо, чтобы при победе 2:0 прирост рейтинга для равных игроков составлял 5 очков, 4.5 для более сильного и 6 для более слабого, это можно подобрать коэффициентом b.

Если надо, чтобы при ничье с плюсом прирост рейтинга для равных игроков составлял от 2.5 до 3.2 очков, от 2.25 до 2.9 для более сильного и от 2.75 до 3.45 для более слабого, это можно подобрать коэффициентом a.

Остаётся вопрос, как считать величину С.

Я предлагаю простую формулу: разность капиталов в каждой партии делится на их сумму и полученные величины складываются. Для победителя эта величина от 1 до 2, для побеждённого - от 0 до 1. 

Тогда, если в том же примере Вася выиграл по капиталу с крупным счётом, то С будет близко к 2 (допустим, 1.8), что уравновесит потерю во втором слагаемом: -0.8

Получится: Rновый = Rстарый + a*1.8-b*0.8  Если положить a=b=1, то рейтинг Васи вырастет на 1.
Reply
Господа!
объясните мне, глупому, пожалуйста на таком примере. он не из пальца высосан, и такие ситуации будут повторяться - когда придут другие опытные игроки.
я с господином Shora сыграл 5 игр, и только две выиграл. но - в начале он тоже по рейтингу считался "начинающим", хотя по факту таковым не являлся. и что же - мои победы, за которые вы все мне должны стоя аплодировать будут внесены в рейтинг как ничтожные, а мои поражения - как сокрушительное и позорное обрушение рейтинга?
и есчо - а не будет ли мне просче войти в игру с нуля под новым ником, и тогда благодати всякие и бонусы разные посыпяться на меня с небес? а то я тяну за собой карму всех игр неудачных, которые не всегда играл с вниманием предельным да с калькулятором инженерным.
пысы. я эти огромные формулы да коэфициенты сложные и так понять не могу, вот и не пробую, но принцип понять хотел бы.
Reply


Forum Jump:


Users browsing this thread: 5 Guest(s)