Chat:Ru/2020-06-19

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

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: чем больше, тем лучше