Massive Assault
http://www.massiveassaultnetwork.com/forum/

Формулы Глико - в студию!
http://www.massiveassaultnetwork.com/forum/viewtopic.php?f=40&t=25384
Page 1 of 2

Author:  zartak [ Tue Dec 15, 2009 6:46 am ]
Post subject:  Формулы Глико - в студию!

Давно стоит вопрос о "странностях" расчета очков за выигрыш и проигрыш (см. viewtopic.php?f=40&t=25051 и рейтинг Янниума :) )
Вопрос наверно к Jedi_Knight: можно ли опубликовать формулы Глико, заложенные в игре? Можно сами формулы, можно часть кода (извлечем их сами).

P.S. Думаю, получив формулы узнаем много интересного :wink:

Author:  BuKTOP [ Tue Dec 15, 2009 8:54 am ]
Post subject:  Re: Формулы Глико - в студию!

Я примерно представляю себе эту формулу. И если честно никаких "странностей" в расчёте очков за проигрыш и выигрыш в тех случаях не было. В этой формуле очень большое значение имеет рейтинг RD- чем он больше, тем больше очков ты получаешь в случае победы, и вместе с тем больше очков теряешь в случае поражения. И следовательно ,чем он меньше ( потолок равен 90 меньше не бывает), тем меньше очков ты получаешь в случае победы и меньше теряешь в случае поражения. Величина этого рейтинга зависит от частоты завершения игр . Чем чаще игрок завершает игры, тем этот рейтинг ниже и ,следовательно, чем он ( игрок ) их завершает реже тем он ( рейтинг) выше. При этом можно предположить следующее - чем у игрока меньше игр, тем выше у него этот рейтинг.

Author:  BuKTOP [ Tue Dec 15, 2009 9:51 am ]
Post subject:  Re: Формулы Глико - в студию!

В общем нашёл я описание этой системы. Хотел закинуть всю статью сюда, но формулы почему-то не закидываются. ссылка на статью ; http://www.gambler.ru/tr/description/gliko.html

Author:  BuKTOP [ Tue Dec 15, 2009 10:25 am ]
Post subject:  Re: Формулы Глико - в студию!

Система рейтингования Глико.
Профессор Марк Е. Гликман
Бостонский Университет
Июнь 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, и б) он проиграл игроку, чей рейтинг не заслуживает доверия, и потому о его собственной игровой силе могут быть сделаны лишь небольшие догадки.

Хоть большинство ситуаций не столь экстремальны, мне кажется, что в систему ранжирования полезно включить меру достоверности чьего-либо рейтинга. Потому-то система Глико и превосходит систему Эло, что вычисляет не только рейтинг R, который может быть представлен, как "наилучшая догадка" о чьей-либо игровой силе, но и "рейтинговое отклонение" (RD) (в статистической терминологии, стандартное отклонение), которое измеряет неопределенность рейтинга. Высокие RD отвечают ненадежным рейтингам, указывая, что игрок выступает не часто или что игрок участвовал лишь в небольшом количестве игр. Низкий RD указывает на то, что игрок постоянно принимает участие в турнирах.

В системе Глико игровой рейтинг изменяется только по прошествии игр, но его RD изменяется и после окончания игры, и по прошествии времени, в течение которого игрок не принимал участия в турнирах. Одним из свойств Системы является то, что сыгранные матчи всегда уменьшают RD игрока, а время, проведенное вне турниров, всегда его увеличивает. Смысл этого заключается в том, что чем больше сыграно игр, тем больше информации о способностях игрока получено, и тем точнее становится рейтинг. Время идет, и мы начинаем сомневаться в силе игрока, и это находит свое отражение в возрастании RD.

Обратите внимание, что в системе Глико изменения в рейтинге не столь сбалансированы, как это есть в системе Эло. Если рейтинг одного игрока возрос на x очков, то совсем необязательно, что рейтинг его соперника уменьшится на те же x очков. Фактически в системе Глико количество очков, на которое уменьшится рейтинг соперника, регулируется значениями RD обоих игроков.

Поскольку игрок в системе Глико имеет и рейтинг, и RD, то обычно более информативно описать силу игрока в виде интервала (нежели просто указать его значение). Одним из путей является создание 95% доверительного интервала. Наименьшим значением интервала является рейтинг игрока минус двойной RD, а наивысшим значением является рейтинг игрока плюс двойной RD. Так, например, если чей-либо рейтинг равен 1850 и RD равно 50, то интервал будет простираться между 1750 и 1950. Мы можем сказать тогда, что мы на 95% уверены, что реальная сила игрока лежит находится между 1750 и 1950. Если у игрока низкий RD, то интервал будет уже, и мы будем на 95% уверены в реальной силе игрока в меньшем интервале значений.

