Перейти к содержимому
Korean Random
TurinDeNar

[Формула расчета шансов на победу / Chance to win formula]

Рекомендуемые сообщения

Не буду писать долгую вступительную речь о том, что расчет шанса на победу является одной из основных функций XVM, к которой пользователями мода предъявляются основные претензии. Безусловно, невозможно со 100% вероятностью рассчитать данный параметр, так как человеческий фактор в WOT играет немаловажное значение а оценить его влияние в конкретном бою невозможно. Некоторые вещи в существующих формулах вызывают определенные вопросы, но в данном посте речь не о них.

 

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

 

Алгоритм расчета содержит в себе расчет нескольких корректирующих коэффициентов (п.1–6), основную формулу расчета возможной боевой эффективности игрока (п.7) и вспомогательные формулы для выведения конечного результата прогноза результатов боя (п.8-10).

 

1. Кlvl - коэффициент степени возможного влияния техники на итог боя в зависимости от ее уровня и уровня текущего боя.

Klvl = (Tmax + Tmin) / 2 - T

где,

Tmax - максимальный уровень боя для данной техники

Tmin - минимальный уровень боя для данной техники

T - уровень текущего боя (вычисленный по составу команд)

Краткий комментарий:

Корректирующий коэффициент (25%/-25%) на 1 единицу разницы между средним уровнем боев для конкретной техники участвующей в бою и уровнем текущего боя. (учет попадания в топ/дно списка). В конечной формуле расчета боевой эффективности игрока (п.7) идет его дополнительная корректировка в зависимости от % побед игрока в целом по аккаунту.

 

2. Ktb - коэффициент степени возможного влияния техники на итог боя в зависимости от количества проведенных на ней боев.

if Bt <= 50 then Ktb = 0; else if Bt <= 500 then Ktb = (Bt - 50) / 1000; else if Bt <= 1000 then Ktb = 0,45 + (Bt - 500) / 2000; else if Bt <= 2000 then Ktb = 0,7 + (Bt - 1000) / 4000; else Ktb = 0,95 + (Bt - 2000) / 8000

где,

Bt - количество боев на текущей технике

Краткий комментарий:

Производится учет влияния техники на итог боя в зависимости от ее возможного стокового состояния, степени прокачанности экипажа, понимания игроком возможностей техники и т.д.

до 50 боев - коэффициент 0

от 50 до 500 боев - увеличение с шагом 0,1 на каждые 100 боев до 0,45 (500 боев)

от 500 до 1000 боев - увеличение с шагом 0,05 на каждые 100 боев до 0,7 (1000 боев)

от 1000 до 2000 боев - увеличение с шагом 0,025 на каждые 100 боев до 0,95 (2000 боев)

свыше 2000 боев - увеличение с шагом 0,0125 на каждые 100 боев

 

3. Kab - коэффициент степени возможного влияния игрока на ход боя в зависимости от количества проведенных им боев в целом по аккаунту.

if Ba <= 500 then Kab = 0; else if Ba <= 5000 then Kab = (Ba - 500) / 10000; else if Ba <= 10000 then Kab = 0,45 + (Ba - 5000) / 20000; else if Ba <= 20000 then Kab = 0,7 + (Ba - 10000) / 40000; else Kab = 0,95 + (Ba - 20000) / 80000

где,

Ba - количество боев на аккаунте в целом

Краткий комментарий:

Производится учет общего опыта игры игрока в WOT.

до 500 боев - коэффициент 0

от 500 до 5000 боев - увеличение с шагом 0,1 на каждую 1000 боев до 0,45 (5000 боев)

от 5000 до 10000 боев - увеличение с шагом 0,05 на каждую 1000 боев до 0,7 (10000 боев)

от 10000 до 20000 боев - увеличение с шагом 0,025 на каждую 1000 боев до 0,95 (20000 боев)

свыше 20000 боев - увеличение с шагом 0,0125 на каждую 1000 боев

 

4. Krt - корректирующий коэффициент по степени отклонения % побед игрока на технике участвующей в бою от среднего показателя % побед игроков на данной технике в целом по серверу.

Krt = (100 + Rt - AvgW) / 100

где,

Rt - процент побед на конкретной технике

AvgW - средний процент побед на данной технике в целом по серверу

Краткий комментарий:

Дополнительный корректирующий коэффициент учитывающий эффективность использования игроком конкретной техники, применяемый для более точной корректировки таких показателей как Et и Ktb.

 

