Chat:Ru/2020-06-07

From CG community
Jump to navigation Jump to search

tutubalin: TTeaLL если ты был 243, а стал 36, то на что ты жалуешься? )

Default avatar.png Kadim: Почему в контекстном меню нет пункта вставить? Как добавить?

tutubalin: используй Ctrl+C, Ctrl+V или Ctrl+Insert, Shift+Insert

Default avatar.png rmuskovets: но пункт "копировать" там есть)

tutubalin: пункт Вставить должен появляться только когда в клипборде что-то есть

tutubalin: но вебсайт не может иметь доступ к твоей клипборде из соображений безопасности

Uljahn: такой вопрос лучше на сайте редактора Monaco задавать :smirk:

gybson_samara: 78% - 2 место, какой-то нервный прям сабмит

gybson_samara: опять завис на втором месте, только теперь в серебре =) сплошная драма

BorisZ: gybson_samara если против босса хотя бы иногда выигрываешь, то сабмить снова

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

gybson_samara: BorisZ мы с ним на равных я бы сказал, кому как повезет

BorisZ: ну тогда сабмить снова, рандом то никто не оменял, с какого-то раза повезет

gybson_samara: еще подкручу

BorisZ: вот пока крутишь - пусть оно играет )

Default avatar.png ooom: всем привет

Default avatar.png ooom: посоветуйте что-нибудь на кодинг бота

gybson_samara: крестики-нолики

BorisZ: ooom ты не знаешь какую игру выбрать чтобы начать, или уже выбрал и не знаешь с чего начать?

gybson_samara: на глаз крестики-нолики конечно тяжеловато воспринимать, вообще неочевидно где и что не так сделал

gybson_samara: все еще тащусь от нампи =)

gybson_samara: mm = self.mm[ENEMYMAP,:,:].copy() - self.mm[MYMAP,:,:]

Default avatar.png ooom: @BorisZ я не знаю что выбрать

Default avatar.png ooom: как тут кому-то писать? через '@' ?

BorisZ: просто набираешь первые 1-2 буквы ника и жмешь таб

Default avatar.png ooom: BorisZ ok

BorisZ: ooom путь самурая: заходишь в https://www.codingame.com/multiplayer/bot-programming и выбираешь самую красивую картинку )

BorisZ: по любой игре всегда найдется кто-то кто сможет что-то подсказать

Default avatar.png ooom: BorisZ спасибо то что нужно! :)

gybson_samara: я бы последние контесты посмотрел, все интересные

Default avatar.png ooom: много тут людей, кто по русски говорит?

gybson_samara: в этом чате все =)

Default avatar.png ooom: пока только 2 живых вижу)

gybson_samara: человек 20 наберется

Default avatar.png ooom: ок

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

Uljahn: я заглядываю переодически, просто чего писать-то, раз никто ничего не спрашивает

BorisZ: Uljahn я вот подумал может правда сделать на tech.io пример про нубму

BorisZ: освежить тему так сказать

BorisZ: я глянул, там куча примеров совсем мелких, на 1 страничку,

Default avatar.png ooom: что за нумбу

Uljahn: для питона либа, ускоряет за счёт JIT

BorisZ: https://www.codingame.com/forum/t/speed-up-python-with-jit-compiler/184919

Uljahn: BorisZ: так надо, чтобы её сначала добавили на tech.io, наверное

BorisZ: тему с классами можно раскрыть

Uljahn: на дискорде что ли спросить