Формулы:

Чтобы применить рейтинговый алгоритм, будем считать, что игры внутри "рейтингового периода" происходят одновременно. Период этот может быть и несколько месяцев, и одна минута. В первом случае берутся рейтинги и RD игроков на начало рейтингового периода, затем рассмотриваются исходы встреч, и в конце периода вычисляются обновленные рейтинги и RD (которые потом в свою очередь будут использованы как начальные рейтинги и RD для последующего рейтингового периода). Когда период равен минуте, рейтинги и RD будут обновляются на поматчевой основе (именно этой системой пользуется FICS). Система Глико работает наилучшим образом, когда число игр в рейтинговом периоде невелико, скажем в среднем 5-10 на одного игрока за период. Длина времени рейтингового периода есть воля администратора.

Шаг 1. Определим рейтинг и RD для каждого игрока в начале рейтингового периода.

(а) Игрок еще не включенный в рейтинги получает 1500 очков рейтинга и RD, равный 350.
(б) В противном случае, используя наипоследнейший рейтинг, и вычислив новый RD из старого RD (RDold) по формуле: Image

где t - число рейтинговых периодов со дня последней игры (т.е. если ранжируемый играл в самом последнем из рейтинговых периодов, то t = 1), а c является константой, регулирующей увеличение неопределенности со временем. Выбор c мы обсудим чуть ниже. Вышеописанная формула гарантирует, что RD в начале рейтингового периода никогда не будет больше 350 - значения RD для необсчитанного игрока.

Шаг 2. Для обновления рейтинга каждого игрока по отдельности выполняются следующие вычисления:

Предположим, что рейтинг игрока перед началом рейтингового периода равен r, и отклонение рейтинга равно RD. Допустим, что рейтинги m соперников перед началом того же рейтингового периода равны r1, r2, ..., rm и рейтинговые отклонения RD1, RD2, ..., RDm. Также допустим, что s1, s2, ... , sm - это исходы встреч с каждым из соперников, и они могут принимать значения либо 1, 0.5 или 0 соответственно в случае победы, ничьей или поражения. Заметим, что несколько игр против одного и того же соперника трактуются, как игры против разных соперников с одинаковыми рейтингами и RD.

Пусть r' и RD' означают рейтинги и рейтинговые отклонения на момент окончания рейтингового периода. Тогда формулы обновления рейтинга и рейтинговых отклонений примут следующий вид:
Image
где
Image

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

Пример:

Для демонстрации Шага 2 предположим, что игрок с рейтингом в 1500 сыграл матчи против 1400, 1550 и 1700, выиграв первую встречу и проиграв две оставшиеся. Предположим, что отклонение рейтинга этого игрока равно 200, а у его оппонентов 30, 100, и 300 соответственно.

Тогда получим:
j rj RDj gj Ej исход (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

Мы можем посчитать
Image

отсюда имеем
Image
и
Image

Замечания:

Значение c используемое на шаге 1(б) может быть определено либо путем анализа данных (но это может потребовать значительных вычислительных затрат), либо определяя – сколько времени (в единицах рейтинговых периодов) потребуется, чтобы рейтинг типичного игрока стал таким же неопределенным, как у игрока, не включенного в рейтинг. Для демонстрации вычислений, которые могут случиться в результате этого подхода, предположим, что типичный игрок имеет RD, равное 50, рейтинговый период в две недели, и предполагается, что чуть меньше двух лет (96 недель) потребуется для того, чтобы рейтинг типичного игрока стал таким же неопределенным, как и "рейтинг" неранжируемого игрока. Необходимое время будет равняться t = 48 рейтинговых периодов (48 2-недельных периодов). Мы хотим найти такое c, чтобы:

Image

В данном случае должно быть использовано с = 50

Author:  zartak [ Tue Dec 15, 2009 11:33 am ]
Post subject:  Re: Формулы Глико - в студию!

BuKTOP wrote:
очень большое значение имеет рейтинг RD- чем он больше, тем больше очков ты получаешь в случае победы, и вместе с тем больше очков теряешь в случае поражения

Да, вот он - источник странностей рейтинга! Это многое объясняет :)

Зартак проведет математические расчеты и сообщит вам о результатах...

Author:  igor54 [ Tue Dec 15, 2009 12:56 pm ]
Post subject:  Re: Формулы Глико - в студию!

zartak wrote:
BuKTOP wrote:
очень большое значение имеет рейтинг RD- чем он больше, тем больше очков ты получаешь в случае победы, и вместе с тем больше очков теряешь в случае поражения

