Chat:Ru/2021-02-22
MadKnight: YurkovAS тут говорят - dancing links работает ток до топ-300
input.txt: а оно уже в сете
YurkovAS: input.txt поздравляю! :)
YurkovAS: miklla у тебя нет прагмы optimize в сокобане
Pon4ik: кто-то может подсказать, как улучшить код используя переменную nextCheckpointDist в гонках ?
MrMouseSE: как методы объявлять в питоне? О_о
miklla: ой лол, забыл прагму
miklla: ну теперь 5-7 мс на тесте 3-5
MadKnight: кто тут ещё помнит number shifting ?)
MadKnight: какие идеи были по прохождению?
YurkovAS: у топов вроде dancing links это что-то сложное
YurkovAS: у меня мктс - но это уже все, больше не смог улучшить
YurkovAS: он там в основном находил решение на рандомном доигрывании - ходов 10-20
YurkovAS: MadKnight в топ30 в WW дошел. тебе там немного не хватает: либо ускорить или противника теряет
YurkovAS: на простой альфа-бете с итеративным перебором глубины в основном там 2-3
Eugene8571: тут есть игра со стреляющими и движущимися ботами? как при регистрации но чтобы с движением.
735487: Eugene8571: а как сейчас при регистрации?
MadKnight: YurkovAS мне кажется у меня проблемы с детектом противника ещё были
Uljahn: amurushkin: наверное, это про Onboarding, где надо айди ближайшей цели указать
Uljahn: есть клёвая игра с движением и стрельбой из дробовика - Code vs Zombies, только она синглплеерная
samrrr: а что по поводу tic-tac? Есть идеи как завалить босса?
YurkovAS: MadKnight это они пишут про уровень в игре 200-250, а это топ 10. тогда проще использовать SA, у wlesavo <https://www.codingame.com/profile/12f500cba9a112bd54a093b5a66729119113353> тоже он мктс точно нет смысла использовать, он начинает жрать память как не в себя и ничего не находит. я просто там запускал по 10+ рандомных доигрываний после каждого expand-а - на этом он и решал
YurkovAS: samrrr крестики? там надо использовать mcts + bitboards
samrrr: И как это mtcs Напилить? Я делал рандомные игры на каждый из ходов, но босса так не завалить...
YurkovAS: samrrr тогда сделай ходы как у игрока teccles <https://www.codingame.com/profile/87a8fd8c8795680d057d6dd5c39b9d272353423>: посмотри как они играет за Х первые примерно 20 ходов. не один в один, а саму идею - ее видно
YurkovAS: я прошел босса только с мктс и даже с багом: не учитывал ничьи. только ускорил - посмотри в профайлере, там есть одно заметно медленное место
YurkovAS: просто мктс доходит до топ40-50 на с++
samrrr: Какие ещё ничьи? ничего подобного в правилах не помню...
YurkovAS: в игре же есть ничья?
samrrr: эээ нет вроде, всегда победитель есть
YurkovAS: а она есть :)
samrrr: Что-то я не встречал такого. это как ничья то выходит?
YurkovAS: да в списке боев своих посмотри, там будет 1 - 1
samrrr: Вроде этот teccles делает такиеже непонятные рандомные ходы как и все... никакой тактики не вижу
YurkovAS: первые примерно 20 ходов
YurkovAS: первые 12 более показательны, когда она за Х
samrrr: вроде занимает всегда редирект клетки на себя... но зачем?
YurkovAS: поймешь зачем - найдешь вторую важную характеристику
YurkovAS: но и без них доходит до топ50
samrrr: Мнеб пока не топ, а босса вальнуть...
Uljahn: для mcts ведущую роль играет количество роллаутов, должно быть в районе 20-25к на втором ходу, чтобы босса пройти
Uljahn: ещё там есть константа, её тоже можно поварьировать
Uljahn: редирект на пустом миниполе на себя исключает неудачные выигрышы, когда выигрываешь миниполе и при этом даёшь сопернику фримув
Uljahn: *выигрыши
Uljahn: вообще, этот босс - один из самых злых
samrrr: ну а разве не лучше оставить редирект сопернику? пусть он напорится на фри мув.
samrrr: и что за константа такая?
YurkovAS: у тебя же мктс? там в формуле константа есть
Uljahn: константа, которая определяет соотношение exploration/exploitation для алгоритма поиска
Uljahn: куда он чаще ходить будет - в наименее исследованные или в наиболее перспективные ветки
YurkovAS: Uljahn если уменьшаем, значит будет чаще ходить в наиболее перспективные (по скору)?
YurkovAS: а если 1.0?
MadKnight: лол, во фр народ с адменами посрълся
MadKnight: чел отвечал админам дофига грубо и ему кинули типа last warning before your CG acc is deleted
MadKnight: https://cg.spdns.eu/wiki/Chat:Fr/2021-02-18
samrrr: http://chat.codingame.com/pastebin/4dd1e311-3308-49e7-82d0-c931d817d1b1
MadKnight: YurkovAS а ты щас чё делаешь?
YurkovAS: MadKnight highloadcup пытаюсь на с++ завести - клон смартгая
MadKnight: samrrr эт какой язык
YurkovAS: MadKnight а ты?
MadKnight: вот думаю переписать WW
YurkovAS: мэд, я потом еще вернусь в ВВ, буду разбираться с альфа-бетой и ее улучшениями
MadKnight: странный у тебя стиль кода
samrrr: Этот код я писал когда-то давно...
samrrr: он аж до голды осилил)
YurkovAS: samrrr у тебя не мктс чтоли?
YurkovAS: щас скину пару ссылок
samrrr: сейчас у меня тупо рандомные игры и побольше
samrrr: вроде ещё совсем тупые ходы исключил
YurkovAS: значит это монтекарло
YurkovAS: https://www.baeldung.com/java-monte-carlo-tree-search https://github.com/Oreshnik/MCTS_TTT я по этим осваивал, во второй ссылке пример для CG и там вроде по другому одна часть - и играет лучше
YurkovAS: в общем, главная задача выжать 20-30к роллаутов (итераций главного цикла игры) на втором ходу и пройдешь босса
samrrr: Рандомычных у меня 20к только выходит... Тут как многопоточность и гпу можно поюзать?
YurkovAS: многопоточность нельзя - 1 ядро гпу тоже нет
Uljahn: есть AVX
Uljahn: YurkovAS: константа С определяет масштаб второго слагаемого по отношению к первому (среднему винрейту),
Uljahn: т.е. что будет предпочитать алгоритм - чуть больший вредний винрейт или чуть меньшее число посещений
Uljahn: *средний
Uljahn: чем меньше посещений, тем менее точная оценка
Uljahn: тем выше возможная упущенная выгода (regret)
Uljahn: константа это балансирует
Uljahn: samrrr: так 20-25к это вместе с деревом, а ты дерево наверное не строишь?
YurkovAS: у меня в крестиках она 1.0, а во всех других играх лучше с 1.4 (корень из 2) надо будет поразбираться, может где-то баг опять... вывести наверно дерево на глубину 1-2 и посравнивать параметры в разных играх
samrrr: не, ничё не строю, тупо на рандом ходы просчитываю
Uljahn: YurkovAS: ещё зависит от диапазона наград, для -1..1 будет одно значение, для 0..1 другое
Uljahn: samrrr: ну хоть прагмы-то используешь?
YurkovAS: и фастранд :)
YurkovAS: странно, что у него так хорошо играет
Uljahn: 125-й в голде, это слабо
Uljahn: на уровне лучшего питона
samrrr: да в начале озончик стоит
YurkovAS: он наверное строит какую-то статистику у первых своих ходов? кол-ва выйгрышей например и потом выбрать наиболее выйгрышный
Uljahn: да, это типа UCB1 без дерева
samrrr: да статистику по каждому из ходов
Uljahn: у меня такой алгоритм щас
Uljahn: но роллаутов всего 500 штук)
Uljahn: 0.5к
YurkovAS: ну плюсы быстрее
samrrr: я был упорным и данные распихал по битам, играть лучше не стало но игр больше
Chibikko: Простите что вклиниваюсь. Какую игру обсуждаете?
Chibikko: Похоже она не теряет популярность.
Uljahn: одна из лучших игр с упором на оптимизации, а не на мудрёные правила
Uljahn: ещё 2048 соло оптимизация хороша
samrrr: 2048 вроде нет в мультиплеерных
Uljahn: угу, она в оптимизациях
Uljahn: https://www.codingame.com/multiplayer/optimization/2048
samrrr: ну это неинтересно, лучше уж бомбермена поделать...
Chibikko: В январе пытался подобие альфа-зиро на UTTT натянуть. Не взлетело. Так и не выловил ошибку почему с каждой итерацией обучения всё хуже играло. Кто-нить пробовал алгоритм схожий с альфазиро в подобных задачах?
samrrr: Домножь обучение на -1 если так плохо учит.
Chibikko: да всяко пробовал, всё равно деградирует. Где то ошибка в построении дерева, а не в самой нейросетке
YurkovAS: Chibikko у рекурса (топ1-2) нейронка в крестиках. какой алгоритм не знаю, но можешь спросить. он писал, что у него самодельное все и для крестиком много костылей добавлял
YurkovAS: вот тут точно в топе нейронки: oware, breakthrough, csb
MadKnight: YurkovAS мне крч надо поработать завтра
MadKnight: но я всё ещё не поработал в последний рабочий день
MadKnight: и я походу завтра работать вообще не буду готов
MadKnight: Automaton2000 чё делать?*
Automaton2000: а ты на каком месте?
MadKnight: на 3 как минимум кнш Automaton2000 что за вопрос?
Automaton2000: у меня в общаке смайлы не показывает
MadKnight: так, мне надо проверить, передаёт ли мне сервак всех онлайн юзеров когда я не мод
MadKnight: f12
MadKnight: Automaton2000 придётся страницу перезагрузить
Automaton2000: я так и не понял, что это не так
MadKnight: хмммм Automaton2000 мне не пришёл спам <presense>'ов
Automaton2000: да я не понимаю что ты от меня хочешь
MadKnight: пришло всего штук 20
MadKnight: как моду мне приходило просто штук 300
MadKnight: ещё надо узнать приходят ли "user disconnected" просто когда юзер ничего долго не писал? или как для модов - когда реально дисконнектнулся?
MadKnight: 99% что приходит disconnected когда долго ничего не делал
MadKnight: YurkovAS запилил teccles ?)
YurkovAS: MadKnight конечно
YurkovAS: уже празднуешь? :)
YurkovAS: я уже протрезвел
YurkovAS: а что там за уведомления про дисконнекты?
YurkovAS: модеры видят тех кто в онлайне в чате?
YurkovAS: в пиджене у меня для всех показывает offline