Chat:Ru/2020-06-03
735487: я по прежнему считаю что дело в функции выбора ветки. иначе почему ход с большим значением по формуле имеет в сотни раз меньше посещений?
Uljahn: нужен код, чего гадать-то
tutubalin: а у меня 3 миллиона сам за ход (иногда даже 4), а из золота выйти не могу
735487: считают количество роллаутов
735487: вернее ими меряются
tutubalin: ну они взаимосвязаны
tutubalin: ролаутов от 45-50к в начале до 300к в конце
tutubalin: дерево глубиной шесть. если сделать меньше, особо скорости не добавляет, если сделать больше, то количество сим резко падает
Uljahn: дерево глубиной шесть ))
Uljahn: надо UCT оптимизировать тогда, если выбор нод тормозит
Uljahn: и коэффициентом играться
735487: зачем глубину ограничивать? оно должно само куда успеет туда и успеет
Uljahn: может тогда лучше миник запилить вообще?
735487: ну да с глубиной 6 миник наверное лучше будет
YurkovAS: и expand делать после 1 рандомной игры. только рутовую сразу expand-ить
Uljahn: в смысле после?
YurkovAS: сначала делаем selection: в цикле по формуле, от рутовой находим лучшую дочернюю и т.д. пока есть у ноды дети. Потом делают expand: добавить детей и выбрать 1-го рандомно или 1-го. Вот этот expand лучше делать, когда до этого 1 раз эту ноду оценивали.
tutubalin: да, я тоже об этом думал
tutubalin: и вот ограничение глубины, это тоже из той же оперы
tutubalin: по идее, чем ниже в дереве, тем реже туда заходит
tutubalin: так что смысла создавать там детей особо смысла не имеет
YurkovAS: и в selection-е по формуле, может быть, что не все дети еще оценивались, кол-во визитов у них = 0. Тогда таким отдаем приоритет. И только когда у всех визитов > 0, тогда только по формуле считаем.
tutubalin: сделал все функции static inline - на скорости почти не отразилось :(
YurkovAS: а то будет деление на 0
tutubalin: я на формулу вообще забил
YurkovAS: так без формулы не играет. даже константа влияет.
tutubalin: я проще сделал: нод играется до первого поражения. когда все возможные ноды по разу проиграли, сортирую их по очкам и начинаю заново
tutubalin: таким образом образом по идее должен быть баланс между проверкой зарекомендовавших себя нодов и исследованием других вариантов
YurkovAS: стандартное решение проверял? без ограничений на глубину и этих сортировок. :)
tutubalin: стандартное сложнее )
735487: а если ничья тогда как?
735487: у тебя же нода на ничью будет играться возможно даже дольше чем та что на выигрыш есть
tutubalin: тоже отправляю в остойник, но начисляю чуть-чуть очков
tutubalin: по идее, должно работать нормально
tutubalin: например, проверяет вариант: мы ходим в A, противник в B, мы в C
tutubalin: например, выиграли. начисляем ноду A-B-C очки. нод A-B наказываем. ноду A начисляем очки
tutubalin: так как вариант был хороший, снова пробуем в A, но противник теперь пойдёт уже не в B, а куда-то в другое место.
735487: ну это идея впринципе. но фиг его знает насколько это хорошо. ты же дерево лимитируешь. а в стандартном алгоритме оно будет раскрываться все глубже и глубже
tutubalin: но если ролаутов 40к, вероятность того, что вернётся в тот же нод резко падает с глубиной
tutubalin: посмотрел - только уже перед самым концом игры на 6 уровне появляется много возвращений в один и тот же нод
tutubalin: резкий всплеск начинается как раз за 6-7 ходов до конца игры )
ilt: tutubalin то что ты сделал явно не MCTS
tutubalin: почему это?
tutubalin: монтекарло есть, три сёрч есть
ilt: в чем суть считать на глубину 6 только?
tutubalin: дерево на глубину шесть
ilt: ты же не получаешь терминального состояния
tutubalin: а дальше просто играю до конца без создания нодов
tutubalin: но наверное всё же нужно сделать адаптивную глубину
tutubalin: я просто хотел соптимизировать, чтобы максимизировать количество ролаутов
ilt: смысл все-таки не в их количестве
ilt: а в процессе выбора решения
ilt: только раскрыв дерево на глубину 6 ты его начинаешь исследовать
Uljahn: +
tutubalin: представь себе миник, где в качестве оценочной функции используется монтекарло
ilt: тест-кейс для твоей ситуации длинный форсированный вариант на глубину 10
Uljahn: а формула с коэффициентом позволяет исследовать либо более глубоко либо более широко
tutubalin: если он форсированный, то рандом всегда будет идти одним и тем же путём
ilt: в монтекарло он его легко рассчитает
ilt: неправильно выразился большой выбор вариантов с одним формированным
ilt: у меня он почти сразу его находит и дальше исследует только его
tutubalin: ну вот у меня первые шесть ходов из десяти найдёт
tutubalin: а дальше будет проверять рандомом
ilt: в твоем случае не уверен, что алгоритм вообще уверенно выберет этот ход
Uljahn: какой смысл проверять, если дерево не строишь?
tutubalin: почему это?
Uljahn: дерево даёт уверенность, а рандом даёт вероятность
tutubalin: варианты, ведущие к проигрышу, сразу отсеятся
Uljahn: суть алгоритма - в балансе
tutubalin: будет проверять тот вариант, который даёт наибольшую уверенность
Uljahn: глубина 6 жк
Uljahn: же
ilt: сначала он равномерно должен исследовать все варианты на глубине 6
ilt: потом пойти в глубину
tutubalin: всех вариантов может быть очень много
Uljahn: варианты для ноды на глубине 6, т.е. её чайлды
tutubalin: короче, попробую адаптивную глубину сделать
tutubalin: хотя может быть у меня просто бага где-то )
ilt: а классику сделать?
tutubalin: её не понятно, как оптимизировать
tutubalin: и вообще нафига эта формула
ilt: ты сначала пойми как она работает
Uljahn: лол, эта формула и реализует адаптивную глубину
ilt: а то ты взял из алгоритма знакомые слова и спел на свой лад
tutubalin: в классике всё равно роллит с корневого узла, так?
tutubalin: в каждом узле выбирает ребёнка с максимальным весом
Uljahn: не совсем
Uljahn: выбираются перспективные ноды, для них дерево углубляется и уточняется, чем больше заходит в них, тем для непосещённых нод выше regret
Uljahn: со временем их вес повышается, т.е. иногда в них тоже будет заходить, всё зависит от коэффициента
Uljahn: вообще, я начинал с многоруких бандитов и формулы UCB1, там нет дерева, но принцип тот же - сбор статистики
tutubalin: вот возьмём многорукого бандита
tutubalin: подходим к автомату, кидаем монетку, выиграли. автомат хороший, играем с ним дальше
tutubalin: как только проиграли, идём к следующему
tutubalin: когда обошли все автоматы, у нас уже есть статистика
tutubalin: так как количество проигрышей на каждом из них одинаковое, то логично, что винрейт больше у того, с которым мы больше всего играли
Uljahn: логично, но мы не знаем распределение выигрышей
Uljahn: может, нам не повезло в первую попытку наткнуться на хороший автомат
tutubalin: поэтому мы в него играем до второго проигрыша
tutubalin: потом переходим к следующему
Uljahn: к какому из следующих?
tutubalin: у которого винрейт на втором месте
Uljahn: ну вот UCB1 даёт upper confidence bound
tutubalin: UCB1 состоит из двух слагаемых: exploitaion и exploration
tutubalin: я оставляю только первое, так как оно проще считается
Uljahn: ))
tutubalin: но exploration осуществляю с помощью другого механизма
ilt: ))
tutubalin: Various modifications of the basic Monte Carlo tree search method have been proposed to shorten the search time.
tutubalin: Modifications have been proposed, with the aim of shortening the time to find good moves. They can be divided into improvements based on expert knowledge and into domain-independent improvements in the playouts, and in building the tree in modifying the exploitation part of the UCB1 formula
ilt: у меня выбор ноды составляет 10% всего времени
ilt: точно тут много съэкономить изменив алгоритм?
tutubalin: у меня 2%, но это не совсем точно
ilt: разница всего 8%
ilt: попробуй классику
tutubalin: это прозвучало двусмысленно )
ilt: алгоритм уже за тебя придумали
Uljahn: не надо на спичках экономить
Uljahn: лучше хорошие статистики получить
ilt: тебе его только корректно реализовать и понять как он работает
tutubalin: если бы все руководствовались принципом "алгоритм уже за тебя придумали", новых алгоритмов бы не появлялось
Uljahn: так тут есть где развернуться - можно heavy rollouts прикрутить, например
Uljahn: с эвристиками
Uljahn: или solver какой
tutubalin: Uljahn так статистика получается. на первом ходу все варианты прогоняются по много раз и центральная клетка выигрывает с минимальным перевесом
ilt: верно, но можно свалиться в крайность изобретателя квадратных колес
Uljahn: с учётом ограничений, в крестиках имеет смысл построить начало дерева в офлайне с более точными статистиками (opening book)
tutubalin: это я знаю, это потом
tutubalin: я к тому, что статистика собирается вполне нормально
Uljahn: так с 25к рандомных роллаутов ванильный MCTS выходит в легу
tutubalin: щас попробую адаптивную глубину запилить
Uljahn: :upside_down:
tutubalin: но сперва попробую глубину 7 )
Uljahn: мне кажется, лучше коэффициент подбирать
tutubalin: я подобрал коэффициент ноль )
tomatoes: мцтс впринципе сам и делает "адаптивную глубину"
Uljahn: уже говорили
tomatoes: пробовал делать по 2-3-5 роллаутов перед тем как само дерево экспандить/мучать, но не дало толку
Uljahn: кстати, в роллаутах инста-вины надо чекать
Uljahn: т.е. уже не совсем рандомные получается, чуть-чуть heavy)
tomatoes: солвер тоже пытался, но чот не осилил. какая-то ерунда выходила
tomatoes: инсты воткнуты тоже. уменьшает чуть роллауты, но общий результат лучше
Uljahn: а книгу дебютов?
tomatoes: только вот по углам воткнуто
Uljahn: teccles moves?
tomatoes: ну то есть туда же которое поле активно
tomatoes: а наверное
Uljahn: ага, если первый ход на пустом поле
tomatoes: ага
Uljahn: говорят, за крестики хорошо заходит
Uljahn: и у Смита получились вероятности хорошие для них
tutubalin: инставин на глубине N, это инсталуз на глубине N-1
tutubalin: соответственно, такой ход просто удаляется, если это только не последний ход на глубине 0
Uljahn: так в рандомном роллауте ты дерево не строишь
tomatoes: игра все равно к инста-вину сводится. зачем удалять
tutubalin: ну противник вряд ли будет играть ход, который приводит тебя к победе
Uljahn: для этого нужен солвер
Uljahn: либо утяжелять роллауты
Uljahn: компромиссы на компромиссах и трейдоффами погоняют
tutubalin: у меня так: если победа получилось в результате рандомного прогона, то это просто победа, она увеличивает винрейт
tutubalin: если победа была внутри дерева, где выбор осмысленный, то конкретно этот нод является гарантированно выигрышным
tutubalin: и родительский нод (в которым ход делаем противник) туда ходить точно не хочет, поэтому убирает ссылку на этот нод
Uljahn: алгоритм будет исследовать других соседей родителя
tutubalin: конечно
tutubalin: если все дети удалились, то такой нод проигрышный
Uljahn: а, ты вообще ссылку убираешь
tutubalin: и родитель будет считать ход в такой нод инставином и удалит все другие варианты
tutubalin: а потом его родитель удалит ссылку на него )))
tomatoes: это по-моему и есть так называемый солвер :thinking:
Uljahn: )
Uljahn: сомневаюсь, что можно как-то улучшить MCTS, не повторив при этом чью-то работу
[CG]Thibaud: hello, sorry to interrupt in English. Does any one of you know http://world-it-planet.org/ ?
wlesavo: [CG]Thibaud from a glance looks to be an ok competition in different areas, "international" part seems to be a loud word though, all of the copmpetitors are russian speaking comunity. We can check if you looking for some particular information
tutubalin: Uljahn на вики в статье про MCTS есть отдельная глава Improvements
YurkovAS: что такое инставины в роллаутах?
tutubalin: YurkovAS ну во-первых это победа на первом же ходу, которая освобождает от дальнейших поисков
tutubalin: [CG]Thibaud somebody here have already mentioned it
tutubalin: I cannot find english version of it, so "intertational" basicly means ex-USSR-national + expats.
[CG]Thibaud: ok thanks
tutubalin: [CG]Thibaud why do you ask? did they advertise themselves on CG?
[CG]Thibaud: I've been in contact with them
[CG]Thibaud: they were looking into some kind of partnerships
tutubalin: oh, nice
tutubalin: sorry that i cannot provide more info. somebody here mentioned them, but i don't remember who exactly
[CG]Thibaud: they said they have a lot of contacts with educational instituations and companies (mainly in Russia) so they could help set up challenges
[CG]Thibaud: I was trying to look on their website for recent activity but didn't find much
tutubalin: this is 2019 event: http://world-it-planet.org/description/
tutubalin: here are some contests, but probably also from the past year: http://world-it-planet.org/nominations/
tutubalin: here are past contest winners: http://world-it-planet.org/board/
tutubalin: so it looks like they carry on contests since 2007
735487: seems last one was at 2019
tutubalin: there is also a tab with educational instituations on the board link. cannot link it directly
tutubalin: that's report about the last contest (pdf, russian): http://world-it-planet.org/upload/2018-19/Report_IT-Planet_2018-19.pdf
tutubalin: i don't know, is it possible to translate PDF with some automatic translator?
tomatoes: гугл умеет, но там ограничение на размер
[CG]Thibaud: I saw the report but didn't dig on how to translate it
Uljahn: that site doesn't seem trustworthy to me
Uljahn: Automaton2000: test
Automaton2000: не так как я хочу
Uljahn: just my opinion, looks like they simulate some activity for goverment grants, e.g. calling competition between ex-USSR countries "international" (with waste majority of contestants being russian), the list of participants is also rather strange -- a lot of colleges and universities unrelated to IT
Uljahn: ГПОУ ТО "Крапивенский лесхоз-техникум" :confused:
Uljahn: кароче, для отчётности, как обычно, что типа студенты участвуют в международных соревнованиях
Uljahn: я сам так в международной конференции участвовал :)
BorisZ: https://habr.com/ru/post/349560/
BorisZ: задачки на SQL - я бы ни одной не решил )
Uljahn: вот со "всесоюзной" согласен
BorisZ: ну за соревновательное время, если пару дней на задачу и stackoverflow
BorisZ: nj vj;tn ,snm
BorisZ: то может быть
tutubalin: ну вот тут какие-то проекты есть: http://world-it-planet.org/press/news/detail.php?ID=366159
tutubalin: вобще сайт у них конечно точно б не занял призового места в номинации "веб-дизайн"
tutubalin: хер чо найдёшь
BorisZ: можно кинуть вопрос в телегу райка - там может и участники найдутся, только надо вопрос сформулировать - что интересно то?
BorisZ: [CG]Thibaud i can ask if there is some former participants in russian telegram chat about programming competitions, can you formulate your questions to them, what are you looking for?
[CG]Thibaud: thanks Uljahn for weighing in
[CG]Thibaud: hey BorisZ my questions would be: "did you participate in a competition organized by world-it-planet? If yes, how did it go?"
[CG]Thibaud: thanks :)
gybson_samara: Может они хотели 1С на CG добавить? =))))))))))))))
gybson_samara: codingame-sponsored-contest оказался отличной шуткой
inoryy: ОГБПОУ "Томский техникум социальных технологий" seems legit
tutubalin: История техникума неразрывно связана с историей Томской швейной фабрики. 10 июня 1934 года Главшвейпромом был издан приказ №127 об открытии школы ФЗУ по ул. Розы Люксембург, № 2 для подготовки кадров для Томской швейной фабрики
inoryy: [CG]Thibaud yes, you definitely want to associate with that org
[CG]Thibaud: you know about it inoryy
tutubalin: но вообще не стоит смеяться
tutubalin: В 2001 году началась работа областной экспериментальной площадки по теме: «Профессиональная подготовка выпускников коррекционных школ, в том числе инвалидов в профессиональном училище общего типа».
В 2002 году было открыто коррекционное отделение. А уже в 2004 году, был утверждён окружной учебно-методический центр по профессиональной подготовке и реабилитации инвалидов.
inoryy: [CG]Thibaud sarcasm :) it looks very shady like Uljahn said
inoryy: their partner school finder proudly features all EU countries but then none of them show any schools except for Russia and couple other ex-USSR
inoryy: not even baltics which are usually part of competitions (e.g. ICPC regionals are shared)
inoryy: and even for russia it shows some meme schools rather than those that are known for their strong teams
[CG]Thibaud: oh
[CG]Thibaud: they told me they did a partnership with agorize.com
[CG]Thibaud: thanks for the info
BorisZ: чего вы накинулись то на них, нет ни гарварда ни MIT - значит отстой и должны сидеть в своем болоте?
Uljahn: strong teams already have that achievement of participating in interantional competitions, this platform is for non-IT schools i guess
Uljahn: *international
Uljahn: я бы конечно лучше wlesavo послушал - он должен быть в теме, как сейчас у нас аттестации вузов проводятся, за что баллы начисляют
Uljahn: колличество публикаций точно оценивают, может и участие в соревнованиях/призовые места тоже как-то влияют
YurkovAS: Uljahn можешь рассказать что за инставин в крестиках и как его использовать?
735487: ну наверное имеется ввиду ветка в которой ты выигрываешь в независимости от хода противника. тогда нет смысла ее всю смотреть. что то типа такого наверное
735487: я пробовал такое прикрутить. у меня не получилось
YurkovAS: tomatoes: инсты воткнуты тоже. уменьшает чуть роллауты, но общий результат лучше
Uljahn: YurkovAS: если на доске есть ходы, которые приводят к выигрышу, их надо делать обязательно
Uljahn: т.е. подразумевается, что соперник не будет рандомно в этом случае ходить
Uljahn: или ты сам
Uljahn: это в процессе роллаута
tomatoes: перед случайным ходом чекается может ли текущий игрок закончить игру
Uljahn: угу
tutubalin: у меня возник вопрос, а что делать с гарантированной ничьёй. она явно лучше чем гарантированный проигрыш и явно хуже чем гарантированный выигрыш
Uljahn: ничья за крестики хуже, чем за нолики
tutubalin: но как сравнить гарантированную ничью с потенциальной победой?
Uljahn: стоимость 0.5
tomatoes: у меня ничья на 0.5 просто воткнута
YurkovAS: а, в рандомах. т.е если он может выйграть, то ходим не рандомно, а именно так?
Uljahn: это если 0 за проигрыш и 1 за победу
Uljahn: YurkovAS: да
YurkovAS: спасибо! проверю
tutubalin: смотри. одна ветка ведёт к рандомной победе, а другая к гарантировнной ничьей.
tutubalin: рандомная победа может быть и не победа вовсе
tomatoes: по идеи само выравниваться должно :thinking:
tomatoes: но это как-то математически мерять надо наверное
Uljahn: так UCT и меряет степень уверенности
Uljahn: её верхнюю границу
735487: tomatoes: перед случайным ходом чекается может ли текущий игрок закончить игру хмм а у меня нет такого :)
Uljahn: как бы роллаутов будет меньше, но качество их будет выше
BorisZ: мне кажется что это замедлит только все, чекать то каждый ход придется
Uljahn: т.к. исключаются глупые залёты
BorisZ: а та ветка где есть инставин и так вперед вырвется про просмотрам
Uljahn: зависит от других нод в дереве
Uljahn: это кстати не инставин получается, а просто терминальная нода, мы про то, что соседи терминальной ноды исключаются
Uljahn: в полностью рандомном роллауте это не так
BorisZ: я понимаю, но вопрос в цене
Uljahn: компромиссы на компромиссах и трейдоффами погоняют
Uljahn: идеального решения нет, да и от соперника многое зависит
Uljahn: в топе вон затачиваются под конкретные книги дебютов уже
BorisZ: если YurkovAS сможет проверить то это и решит, мне интуитивно кажется что это невыгодно, лезем грязными рученками в чистую красоту рандома )
Uljahn: это просто отсечение бесполезных вариантов
Uljahn: есть конечно шанс, что противник протупит, но не в топе голды или в леге
YurkovAS: BorisZ проверю, но не факт, что сегодня. пока не понятно, как это эффективно делать.
tomatoes: мне кажется после определнного количетсва роллаутов оно нивелируется и толку не особо. а если что-то вроде "немного не хватает", то есть толк
tomatoes: но это на уровне предположения :sweat_smile:
tomatoes: точнее скорости роллаутов
YurkovAS: tomatoes т.е. +10 мест это не дает?
Uljahn: +10 мест где? в топе леги?
Uljahn: сомневаюсь
Uljahn: нужна какая-то быстрая битовая магия, чтобы проверять одновременно с созданием чайлдов
YurkovAS: трюк теклеса дает +10 мест в леге.
tomatoes: я по-моему только у себя локально сравнивал. с чистым рандомом и вот с этими инстами. и инсты вроде как выигрывали
YurkovAS: так чаелдов или только для рандомных игр?
tomatoes: но места тогда были где-то 50-100 леги у меня
Uljahn: ой, да
Uljahn: тупанул
tomatoes: в топ 10 пожоще должно быть всё это
Uljahn: в общем, когда список валидных ходов генеришь
YurkovAS: в этих играх, немного не так делаешь и уже не тащит...
YurkovAS: tomatoes в топ10 еще один другой трюк. без него у меня макс топ20. с ним 5-15
735487: когда список валидных ходов генеришь нет смысла. ты итак найдешь этот ход
BorisZ: понял я идею - на этапе разворачивания потомков, если один из потомков дает победу, то дальше не разворачиваем, помечаем родителя как терминального - так примерно?
BorisZ: ну или поражение - не важно
BorisZ: или перед разворачиванием
BorisZ: если так то я скорее за, годная идея )
YurkovAS: я по другому понял: применяется только в процессе рандомного доигрывания. если есть выйгрышный ход - то используем его, а не рандомный.
tomatoes: в процессе роллаута, да
BorisZ: если так то мне кажется что замедлит только все и сломает статистику
BorisZ: но хз, вам там в топе виднее )
tutubalin: проверку делать надо на каждом разворачивании, а сработает она далеко не на каждом
tutubalin: мне кажется, в начале игры это только замедлит а в конце игры дерево само дорастёт до инставина
tomatoes: и рандом может вхолостую много съесть
Uljahn: тут дело в эффекте горизонта как раз
tomatoes: то есть вместо того чтобы закончить сразу ещё 10+ ходов случайно тыкаться
BorisZ: ну просто когда проверять во время роллаута? если на кождом ходу, то смысла нет в детекте инставина - мы же к позиции случайно пришли
BorisZ: если на первом ходу только - то это примерно то же что и с разворачиванием
tutubalin: да, но проверить всех детей, нет ли среди них победного - это по сути тоже 3-5 ходов отсимулировать придётся
Uljahn: суть в том, чтобы не получить вин там, где есть инсталуз
tutubalin: а, ну это другое дело
Uljahn: в процессе рандомного роллаута
BorisZ: да не страшно, лузов то больше будет
Uljahn: статистика будет хуже
Uljahn: менее качественная
BorisZ: ну хз, мне кажется что она будет искаженной просто
Uljahn: рандом не понимает, а соперник-то не упустит такой шанс
tutubalin: в принципе, можно сперва делать предпроверку: а возможен ли инставин в принципе?
BorisZ: про это формула заботится
BorisZ: а мы ей искажаем статистику
tutubalin: если на большой доске есть уже два в ряд неприкрытых, тогда делать основную проверку
tutubalin: BorisZ это не азартная игра, так что тут статистика - это просто попытка компенсировать недостаток вычислительных мощностей для полного просчёта
tomatoes: "early playout termination" вроде оно. или около того
tomatoes: гугл выдает какието пдф, но не читал :sweat_smile:
Uljahn: зачем тогда heavy rollouts применяют, если они искажают?
YurkovAS: early playout termination в oware хорошо работает, там делают 0-5 рандомных доигрываний и потом прерывают и оценивают оценочной функцией. в breakthrough и yavalath тоже лучше результат.
tomatoes: почитал и по-моему всё же про другое. хотя выглядит похоже
735487: BorisZ: терминальный нод итак не разворачивается же
tutubalin: ну вот а что считать терминальным?
tutubalin: нод, в котором геймовер, или его родителя?
tutubalin: ну точнее понятно, что терминальным будет тот, где геймовер
tutubalin: но родителю неплохо бы об этом знать
735487: родитель по сути знает потому что когда в него зайдут то по формуле он выберет там где геймовер или не выберет если это проигрыш
Uljahn: хм, неправильно я про терминальные ноды выразился, ноды же только в дереве, а в роллауте просто стейты, ноды не создаются
ilt: не знаю как проверить качество ГСЧ
ilt: на 2,5m чисел в диапазоне от 0 до 10
ilt: средний результат 250к +-500 на каждое число
ilt: последовательность в разных генерациях не повторяется
Uljahn: средний результат?
gybson_samara: похоже в голду пакманов я пролез наконец. Лучше поздно, чем никогда =)
gybson_samara: и что интресно, отказался от погони за большими палетками
ilt: 0 250k+-, 1 250k+- и т.д.
ilt: gybson_samara Поздравляю!
gybson_samara: спасибо
gybson_samara: перебор и коэффициенты зарулили
gybson_samara: и да, я, сделал предикативный свитч, если в команде, скажем, камни и бумага, то ножницы свитчятся в бумагу
gybson_samara: если в команде противника
ilt: amurushkin я что-то с формулой всех запутал вчера
ilt: когда выбор происходит ноды там берется максимальный коэффициент
ilt: а то что я вчера выводил берется в конце как лучший предок
ilt: там сортировка по количеству визитов, а не по коэффициенту
ilt: это по моему было в изначальном коде, я это не менял
ilt: и похоже это неправильно :thinking:
gybson_samara: вот что значит хорошо кушать
gybson_samara: https://www.codingame.com/replay/470869975
YurkovAS: ilt ты про ноду, которую выбираем для своего "финального" хода? то да, выбираем ту, в которой больше всего визитов.
ilt: а если вот так
ilt: 1 5-6 score 3290.0 visit 1241 uct 2.7597677069326063 2 5-8 score 750.0 visit 238 uct 3.399720135555297
ilt: у второго решения UCT сильно выше
ilt: если дать времени побольше оно скорее всего быстро выйдет в лидеры быстро
ilt: какой-то тупик :grinning:
735487: ilt:то что у тебя есть ноды у которых больше скор и так сильно меньше визитов говорит о том что твоя формула эту ветку не выбирает
tomatoes: тогда странно что первое столько визитов набрало
ilt: я эту штуку отлаживал
ilt: она сначала действительно была внизу
ilt: и не выбиралась
ilt: был очевидный лидер
ilt: потом в очередном выборе несколько выигрышей подряд и она поперла вверх
ilt: дальше у меня по таймауту уже отладку выбило
ilt: исходно было примерно три ноды у которых коэф 2,75 - 2,74
ilt: 1000 - 200 - 60
ilt: а 5-8 вообще на пятом месте была
ilt: с коэф 2, 73
ilt: визитов вообще 20 что-ли было
tomatoes: а скор что из себя представляет?
tomatoes: он от 0 до 1 по идеи должен быть
tomatoes: или от -1 до 1 :thinking:
ilt: у меня от -10 до 10
tomatoes: скорее всего в этом проблема
tomatoes: [('p1', 53), ('p2', 53), ('t', 12)] инстант и рандом чот одинаково играют, может и нет смысла с этим возиться :thinking:
ilt: tomatoes точно с 1 выровнялось распределение сразу
Uljahn: скор может быть любой, хоть от 100 до 102, но от него зависит оптимальный коэффициент эксплорейшна