Chat:Ru/2020-06-22

From CG community
Jump to navigation Jump to search

tutubalin: VitaliKhileuski играю иногда

Uljahn: клэши скучные, их не пообсуждаешь в чате :smirk:

Uljahn: Automaton2000: делай больше - кидай дальше

Automaton2000: я даже не знаю в какую сторону

Uljahn: )

735487: Automaton2000: кидай в какую удобно

Automaton2000: а что с ним не так?

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

tutubalin: там же даже отдельная чаткомната для каждого клеша создаётся - не просто так

vrabosh: а трон норм пообсуждать?

vrabosh: а что за клэш

tutubalin: Clash of Code

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

Uljahn: нашёл зачётную функцию в питоне: sys._debugmallocstats()

zuko3d: как ты выигрышную партию ищешь?

vrabosh: 3x3 имею введу

zuko3d: а. Там же можно каждую ситуацию закодировать одним интом и хранить массив с результатами.

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

Uljahn: уже который раз подсказываем)

Uljahn: в начале игры, вернее. когда времени дофига дают

vrabosh: надо думать над алгоритмом дешевым, который параллельно деревья проходит или не уходит в дебри просто так.

vrabosh: я могу сказать идти на глубину 5, но в одной ветки глубина 5 это 1млн операций, а во второй глубина 20 может быть всеволишь 20к

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

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

Uljahn: логично проверять ветки, в которых выигрыши случаются чаще - это суть MCTS

Uljahn: логично обрезать ветки, где ничего хорошего не случается

Uljahn: это есть как в MCTS, так и в альфа-бета минимаксе

Uljahn: кстати, откуда ты заранее можешь знать длину веток?

wlesavo: трон да, я не думал что на столько изи, 200 строк питона с нулевой глубиной и без действий соперника

vrabosh: глубину вот и не знаю..

wlesavo: вчера на ночь оставил обучаться первую версию, не понятно как оценить перфоманс конечно, но моему мктсу проигрывает даже на крестиках, но вроде выглядит не совсем рандомно

vrabosh: можно попробовать.. чтото типа сколько ходов у меня на этой глубине тесть, столько передавать дальще..

vrabosh: и допустим 8 + 6 + 8 + 2 и если больше 30 останавливать

vrabosh: тогда такие такие штуки как 2+1+3+2 - далеко глубоко уходить будут

vrabosh: wlesavo, как ты обучаешь?

Uljahn: wlesavo: у тебя на селфплее обучение? и спустя несколько итераций гоняешь турнир против своего MCTS?

wlesavo: vrabosh есть такой алгоритм старый TD lambda, сеть фитует по репрезентации стейта вероятность победы и по вероятности победы определяет следующее действие

Uljahn: )))

wlesavo: Uljahn пока не автоматизировано, я руками сыграл против мктс ща пару игр :grinning:

Uljahn: как матёрый датасаентист заговорил

Uljahn: у MCTS фиксированное колиичество роллаутов?

wlesavo: ну получается да, на селфплее, ходы для обоих игроков выбираются из одной и той же сети

wlesavo: да зафиксировал роллауты просто на 50к

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

wlesavo: ну это прямо очень примитивнаяя реализация, без сети для полиси тяжеловато

wlesavo: да вариаций очень много

wlesavo: я пока самое примитивное что можно сделал

Uljahn: а если супервайзед вариант попробовать?

Uljahn: брать статистики из дерева MCTS и учиться их предсказывать :)

wlesavo: по хорошему нужно вообще офполиси как в dqn сделано

vrabosh: так mcts как я понял, не дает 100% победу, даже если допустим он бы доконца все просчитывал?

Uljahn: даёт, если до конца

vrabosh: неделю назад вроде подобное тестил на обычных крестиках.. может чтото не так делал

Uljahn: если есть 100% победа, то MCTS найдёт этот вариант в конце-концов

Uljahn: но может потребоваться много времени

vrabosh: он же говорит, сколько побед будет в этой ветке, но он же не говорит, что эта победа 100%

Uljahn: он чаще ходит в ту ветку, где победа вероятнее

vrabosh: если для крестиков 3х3 взять

Uljahn: если там 100% победа, он будет ходить в неё намного чаще

Uljahn: по количеству визитов выберешь именно её

vrabosh: надо будет потестить на 3х3 креситках.. если работает норм.. то думаю и на глабальное поле лучше mcts делать, его и проще параллезировать и быстрее должен работать

Uljahn: если хочешь разобраться в формуле выбора ветки - то начни с UCB1 без дерева

Uljahn: "его и проще параллезировать" - как это?

vrabosh: ну типа проверил 1 глубину для всех, потом 2 глубину для всех

Uljahn: только недавно читал статью на архиве, там нифига не просто

vrabosh: а не идешь в одну ветку до конца

Uljahn: ты минимакс опять описываешь

Uljahn: в MCTS глубина адаптивная - для каждой ветки своя

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