Да, вот он - источник странностей рейтинга! Это многое объясняет :)

Зартак проведет математические расчеты и сообщит вам о результатах...

впечатлил

Author:  sapsan [ Tue Dec 15, 2009 2:14 pm ]
Post subject:  Re: Формулы Глико - в студию!

Два предложения:
1. Ввести альтернативный рейтинг, например, TrueSkill.
2. Ввести "турнирный" рейтинг.
Где-нибудь на сайте/форуме сделать страничку, где бы эти рейтинги были показаны.
И чем раньше, тем лучше, все-равно мы от этого никуда не уйдем.
P.S. А господ, развлекающихся накачкой глико "а ля янниум-валла" - штрафовать в трехкратном размере - мало им не покажется :o (конечно, если точно доказаны махинации)...

Author:  zartak [ Tue Dec 15, 2009 2:49 pm ]
Post subject:  Re: Формулы Глико - в студию!

Зартак повычислял очки за выигрыш согласно официальной странице проф. Гликмана (http://math.bu.edu/people/mg/glicko/gli ... licko.html) для нескольких конкретных игр и сравнил с результатами всевидящего Ока. Цифры сильно не сходятся, потому что явно внесены модификации относительно оригинальной Глико:

В формуле переменной g(RD): в знаменателе экспоненты явно не 400 стоит, а несколько тысяч. В результате больший разброс игроков по очкам. В МАНе уровень чемпионов - 6тыс, а в системе Эло (на которой базируется Глико) сам Каспаров имеет порядка 2800.

Также введен множитель, отвечающий за размер карты (Швейцария:Микронезия = 6,35:1)

Для дальнейшего анализа требуется код формул, заложенных в МАНе

Рекомендации Зартака как сделать рейтинг Глико отвечающим реальности: (эдак для МАНа 3го :) )

А) Ввести систему Глико-2 /правда там формулы более замороченные http://math.bu.edu/people/mg/glicko/glicko2.doc/example.html

Б) Изменить параметр текущей Глико-1: Марк Гликман настоятельно рекомендует установить "rating period" в 5-10игр. Иными словами рейтинг должен обновляться каждые 5-10 выигрышей/проигрышей, а не после каждой игры как сейчас

И на примере игр yannium vs walla можно увидеть (во всевидящем оке) важность параметра RD.

Сначала Янниум выжидает пару месяцев (ни с кем не играя), наращивая свой RD. Идет серия игр с Валлой, и обратите внимание - максимум "сливок" Янниум снимает в самых первых выиграшах.
Его RD падает, а вместе с ним и очки за выигрыш. Янниум вовремя останавливается (иначе проигрыш Валлы будет больше выигрыша Янниума) и снова впадает в "спячку".
А вот Валла регулярно играет, поэтому его RD всегда близок к минимуму в 90, чтобы снизить потерю очков за проигрыш.

Author:  Jedi_Knight [ Tue Dec 15, 2009 3:37 pm ]
Post subject:  Re: Формулы Глико - в студию!

zartak
введём сразу trueskill.

Author:  Jedi_Knight [ Tue Dec 15, 2009 4:56 pm ]
Post subject:  Re: Формулы Глико - в студию!

Я исправил янниума. : - ) только ему не говорите, он так и будет видеть себя на втором месте, пусть дальше рейтинг у валлы cливает.

Author:  sapsan [ Tue Dec 15, 2009 5:35 pm ]
Post subject:  Re: Формулы Глико - в студию!

666

Author:  zartak [ Wed Dec 16, 2009 2:38 am ]
Post subject:  Re: Формулы Глико - в студию!

Jedi_Knight wrote:
введём сразу trueskill.

Trueskill разработан специально для мультиплеерных игр (например deathmatch в Halo) в отличие от Глико (а в МАНе игра идет только один-на-один):
Quote:
So, what is the difference to the Glicko system? Glicko was developed as an extension of ELO and was thus naturally limited to two player matches which end in either win or loss. Glicko cannot update skill levels of players if they compete in multi-player events or even in teams.

[http://research.microsoft.com/en-us/projects/trueskill/]
Мнение Зартака: толку переходить на Trueskill? :) Лучше доработать Glicko (перейти на Glicko-2, обновлять рейтинг после серии игр).

Author:  alaSTORM_XP [ Wed Dec 16, 2009 3:59 am ]
Post subject:  Re: Формулы Глико - в студию!

Хочется добавить вот что. Какая бы хорошая ни была система рейтинга, ее следует очень тесно интегрировать с игрой.

