Jump to content
Korean Random
TurinDeNar

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

Recommended Posts

ОК, очень интересно будет увидеть результаты на бОльшей выборке и с новым РЭ.

Share this post


Link to post

Short link
Share on other sites

ОК, очень интересно будет увидеть результаты на бОльшей выборке и с новым РЭ.

Угу... и желательно с теми изменениями о которых я писал на предыдущей странице. 

Share this post


Link to post

Short link
Share on other sites

В test7 формулы в каком порядке идут? А то непонятно, когда сливаться, а когда тащить, чтобы новую формулу не подвести :-)

Share this post


Link to post

Short link
Share on other sites

В test7 формулы в каком порядке идут? А то непонятно, когда сливаться, а когда тащить, чтобы новую формулу не подвести :-)

:))))))))))) Да вроде не менялся порядок. Обсуждаемая это 2-я экспериментальная, или 4-я общая:)

Share this post


Link to post

Short link
Share on other sites

:))))))))))) Да вроде не менялся порядок. Обсуждаемая это 2-я экспериментальная, или 4-я общая:)

1. По XWN, старая, глобальная

2. По XWN, старая, по танку

3. По XWN, обсуждаемая, глобальная

4. По XWN, обсуждаемая, по танку + глобальная

Share this post


Link to post

Short link
Share on other sites

1. По XWN, старая, глобальная

2. По XWN, старая, по танку

3. По XWN, обсуждаемая, глобальная

4. По XWN, обсуждаемая, по танку + глобальная

Ясно, по расположению ничего не меняли.

А по старым формулам получается уже в тесте7 с eff на xwn в расчетах перешли. Окейно, а то я ошибочно думал что их еще по eff считает.

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites
If avglvl = T then Ean = Ea; else Ean = Ea +(Ea * ((avglvl-T)*0,05))

А смысл условия? Если avglvl = T, то второе условие дает то же, что и первое. 

Достаточно просто:

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



if Et >0 then Eb = (((3/5 * Et * (100 + Rt - AvgW) / 100 )* ((100 + Rt - AvgW) / 100 ) + Кtb)) + ((2/5 * Ean * (100 + Ra - 48) / 100) * ((100 + Ra - 48) / 100) + Кab))) * ((100 + Ra - 48) / 100) + 0,25 * Klvl); else Eb= ((Ean * (100 + Ra - 48) / 100) * ((100 + Ra - 48) / 100) + Kab)) * ((100 + Ra - 48) / 100) + 0,25 * Klvl)
 

Не помню выделенного жирным. У меня там 1 везде стоит.

Надо бы это выделить в константу, чтобы не дублировать столько раз.



вводим:

Krt = (100 + Rt - AvgW) / 100

Kra = (100 + Ra - 48.5) / 100

 

И перепиши формулу, а то я в скобках разобраться не могу.



Сделал в test8

Share this post


Link to post

Short link
Share on other sites

А смысл условия? Если avglvl = T, то второе условие дает то же, что и первое. 

Достаточно просто:

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

 

 

Не помню выделенного жирным. У меня там 1 везде стоит.

Надо бы это выделить в константу, чтобы не дублировать столько раз.

 

вводим:

Krt = (100 + Rt - AvgW) / 100

Kra = (100 + Ra - 48.5) / 100

 

И перепиши формулу, а то я в скобках разобраться не могу.

 

Сделал в test8

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

Вполне достаточно и Ean = Ea +(Ea * ((avglvl-T)*0,05))

 

Ну с учетом того что вводим Krt и Kra то по сути в той формуле что была меняем 1 на соответствующие константы, а также ранее (первоначально) прописанные в формуле (100 + Rt - AvgW) / 100 и (100 + Ra - 48) / 100 на соответствующие значения Krt и Kra соответственно тоже. 

Кроме того, в конечной формуле боевой эффективности в двух местах нужно не забыть заменить показатель общей эффективности по аккаунту (Ea), на показатель нормализованной эффективности (Ean).

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

 

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)

 

 

Спасибо Sirmax, что сделал. Вот в такой реализации это уже будет реально интересно. 

Скажи, я вот все спросить хотел... А вообще... сложно такое реализовать, чтобы 1-го игрока у которого выше всех эффективность по сравнению с остальными 29 игроками участвующим в этом бою, резало по боевой эффективности до уровня боевой эффективности топового игрока команды противника? Это я так, интересуюсь пока просто насколько это технически реально осуществить и не очень ли это ресурсоемко будет. Возможно это абсолютно и не нужно делать. 

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