BorisZ: я не знаю как там все устроено (

ilt: Uljahn ты когда теклесс подставляешь обсчета никакого у тебя нет?

BorisZ: я попытался создать плейграунд, но не хватило терпения до конца дойти

Uljahn: ilt: именно

ilt: я что-то не понимаю у меня получается второй ход получается в центральную клетку

BorisZ: Uljahn Our Docker-based architecture allows contributors to create playgrounds on virtually any technology, language, framework or API, even custom or emerging ones. Learn about anything you like.

Uljahn: плюс в том, что на tech.io добавлять либы намного проще, чем на CG, они для этого и переписывали всю архитектуру

BorisZ: это на стартовой так написано

Uljahn: а, ок, надо покурить эту тему

ilt: это особенность MCST или у меня что-то криво работает

ilt: последовательность 4-4 5-5, потом выбирает 7-7

ilt: с большим отрывом

Uljahn: всегда?

ilt: не всегда, но часто

Uljahn: а ты из дочерних нод рандомно выбираешь, когда они не развёрнуты ещё?

ilt: да

ilt: tecless это 8-8

Uljahn: угу, 7-7 это центр, вообще не в тему

ilt: если дать на первый ход много времени то 99% времени это 4-4

ilt: теперь думаю это глюк моего алгоритма или нет

ilt: я понял из-за чего таймауты, это как раз перенос статистики в следующую итерацию

ilt: ход в смысле

Default avatar.png ooom: что такое MCST ? :)

Default avatar.png ooom: ok

Hamibar: а почему ход 7 7 это плохо?

ilt: так вот без переноса новая 95% проигрывает, а с переносом 100% выигрывает

ilt: ooom https://www.codingame.com/ide/puzzle/tic-tac-toe

Hamibar: ooom Monte Carlo tree search

ilt: Hamibar потому что ты хуже стоишь в центральной клетке

ilt: 4-4 5-5 7-7 4-5

ilt: очевидно у крестиков хуже

Hamibar: На самом деле не понятно, почему это плохо. Надо будет подумать над этим)

Uljahn: потому что в центр миниборд им ходить нельзя - проиграют центральную миниборду, очень ценную

Uljahn: но может возникнуть вынужденная ситуация, когда других ходов нет

ilt: 4-4 5-5 7-7 4-5 5-7 3-5

ilt: у меня алгоритм такое допускает

ilt: роллаутов далеко не 20 тысяч

ilt: конечно

Hamibar: Уже похоже на какую-то эвристику)

ilt: чистый монтекарло

Uljahn: а что против босса получается?

ilt: буду коэффициенты настраивать

Uljahn: твой бот на арене не так играет

ilt: это в иде и получается

Uljahn: ясн

ilt: вот на арене https://www.codingame.com/share-replay/471447529

Uljahn: мне кажется, крестики этим дебютом обменивают центр на угол, в углу только две выигрышные линии (кроме ничьих и считая потерянный центр), т.е. чётко обозначаешь приоритеты, противнику достаточно одну из мини-борд в линии заблокировать и всё

Hamibar: получается, что самый лучший мув в начале - в центре?

Uljahn: да

ilt: 100%

Hamibar: похоже мой бандит до этого не додумался)

Uljahn: это даёт крестикам перевес в десяток процентов примерно

Uljahn: другое дело, что у топов лучшие ходы захардкожены в книге дебютов

Uljahn: и твоё ход не из книги может им спутать карты)

Hamibar: интересно сколько даст захардкоживание этого первого хода) ща испытаю

Uljahn: довольно много даёт, ну и teccles moves до кучи хардкодь

Hamibar: teccles moves это что?

Hamibar: у меня еще даже древа нет:grinning:

Default avatar.png BeginnerDeveloper: я так поинмаю это не совсем для начинающих сайт?)

ilt: Uljahn старая версия почти никогда в центр не ходит

Hamibar: Да для всех подойдет. Необязательно же писать что-то сложное.

Hamibar: В контестах и мульти для этого есть лиги.

Hamibar: В пазлах есть метка сложности.

gybson_samara: я вот так сделал в крестиках

gybson_samara: http://chat.codingame.com/pastebin/50229334-1ca9-48aa-83ef-a68432262cb7

Uljahn: приоритеты захардкодил?

ilt: gybson_samara это для оф?

gybson_samara: ну как захардкодил

gybson_samara: если я их посчитаю, то что изменится?

gybson_samara: очевидно же это количество линий, которые можно построить через эту клутку

ilt: если для оценки то это уже не то, я хочу чистый монтекарло улучшить по максимуму