vrabosh: надо будет. но пока интуитивно делаю.. хочу так весь cg пройти до серебра\золота, а потом уже можно будет начать книги читать)

vrabosh: тогда думаю точно пойму что в этих книгах пишут)

Uljahn: сомневаюсь, что золото чему-то научит)

Uljahn: ты бы видел, на каких костылях там боты

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

vrabosh: ну и когда уже книги читаешь.. начинаешь понимать.. оо а яж могу это вот в этой игре использовать и пошел тестить

vrabosh: я вот после того как разобрался в волновом графе, сразу за день золото топ100 в троне взял

vrabosh: а до этого в серебре гдето там возился)

Uljahn: а, ну так-то да

Uljahn: приятно на 200 строчках питона в легу войти, когда знаешь правильные алгоритмы)

VitaliKhileuski: мужики

VitaliKhileuski: вам по 40 лет

VitaliKhileuski: какие игры

VitaliKhileuski: в клеш оф код в топ 200 завалитесь хотя бы

Uljahn: и что произойдёт?

VitaliKhileuski: ну как что

VitaliKhileuski: я тебе респект кину

735487: были мы уже в клешах. давай го в крестики или в гоночки в топ :) мы тебе респект кинем

Uljahn: угу, клеши для 40-летних мужиков - не солидно :)

tutubalin: VitaliKhileuski я в клешах топ-1 был

wlesavo: хорош

wlesavo: я денек поиграл 5к cp набил и норм

tutubalin: проще всего набивать, пока некого живого нет. против ботов чисто )

wlesavo: короткие клеши интересно в принципе иногда, потому что кодгольф оптимизаций слишком мало

tutubalin: или наоборот, когда по 8 человек в клеше - тогда даже за 2-е место иногда чуток очков дают

tutubalin: чо-то клеши тормозят сегодня

tutubalin: в главняке тоже жаловались

Rush_iam: Новичок и хочу опробовать себя в программировании Бота - но тут нет ранжировки по "сложности"... Может есть бывалые, которые опробовали много - с какого стоит начинать?

tutubalin: Coders Strike Back

Rush_iam: Это самый новый?

Rush_iam: ааа... читаю описание, дял новичков.. спасибо, tutubalin!

Uljahn: если с физикой и тригонометрией сложно - попробуй Трон, там на клетках, поочерёдные ходы и правила простые

Default avatar.png TTeaLL: а code royale по сложности где находится ?

735487: мне была не сложной

735487: вообще бери пробуй все что нравится

735487: там сложность так то постепенно увеличивается. и в каждой игре в самый топ залезть сложно

gybson_samara: зафигачил лямбду SUBBOARD = lambda arr, y, x, board : arr[board,y*3:y*3+3,x*3:x*3+3]

gybson_samara: пока не придумал куда ее =))

735487: зачем так то?

gybson_samara: ну типа вместо функции

gybson_samara: а как еще можно?

gybson_samara: словарь?

tutubalin: так лямбда не быстрее функции вроде

tutubalin: смотри. у тебя две системы координат. одна: x и y. используется при вводе и выводе

tutubalin: вторая: доска и клетка. используется при рассчётах

tutubalin: один раз в начале переводишь из первой во вторую. потом один раз в конце переводишь из второй в первую

Uljahn: Automaton2000: фичу зафигачил - чатик озадачил

Automaton2000: а ты в какой лиге?

Uljahn: Automaton2000: в петросянской

Automaton2000: а если у меня в общаке смайлы не показывает

tutubalin: Automaton2000 ну от петросяна смайлы и не должны появляться

vrabosh: все, надоели мне эти крестики..)

Automaton2000: это у тебя за баг?

Uljahn: :scream_cat:

Uljahn: Automaton2000: сжечь еретика!

Automaton2000: и я не понимаю что ты хочешь

vrabosh: запускайте новый контест

Uljahn: в общаке народ во что-то рубится, othello вроде свежее

vrabosh: там легенды нету)

735487: о смит карлисо подспустил

735487: у меня для отелло есть дебютная книга :) 18 мегабайт

735487: но в нее легче эвристику писать чем для крестиков. по крайней мере я хорошо эту игру знаю и думаю что смогу написать эвристику. надо будет попробовать

YurkovAS: эх, была бы кнопка "забаниться в крестиках на N месяцев" :smiley:

735487: да это все CSB и крестики это пипец надолго походу )))

tutubalin: надоели крестики - делай нолики!

735487: самое интересно что реально со временем доходит что надо усилять нолики )))

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

vrabosh: не могу найти инфу.. не подскажите

tomatoes: "checkers solved" в гугле

Uljahn: Automaton2000: чтобы эффективно искать инфу в т.ч. в гугле, важно знать ключевые термины

Automaton2000: это не значит что их нет

tutubalin: vrabosh https://ru.wikipedia.org/wiki/Chinook