Chat:Ru/2020-06-03

From CG community
Revision as of 11:23, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/2111605585777> 735487: я по прежнему считаю что дело в функции выбора ветки. иначе почему ход с боль...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

Default avatar.png TravyIIIka: Dctv ghbdtttttn

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, но от него зависит оптимальный коэффициент эксплорейшна