5. Kra - корректирующий коэффициент по степени отклонения % побед игрока в целом по аккаунту от среднего расчетного показателя % побед игроков  в целом по серверу.

Kra = (100 + Ra - 48.5) / 100

где,

Ra - процент побед по аккаунту в целом

Краткий комментарий:

Дополнительный корректирующий коэффициент, учитывающий эффективность ведения игроком боевых действий на всей используемой им технике, применяемый для более точной корректировки таких показателей как Ean, Kab и Klvl. 

 

6. Ean - корректирующий коэффициент рейтинга эффективности игрока по аккаунту в целом.

Ean = Ea +(Ea * ((avglvl-T)*0,05))

где,
Ea - эффективность по аккаунту в целом {{xwn8}}

avglvl - средний уровень техники игрока на его аккаунте

T - уровень текущего боя (вычисленный по составу команд)

Краткий комментарий:

Дополнительный корректирующий коэффициент, применяемый для более точной корректировки рейтинга эффективности игрока по аккаунту в целом, в зависимости от среднего уровня используемой им техники и уровня текущего боя (учет эффективности ведения боевых действий в зависимости от уровней боев на которых в основном играет/играл игрок и уровнем текущего боя).

 

7. Eb - возможная боевая эффективность игрока в текущем бою в зависимости от эффективности игры на технике и опыта игры в целом по аккаунту

if Et >0 then Eb = (((3/5 * Et * Krt) * (Krt + Кtb)) + ((2/5 * Ean * Kra) * (Kra + Кab))) * (Kra + 0,25 * Klvl); else Eb= ((Ean * Kra) * (Kra + Kab)) * (Kra + 0,25 * Klvl)

где,

Et - эффективность конкретной техники {{xTE}}

Краткий комментарий:

Основополагающим элементом расчета является показатель эффективности игрока как на конкретном танке (xTE), так и в целом по аккаунту (xWN8).

Эффективность как в целом по танку, так и по аккаунту в целом корректируется в зависимости от % побед относительно средних значений этого показателя. Т.е. если у игрока процент побед на конкретной машине меньше чем средний процент побед на данной машине в целом по серверу, то эффективность уменьшается и наоборот (тоже и с расчетом в целом по аккаунту). Для расчета значений по аккаунту применяется среднее значение процента побед в размере 48,5%, для расчета по конкретному танку статистические данные по конкретной машине.

Отмечу что в формуле эффективность игры игрока на конкретном танке имеет несколько повышенное значение, чем эффективность его игры в целом по аккаунту (60% против 40%) так как в бою он находится именно на этой машине. Если игрок только начал играть на конкретной машине и по ней еще нет статистических данных, то расчет строится на 100% данных по эффективности в целом по аккаунту.

Нормализованные по проценту побед показатели эффективности корректируются на коэффициенты рассчитанные по количеству проведенных боев как по танку, так и по акаунту в целом, производится корректировка в зависимости от среднего уровня боев игрока и его РЭ по отношению к уровню текущего боя. 

 

8. Ebn - возможная боевая эффективность игрока, нормализованная по верхнему пороговому значению
if Eb <=0 then Ebn = 0; else if Eb <=200 then Ebn = Eb; else Ebn = 200

Краткий комментарий:


Дать комментарий

 

9. Возможная боевая эффективность всей команды

Ea = sum(Ebn_ally)

Ee = sum(Ebn_enemy)

 

10. Wa, We - вероятность победы (для союзников и противников)

Wa = (0,5 + (Ea / (Ea + Ee) - 0,5) * 1,5) * 100% для союзников, We = (0,5 + (Ee / (Ee + Ea) - 0,5) * 1,5) * 100% для противников)

 

P - итоговый отображаемый процент победы

if Wa > 95% then Р = 95%; else if Wa < 5% then P = 5%

Изменено пользователем TurinDeNar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И весь твой план ломает такая штука как ВБР. Уже давно не смотрю на шанс победы у команды... У одного статиста танк не топовый, у другого боеуклад взорвут, у третьего выбьет свет/интернет, в четвертом случае команда бросит фланг и захватят базу. Слишком не предсказуемая игра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
nemoW   

 

 ...Являясь по основному роду своей деятельности финансовым аналитиком...

у вас случаем передачи на tut.by-TV нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

И весь твой план ломает такая штука как ВБР. Уже давно не смотрю на шанс победы у команды... У одного статиста танк не топовый, у другого боеуклад взорвут, у третьего выбьет свет/интернет, в четвертом случае команда бросит фланг и захватят базу. Слишком не предсказуемая игра.

