Chat:Ru/2020-06-22
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: если с физикой и тригонометрией сложно - попробуй Трон, там на клетках, поочерёдные ходы и правила простые
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