Chat:Ru/2020-09-18

From CG community
Revision as of 11:28, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/2111605585777> 735487: массив из ГА это че за алгоритм? <img src=/a/29443769474274> MadKnight: это я заменил mcts в смит...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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: ну и количество да, я делаю обычно случайное количество в некотором диапазоне