Chat:Ru/2020-06-19
tutubalin: Hiker так дебаггер может к процессу подключаться. Ещё, как вариант, модифицируешь свой код, чтоб он не с рефери играл, а против сам себя. Я так отлаживаю.
Uljahn: This research was sponsored by the Army Research Laboratory https://arxiv.org/abs/2006.10525
Uljahn: :smiley:
Uljahn: запилили ванильный MCTS для одного плейграунда в старкрафте
Uljahn: а мы тут крестики задаром пилим, Automaton2000
Automaton2000: там можно и без них
tutubalin: там же миллион юнитов. как они ход выбирают?
Uljahn: там подмножество старкрафта (плейграунд), где нужно построить максимум маринов
Uljahn: для полного варианта игры надо читать про AlphaStar или у inoryy спросить
Uljahn: прикол в этой статье в том, что в названии фигурирует DRL, а по факту он только в планах)
Uljahn: плейграунд == минигейм == тестбед
Uljahn: вот ещё другая свежая статья, намного интереснее https://arxiv.org/abs/2006.10504
Uljahn: как распараллеливать MCTS
Uljahn: объясняется метод virtual loss
Uljahn: Automaton2000: читаем статьи за вас
Automaton2000: ты же уже сам замечаешь что ты в контестах подошел к точке когда тебе производительность мешает двигаться дальше
Uljahn: :crying_cat_face:
vrabosh: в редакторе CG можно убрать подсказки к коду?
vrabosh: любые всплывания когда печатаю, когда навожу
Uljahn: нет вроде
vrabosh: печально.. кстати, наверно я тут один пишу восновном в местном редактор?)
tomatoes: я пазлы в редакторе, а что-то побольше уже у себя
amurushkin: не один я всю неделю на uTTT и CSB всякие фичи в редакторе допиливаю ))
tomatoes: подсказки вроде с сервера дергаются, может адблоком можно пофиксить
vrabosh: просто всю жизнь до этого программил в простом редакторе, без подсказок.. и тут эти новшества чуть раздражают.. привык все сам писать..
amurushkin: а мне наоборот они как то черезчур медленно всплывают и когда надо их нет ))
Uljahn: в дискорде вроде просили сделать опцию отключения, а вместо этого запилили подтверждение мышкой вместо энтера
Uljahn: т.е. опцию выбора
Uljahn: подсказка-то всё равно всплывает
amurushkin: может дело в языке. у меня они редко всплывают и когда надо их не добьешься ))
vrabosh: мне кажется подсказки хорошо по комбинации какой нить делать.. а также кнопку note\todo где можно записывать самое важное, типа шпаргалки.
vrabosh: Когда ты возишься со своей мелкой функцией где все и так известно, эти подсказки не нужны точно... А вот когда пришел и надо вспомнить тут самое то, что за переменая, что за функция итд.
vrabosh: также когда () - зачем выделять где начало где конец, но если (()()()) то тут стоит выделять
vrabosh: в vscode это все можно самому настраивать про, что я говорю?
amurushkin: я подсказками еще пользуюсь когда лень длинные переменные набирать ))
vrabosh: у меня не получается придумывать длиные переменые
amurushkin: у меня наоборот :)
tutubalin: https://xkcd.com/2309/
tutubalin: в тему как раз )
tutubalin: подсказка вроде по Ctrl+Enter
amurushkin: а привычка чтобы было по ctrl+space
tutubalin: ой. я это и имел в виду
amurushkin: у меня почему то не работает в браузере так
tutubalin: у меня в каком-то браузере не работало, потому что то ли в самом браузере то ли в экстеншене это сочетание перехватывалось. отключил - заработало
Uljahn: ctrl+space
Uljahn: да, хорошо бы было вручную триггерить подсказки, когда надо
vrabosh: надо формулу придумать которая веса дает...
vrabosh: мне известно: 1. На каждую доску, где я выигрываю, где проигрываю, где нечья, где прям щаз выигрываю или прям щаз противник выиграет если сюда сходит 2. Главная доска, где выграет итд, как в первом пункте.
tutubalin: где прям щас выигрываешь - можно заранее просчитать
tomatoes: по выигрышным линиям пройдись и в зависимости от состояния накинь скор
vrabosh: res[i] = (n+maxAtgc) / (la+ga) # пока так сделал.. потом буду соображать
vrabosh: мое состояние на текущ клетку+глобально состояне здесь / состояние противника на ту клетку и глобальное его состояние на ту клетку
Uljahn: пошёл по пути gybson_samara
vrabosh: http://chat.codingame.com/pastebin/98686b69-76ea-49b3-9c02-4b13c79879a6
vrabosh: что за путь такой? нечего нового не придумать, все уже изобретено)
vrabosh: ооо 1 место взял
vrabosh: в серебре.. походу работает.. можно идти гулять.. првда 43% еще просчитало
Uljahn: мда, винрейт против босса у тебя аховый
Uljahn: http://cgstats.magusgeek.com/app/multi-tic-tac-toe/vrabosh
Uljahn: твёрдое второе место)
MelnikovIgor: 3 очка разрыв до 1го, это очень много)
MelnikovIgor: Самое интересное начинается при приближении к голд боссу и выше)
MelnikovIgor: Особенно для не С++ языков)
Uljahn: в топ-100 бы попасть
Uljahn: в голде
Uljahn: в жз и пхп хотя бы jit есть
Uljahn: *жс
MelnikovIgor: А в питоне что?
tutubalin: можно из питона компилять в JS
tutubalin: провду нумпи не будет
Uljahn: хм, в пхп 7.3.9 тоже нет, тогда как?
Uljahn: как они в топ-100 попали
vrabosh: игру же можно запомнить а потом разобрать ее? а то сейчас некогда...
vrabosh: а то тут в одной игре ошибка выскачила, надо ее найти
vrabosh: и как можно узнать какие игры по таймауту или ошибки кода проигырваю?
Uljahn: просматривать руками или писать скрипт и парсить реплеи
vrabosh: а законо парсить реплеи?
Uljahn: да
vrabosh: т.е. можно сайт посути CG парсить? не забанят?
Uljahn: только желательно не скачивать миллион реплеев в секунду
Uljahn: забанят, если досить будешь запросами
tutubalin: а какой запрос, чтобы посмотреть не только свои реплеи?
Uljahn: такой же как и свои
Uljahn: только тебе дебаг не отдадут, если ключ не укажешь
vrabosh: я как понял, тут можно игру под босса затачивать и он тогда в рейтинге падает?) заодно и других утаскивает в след лигу?
tutubalin: я использую findLastBattlesByTestSessionHandle
tutubalin: чтобы вообще список реплеев получить
Uljahn: а, ты про список не своих реплеев?
tutubalin: ага
Uljahn: из глобальной лидерборды можно
Uljahn: https://www.codingame.com/multiplayer/bot-programming/tic-tac-toe/leaderboard
Uljahn: там есть view last battles
tutubalin: вот блин )
tutubalin: я помню, что видел эту кнопку где-то. всё излазил, в том числе лидерборду открыл
tutubalin: а кнопку не увидел ))
tutubalin: tomatoes с amurushkin прям не на жизть а на смерть сражались недавно )
amurushkin: да ладно. у него бот намного сильнее
tutubalin: я имею в виду количество боёв
amurushkin: ну то просто я много сабмитил а он нет
MelnikovIgor: Интересно почему нет шахмат на GC?
wlesavo: надо ресабмитнуть, ато тутубалин меня на 10 мест вниз запушил)
tutubalin: я константу подбирал дихотомией )
tutubalin: и таки шо оказалось? корень из двух, прямо по книжке
tutubalin: аж бесит
ilt: MelnikovIgor в шахматах сделано очень много движков
ilt: там сплошной плагиат будет
Uljahn: вроде кубер собирался сделать шахматы)
amurushkin: можно уменьшить влияние движков и сделать один из вариантов шахмат с другими правилами
ilt: для всех популярных других вариантов шахмат есть сильные движки
amurushkin: 100% не для всех
amurushkin: ну может разве что если именно про популярные речь. но вот наверняка нет движка для шведок
ilt: для всех популярных
wlesavo: tutubalin а ты во время теклсов не считаешь ничего чтоли? чего у тебя там нули проскакивают? если знаешь что поставишь теклс можно же в это время посчитать еще 100мс даже эффективнее, потому что знаешь точно следующий ход
amurushkin: но там надо 2 досками сразу
ilt: например для всех вариантов которые есть на личесс есть
amurushkin: можно же и не популярные варианты взять. типа 10 на 10 с новыми фигурами. или бенедикт. там вообще фигуры перекрашиваются
amurushkin: на личесс далеко не все варианты есть
amurushkin: и они не хотят добавлять мой любимый losers
wlesavo: можно 3д шахматы как у стругацких
Uljahn: на днях узнал про игру stratego
ilt: losers это что такое?
tutubalin: wlesavo у меня пока что дерево не реюзается
wlesavo: tutubalin, а понятно
tutubalin: Uljahn она в СССР называлось Сражение. мы в школе рубились массово. я там любил крутые стратегии изобретать
wlesavo: я тут подумал, а что если сделать разные константы на крестики и нолики, в этом есть смысл же, за крестики ощущение такое что проще найти хорошую стратегию и меньше нужно исследовать
wlesavo: хехе https://www.codingame.com/share-replay/473563604
tutubalin: тогда придётся искать пару констант градиентным спуском )
tutubalin: либо просто сабмитить с разными константами, а потом анализировать бои
tomatoes: пробовал делать противнику больше константу, но как-то не особо пошло
tomatoes: (но и не сказать что сильно хуже)
amurushkin: ilt: losers это что такое? это вариант поддавков как suicide только там короля не бьют и от шаха нужно уходить
amurushkin: а никто не пробовал посчитать сколько всего позиций есть когда заполнена доска на половину?
amurushkin: вот думаю может реально концовки предпросчитать и прерывать роллауты на их основе
Uljahn: а там уже один шаг до обучения нейронки и MCTS без роллаутов
amurushkin: ну что сабмитнем?
tutubalin: amurushkin я сделал брутфорсный солвер. он что-то быстро выдаёт только вообще в самом конце, когда 4-5 ходов осталось
tutubalin: на одну позицию натравил, чтобы проверить, правильно ли мой бот ход выбрал
amurushkin: ну это логично что он под конец позицию решает
tutubalin: утром запустил, к вечеру только 2 возможных хода из 5 просчитала
tutubalin: но правда он совсем топорный был. может быть если бы отсечения сделал, то быстрее б считал
amurushkin: пробую добавить множитель для разных ходов. от балды правда :)
amurushkin: типа в угол и в центр ходить лучше
amurushkin: значит смотри эти ходы чаще
tutubalin: я думал, вместо рандома это использовать
tutubalin: то есть в рандомном ролуате понятное дело простой рандом
tutubalin: а вот когда ноды выбираешь и у них очки одинаковые, то добавлять маленькую прибавочку в зависимости от клетки
amurushkin: я рандом вообще убрал сейчас и смотрю по порядку
tutubalin: а нет перекоса в левый верхний угол?
amurushkin: фиг знает
amurushkin: сейчас посмотрим до куда дойдет
amurushkin: игры стали какими то более жесткими
amurushkin: по пол поля пустые
tutubalin: если по порядку смотришь, можно нумерацию клеток поменять
tutubalin: 0 - центр, 1 - левый верхний, 2 - левый нижний и т.д.
amurushkin: да я уже пробовал
wlesavo: в роллаутах или где?
amurushkin: на самом деле это влияет на большой глубине только
amurushkin: нет это при выборе хода у меня на ноде где мало посещений
wlesavo: а, я там вообще просто все сразу раскрываю и среднюю статистику передаю
amurushkin: у меня это не работает. играет хуже
wlesavo: ну так там коэффициенты сильно измениться должны
wlesavo: у меня раза в 2 отличаются так и просто со случайным
amurushkin: иногда просто вжаривает :) короче можно играться этими циферками. игры стали другими прямо
amurushkin: можно наверное попробовать за нолики одно за крестики другое ))
amurushkin: на 60% держится на 10 месте как и был до этого
tutubalin: ну значит есть шанс подняться! удачи!
tutubalin: я теперь понял, откуда вопросы про UTTT и #ru
tutubalin: если последние бои смотреть, то там сплошь все отсюда )
amurushkin: https://www.codingame.com/share-replay/473579121 забавно мы с томатосом поиграли
amurushkin: https://www.codingame.com/share-replay/473579493 лол ни одной борды не взял
tomatoes: https://www.codingame.com/share-replay/473580488 тут на 39 была победа 100% похоже
amurushkin: мой не нашел. а твой почему нашел?
tomatoes: по другой ветке пошел, сейчас проверю
amurushkin: ну это да я понял что по другой
amurushkin: получается твой вроде и роллаутов меньше сделал и заглянул глубже что ли
tomatoes: (7, 1) пишет надо ходить было после меня
amurushkin: да вот как то выходит что просирает возможности
Uljahn: может, есть приоритет на взятие миниборды и/или штраф на ход в центр?
amurushkin: у меня есть штраф за фримувы
amurushkin: мой ту позицию оценивал как ничью
amurushkin: возможно это преимущество солвера. выигрышный ход был 1 и он по статистике размазался
tutubalin: ну солвер работает только там, куда дерево дотянулось
tomatoes: проверил у себя, если ничью на середину, то тоже 0 и не находит решение
tomatoes: если уменьшить для х и увеличить для о, то находит
MelnikovIgor: Хм, и насколько помогает это?
tomatoes: конкретно в этом случае не совсем понимаю почему помогает
tomatoes: но в целом логика что крестики должны выигрывать, а ноликам и ничья сойдёт
vrabosh: из за того, что решил ради оптимизации отазаться от 8-i, досихпор вылавливаю глюки
vrabosh: у меня минимакс считает с нижнего угла правого.. а игра с верху левого идет..
amurushkin: считай как тебе удобно а перед выводом просто транслируй в нужные координаты
vrabosh: типа за оптимизацией погнался, а не за удобством.
vrabosh: а в итоге наверно проиграл в другом.. там этот минус бы роли не сыграл.
vrabosh: куда лучше противника кидать в начальных партиях, в путую клетку или там где нечейная партия но есть уже ходы?
vrabosh: И самому куда в начале лучше ходить?
tomatoes: нет какой-то правильной стратегии
vrabosh: можно в 0 0 кидаь?
vrabosh: есть формула как прально оценивать куда идти?
vrabosh: когда знаю на каждой доске кто выигрывает если поочереди ходить, и на общую доску.
amurushkin: потому и пишут многие mcts что оценивать тяжело
vrabosh: если не идти в глубину, а только первую поверхность, то какая формула хороша?
vrabosh: босс не пускает дальше 0.5 очков не хватате.
vrabosh: походу надо хотябы 1 глубину сделать.
amurushkin: на 1 глубину маловато наверное
vrabosh: ну хоть в золото может пройду
vrabosh: а на сколько делают?
amurushkin: все по разному
vrabosh: а у тебя сколько?
tomatoes: на сколько хватает времени делай
tomatoes: чем больше, тем лучше