Очень мне покоя не дает мысль что с этим нужно что-то делать, когда вот такие например команды формируются (это данные по конечной боевой эффективности Eb)

1-2.1360863126.jpg

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

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

@TurinDeNar,

Надо резать независимо от максимума/минимума. Надо выбрать некое минимальное значение(скажем 200) и все, что ниже считать 200, а также некое максимальное, скажем 2200 и всё что выше считать 2200.

Share this post


Link to post

Short link
Share on other sites

@TurinDeNar,

Надо резать независимо от максимума/минимума. Надо выбрать некое минимальное значение(скажем 200) и все, что ниже считать 200, а также некое максимальное, скажем 2200 и всё что выше считать 2200.

А в принципе ведь мысль очень интересная. Нужно ее обдумать. Мне нравится если честно. 

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

 

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

 

Когда мы сделаем подрезку, то диапазон сократится очень сильно и реально будет в пределах 40-60%, но за счет нормализации мы получим возможную бомбу, реально предсказывающую результат боя в 80-90% боев... наверно:) 

 

Sirmax, скажи а ты в тесте 8 коэффициент нормализации уже 2 сделал по этой формуле, или пока еще 1,5 оставил? Не могу понять из-за чего в некоторых анализируемых мною реплеях конечный расчетный показатель вырос - из-за внесенных изменений , из-за увеличения нормализации, либо под влиянием и того и другого в большей либо меньшей степени:) 

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

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

Скажи, я вот все спросить хотел... А вообще... сложно такое реализовать, чтобы 1-го игрока у которого выше всех эффективность по сравнению с остальными 29 игроками участвующим в этом бою, резало по боевой эффективности до уровня боевой эффективности топового игрока команды противника? Это я так, интересуюсь пока просто насколько это технически реально осуществить и не очень ли это ресурсоемко будет. Возможно это абсолютно и не нужно делать. 

Ресурсы пофиг, считается на клиенте, там их навалом. :) Можно почти все, но нужен алгоритм, а то может получиться так, что вроде на словах понятно, а прописать по действиям не получается.

Share this post


Link to post

Short link
Share on other sites

Ресурсы пофиг, считается на клиенте, там их навалом. :) Можно почти все, но нужен алгоритм, а то может получиться так, что вроде на словах понятно, а прописать по действиям не получается.

Я там свой предыдуший пост дополнил, обрати внимание на вопрос про нормализацию. А алгоритм будет, не сомневайся:) Очень мне идея seriych понравилась:) 

Share this post


Link to post

Short link
Share on other sites

Sirmax, скажи а ты в тесте 8 коэффициент нормализации уже 2 сделал по этой формуле, или пока еще 1,5 оставил? Не могу понять из-за чего в некоторых анализируемых мною реплеях конечный расчетный показатель вырос - из-за внесенных изменений , из-за увеличения нормализации, либо под влиянием и того и другого в большей либо меньшей степени:) 

Вроде не менял, должно быть 1.5.

Share this post


Link to post

Short link
Share on other sites

Вроде не менял, должно быть 1.5.

А ну и хорошо. Сейчас формула иногда уже реально дает достаточно сильные отклонения от 50% и с 1,5 нормализацией:))) меня это даже немного беспокоит:) Слишком уж она чувствительной получилась к статам игроков:)  

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

Я вот поиграл сегодня... Часто четвертая формула дает прогноз противоположный первым трем. Там случаем выигрыш с поражением не перепутан? test-8

Хотя вроде часто и такой же прогноз.

Очень мне идея seriych понравилась:) 
Я тебе еще одну мысль писал раньше, но ты промолчал:

надо учитывать разброс рейтингов в команде. Средний рейтинг 1500 может получиться как 1000+2000, а может как 1500+1500. Очевидно, второй вариант сильнее, но средний рейтинг посчитается одинаковый. Надо внести поправку на среднеквадратичное отклонение рейтинга от среднего. Чем больше среднее отклонение, тем хуже.

Share this post


Link to post

Short link
Share on other sites

Ну что, вроде привел формулу к текущему значению. 

Вот сухие цифры, безо всякой воды. Очень надеюсь что не ошибся нигде в корректировках:) 

 

