Немного истории (статья Ская о рейтинге - VIO №30) Книга отзывов и предложений

В мире нет ничего невозможного, есть только маловероятное. Понятно, что и новайс может выиграть топ (если, конечно, ухитрится туда пробраться). Шансы, правда, у него небольшие. Понятно, что и матерый ветеран может выиграть в новайсе. Шансов у него тут будет побольше. Но не сто процентов, конечно – в игре, как и в жизни, всякое случается. А шансы ветерана в топе или элите? Тут без математики не обойтись.

Итак, ставим задачу – оценить шансы расы на победу. Вполне конкретной расы во вполне конкретной игре. Поскольку все расы исходно в равных положении независимо от опций игры (буксировка там или замедление техов действуют одинаково на всех), то все зависит от самой расы и состава других рас. Введем понятие рейтинга расы и определим его как шанс расы на победу относительно других рас. Определение сумбурное, но, другими словами, насколько данная раса играет сильнее новичка. Новичку присвоим рейтинг 1. В таком случае вероятность исхода партии из двух рас равна отношению рейтингов этих двух рас.

Представим некую партию из двух рас: ветеран с рейтингом 3 и новайс с рейтингом 1. Согласно определению, шансы ветерана на победу 3 к 1, т.е. 75% - в среднем из 4 таких партий ветеран победит в трех.

Покончив с определением, перейдем к цифрам. Я ввел только понятия, однако никак не определил математический аппарат для вычисления рейтинга. Представим исходные данные для вычисления:

N – стартовое количество рас.

Nwin – количество рас-победителей.

Nlive – количество живых рас.

Nsurv – количество выживших рас.

Маленькое отступление – я воспользовался элитовским принципом деления на живых и выживших, т.е. живой – тот, у кого в финальном репе населения не меньше стартового, а выживший – тот, у кого населения в финале больше 0, но меньше стартового.

Эти расы введены в расчеты из тех соображений, что просто дожить до конца партии не самая простая задача, особенно если партия сложная. Соответственно, рейтинг дожившего должен увеличиваться, хотя и меньше, чем победителя – ведь в партии попроще этот доживший имеет шансы стать победителем.

К каждой расе привяжем некое число – ее рейтинг. Для рас, ранее никогда не игравших, это значение присвоим 1. Может быть, это будущий экстрамегабест лидер, однако пока мы этого не знаем. Рейтинг расы обозначим как R. С учетом этого можно посчитать следующие величины:

Rwin – сумма рейтингов победителей.

Rlive и Rsurv – сумма рейтингов живых и доживших соответственно.

Rgame – средний рейтинг партии, т.е. суммарный рейтинг всех игроков, деленный на их количество.

Пока все эти цифры ничего не значат, поскольку не введены правила вычисления R. Однако предварительно необходимо ввести еще один коэффициент – сложность партии. Понятно, что в топе победить сложнее из-за наличия опытных игроков (читай – высокий средний рейтинг партии), а в game100 или game200 – из-за большого количество рас (рука рулить устанет :). Причем от количества игроков зависимость явно не прямая – тяжело только первую тысячу лет, потом привыкаешь, так что 200 рас в игре или 500 – разница не столь значительна. Поэтому была введена такая формула для расчета сложности партии.

C = Rgame*sqrt(N)*S,

т.е. прямая зависимость от состава игроков и квадратно-корневая от их количества. Кроме того, S – это полуэмпирическая “константа Sky”, ее смысл будет объяснен позднее.

С учетом этих обозначений подходим к следующей формуле расчета прироста рейтинга для победителей в данной партии:

R = (Rgame/sqrt(Rwin)) – 1/N)*C.

Тут необходимы пояснения. Отношение рейтинга партии к суммарному рейтингу победителей введены потому, что чем больше опытных игроков в составе победителей, тем проще им было победить и тем, соответственно, прирост рейтинга должен быть меньше – ведь в будущих партиях такой звездный состав не гарантируется. Нормирующий коэффициент 1/N введен для нейтрализации случая кругового голосования на нулевом ходу. А квадратный корень из суммарного рейтинга победителей – для уменьшения влияния “случайной удачи” – победы в своей первой игре – без него прирост рейтинга выходит неоправданно большим, что неверно, поскольку лишь стабильная игра гарантирует высокие шансы на победу в будущих играх.

Аналогичным образом введены формулы расчета прироста рейтинга для живых:

R = ((Rgame/sqrt(Rlive+Rsurv))-1/N)*C*3/8

и доживших:

R = ((Rgame/sqrt(Rlive+Rsurv))-1/N)*C*1/8

Коэффициенты 3/8 и 1/8 введены мною “среднепотолочным” образом, но они работают вполне нормально.

Теперь вернемся к “константе Sky”. Критерием достоверности рейтинга был выбран следующий – чем чаще рейтинг верно предсказывает победителей и проигравших, тем он достовернее. Мне это представляется достаточно разумным. Когда был написан софт для расчета рейтинга, он был запущен в режиме поиска оптимального значения S на основе базы игр в 500 партий Москвы и Саргоны. Критерием было отношение суммарных средних рейтингов победителей по всем партиям к суммарному среднему рейтингу проигравших. Параметром было именно значение S. Программа работала очень долго – каждый цикл пересчитывать 500 игр со всеми псевдонимами это не шутка, однако экстремум был найден при значении S = 0,230 (дальше третьего знака я не считал, у меня все-таки не суперкомпьютер).

И, окончательно, интересная деталь. Рейтинг ни разу не угадал победителя топа :). Победителями стали те, кому рейтинг давал вторые шансы, а не первые. Причем стабильно во всех трех топах.

Кстати, также интересно, что текущий лидер рейтинга – Англер, за шестую элиту получил намного больше, чем Горнал за третий топ. Тут вмешались вполне обьективные факторы – рейтинг сильно зависит от информации раселиста. От ее правильности и полноты. На момент написания этой статьи большинство псевдонимов top3 в раселисте отражено не было, вот и получилось, что Горнал победил как бы в обычной партии. Поэтому я призываю всех, кто не является злобным принципиальным анонимщиком - сообщайте в раселист свои псевдонимы! Даже в неудачно для Вас закончившихся партиях. Система рейтинга не допускает отрицательных значений, т.о. Вы ничего не потеряете, однако эта информация поможет составить более верную картину.

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

Sky – Черный Дятел.