Поясню. Предложенные системы используют такие понятия как "победа", "ничья" и "поражение". Но в нашем случае, для определения силы игрока, например, победа по балансу 100% (настоящая, трудовая) и победа по таймауту (без единого хода) должны иметь различные значения.

Так что, предлагаю подумать над тем, чтобы учитывать дополнительные параметры, такие как Количество ходов, Сдача оппонента, Таймаут, Поражение по балансу и прочие. Причем учитывать их лучше все вместе.

Author:  sapsan [ Thu Dec 17, 2009 4:25 am ]
Post subject:  Re: Формулы Глико - в студию!

Одна цитата:

...Для подсчета шахматного рейтинга используется система профессора Глико.

Основное ее отличие от рейтинга Эло заключается в том, что в нее введен коэффициент статистической погрешности (rating deviation), который зависит от времени бездействия, не активности шахматиста. Чем больше он не играл, тем больше эта погрешность. Эта погрешность индивидуальна для каждого игрока. Поэтому величина приращения рейтинга после партии у игроков может отличаться. У игрока, который не играл дольше это приращение будет больше...

Author:  Le_Roy [ Thu Dec 17, 2009 4:33 am ]
Post subject:  Re: Формулы Глико - в студию!

Очень тонкое замечание,Сапсан.Система не распознает различие между реально не играющим человеком и игроком,проводящим длительные матчи,будь то по лимиту,либо просто затяжные.Поэтому этот РД и "колбасит" рейтинг не пойми как.

Author:  sapsan [ Thu Dec 17, 2009 5:58 am ]
Post subject:  Re: Формулы Глико - в студию!

И еще один момент.
Рейтинги постоянно растут.
Нет, речь не о повышении мастерства и т. п., речь о постоянном росте планки, потолка...
А ведь в системе Эло этого нет, там даже определенному уровню рейтинга соответствует вполне определенный спортивный разряд...

В конце августа подбирал материал для небольшого исследования :wink: , используя данные Всевидящего Ока. Вот пара диаграмм.
Attachment:
6.JPG
6.JPG [ 31.1 KiB | Viewed 44473 times ]

По оси х - десятидневки, у - глико рейтинг игрока, данные на конец августа, тип линии тренда, для примера, взят линейный ( что не факт :) )... При логарифмическом типе линии тренда - тот же рост...
Attachment:
11.jpg
11.jpg [ 35.17 KiB | Viewed 44473 times ]

Author:  Jedi_Knight [ Thu Dec 17, 2009 8:10 am ]
Post subject:  Re: Формулы Глико - в студию!

sapsan
у нас модифицированный глико, там как-то учитывается макс. текущий рейтинг. ииз-за этого оно растёт.

Author:  sapsan [ Thu Dec 17, 2009 8:25 am ]
Post subject:  Re: Формулы Глико - в студию!

Короче, получается, рейтинг сам себя поднимает?! Спада я не замечал...
Просто идет элементарная девальвация рейтинга - 3000 очков глико сейчас и год назад - две большие разницы...
Неправильно это, не должно так быть...

Author:  zartak [ Thu Dec 17, 2009 3:59 pm ]
Post subject:  Re: Формулы Глико - в студию!

Зартак считает: дефляция рейтинга (как в Эло) еще хуже. Инфляция неизбежное зло, и хорошо когда она на небольшом уровне :)

Author:  AHgpeu [ Fri Dec 18, 2009 12:57 am ]
Post subject:  Re: Формулы Глико - в студию!

Рейтинг - это шкала,эталон,по которой определяются уровни мастерства игроков.Очевидно,что эталон не должен изменяться,иначе он не сможет выполнять свою функцию.

Вот,к примеру,шахматный рейтинг:
* более 2700 — Супер-гроссмейстер, претендующий на звание чемпиона мира по шахматам;
* 2500—2699 — гроссмейстер;
* 2400—2499 — международный мастер;
* 2200—2399 — национальный мастер;
* 2000—2199 — кандидат в мастера;
* 1800—1999 — первый разряд;
* 1600—1799 — второй разряд;
* 1400—1599 — третий разряд;
* 1200—1399 — средний любитель (четвертый разряд);
* 1000—1199 — слабый любитель (пятый разряд);
* менее 1000 — новичок.

Как видим,здесь присутствует четкая градация уровней мастерства в зависимости от числового значения.По этой шкале с одинаковым успехом можно определить как уровень современных игроков,так и уровень игроков прошлого.Есть возможность сравнивать игроков разных времен с большой достоверностью.

Page 1 of 2 All times are UTC - 5 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/