Это понятно и я об этом и писал:) Влияние человеческого фактора никак не измерить, но тем не менее многие последствия тех или иных событий подаются элементарному прогнозу.  Например встретились 2 футбольные команды, одна с какого-нибудь областного центра РФ или РБ, а другая сборная Италии например. С какой вероятностью может победить уездная команда? 

Безусловно определенный шанс у нее есть конечно при удачном стечении обстоятельств (вернее неудачном для сборной Италии) но результат подобного матча как правило известен заранее.

 Ну или например в WOT рота Редов, против роты "биру всех". Вот и стоит задача в цифрах определить расчетный прогнозный шанс.

Конечно я привел примеры слаженных и сыгранных между команд, а рандом это совсем другое, но тем не менее:)

 

у вас случаем передачи на tut.by-TV нет?

Нет:) Мы не из публичных:) 

Изменено пользователем TurinDeNar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

попробую как будет время. после рефакторинга прокси и т-калька.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробую как будет время. после рефакторинга прокси и т-калька.

Спасибо Sirmax. Кстати глянь еще раз эту тему, похоже что-то и правда сломалось в последнем тестовом обновлении. 

Изменено пользователем TurinDeNar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

да видел, смотреть надо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это понятно и я об этом и писал:) Влияние человеческого фактора никак не измерить, но тем не менее многие последствия тех или иных событий подаются элементарному прогнозу.  Например встретились 2 футбольные команды, одна с какого-нибудь областного центра РФ или РБ, а другая сборная Италии например. С какой вероятностью может победить уездная команда? 

Безусловно определенный шанс у нее есть конечно при удачном стечении обстоятельств (вернее неудачном для сборной Италии) но результат подобного матча как правило известен заранее.

 Ну или например в WOT рота Редов, против роты "биру всех". Вот и стоит задача в цифрах определить расчетный прогнозный шанс.

Конечно я привел примеры слаженных и сыгранных между команд, а рандом это совсем другое, но тем не менее:)

 

Нет:) Мы не из публичных:) 

 

Пример можно применить только для ротных игр, в рандоме - нет. Мне просто жалко того времени, что ты потратил на это дело. :) Боюсь, в целом, возможно, и лучше будет, но кардинально ситуацию не поменяет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пример можно применить только для ротных игр, в рандоме - нет. Мне просто жалко того времени, что ты потратил на это дело. :) Боюсь, в целом, возможно, и лучше будет, но кардинально ситуацию не поменяет...

Да ерунда на самом деле. Много времени это дело не заняло, а для мозгов зарядка неплохая:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ApxuBbI   

не люблю данный процент. сильно расслабляет когда не надо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

 

4. Eb - возможная боевая эффективность игрока в текущем бою в зависимости от эффективности игры на технике и опыта игры в целом по аккаунту

if Et >0 then Eb = (((2/3 * Et * (100 + Rt - AvgW) / 100 )* (1+ Кtb)) + ((1/3 * Ea * (100 + Ra - 48) / 100) * (1+ Кta))) * (1 + 0,25 * Klvl); else Eb= ((Ea * (100 + Ra - 48) / 100) * (1+Kta)) * (1 + 0,25 * Klvl)

Там где выделено должно быть Kab?

 

 

6. W - вероятность победы

W = Ea / (Ea + Ee) * 100%

W = Ke2 / (Ke2 + Ka2) * 100%

Вторая по ошибке вставлена, или что она означает?

 

И реплейчик бы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Там где выделено должно быть Kab?

 

Вторая по ошибке вставлена, или что она означает?

Да, точно Kab - это возможный коэффициент влияния в зависимости от проведенных боев по аккаунту. Kta это описка, такого коэффициента нигде нет в использовании.

 

Да по ошибке. Там должно было быть W = Ee / (Ee + Ea) * 100% - это как формула для расчета шансов победы для команды противника. Она походу не нужна, это я так проверочно для себя писал, чтобы в сумме 100% получалось.

 

В общем это косяки из-за того получились, что я после того как написал, попробовал более менее логично все обозвать:)

 

Реплейчик смогу только вечером, когда домой попаду:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

А диапазоны значений ты не оценивал? Мы при нормализации растягиваем диапазон:

(0.5 + (Ea / (Ea + Ee) - 0.5) * 5.0)

иначе значения в основном попадают в 40-60, что совсем не показательно.

 

В общем сделал формулу, ща обновлю xvm-3.3.2-test3, надо будет его заново перезакачать.

Отдельно афишировать новую формулу не буду, кому надо сам найдет эту тему.

 