1. Кlvl - коэффициент степени возможного влияния техники на итог боя в зависимости от ее уровня и уровня текущего боя
Klvl = (Tmax + Tmin) / 2 - T


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

 

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 - количество боев на текущей технике

 

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 - количество боев на аккаунте в целом

 

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

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

 

5. Kra - корректирующий коэффициент по степени отклонения % побед игрока в целом по аккаунту от среднего расчетного показателя % побед игроков  в целом по серверу 
Kra = (100 + Ra - 48.5) / 100


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

 

6. Ean - корректирующий коэффициент рейтинга эффективности игрока по аккаунту в целом, в зависимости от среднего уровня используемой им техники и уровня текущего боя
Ean = Ea +(Ea * ((avglvl-T)*0,05))

где,
Ea - эффективность по аккаунту в целом {{xwn}}
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 - эффективность конкретной техники {{teff}}

 

8. Возможная боевая эффективность всей команды
Ea = sum(Eb_ally)
Ee = sum(Eb_enemy)

 

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

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

 

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

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

 

Я вот поиграл сегодня... Часто четвертая формула дает прогноз противоположный первым трем. Там случаем выигрыш с поражением не перепутан? test-8

Хотя вроде часто и такой же прогноз.

Я тебе еще одну мысль писал раньше, но ты промолчал:

надо учитывать разброс рейтингов в команде. Средний рейтинг 1500 может получиться как 1000+2000, а может как 1500+1500. Очевидно, второй вариант сильнее, но средний рейтинг посчитается одинаковый. Надо внести поправку на среднеквадратичное отклонение рейтинга от среднего. Чем больше среднее отклонение, тем хуже.

 

Гы... ну так епта.. она же особенная типа, что ей под остальные ровняться то:))) 

А если серьезно то нужно дождаться когда Sirmax найдет время сделать калькулятор под текущую реализацию (без него мы не сможем сделать многого) формулы. 

Потом сразу проведем бой (сделаем скрины расчетных значений) сразу же договоримся и закинем логстатфайл этого боя в калькулятор (чтобы не повлияло никакого вдруг обновление данных по какому нибудь из игроков), сразу глянем одинаково ли считает, и когда уже все будут понимать что все считается как написано, тогда будем мутить тему увеличения точности прогноза:) 

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites
тогда будем мутить тему увеличения точности прогноза:) 
В первую очередь нужна большая база боев.

Share this post


Link to post

Short link
Share on other sites

Sirmaх, вчера немного покатался с новой формулой но не обратил внимания на одну вещь, на которую обратил внимание сегодня:)

На экране загрузки боя, и в бою 3-я и 4-я формулы показывали одно значение (3-я - 52%, 4-я - 90%), а в финальной статистике уже немного другое (3-я - 50%, 4-я - 85%). Вопрос где показывает более правильно к описанному расчету?:)

shot_318.1360956675.jpg

shot_312.1360956743.jpg

По результату расчета, несмотря на то что этой бой мы выиграли за 5 минут, вот реально еще когда увидел в окне загрузки стату бойцов и сейчас смотрю на скрине стату то вижу что 90% шанса победы в этом бою как-то многовато насчитало. 

Нет оно понятно, что формула противопоставила меня находящегося в топе против всей вражеской команды и в том числе против взвода Т2ЛТ которые попали в дно списка (один из которых, явно командир взвода:) в принципе неплохой боец со средним уровнем танков 6), и в то время когда другие уныло сказали "Чувак, дело пахнет сливом" эта как-то уж слишком оптимистично заявила "Чувак, на своей машине так попав, ты здесь завалишь полкоманды противника, захватишь базу практически в одиночку, а потом еще в состоянии послебоевого аффекта заедешь в параллельный бой идущий на соседней карте и заберешь с собой еще и там пару фрагов", но как-то я ей чета при предстартовом отсчете не очень поверил:)))) Хотя скорее всего что и зря... но не об этом речь.

Я это к чему все... в плане повышения точности прогноза в формуле реально нужно подрезать максимальное значение боевой эффективности игроков, но без калькулятора очень тяжело определить его оптимальное значение:( 

А так бы попросили Jage выложить логстатфайл нескольких его боев "Фиолетовые против фиолетово-зеленых", внесли бы значения этих боев в калькулятор и прикинули бы оптимальное значение максимального показателя боевой эффективности игрока, значения выше которого уже имеет смысл обрезать и таким образом увеличили бы точность прогноза:)

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

А на реплее сколько показывает?

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

Edited by TurinDeNar

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...