Uljahn: у разных миниборд разные стоимости по идее

gybson_samara: да, я больше того, для глобальной доски это использую

Hamibar: по идее ведь если есть дерево, то не обязательно хардкодить первый ход. Он и сам должен понимать, что это наиболее выигрышный ход

gybson_samara: целиком оценка выглядит так

gybson_samara: http://chat.codingame.com/pastebin/a8d2811a-5387-41ca-b892-b71274518baa

Uljahn: Hamibar: да, если число симуляций достаточное

Uljahn: gybson_samara: тут пора нейронку обучать)

Uljahn: правда, нужен мощный MCTS с солвером

gybson_samara: Uljahn да вот подумаю, да, как и с пакманом

gybson_samara: но в пакмане на эвристике в голду въехал

ilt: Hamibar на начальной стадии даже на плюсах одной секунды не хватает

Default avatar.png ooom: В javascript, typescript можно какие-нибудь либы подключать?

Default avatar.png ooom: например lodash?

gybson_samara: Uljahn но я тут на нампи сразу делаю и это праздник конечно

Hamibar: ilt сколько плейаутов нужнов начале, для этого? пару милиионов?

Hamibar: кстати простое захардкоживание первого хода не дало никакого результатаю

gybson_samara: дык

gybson_samara: если бы он был настолько важен, то всегда выигрывал бы тот, кто первый ходит

gybson_samara: если в голду выйду на эвристике, выложу код в паблик

ilt: Hamibar я не знаю. У тебя всегда первый ход 4-4?

Hamibar: Ну если захардкожено, то да)

ilt: а если нет?

gybson_samara: у меня просто по оценке первый ход всегда туда =)

Hamibar: а так не часто туда ходит

gybson_samara: так как с точки зрения и глобального поля и локального это самая высокая оценка для пустого поля

ilt: если я ставлю 50 сек у меня всегда 4-4

ilt: правда я в своем алгоритме не уверен

ilt: gybson_samara попасть в голду на эвристиках проблем нету

gybson_samara: ilt угу, тут такой интересный топчик собрался перед боссом =)

Uljahn: вот пример с 7-7 https://www.codingame.com/replay/471476801

ilt: дальше в какой-то момент ты поймешь что все ранее сделанное не имеет большого смысла

gybson_samara: почему?

gybson_samara: для перебора точно такая же оценка ходов и нужна, разве нет?

Uljahn: потому что поле взаимосвязано, есть фримувы

ilt: для перебора да, для монтекарло нет

Uljahn: для перебора не нужна оценка по сути, только статистика выигрышей

gybson_samara: ну это глубина какая

ilt: если имеется ввиду минимакс то оценка нужна

gybson_samara: с оценкой можно 10-20 ходов посчитать

ilt: для монтекарло вообще не нужна оценка, а нужна статистика

ilt: принцип другой

Uljahn: минимакс тут не подходит - слишком большой коэффициент ветвления в начале и на фримувах

ilt: Uljahn что ты хотел показать этим реплеем?

gybson_samara: фримувы можно и не давать

Uljahn: что 7-7 - это плохой ход

ilt: сливает в одну калитку да

Uljahn: gybson_samara: это как?

gybson_samara: Uljahn ну не ходить так, чтобы противнику выпал фримув

gybson_samara: насколько это можно

gybson_samara: хотя бы в начале, а как осталось мало клеток свободных, то тогда да

Uljahn: при этом придётся делать неоптимальные вынужденные ходы

gybson_samara: придется

Uljahn: а к концу партии просчитать уже легче

gybson_samara: но если у противника на мази захват и он туда попадет при фримуве

Uljahn: противник этим воспользуется и загонит в угол

Hamibar: Нужно хардкодить наверное что-бы из других борд тоже не ходило в центр, тогда будет профит.

ilt: это теклес и есть

Hamibar: Но лучше не хардкодить а нормального монте карло пилить

gybson_samara: я просто делаю оценку -50 (надо -100 наверн) для клетки, если ей соответствует занятая глобальная