Новый процент будет во второй экспериментальной формуле (X2).

 

UPD: выложил

Изменено пользователем sirmax

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут как я вижу с этим растягиванием еще большой вопрос по большому счету...

Растянешь и получишь например 200 на победу а отображать будет все равно 95%, а в другом бою получится 96 а отображать будет те же самые 95%:) А потом орут на форуме, формула расчета шансов это херня мы часто при 5% выигрывали и при 95% сливались:)   

А если не растягивать то слиться при 95% шансах на победу это только если Serb персонально всем союзникам свою угнеталочку включит:)

Может и нужно растянуть, то как-то осторожно, чтобы не выходило за 95 сильно. Но это тяжело определить не тестируя и не понимая какие предельные значения получаются т.е. не видя того конечного значения которое под 95% обрезается:(

Изменено пользователем TurinDeNar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

Тут как я вижу с этим растягиванием еще большой вопрос по большому счету...

Растянешь и получишь например 200 на победу а отображать будет все равно 95%, а в другом бою получится 96 а отображать будет те же самые 95%:) А потом орут на форуме, формула расчета шансов это херня мы часто при 5% выигрывали и при 95% сливались:)   

Твою сделал без растягивания, в точности как ты написал.

 

Тут еще надо проверить как считает если не все данные доступны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Твою сделал без растягивания, в точности как ты написал.

 

Тут еще надо проверить как считает если не все данные доступны.

Спасибо Sirmax, что нашел время. Дай бог чтобы взлетело, и не потратили время понапрасну:) Вроде как вполне вменяемая формула получилась (если просто на нее смотреть, без тестовых испытаний:) и с учетом влияния всех новомодных введений (расчет и по аккаунту и по конкретному танку вместе т. е. 2 в 1:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

Да там не сложно, потому и сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да там не сложно, потому и сделал.

Меня тоже смущает как будет считать если статы не будет. Если не будет по конкретному танку (а это в основном встречается) то не беда, я предусмотрел это и оно только по аккаунту посчитает. А вот если и по аккаунту не будет, то по идее тоже не беда, просто этого человека в расчет не будет принимать (главное чтобы ошибку не выдало), а чего его спрашивается принимать если он еще и играть то толком не научился. Так... будет ездить окрестности рассматривать, если не твинк конечно:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Sirmax,вечером смог уделить немного времени  и посмотрел несколько реплеев на предмет того, насколько адекватна работает формула. В общем все достаточно ровно и вполне предсказуемо, но пока еще рано о чем то говорить. Может на выходных будет времени побольше, чтобы повнимательнее посмотреть как она работает. 

Но смотри какой интересный реплей попался, даю скрин:

shot_241.1359667958.jpg

Наверно по этому скрину и можно охарактеризовать весь ее смысл. 

Все существующие формулы реально переклинило при анализе шансов на победу в этом бою, и они все как одна уныло сказали "Парни вам ппц!". 

А ведь по сути по чему так получилось. В команду противника попал чел с нереально крутой общей эффективностью по танку (ппц, как он только ее набил такую - 10050 O_o наверно захватом и боев у него немного было) и 100% побед, но реально мало что представляющий собой и еще один такой же на МС-1 с эффективностью 1570. А все остальные противники за исключением товарища на МС-1 (у которого за плечами 13к боев, но на МС-1 еще много не игравшем и имеющем эффективность 1 но набившего по итогу 4 фрага из 5 на команду) у них были полное нубье, только начавшее играть. 

Эта же формула посмотрела что в нашей команде есть я, весь такой красивый и опытный как по основной стате так и по МС1:) товарищ на лолтракторе с каким никаким но опытом игры и общей эффективностью 700 и 5 на танке, а еще товарищ на NC31 с 3к боев и эффективностью 960, сказала: "Не сцыте парни , победа на 82% ваша", что и получилось. 

Во всех остальных боях происходит тоже самое походу, но более смазано, а тут вот такая яркая картинка получилась.

В принципе, глядя на статы команд в начале боя, если бы не было никаких формул я бы наверно так и охарактеризовал бы наши шансы на победу в нем - около 80%. 

Не смотрите что это бои 1 лвл, просто такой вот пример и не более того.

Изменено пользователем TurinDeNar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
 sirmax   

Ну ок, нужно наблюдать дальше. Я в последнее время не играю, так как некогда, поэтому полагаюсь на мнение нашего комьюнити. Вполне можем в следующем релизе твою формулу поставить основной, так как текущие уже действительно совершенно не подходят.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×