Chat:Ru/2020-09-18
735487: массив из ГА это че за алгоритм?
MadKnight: это я заменил mcts в смитси на ГА
gsomix: А что сейчас в топе гоночек используют?
735487: gsomix: прямо в самом топе 4 нейронки. а пониже там mcts и minimax
735487: и GA в топ 15-30 наверное
gsomix: Это какой-то особый minimax (игроки же принимают действия одновременно)? Есть что почитать про это?
MadKnight: gsomix не, они просто симулируют так будто это пошаговая игра
MadKnight: поочерёдная
Uljahn: ход разбивается на ply - полуходы игроков, а симулирются потом одновременно, как я понимаю
MadKnight: ага
MadKnight: но прикол в том, что предсказанный противник будет знать твой ход
735487: он не знает он просто предполагает лучший для тебя исход
735487: как и ты для противника
MadKnight: ненене я про предсказания
MadKnight: миник предсказывает, что противник знает твой ход
735487: а в этом смысле
735487: ну а вдруг он хорошо угадывает
735487: миник же на то и рассчитан чтобы найти лучший для тебя результат при условии что противник играет всегда лучшим образом
Uljahn: тут получится читерный противник-телепат, как когда баг с углом был
Uljahn: а если для миника противника его первым ply делать?
Uljahn: похоже, так можно прийти к смитсимаксу)
735487: прикол вечером в search race результаты всегда лучше
MadKnight: https://www.mvideo.ru/products/igrovye-naushniki-cooler-master-ch321-50133202 https://www.mvideo.ru/products/igrovye-naushniki-sennheiser-gsp-302-50130752 https://www.mvideo.ru/products/igrovye-naushniki-razer-kraken-x-usb-rz04-02960100-r3m1-50133466
MadKnight: посоны, какие уши брать?
735487: https://www.codingame.com/share-replay/487746036 о нейронку обыграл разок
MadKnight: о, так это из этих, из дофига рандомящих карт
MadKnight: тут просто RNG Fest
735487: уши такие посмотри еще http://www.bloody.com/ru/product.php?pid=12&id=115
MadKnight: или съездить в мвидиа и выбрать уши?
MadKnight: по звуку
MadKnight: нвидиа
Uljahn: звук ушей сильно зависит от того, к чему их подключаешь
MadKnight: к компу
MadKnight: мне ещё надо с микрофоном
Uljahn: тогда бери, которые легче и удобнее сидят на голове)
Uljahn: у гарнитур качество звука обычно не очень высокое
MadKnight: каких гарнитур?
Uljahn: ну, с микрофоном которые
Uljahn: сам я лет шесть сижу на сенхах
Uljahn: без гарнитуры
Uljahn: ещё раньше не понимал, в чём прикол позолоченных штеккеров, но один раз взял бюджетную модель без позолоты и офигел, какие трески возникают от контактов в разъёме
BorisZ: да, надо мерять наушники, я купил раз вслепую - дольше получаса не мог сидеть в них
BorisZ: хотя читал отзывы, выбирал
Uljahn: мне ни одни закрытые/полузакрытые наушники не подошли из тех, что приходилось мерять, юзаю затычки :relieved:
Uljahn: так-то да, надо вживую примерять, по отзывам и характеристикам можно только общее впечатление составить, ну и по цене - хорошие уши не могут быть совсем уж дешовыми
Uljahn: столько всего перепробовал, пока не нашёл CX-300-II - самые компактные бюджетные затычки при относительно качественном звуке с хорошей подачей низов и хорошей шумоизоляцией, выбирал такие, чтобы было удобно засыпать в них под аудиокнижки :smirk:
735487: MadKnight: я тебя порекал в csb ))
735487: добавил обратно в симу округление и вышел на 10 место
magaiti: я вышел на 16-е :)
gsomix: Такое ощущение, что сейчас все играют в гоночки. :)
gsomix: Или в оптимизацию.
magaiti: все всегда играют в гоночки
magaiti: гоночки лав гоночки лайф
735487: magaiti: самое интересное что я твоему боту очень часто проигрываю
magaiti: видимо я угадал твой алгоритм
735487: типа с предсказанием угадал?
gsomix: Там же все подходы уже давно известны, а топ распределен. :)
magaiti: да
gsomix: Неужели есть неисследованные направления?
735487: gsomix: это так кажется только. год-два назад топ был другой
735487: жалко pen пропал. его бот раньше и без нейронок в большом отрыве от всех был
735487: gsomix: смотри сначала в гоночках почти у всех га были. потом часть перешла на миники. потом мсмитс наделал шороху со своим mcts. потом нейронки запилили
735487: вот я с таким же алгоритмом как у смита обыграть его все равно не могу
735487: пока ты не топ 1 есть куда совершенствоваться
magaiti: я с га на 16-е место запрыгнул
magaiti: немного народу что-то новое пилит
735487: в csb оценка очень важна еще
735487: у меня оценка вообще пипец мне не нравится. функция тяжелая и коэффициенты черезчур от балды
735487: все никак не сделаю визуализатор чтобы посмотреть о чем он там думает
gsomix: amurushkin, а для MCTS тоже нужна оценка? Это способ оптимизировать поиск?
Uljahn: для MCTS не нужна оценка в общем случае, т.к. оценка выводится статистически по результатам множества симуляций игр до терминального состояния
Uljahn: но если до конца игры доиграть проблематично - понадобится оценка стейта
gsomix: Ок, когда-нибудь доберусь до нормальных алгоритмов в гоночках. :)
gsomix: Нужно какой-то путь для себя выстроить: в каком порядке изучать и реализовывать алгоритмы.
gsomix: От случайного поиска до более сложных.
Uljahn: думаю, основополагающая концепция для понимания алгоритмов поиска - это дерево игры, тогда оптимизации поиска - это каким образом мы исследуем дерево, как оцениваем перспективность ветвей, чтобы отбросить как можно больше ненужного, не жертвуя точностью, либо идя на некоторые компромиссы, чтобы уложиться в отведённые лимиты и найти приемлемое решение
magaiti: хм, это нормально что я 9 раз из 10 попадаю на 23 место, а иногда выстреливаю на 17-е? и какое тогда у меня место на самом деле
magaiti: помню такое было и раньше
735487: magaiti: нормально. там разброс очков очень маленький между этими местами
magaiti: ну 42 и 44 это значительно
735487: это пара удачных игр на самом деле
magaiti: наверное ты когда поднимался, меня затащил
magaiti: 2-3 раза слил мне
magaiti: а щас я за тебя не могу зацепиться :)
magaiti: ну тогда получается что все мое шаманство за последнюю неделю ничего не стоит
magaiti: рисус недавно был на 18 месте, а уже на 23 спустился
magaiti: нафидил
magaiti: хотя не, вроде лучше сражается бот
735487: magaiti: да не. ты до этого сабмитил и меня скинул на 15. я тебе часто проигрывать стал последние дни
magaiti: не только ты :)
735487: там топ от 15 до 25 места перемещается постоянно
magaiti: о, я мэда победил
735487: но я тут выяснил через серч рейс что зря убрал округления. и вон смог даже мэда обогнать
735487: точность симы стала больше видать
735487: у меня против мэда вообще чуть ли не 80% побед было в прошлый сабмит
magaiti: округления нужны
magaiti: н еокругляется только угол емнип
magaiti: лол. пака неудачники
Uljahn: крут
Uljahn: чё пофиксил?
magaiti: скрещивание
magaiti: и поиск слабейшего в популяции
Uljahn: т.е. на ГА в топ-10?
magaiti: ну не топ 10, но близко. мне Амрушкин нафидил сильно
magaiti: ага, га
Uljahn: GA strikes back, Automaton2000
Automaton2000: смысл в том, что я не в курсе
735487: блин даже пол дня не дал повисеть топ 10 )))
magaiti: сражайся!
magaiti: а мэд говорит "дерево пили"
735487: а противника предсказываешь?
magaiti: ну да
magaiti: у тебя видимо фитнес функция широкоизвестная
magaiti: раз получается тебя предсказывать хорошо
magaiti: из поста магуса наверное
735487: да не у меня самопал там с кучей всего
magaiti: ну хз значит у меня га заработал наконец как надо, а не тупо мутации одного решения
YurkovAS: magaiti у меня была такая бага симуляции, после фикса здорого апнулся
YurkovAS: коллизию с чекпоинтом надо проверять отдельно от коллизий с подами. т.е чтобы небыло одновременной коллизии с подом + чекпоинтом, а в итоге что-то из 2-х необработается
magaiti: ого, слив стратегической информации
YurkovAS: щас все порекают, больше стимула сделать нейронку. хотя в крестиках книгу так и не делал
735487: а у тебя он что выводит? угол и траст?
YurkovAS: рассказать еще одну хорошую фичу для csb?
735487: конечно
YurkovAS: она и та бага с симой дали самое заметное улучшение
YurkovAS: в общем, надо делать как в минимаксе: в 2 этапа, половину времени искать лучшие ходы для нашего блокера против ранера противника. и другую половину времени искать для нашего ранера против блокера противника (+ те расчитанные ходы подставлять)
gsomix: А блокер сильно помогает? Нет смысла, например, два раннера делать?
735487: в топе таких нет
magaiti: если делить на 2 этапа, твой блокер не сможет помочь твоему раннеру, как я понимаю. подопнуть щитом итп
magaiti: https://www.codingame.com/replay/487782752
gsomix: magaiti, красиво.
Uljahn: взаимодействие между подами — штука хорошая, только условия для этого редко складываются
gybson_samara: Uljahn если перебирать все варианты, то вариант с тем, что один под помогает другому тоже попадется
Uljahn: если хватит времени добраться до такой глубины
gybson_samara: ну в этом и прикол нейронки
gybson_samara: ее можно месяц обучать на всевозможных комбинациях
Uljahn: и обнаружить, что она успешно забыла, чему её учили в начале
magaiti: а через месяц она таакая "папа, где море?"
gybson_samara: тупо рандомом брать входные данные, по ГА считать лучший вариант и толкать в обучение
gybson_samara: magaiti у нее будут те же данные, чт она входе у ГА
magaiti: ну надо обучать на разных противниках, против себя пускать, и против га, чтоб не забывала
gybson_samara: Я читал про это именно для кейса с гоночками, как мне кажется. Там нейронка просто сразу выдает значение целевой функции
magaiti: а
gybson_samara: magaiti в том и прикол, что тут память не нужна
magaiti: кстати да, неронку же можно по разному использовать.
gybson_samara: из каждого конкретного состояния есть лучший выход
Uljahn: но конкретных состояний слишком много
magaiti: можно сделать га, но фф реализовать нейронкой, например
gybson_samara: Uljahn так и времени на обучение вагон
Uljahn: мой прогноз - не обучится, либо получится слишком жирной для CG
gybson_samara: ох, ну найду статью
magaiti: там много нейронов не нужно
gybson_samara: https://github.com/jasonrute/csb_neural_network
gybson_samara: короче там прям элементарно сделано, но можно и усложнить
magaiti: PID-controller это по факту 1 нейрон, а на нем уже можно в легу въехать
gybson_samara: http://chat.codingame.com/pastebin/0e0cfb80-fc99-4833-8638-2aea45515768
gybson_samara: можно даже в гугл-колабе теринровать =)
gybson_samara: тренировать
gybson_samara: они там вроде 24 часа дают беспрерывной работы
magaiti: бедные питонодавы
magaiti: на что им приходится идти
magaiti: ради победы
gybson_samara: дикие люди =)
Uljahn: не ради победы, а ради изучения кодинга и инструментов
Uljahn: за победу в мульти даже майку не дадут)
gsomix: Кажется, обучить нейронку и и задеплоить на CG — это большое достижение само по себе. Даже если в топ не войдешь. :)
Uljahn: ну вон -3Vel получается что тоже нейронка, только маленькая)
gybson_samara: но с ней в легу не войти
gsomix: Ок, я просто любые поползновения в оффлайн считаю достижением. Это ж надо целую инфраструктуру наладить.
gybson_samara: а может надо не 3vel, а 3.14vel? :)))))
Uljahn: ну тогда надо нейронов добавлять и подбирать коэфы генетикой :)
gybson_samara: в голде надо все-таки еще скорость менять, босс меняет
Uljahn: может там есть -3Vel+Vel**0.15
gybson_samara: gsomix в оффлайне отладка, графики и все прочее, рано или поздно приходится
Uljahn: ещё кажется, что надо в полярных координатах работать, так можно добиться инвариантности
735487: вернул себе топ10 )) надеюсь удержится
735487: https://www.codingame.com/replay/487793695 еще одна нейронка в копилку ))
735487: 2 раза у робо выиграл. прямо прогресс
gybson_samara: Uljahn не, в полярных координатах хуже тем, что там угол и тригонометрия, а в обычных коррдинатах дели себе отрезки
gybson_samara: профита может и не быть
gybson_samara: еще и ускорение по касательной
Uljahn: кстати, этот чел с нейронкой из ссылки выше сломал своего бота зачем-то, ник MathJason
gsomix: Automaton2000, "я тебя породил, я тебя и убью!"
Automaton2000: по крайней мере в документации написано. :) https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2019
Uljahn: amurushkin: красиво у тебя раннер проскакивает меж двух врагов
gsomix: gybson_samara, а есть какое-нибудь описание, как настроить себе оффлайн для мульти?
magaiti: https://www.youtube.com/watch?v=10DQeSk1LaY
magaiti: amurushkin, https://www.youtube.com/watch?v=azqfPlliWqU
735487: ага в конце жесткий лузстрик схватил
Uljahn: gsomix: был стрим ромки что ли, где он кухню показывал
Uljahn: или ты про сборку рефери в мавен-проекте в джаве?
gsomix: Uljahn, да, про часть специфичную для CG.
gybson_samara: x1,x2,y1,y2 прям бесячая нотация в matplotlib.pyplot
735487: та да
Uljahn: опять надо CSB лидерборд смотреть...
Uljahn: или нет? что за та да тогда?
735487: я про x1,x2,y1,y2
735487: а лидерборд будем смотреть позже. только сабмитнул ))
Uljahn: тогда можно в cgstats посмотреть)
Uljahn: а чего не так с pyplot? пары xy подаются, вроде логично
Uljahn: есть scatter plot, там x и y отдельно передаются
gybson_samara: Uljahn ну чего логичного, если xy это массив нампи?
gybson_samara: plt.plot([half[0],farpoint[0]],[half[1],farpoint[1]], "green")
magaiti: amurushkin https://www.youtube.com/watch?v=V3EZc_R0gic
Uljahn: gybson_samara: ну ты же отрезки рисуешь? у отрезка начало и конец
Uljahn: если просто точки соединить ломаной, то можно x, y передавать, вроде
magaiti: матчер жёстко меня тащит лицом по топ 5
gybson_samara: Uljahn отрезки массивыЮ неудобно
magaiti: так нечестно
MadKnight: amurushkin magaiti и остальные
MadKnight: подключил bluetooth наушники к компу
MadKnight: а комп на них звук выдаёт bassboost-нутый
MadKnight: почему?
735487: потому что блютуз гавно?
MadKnight: не, тогда бы звук был не бассбусснутый а фиговый
MadKnight: а он прям шикарного кач-ва
MadKnight: сидел играл, думал что играю в кинотеатре
MadKnight: такой объёмный и мощный звук
735487: ну так ты отрегулируй в микшере
MadKnight: так нет никакого микшера
735487: а вообще не стремно на голову антенну надевать?
735487: да ладно. в винде есть
735487: а с норм наушниками и от производителя по должно быть
MadKnight: и почему один и тот же трек по разному звучит на венде и телефоне?
MadKnight: в тех же наушниках
735487: потому что динамики разные?
MadKnight: а, я разобрался
MadKnight: венда троллила
MadKnight: https://www.codingame.com/ide/puzzle/code-of-kutulu
MadKnight: не, не то
MadKnight: короче какая-то галочка была
MadKnight: на какую-то фигню
MadKnight: она звук портила
MadKnight: https://sun9-71.userapi.com/5aged7QW-5w85nflQWxNZGdPmqaNvDGSLpcEtw/v-Cfbg5NVOA.jpg
MadKnight: вот она
Uljahn: это функции в драйвере же, там может всякое шумоподавление быть, выделение голоса и т.д.
Uljahn: тонокомпенсация, выравнивание громкости
Uljahn: хотя не, тут сервисы, я чё-то не туда глянул
magaiti: чуть-чуть не хватило до топ 10
magaiti: амурушкина запинал на 13-е место
735487: ничего страшного :) я может потом что нибудь еще придумаю
magaiti: добавил одну фишку, ресабмитнул
magaiti: надеюсь ничего не сломал
735487: какую?
magaiti: не могу сказать, но это улучшение га
magaiti: но улучшение ли на самом деле, ща узнаем по результатам
magaiti: не, че-то не прокатило. откатил
YurkovAS: magaiti юзаешь fastrand + без остатка от деления?
magaiti: не, не вижу пользы от fastrand
magaiti: основная масса вычислений - это сима, а там рандов нет
YurkovAS: еще заменяют остаток от деления - заметно прибавляет к скорости
magaiti: хз
magaiti: к скорости чего?
YurkovAS: ну к общей скорости. я тут не замерял, в крестиках, замена рандома + остатка прибавляет 10-20к роллаутов (сим еще больше), примерно на 5-10% становится лучше
magaiti: в крестиках наверное сима не такая как в гонках?
YurkovAS: да, там быстрее все
YurkovAS: ты крестики не делал? в них тоже можно месяцами сабмититься :grin:
magaiti: не, я угорал только по гоночкам и stc
YurkovAS: но там мктс надо
YurkovAS: smash-the-code понравилась? все не решаюсь за нее взяться, кажется сложной. ПМ-ы почитал и перехотелось делать.
magaiti: ну там тоже можно и га делать и что-то другое
YurkovAS: ресабмитнул бота в ксб, а то там был удачный сабмит и еще запушули потом на 2 места. пусть будет рядом с робо, так правильнее.
YurkovAS: т.е. у тебя там га?
magaiti: вроде бы, не помню
magaiti: там самый скилл - это противнику черепа сбросить в нужный момент, вот это я не помню как делал, вроде на костылях все
YurkovAS: крестики с мктс мне очень понравились. правда первая моя мульти. и там очень много мест для оптимизации - что мне вкатывает.
magaiti: то есть стараешься копить группы шариков, а как видишь что противник может комбо сделать, делаешь свое на ход раньше, и засираешь ему всю малину. но надо грамотно раскладывать шары, у меня какие-то голимые эвристики там
magaiti: ход оппонента то можно посчитать, а вот свои на несколько вперед, уу. ну тоже мткс может какой-нибудь будет лучше
Uljahn: эйлер вроде говорил, что он на противника не смотрит даже, или я не так понял
magaiti: желательно смотреть и делать комбо на ход раньше него. но может он рашит свои комбы просто
magaiti: я старался копить комбо, но если видел что противник потенциально делает большое комбо на следующий ход, смотрел нельзя ли на этот ход ему черепа скинуть, и станет ли ему от этого хуже
Uljahn: он вроде строит башню, которую сложно испортить мелкими комбо, а она потом выносит наглухо
magaiti: тоже тема
magaiti: я не помню, вроде тоже чего-то такого насмотрелся и пытался повторить
YurkovAS: magaiti пробовал в ксб ограниченное кол-во ходов? только скор: 0, 200, щит. углы -18, 0, 18 просто в миниках и смитси только такие и юзают
magaiti: не пробовал, чет сомнительно что этого достаточно
YurkovAS: и щит можно не включать со 2+ глубины (хода). у меня так
magaiti: хз можно попробовать дискретные мутации запилить, конечно
YurkovAS: дискретные?
magaiti: 0, 200
YurkovAS: а, думал ты про кол-во: с ними полезно поиграться
wlesavo: не знаю как в га, но в са я квантую значения, до 4-5 штук, и потом их мутирую уже, неплохо дает
wlesavo: ну и количество да, я делаю обычно случайное количество в некотором диапазоне