Chat:Ru/2021-02-22

From CG community
Jump to navigation Jump to search

MadKnight: YurkovAS тут говорят - dancing links работает ток до топ-300

input.txt: а оно уже в сете

YurkovAS: input.txt поздравляю! :)

YurkovAS: miklla у тебя нет прагмы optimize в сокобане

Default avatar.png Pon4ik: кто-то может подсказать, как улучшить код используя переменную nextCheckpointDist в гонках ?

Default avatar.png 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, только она синглплеерная

Default avatar.png samrrr: а что по поводу tic-tac? Есть идеи как завалить босса?

YurkovAS: MadKnight это они пишут про уровень в игре 200-250, а это топ 10. тогда проще использовать SA, у wlesavo <https://www.codingame.com/profile/12f500cba9a112bd54a093b5a66729119113353> тоже он мктс точно нет смысла использовать, он начинает жрать память как не в себя и ничего не находит. я просто там запускал по 10+ рандомных доигрываний после каждого expand-а - на этом он и решал

YurkovAS: samrrr крестики? там надо использовать mcts + bitboards

Default avatar.png samrrr: И как это mtcs Напилить? Я делал рандомные игры на каждый из ходов, но босса так не завалить...

YurkovAS: samrrr тогда сделай ходы как у игрока teccles <https://www.codingame.com/profile/87a8fd8c8795680d057d6dd5c39b9d272353423>: посмотри как они играет за Х первые примерно 20 ходов. не один в один, а саму идею - ее видно

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

YurkovAS: просто мктс доходит до топ40-50 на с++

Default avatar.png samrrr: Какие ещё ничьи? ничего подобного в правилах не помню...

YurkovAS: в игре же есть ничья?

Default avatar.png samrrr: эээ нет вроде, всегда победитель есть

YurkovAS: а она есть :)

Default avatar.png samrrr: Что-то я не встречал такого. это как ничья то выходит?

YurkovAS: да в списке боев своих посмотри, там будет 1 - 1

Default avatar.png samrrr: Во есть таки ничья.

Default avatar.png samrrr: Вроде этот teccles делает такиеже непонятные рандомные ходы как и все... никакой тактики не вижу

YurkovAS: первые примерно 20 ходов

YurkovAS: первые 12 более показательны, когда она за Х

Default avatar.png samrrr: вроде занимает всегда редирект клетки на себя... но зачем?

YurkovAS: поймешь зачем - найдешь вторую важную характеристику

YurkovAS: но и без них доходит до топ50

Default avatar.png samrrr: Мнеб пока не топ, а босса вальнуть...

Uljahn: для mcts ведущую роль играет количество роллаутов, должно быть в районе 20-25к на втором ходу, чтобы босса пройти

Uljahn: ещё там есть константа, её тоже можно поварьировать

Uljahn: редирект на пустом миниполе на себя исключает неудачные выигрышы, когда выигрываешь миниполе и при этом даёшь сопернику фримув

Uljahn: *выигрыши

Uljahn: вообще, этот босс - один из самых злых

Default avatar.png samrrr: ну а разве не лучше оставить редирект сопернику? пусть он напорится на фри мув.

Default avatar.png 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

Default avatar.png samrrr: http://chat.codingame.com/pastebin/4dd1e311-3308-49e7-82d0-c931d817d1b1

MadKnight: YurkovAS а ты щас чё делаешь?

YurkovAS: MadKnight highloadcup пытаюсь на с++ завести - клон смартгая

MadKnight: samrrr эт какой язык

YurkovAS: MadKnight а ты?

MadKnight: вот думаю переписать WW

Default avatar.png samrrr: С++ как обычно

YurkovAS: мэд, я потом еще вернусь в ВВ, буду разбираться с альфа-бетой и ее улучшениями

MadKnight: странный у тебя стиль кода

Default avatar.png samrrr: Этот код я писал когда-то давно...

Default avatar.png samrrr: он аж до голды осилил)

YurkovAS: samrrr у тебя не мктс чтоли?

YurkovAS: щас скину пару ссылок

Default avatar.png samrrr: сейчас у меня тупо рандомные игры и побольше

Default avatar.png samrrr: вроде ещё совсем тупые ходы исключил

YurkovAS: значит это монтекарло

YurkovAS: https://www.baeldung.com/java-monte-carlo-tree-search https://github.com/Oreshnik/MCTS_TTT я по этим осваивал, во второй ссылке пример для CG и там вроде по другому одна часть - и играет лучше

YurkovAS: в общем, главная задача выжать 20-30к роллаутов (итераций главного цикла игры) на втором ходу и пройдешь босса

Default avatar.png 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 и посравнивать параметры в разных играх

Default avatar.png samrrr: не, ничё не строю, тупо на рандом ходы просчитываю

Uljahn: YurkovAS: ещё зависит от диапазона наград, для -1..1 будет одно значение, для 0..1 другое

Uljahn: samrrr: ну хоть прагмы-то используешь?

YurkovAS: и фастранд :)

YurkovAS: странно, что у него так хорошо играет

Uljahn: 125-й в голде, это слабо

Uljahn: на уровне лучшего питона

Default avatar.png samrrr: да в начале озончик стоит

YurkovAS: он наверное строит какую-то статистику у первых своих ходов? кол-ва выйгрышей например и потом выбрать наиболее выйгрышный

Uljahn: да, это типа UCB1 без дерева

Default avatar.png samrrr: да статистику по каждому из ходов

Uljahn: у меня такой алгоритм щас

Uljahn: но роллаутов всего 500 штук)

Uljahn: 0.5к

YurkovAS: ну плюсы быстрее

Default avatar.png samrrr: я был упорным и данные распихал по битам, играть лучше не стало но игр больше

Chibikko: Простите что вклиниваюсь. Какую игру обсуждаете?

Default avatar.png samrrr: tic-tac-toe

Chibikko: Похоже она не теряет популярность.

Uljahn: одна из лучших игр с упором на оптимизации, а не на мудрёные правила

Uljahn: ещё 2048 соло оптимизация хороша

Default avatar.png samrrr: 2048 вроде нет в мультиплеерных

Uljahn: угу, она в оптимизациях

Uljahn: https://www.codingame.com/multiplayer/optimization/2048

Default avatar.png samrrr: ну это неинтересно, лучше уж бомбермена поделать...

Chibikko: В январе пытался подобие альфа-зиро на UTTT натянуть. Не взлетело. Так и не выловил ошибку почему с каждой итерацией обучения всё хуже играло. Кто-нить пробовал алгоритм схожий с альфазиро в подобных задачах?

Default avatar.png 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