Набросок для программы имитирующей РММ
2970
72
Пока задумка такая
Вначале генерируется 100 игроковУ игрока есть два параметра:-Скилл-РейтингЭксперемент будет состоять из 100 "дней" которые будут содержать следующие фазы:1)Первая волна игр, когда игроков будет полурандомно раскидывать по 10 5х5 играм с акцентом на то, чтобы более или менее адекватную аверагу ММР держать, а не 5к + 5к vs 2к + 8кСам матч будет проходить следующим образом:Сначала для каждого из 10 игроков будет присваиваться случайная переменная тильта, которая даст эффект от -20% до +20%Далее для каждой команды суммирует скилл игроков, c учётом их индивидуального тильтаЗатем генерируется внутриигровой рандом, который даёт эффект от 0 до 10%, дебафающий одну из тим и бафающий другуюДалее если одна из тим имеет силу в более чем 5 раз превышающую опонентов, то это инстапобедаЕсли же разброс меньше, то рандомом определяется какая из команд победит, причём шанс на победу каждой из тим это их сила, делёная на сумму сил обеих командПосле определения победителя все тима виннеров получает +30 рейта а тима лузеров -30Сразу после игры происходит приближение скилла каждого участвовавшего игрока к среднему скиллу в игре, для каждого из игроков на 5% от разницы между средним скиллом и скиллом этого игрока2) 2 волна игр3) 3 волна игр4) 4 волна игр5) Ночная фазаКаждый игрок сначала ролит будет ли его скилл вообще изменён ночью (думаю, можно взять 30% на изменение и 70% и на неизменение)Если скилл игрока изменяется ночью, то увеличивается/уменьшается на случайное число скилла, в ограниченном диапазоне (пока над конкретными числами именно для скилла не думал)Что-то типо:Алексей нашёл фишку (+10)Алексей посмотрел хороший гайд (+8)Алексей забыл часть своего опыта (-12)Алексей удачно потренировался (+15)Потом наступает новый деньПринимаю предложения по числам, по новым параметрам, и, особенно важно, по тому, какую статистику вы хотите чтобы можно было извлечь после каждого эксперимента
RUD-ekb сказал(а):↑Я прочитал 100% того что ты написал, но так и не увидел главного - зачем?
Нажмите, чтобы раскрыть...Зачем нет?
Вчера ночью перед сном скинул вот этоhttps://dota2.ru/forum/threads/izi-pruf-sistemy-50.1376630/И из-за того что там вр держался в пределах 48-52 стало интересно шо будет с ммром виртуальных игроковПервый эксперимент должен подразумевать просто подбор (как я и описал)А второй должен делать невозможный подбор по скиллу и потом сравним распределение скилла и мымыра (предполагаю что при любых значениях, кроме очень большой доли рандома, все лоускиллы будут на лоурейте, а хайскиллы на хайрейте)
Nightling сказал(а):↑Зачем нет?
Вчера ночью перед сном скинул вот этоhttps://dota2.ru/forum/threads/izi-pruf-sistemy-50.1376630/И из-за того что там вр держался в пределах 48-52 стало интересно шо будет с ммром виртуальных игроковПервый эксперимент должен подразумевать просто подбор (как я и описал)А второй должен делать невозможный подбор по скиллу и потом сравним распределение скилла и мымыра (предполагаю что при любых значениях, кроме очень большой доли рандома, все лоускиллы будут на лоурейте, а хайскиллы на хайрейте)Нажмите, чтобы раскрыть...Я надеюсь ты понимаешь что у твоего "эксперимента" ничего общего с реальностью нет?
Подбор осушествляется на основе статистики реальных игроков и их показателей а не то что ты пышешь:
Nightling сказал(а):↑Что-то типо:
Алексей нашёл фишку (+10)Алексей посмотрел хороший гайд (+8)Алексей забыл часть своего опыта (-12)Алексей удачно потренировался (+15)Нажмите, чтобы раскрыть...
RUD-ekb сказал(а):↑Я надеюсь ты понимаешь что у твоего "эксперимента" ничего общего с реальностью нет?
Подбор осушествляется на основе статистики реальных игроков и их показателей а не то что ты пышешь:
Нажмите, чтобы раскрыть...То что ты зафейспалмил это межраундовое изменение скилла чтобы хоть какая-то динамика была, иначе после n дней всех прижмёт к определённому числу к которому они будут вечно приближаться и никогда не достигнут
bugman сказал(а):↑
чтобы определиться для себя - писать "пусть сделают адекватный мм" или не писать
Нажмите, чтобы раскрыть...JDooP сказал(а):↑Сделать свой матчмейкинг видимо
Нажмите, чтобы раскрыть...Скорее псевдонаучное любопытство
В дальнейшем можно уйти вообще в адские дебри генетических алгоритмов и создавать прямо огромную экосистему где и сама игра будет присутствовать, а не только рандом, но это я на паскале писать ТОЧНО не буду
Nightling сказал(а):↑То что ты зафейспалмил это межраундовое изменение скилла чтобы хоть какая-то динамика была, иначе после n дней всех прижмёт к определённому числу к которому они будут вечно приближаться и никогда не достигнут
Нажмите, чтобы раскрыть...Погоди, погоди. Давай с начала.
Я спросил тебя зачем это все? Ты ответил отсылкой к теме "Изи пруф системы 50%"
Теперь вернемся в русло конструктивного диалога, что общего твоя "программа" имеет с реальностью?
Это необходимо, что бы что то доказывать и вообще быть хоть маломальски объективной в твоих "эксперементах"
RUD-ekb сказал(а):↑Теперь вернемся в русло конструктивного диалога, что общего твоя "программа" имеет с реальностью?
Это необходимо, что бы что то доказывать и вообще быть хоть маломальски объективной в твоих "эксперементах"
Нажмите, чтобы раскрыть...В будущей программе шанс на победу будет сильно зависеть от абстрактного "скилла" игрока и это поможет определить, будет ли с подкруткой и без подкрутки возникать ситуация, когда игрок с высоким "скиллом" будет намертво застревать на лоурейтинге
Nightling сказал(а):↑В будущей программе шанс на победу будет сильно зависеть от абстрактного "скилла" игрока и это поможет определить, будет ли с подкруткой и без подкрутки возникать ситуация, когда игрок с высоким "скиллом" будет намертво застревать на лоурейтинге
Нажмите, чтобы раскрыть...Твой "эксперимент" — это эксперимент над математической моделью "имитирующей РММ", который состоит в том что, по одним параметрам модели вычисляются другие её параметры и на этой основе делаются выводы кто победил кто проиграл. Все это описывается лишь математической моделью.
Поэтому все что ты делаешь можно лишь условно отнести к эксперименту, потому как он не отражает ни одгого "реального" показателя (человеческое поведение, например), а лишь является численной реализацией придуманной тобой математической модели.
Обращаю внимание на то, что при некорректности в мат. модели — её численное решение может быть строго расходящимся с фактической реальностью.
Не хотел бы тебя огорчать, но все что ты делаешь это пустая трата времени.
RUD-ekb сказал(а):↑Твой "эксперимент" — это эксперимент над математической моделью "имитирующей РММ", который состоит в том что, по одним параметрам модели вычисляются другие её параметры и на этой основе делаются выводы кто победил кто проиграл. Все это описывается лишь математической моделью.
Поэтому все что ты делаешь можно лишь условно отнести к эксперименту, потому как он не отражает ни одгого "реального" показателя (человеческое поведение, например), а лишь является численной реализацией придуманной тобой математической модели.
Обращаю внимание на то, что при некорректности в мат. модели — её численное решение может быть строго расходящимся с фактической реальностью.
Не хотел бы тебя огорчать, но все что ты делаешь это пустая трата времени.
Нажмите, чтобы раскрыть...Поведение игрока учитывается расчётом "тильта"
Собственно топик я создал как раз для того, чтобы узнать у людей какие параметры должны влиять, как сильно, и что нужно фиксировать в статистику
Nightling сказал(а):↑Поведение игрока учитывается расчётом "тильта"
Собственно топик я создал как раз для того, чтобы узнать у людей какие параметры должны влиять, как сильно, и что нужно фиксировать в статистикуНажмите, чтобы раскрыть...Я вижу ты не понимаешь главного.
Попробую объснить проще: все параметры которые ты придумываешь это полное фуфло, выдуманные тобой и расчитаваются простейщей математической моделью.
Что бы хотя бы гипотетически принимать резулаты твоей программы за объектиынве, нужна идеальная математическая модель с учетом всех факторов. Но, не сочти за оскарбление, ты явно на это не способен.
Тут дело в том, что ты никак не сможешь обьективно оценить человеческое поведение в матиматической модели (ты это почему то тильтом называешь), это по факту не возможно. Как минимум есть обратное тильту явление, назовем эго "плюсь мораль".
На иследование только этого параметра надо уделить годы.
Подчерку на всякий случай: все что ты делаешь не имеет ничего общего с реальностью!
Именно поэтому самое первое что я у тебя спросил для чего ты все это делаешь.
Цель, я так понял, у тебя что то доказать, но твои доказательтва всегда будут необъективны, цели своей ты не достигнешь.
RUD-ekb сказал(а):↑Я вижу ты не понимаешь главного.
Попробую объснить проще: все параметры которые ты придумываешь это полное фуфло, выдуманные тобой и расчитаваются простейщей математической моделью.
Что бы хотя бы гипотетически принимать резулаты твоей программы за объектиынве, нужна идеальная математическая модель с учетом всех факторов. Но, не сочти за оскарбление, ты явно на это не способен.
Тут дело в том, что ты никак не сможешь обьективно оценить человеческое поведение в матиматической модели (ты это почему то тильтом называешь), это по факту не возможно. Как минимум есть обратное тильту явление, назовем эго "плюсь мораль".
На иследование только этого параметра надо уделить годы.
Подчерку на всякий случай: все что ты делаешь не имеет ничего общего с реальностью!
Именно поэтому самое первое что я у тебя спросил для чего ты все это делаешь.
Цель, я так понял, у тебя что то доказать, но твои доказательтва всегда будут необъективны, цели своей ты не достигнешь.
Нажмите, чтобы раскрыть...Проблема в том, что даже если сделать объективную модель, то там невозможно будет однозначно определить уровень скилла; т.е. весь эксперимент в итоге не докажет ничего
А тут это это скорее симуляция не доты, а просто рейтиногового подбора, в игре, где есть некоторая доля рандома и при этом можно однозначно судить о скилле игрока
Nightling сказал(а):↑Пока задумка такая
Вначале генерируется 100 игроковУ игрока есть два параметра:-Скилл-РейтингЭксперемент будет состоять из 100 "дней" которые будут содержать следующие фазы:1)Первая волна игр, когда игроков будет полурандомно раскидывать по 10 5х5 играм с акцентом на то, чтобы более или менее адекватную аверагу ММР держать, а не 5к + 5к vs 2к + 8кСам матч будет проходить следующим образом:Сначала для каждого из 10 игроков будет присваиваться случайная переменная тильта, которая даст эффект от -20% до +20%Далее для каждой команды суммирует скилл игроков, c учётом их индивидуального тильтаЗатем генерируется внутриигровой рандом, который даёт эффект от 0 до 10%, дебафающий одну из тим и бафающий другуюДалее если одна из тим имеет силу в более чем 5 раз превышающую опонентов, то это инстапобедаЕсли же разброс меньше, то рандомом определяется какая из команд победит, причём шанс на победу каждой из тим это их сила, делёная на сумму сил обеих командПосле определения победителя все тима виннеров получает +30 рейта а тима лузеров -30Сразу после игры происходит приближение скилла каждого участвовавшего игрока к среднему скиллу в игре, для каждого из игроков на 5% от разницы между средним скиллом и скиллом этого игрока2) 2 волна игр3) 3 волна игр4) 4 волна игр5) Ночная фазаКаждый игрок сначала ролит будет ли его скилл вообще изменён ночью (думаю, можно взять 30% на изменение и 70% и на неизменение)Если скилл игрока изменяется ночью, то увеличивается/уменьшается на случайное число скилла, в ограниченном диапазоне (пока над конкретными числами именно для скилла не думал)Что-то типо:Алексей нашёл фишку (+10)Алексей посмотрел хороший гайд (+8)Алексей забыл часть своего опыта (-12)Алексей удачно потренировался (+15)Потом наступает новый деньПринимаю предложения по числам, по новым параметрам, и, особенно важно, по тому, какую статистику вы хотите чтобы можно было извлечь после каждого экспериментаНажмите, чтобы раскрыть...ну да, у алексея 28 лузов подряд и тут он ловит плюс мораль(+20%) потому что рандом
лучше сделай чтобы все начинали с жесткой плюс моралью(+50%) а из за лузов её теряли(от 1% до 10% скажем)еще сделать чтобы после каждой ночи плюс мораль давалась, но так чтобы если у тебя было 10 подряд лузов то она офк не апнулась до максимального значения моралиА скилл на самом деле не такой уж сильно изменяющийся параметр, хороший гайд скорее даёт плюс мораль(ЩАС КАК ПОПЕЧ НА СКЕЛЕТЕ БУДУ РЕЗАТЬ), а не сам скиллтак теперь у меня еще идея, вот твои ивенты которые "Алексей потренировался нашел фишку забыл опыт и т.д." будут происходить например заместо игр, типо есть челы с 10 играми в день, а есть чел с 8 играми но он зато посмотрел видос и апнул мораль, и там чето реплей чей нить посмотрел поржал еще мораль апнул
Nightling сказал(а):↑Проблема в том, что даже если сделать объективную модель, то там невозможно будет однозначно определить уровень скилла; т.е. весь эксперимент в итоге не докажет ничего
А тут это это скорее симуляция не доты, а просто рейтиногового подбора, в игре, где есть некоторая доля рандома и при этом можно однозначно судить о скилле игрокаНажмите, чтобы раскрыть...Возвращаемся в самое начало, зачем тогда это все?
у тебя в этот симуляции подбора кто то выигрывает, кто то проигрывает, на оновании параметра скила.
Как ты сам наконец то понял: "Проблема в том, что даже если сделать объективную модель, то там невозможно будет однозначно определить уровень скилла; т.е. весь эксперимент в итоге не докажет ничего"
Ты сам же говоришь что не возможно определить уровень скила и сам же делаешь симуляцию, результат которой зависит от скила
zashitnik55 сказал(а):↑ну да, у алексея 28 лузов подряд и тут он ловит плюс мораль(+20%) потому что рандом
лучше сделай чтобы все начинали с жесткой плюс моралью(+50%) а из за лузов её теряли(от 1% до 10% скажем)еще сделать чтобы после каждой ночи плюс мораль давалась, но так чтобы если у тебя было 10 подряд лузов то она офк не апнулась до максимального значения моралиА скилл на самом деле не такой уж сильно изменяющийся параметр, хороший гайд скорее даёт плюс мораль(ЩАС КАК ПОПЕЧ НА СКЕЛЕТЕ БУДУ РЕЗАТЬ), а не сам скиллтак теперь у меня еще идея, вот твои ивенты которые "Алексей потренировался нашел фишку забыл опыт и т.д." будут происходить например заместо игр, типо есть челы с 10 играми в день, а есть чел с 8 играми но он зато посмотрел видос и апнул мораль, и там чето реплей чей нить посмотрел поржал еще мораль апнулНажмите, чтобы раскрыть...Понял-принял, буду думать
Nightling сказал(а):↑Проблема в том, что даже если сделать объективную модель, то там невозможно будет однозначно определить уровень скилла; т.е. весь эксперимент в итоге не докажет ничего
А тут это это скорее симуляция не доты, а просто рейтиногового подбора, в игре, где есть некоторая доля рандома и при этом можно однозначно судить о скилле игрокаНажмите, чтобы раскрыть...Он тебе про то что твои исходные данные это как представить что за звезду мы возьмем мячик, а за космос школьный двор, теперь на основании футбольного матча между 2 подъездами делаем выводы о движении всех небесных тел. Видишь ли в любом эксперименте у тебя будет погрешность: погрешность вычислений, или погрешность измерений (тип насколько ты округляешь исходные данные), ты свел специфику психики каждого индивида (игрока) до "коэффицента тильта". сам понимаешь натягивание совы на глобус, поэтому ты даже близко к реальности не получишь данные. И свою цель ты не достигнешь, просто создал свою комнатную среду и результаты применимы только к твоему созданному "миру".
RUD-ekb сказал(а):↑Ты сам же говоришь что не возможно определить уровень скила и сам же делаешь симуляцию, результат которой зависит от скила
Нажмите, чтобы раскрыть...Так я не систему подбора валвье хочу воспоризвести, а узнать будет ли вообще возникать ситуация (с и без подкрутки) когда игрок не на своём рейте стабильно сидит
Скорее изучение рейтиногового подбора чем РММ дотыНо модеры перенесли первую темку в общие, поэтому сиквел тоже решил сделать делать
Demiurg75 сказал(а):↑И да коли ты хочешь разбросы и всякое статистическое считать почему Pascal? Есть же специальные инструменты хотя бы MathCad тот же
Нажмите, чтобы раскрыть...Я плохо знаком с любыми другими инструментами
Ну и со статой нужно сначала определиться насколько сложную стату собирать, если её будет реально много то тут конечно потребуется комбинировать инструменты
Nightling сказал(а):↑Так я не систему подбора валвье хочу воспоризвести, а узнать будет ли вообще возникать ситуация (с и без подкрутки) когда игрок не на своём рейте стабильно сидит
Скорее изучение рейтиногового подбора чем РММ дотыНо модеры перенесли первую темку в общие, поэтому сиквел тоже решил сделать делатьНажмите, чтобы раскрыть...Твой интелектуальный уровнь падет с каждым твоим ответом...
Че ты хочешь то в итоге?
Ты можешь сформулировать четко свою цель, что бы двгаться в сторону достижения цели?
Пока это выглядит так, будто ты из палаты сбежал:
"Я хочу изучить рейтинговый подбор, подкрутку, докажу систему 50%. Что бы это сделать я сам выдумаю идиотские параметры и в паскале буду ролить эти параметры, потом создам тему "Изи пруф системы 50%"
И да, параметры будут на уровне:
Nightling сказал(а):↑Что-то типо:
Алексей нашёл фишку (+10)Алексей посмотрел хороший гайд (+8)Алексей забыл часть своего опыта (-12)Алексей удачно потренировался (+15)Нажмите, чтобы раскрыть...
Nightling сказал(а):↑Я плохо знаком с любыми другими инструментами
Ну и со статой нужно сначала определиться насколько сложную стату собирать, если её будет реально много то тут конечно потребуется комбинировать инструментыНажмите, чтобы раскрыть...Просто про погрешности, как бы программные инстументы/типы данных/языки имеют разные погрешности От этого тоже зависит точность
Nightling сказал(а):↑Набросок программы имитирующей РММ
Нажмите, чтобы раскрыть...import mathimport matplotlib.pyplot as pltfrom scipy.stats import bernoullis = 3250 # Начальный\текущий рейтингr = 4500 # "Реальный" рейтингc = 0.4 # Уровень жоскости(импакта). !Предположительно!: 0-0.2 - подпивас гейминг, 0.2-0.8 - стандартное значение, 0.8-1 - жоскость бустераm = 2000 # Масштабный коэфициент, общий для всей системы. Но у меня нету инсайтов на его точное значение.n = 1138 # Число сыгранных игрl = 0.25 # Изменение "реального" ммр после каждой сыгранной игры.h = for i in range(n): p = (1 + c * math.erf((r - s) / m)) / 2 re = bernoulli.rvs(size=1, p=p) if re: s += 30 else: s -= 30 r += l * math.exp((s - r) / m) # Базовое значение * Модификатор эффективности обучения (если верна гипотеза что при игре с более скиловыми игроками быстрее учишься) h.append(s)plt.plot(h)plt.show()
RUD-ekb сказал(а):↑Твой интелектуальный уровнь падет с каждым твоим ответом...
Че ты хочешь то в итоге?
Ты можешь сформулировать четко свою цель, что бы двгаться в сторону достижения цели?
Пока это выглядит так, будто ты из палаты сбежал:
"Я хочу изучить рейтинговый подбор, подкрутку, докажу систему 50%. Что бы это сделать я сам выдумаю идиотские параметры и в паскале буду ролить эти параметры, потом создам тему "Изи пруф системы 50%"
И да, параметры будут на уровне:
Нажмите, чтобы раскрыть...Цель эксперимента
Установить факт того, возможны или невозможны ситуации, когда сильный игрок застревает на низком рейтинге и слабый игрок застревает на высоком, в условиях абстрактного рейтингового подбора
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
sodajop 24 Apr 2024 в 07:51Сообщений: 2 24 Apr 2024 в 07:51
Сообщений:2
Просмотров:3
-
Сообщений:9
Просмотров:12
-
Сообщений:4
Просмотров:6
-
Сообщений:9
Просмотров:15
-
Сообщений:27
Просмотров:30