Uljahn: поэтому центры на периферийных бордах захватывают в последнюю очередь

gybson_samara: ну да, оно так и выходит

Uljahn: монте-карло и MCTS это совершенно разные вещи, кстати

gybson_samara: как Маркс и Энгельс =)

gybson_samara: пипец улучшил =) не сходил первым ходом 4-4 чтобы враг в центр не сходил

Hamibar: монте карло в монако, MCTS в крестих)

Uljahn: MCTS в пределе (при бесконечном количестве симуляций) строит такое же дерево, что и минимакс, но миник - это как поиск в ширину, а тут больше в глубину с адаптацией (ещё и коэффициент есть для подстройки)

tutubalin: MCTS в пределе - это брутфорс )

Uljahn: как и минимакс

Uljahn: построение полного дерева игры

Uljahn: за счёт некоторых оптимизаций можно часть веток обрезать как в альфа-бете

tutubalin: мне кажется, за то время, сколько тут в UTTT играют, уже можно было полное дерево просчитать на кластере

Uljahn: )))

Uljahn: а мне кажется, что если бы могли, то просчитали бы уже и пейпер накатали

tutubalin: ivoryy может специально в DeepMind устроился, чтоб их мощности заюзать

tutubalin: https://ru.wikipedia.org/Ничейная_смерть

Uljahn: https://en.wikipedia.org/wiki/Solved_game

Uljahn: всё равно, в условиях ограничений оптимальная игра труднодостижима

Uljahn: поэтому крестики хороши как полигон для оптимизаций

tutubalin: благодаря симметрии для первого хода в UTTT существует всего 15 (а не 81) возможных вариантов

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

Uljahn: если бы был единый лимит времени на игру (как в RAIC), а не по ходам, то было бы интереснее, наверное

inoryy: tutubalin эй, зачем палить то так

Uljahn: так он вроде и сам в гугл устроился?

Uljahn: Automaton2000: обколются своими крестиками, а потом битки майнят на суперкомпьютерах

Automaton2000: я так и не понял

ilt: непойму как ход 7-7 может иметь 80% побед на миллионе визитов

ilt: то ли в роллаутах бага, то ли так может быть

ilt: на втором ходу

Uljahn: дебажил роллауты?

Uljahn: ничьи правильно считает? ещё в бэкпропе результата бага может быть

ilt: роллауты дебажил

ilt: как раскладывает результаты по дереву тоже

tomatoes: это на третьем ходе? 44 55 77?

ilt: на втором

ilt: 4-4 ответ 5-5

ilt: дальше выбирает 7-7

Uljahn: а фримувы проверял? там рандомно выбирает из возможных в начале?

ilt: да

Uljahn: а на 7-7 ответы с какой статистикой? счёт/посещения

ilt: по разному

ilt: но бывает и 80% побед с большим количеством визитов

Uljahn: в силу симметрии, счёт у 4-5 и 5-4 должен быть примерно одинаков, как и у 3-5 и 5-3

vrabosh: а сколько там в крестиках вариантов может быть? обычных как я помню 800 гдето

ilt: Uljahn вернул старую версию, мне теклес не помогают

MelnikovIgor: Что такое теклес?)

ilt: ход в ту же доску куда сходил противник

ilt: на начальном этапе

MelnikovIgor: эм

MelnikovIgor: зачем ходить туда куда проитвник ходил?)

ilt: неправильно выразился

ilt: допустим начало 4-4 5-5

ilt: Здесь предлагается делать ход 8-8

ilt: чтобы следующий ход противника был на этой же доске

MelnikovIgor: А, ты доменные оптимизации делаешь

MelnikovIgor: Я бы начал с чистого МКТС

MelnikovIgor: Без доменных улучшений

MelnikovIgor: Мне ни одно из них не помогло

ilt: что такое доменные оптимизации?

ilt: у меня и есть версия чистого MCST

MelnikovIgor: Ну то что ты пытаешься эвристикой улучшить

ilt: пытался ее ускорить но что-то пошло не так

MelnikovIgor: Заставляешь ходить на определенную доску и тд

ilt: MelnikovIgor а сколько у тебя роллаутов на втором ходу?

inoryy: забавно что это теклесом называют, эту страту юзали сразу в первую же неделю как уттт вышел

MelnikovIgor: @ilt 6-10k 2ое место в голде максимум

MelnikovIgor: ilt 6-10k, сейчас до GOLD 2jq дошел

MelnikovIgor: ilt 6-10k, сейчас до GOLD 2ое место максимум дошел

MelnikovIgor: Но я на шарпе пишу

MelnikovIgor: Мне принципиально на нем пройти

MelnikovIgor: На плюсах уже в легенде был бы

inoryy: c# не настолько от с++ отстает

MelnikovIgor: Ну конечно

MelnikovIgor: Очень)

MelnikovIgor: очень

ilt: у меня чуть поменьше и я тоже на яве хочу пройти

inoryy: когда игра только вышла на яве бот довольно долго держал #1

MelnikovIgor: А сейчас посмотри топ 30)

MelnikovIgor: Одни плюсы

MelnikovIgor: JIT делает неоптимальный ассемблер

ilt: все-таки у меня есть баги

MelnikovIgor: А про то что надо избегать GC вообще молчу

ilt: надо их ловить

MelnikovIgor: Как кстати в яве хранишь стейт борда?

inoryy: это не меняет того что этот парень держал #1, т.е. он спокойно прошёл голд босса в первую же неделю

MelnikovIgor: Ну значит крутой чел, без вопросов, но факт есть факт

inoryy: в любой мульти язык решает только когда на топ~10 метишь

ilt: MelnikovIgor а ты за ничью очки даешь?

MelnikovIgor: У меня за ничью 0

MelnikovIgor: За выигрыш от 0 до 1

MelnikovIgor: За проигрыш от -1 до 0

MelnikovIgor: Хотя может вариант от 0 до 1 рандировать с ничьей в 0.5 будет лучше?

MelnikovIgor: ранжировать*

BorisZ: inoryy когда крестики открыли там не было лиг

MelnikovIgor: опа)

BorisZ: это был первый мульти который не от контеста произошел, может и единственный

Uljahn: тогда голд-босса не нафидили ещё, даже кубер с миником на джаве прошёл в легу

Uljahn: а может он просто в топе оказался, которые автоматом вкатились

Uljahn: кстати, https://github.com/carlini/printf-tac-toe

BorisZ: но сейчас посмотрел - 4 шарпа, 12 джав в леге, всяко кто-то а может и все через босса прошли

Uljahn: да можно конечно пройти

Uljahn: просто надо чутка упороться

BorisZ: Uljahn голдбосса нафидили - что значит?

BorisZ: его сила игры то константная, от циферок рейтинга не зависит

BorisZ: и один котлин - тоже джава

tutubalin: Uljahn с printf - круто! люблю такое

Uljahn: от ретинга зависит, как сильно тебе надо рекать топ-10, а не только босса

Uljahn: возможны всякие RPS случаи

BorisZ: не знаю, в каких-то играх наверняка так, в крестиках не могу себе представить

BorisZ: может быть так, но один хрен с какого-то момента человек уже не понимает почему тот или иной ход делается

Uljahn: даже в ванильном MCTS могут быть у всех разные константы и число роллаутов

BorisZ: про константу котора в формуле - я пробовал ее крутить, в каком-то диапазоне оно примерно одинаково играет, довошьно большом

BorisZ: а число роллаутов как раз практический единственный показатель силы

BorisZ: но там если минимаксы есть как ты говоришь, они выбиваются, может из-за них и возникнет камень-ножницы, хз

MelnikovIgor: Кручение константы тоже не особо помогло

Uljahn: http://cgstats.magusgeek.com/app/multi-tic-tac-toe/MelnikovIgor

Uljahn: вот как раз сабмит в топе идёт)

Uljahn: MelnikovIgor: сколько роллаутов на втором ходе?

MelnikovIgor: Uljahn 10k

MelnikovIgor: У меня пишется в вывод

735487: 10к сильно мало. надо не меньше 25к а лучше больше 30к

MelnikovIgor: Что-то все идеи закончились)

Uljahn: первую секунду всю используешь?

MelnikovIgor: Да

MelnikovIgor: Все время использую

inoryy: BorisZ 28 февраля 2018 уже точно были лиги

inoryy: более того я даже 100% помню я спрашивал почему в утт есть лиги когда заметил что в других кастомных не было

735487: решил тоже попробовать одну мульку и сабмитнуть ))

inoryy: когда уттт только вышел там почти все на миниках были и как-то пролезали в легу )

Uljahn: теоретически можно пролезть за счёт того, что рекаешь всех в топ-10 кроме босса :thinking:

gybson_samara: я целый день в топ-10 кручусь =)

inoryy: там босс сильно урезанный, только 5мс на ход давалось или че-то такое

gybson_samara: и весь топ-10 со мной, оргия какая-то

Uljahn: http://cgstats.magusgeek.com/app/multi-tic-tac-toe/gybson_samara боссу сливаешь сильно

gybson_samara: Uljahn в тестах 5-1 примерно его выигрываю

Uljahn: :relieved:

tutubalin: блин. иногда вылетают таймауты на пустом месте

tutubalin: вроде время засекаю как можно раньше и 5мс оставляю про запас

Uljahn: блин, тоже нашёл один таймаут в ласт бэтлс, на ровном месте

Uljahn: когда жмёшь "replay in same condition" - подсовывают другой проц :smiley:

ilt: нашел один забавный баг в роллаутах

ilt: победа на полной минидоске считается ничьей

735487: хехе фикси

735487: а я нашел способ сделать на 20% больше роллаутов. но качество игры от этого не стало лучше

tutubalin: я когда с фиксированного дерева на динамическое переписал, у меня неожиданно выросло число и ролаутов, и сим

tutubalin: но прирост качества оказался не такой крутой, как я ожидал

MelnikovIgor: Что за фиксированое и динамическое дерево7

tutubalin: у меня сперва дерево было фиксированной глубины. ноды ниже определённой глубины не создавались

gybson_samara: ну как надоедает болтаться в топ-3, прям бесит, и хз че делать =)

gybson_samara: только не говорите "делай симу" =)

735487: фикси баги :)

ilt: и делай симу :)

ilt: блин в старой версии еще роллауты неправильно считаются

ilt: надо будет все перебрать заново :(

ilt: нашел одно неочевидно проблемное место в новой версии

Uljahn: wleslavo вроде без симы пролез в голду

YurkovAS: Uljahn в csb давно у пена и дапорана боты были лучше, чем смитсимаксовые неумана, смитса и робостака?

inoryy: оба сильнее

Uljahn: сомневаюсь

inoryy: у пена НН была уже, я бы где-то между пб и агаде поставил, дапо был бы топ5 наверно

Uljahn: тогда 150мс было на ход, сложно сравнивать

YurkovAS: а, нейронка, миник больше интересует, стоит ли еще раз попытаться или уже забить..

inoryy: понижение мс только на руку пену бы сыграло

inoryy: у топ5 минико-подобное

Uljahn: я про миник и говорил

YurkovAS: у даропана был миник же? и сейчас бы он был бы топ5?

Uljahn: penn видел в топе тоже

inoryy: да, у него был очень сильный бот с кучей кастомных правил

inoryy: понижение мс его бы не сильно слило, точно сильнее мсмита

inoryy: хотя бы потому что у дапо был avx2 двиг а у мсмита нет

inoryy: у топ5 сейчас нейронки + миникоподобный поиск где оценочная это нейронка

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

inoryy: топ4*

inoryy: обрати внимание на скачек в 7пт с 5 на 4 )

inoryy: https://github.com/pb4git/Nash-DQN-CSB-Article

YurkovAS: топ4 да, даже топ5-ый только 1 раз выйрал. если поставить глубину 8, тогда мой бот может выйграть ~3 партии за сабмит у топ3-4.