Chat:Ru/2020-05-18
NightLuna: ashelkov, ничего себе)
kord: > в 1с асинк сахар завезли? Пообещали только пока
gybson_samara: kord уже давно завезли
gybson_samara: любые вызовы свыше 0.8с рекомендованы асинхронно в фоне
kord: речь об этом https://wonderland.v8.1c.ru/blog/uluchsheniya-v-sintaksise-yazyka-1s-dlya-raboty-s-asinkhronnymi-funktsiyami/
gybson_samara: ну улучшать то бесконечно можно
gybson_samara: ну да
WhiteCrow: Написал простое уклонение от противника, посмотрим, что из этого выйдет
WhiteCrow: Почему я всё делаю в последний час?
WhiteCrow: 9/13
WhiteCrow: Не то чтобы совсем плохо
WhiteCrow: Но на легу не тянет
gybson_samara: ну че вот травишь? =) я 28 в бронзе вообще
gybson_samara: в серебре
WhiteCrow: Настало время править коэффециенты
Akarachudra: За 25 минут до конца?)
WhiteCrow: Угу
gybson_samara: не торопись, еще 24 минуты!
Akarachudra: Что-то в последний день как-то жестко засабмиттили ладдер.
NightLuna: вроде всегда так
Akarachudra: Ну я второй раз после BOTG можно сказать участвую, поэтому меня несколько удивило.
Akarachudra: Как минимум 10-15 человек прятали ботов до последнего, хотя сейчас вроде им жизнь усложнили.
NightLuna: хитрые какие
Akarachudra: в этот раз потратил тоже один день, собрал джава тулзы
Akarachudra: даже pr сделал с referee для brutaltester'а.
Akarachudra: матерился весь день. всякие gradle, maven. зоопарк пакетных менеджеров и билд тулзов. на шарпе как-то однообразнее с этим.
Jokero: дачет такой себе контекст. Вариантов вообще мало. По сути все сидят одну функцию обхода клепают.
Akarachudra: не знаю, мне понравилось в целом.
BorisZ: да вряд ли кто-то прятал - теории заговора все это
Akarachudra: ну может не прятали, а дописали в последний день.
Jokero: Меги не внесли разнообразия, наоборот только хуже сделали, начало стало однообразным, все бегут к ближайшей Меге.
WhiteCrow: Всегда прятали, мне кажется
NightLuna: в этом контесте вряд ли прятали, мне кажется прячут обычно же когда какие-то супер хитрые эвристики
Jokero: возможность съесть противника, вообще мимо, почти никто не есть специально, т.к. накладные расходы преследования выше результата
WhiteCrow: Ну тут же есть кто кого как догоняет
Jokero: в итоге, у кого получилось сделать функцию поиска гранул лучше тот и победил.
Akarachudra: не только, ещё и предсказать соперника
NightLuna: а как понять по боту, как он предсказывает соперника?
Jokero: Я одну ошибку исправил из середины серебра в середину золота улетел. Это означает, что боты у всех примерно одинаковые
Akarachudra: NightLuna ну кто лучше концовку дособирает
NightLuna: а, ну это может, да
NightLuna: просто в каком-нибудь BOTG вроде как было больше вариантов
BorisZ: не столько соперника, сколько собранные им точки
BorisZ: хотя соперника тоже полезно, части убийств из-за угла можно избежать
Akarachudra: BOTG не понравился комьюнити тем, что нельзя было прикрутить хороший GA)
NightLuna: не знаю, этот бесконечный поиск пути меня утомил
NightLuna: ну да, логично) зато было весело эвристики придумывать)
ashelkov: NightLuna. на каком я был месте?
NightLuna: когда?
NightLuna: когда я написала, что неплохо? на 7 примерно
Akarachudra: вот у ashelkov крутое определение собранных точек.
ashelkov: о да/ было дело/ потом я пшел поспать 2 часа и вот ))
Akarachudra: не знаю, что он там запилил. но другие у бота проблемы.
NightLuna: вот если бы я не наделала столько багов, то было бы время что-то улучшать
ashelkov: у меня зато просто дурацкий начальный матчинг
ashelkov: и нет бонусоа за съедание соперника
NightLuna: ты так его и не приделал?
ashelkov: тоже есть куда расти
ashelkov: и я соперников не трекаю/ только там где вижу
NightLuna: вообще?
NightLuna: я строю путь между двумя последними встречами
BorisZ: я все выходные нянчился со своей супер идеей - не геренить пути, а объеденить точки в группы и перебирать группы а не пути
NightLuna: и как?
BorisZ: но не взлетело совсем, не смог придумать оценку чтоб работало
BorisZ: очень была красивая задумка (
NightLuna: то есть сейчас у тебя что-то другое?
BorisZ: да, написал совсем тупой перебор путей бфсом, увидел точку - выдал путь, пошел дальше
NightLuna: норм
vrabosh: BorisZ, в группы же получилось собрать?
Akarachudra: ох уж эта оценка. мой работающий дейкстра/A* к концу контеста превратился в полужадный алгоритм из-за кривых оценок. стабилизировать чтобы не поломать остальное уже не получилось
vrabosh: BorisZ, если ты в группы собрал, то тут можно былобы просто перебором сделать.. там тогда этих точек не много
BorisZ: vrabosh оно более -менее работало в середине, когда групп много, а вначале когда группа одна - совсем херню творила
ROARd: ну там тогда опять балансировать оценки между количеством точек в группе и дистанцией до ближайшей точки группы
Akarachudra: у моего бота хороший wr против топ10 и плохой против топ 10-25
vrabosh: BorisZ, что у тебя значит под группами? я под группами имею введу ветви, которые соеденяются перекрестками
Akarachudra: BorisZ ты, кстати, обет дал и выполнил)
BorisZ: не, просто все точки которые соседи - группа, я это имел ввиду
NightLuna: а у меня поля, но мне кажется, что плохо они подходят для этой игры
Akarachudra: поля, конечно, плохо.
BorisZ: Akarachudra пацан сказал - пацан сделал )
Akarachudra: BorisZ моё увожение.
NightLuna: ну что поделать, идут всей компанией туда, где больше еды
BorisZ: поля интересно, я тоже думал, но мои группы показались круче
vrabosh: а у меня пока эти все алгоритмы в голове не уложатся. фиг что получится.. надо по отдельности каждый тестировать пока 100% не пойму все тонкости
NightLuna: я там как-то защищаюсь, чтобы шли к разной еде, работает с переменным успехом
Akarachudra: NightLuna тут на самом деле можно дейкстрой все пути построить.
Jokero: я своим просто радиус поиска сужал, чтоб они не толпились в одну очередь
Akarachudra: и оно уложится в таймаут.
wlesavo: BorisZ хорош :slight_smile:
BorisZ: NightLuna а друг друга чтоб отталкивали?
Akarachudra: ага, наверное, нужно было отрицательный потенциал в то место, куда идет.
NightLuna: ну тогда надо, когда путь строишь на всем пути чтоли отталкивать других своих паков?
для этого надо оптимизировать код было)
wlesavo: у меня было так, но работало очень плохо, возможно в нынешней версии лучше бы работало конечно
Akarachudra: в два прохода. сначала каждому отдельно ищешь путить. затем сортируешь по длине. проходишь во второй раз и при втором проходе задаёшь отрицательный потенциал, а следующий уже его учитывает.
BorisZ: wlesavo лаки сабмит - без изменений, только дебаг убрал и время уменьшил а то таймило иногда
NightLuna: а, сортировать по длине
Hamibar: тестировать фичи в последний день было конечно плохой затеей
wlesavo: BorisZ да тут пол легенды это лаки сабмиты
vrabosh: Akarachudra, я когда делал через перебор.. просчитывал для одного, потом возращал все его лучшие ходы по этапно в масив.. и передовал другому.. и когда другой просчитывает допустим 2 ход, то он учитывет 2 ход других.
vrabosh: не все ходы его.. в итоге они могут даже рядом гдето пройти но не пересечься
NightLuna: у меня были большие проблемы с коллизиями, в итоге я просто для всех нашла лучшие пути, потом коллизии и резолвила их
Jokero: фига, у нас контур даж французов в общем зачете обогнал
EugeneYakNN: А чего, нельзя больше играть? Hypersonic можно было и после
Hamibar: vrabosh у меня так же. Правда много раз приходится алгоритм поиска путей запускать
Akarachudra: А где таблицу теперь смотреть?
Jokero: УПИ на втором месте в универах
KonamiCode: https://www.codingame.com/contests/spring-challenge-2020/leaderboard/global
vrabosh: Hamibar, можно 1 раз, просто первый будет лидером.. второй полидером)
KonamiCode: таблица там же
BorisZ: вроде просто ресолвятся коллизии путей - приводятся пути к тикам в зависимости от скорости, потом циклом сравнивается - на одну точку в один тик или на лобовуху
wlesavo: EugeneYakNN ближе к концу дня добавят
Hamibar: vrabosh я всевозможные порядки перебираю
vrabosh: первый по сути возьмет лучшее
Hamibar: Но не обязательно комбинация получится лучше
Akarachudra: Там чувак может в легенду залететь? Смотрите на топ золота.
Uljahn: может
Hamibar: даже из вуда может
Akarachudra: Было бы интересно.
Uljahn: +
ashelkov: дайте. ссылку на лидерборды
Akarachudra: https://www.codingame.com/contests/spring-challenge-2020/leaderboard/global
ashelkov: я вышел а ссылки на конест уже нет))
ashelkov: спс)
Uljahn: хватит спамить ссылками на лидерборду)
BorisZ: про следующий контест известно что он будет осенью и что там еще даже конь не валялся )
vrabosh: до осени есть время подготовиться
Hamibar: В урфу даже есть спецкурс от контура посвященный ии. Называется алгоритмы играющие в игры.
vrabosh: Romka, здесь бывает?
Jokero: даже если и бывает, то упорно молчит))
tiraptor: Я как раз участвовал ради автомата по этому курсу)
BorisZ: в тг чате он бывает
Akarachudra: tiraptor заработал? Паша его ведёт у вас?
NightLuna: там какой-то универ французский, оттуда скорее всего тоже из-за этого столько народу
Naratzul: Всем привет, финальный пересчет уже был?
tiraptor: Да, Егоров, там надо в золото было пройти
Akarachudra: Ну круто, поздравляю, легенда - крутой результат. Особенно для студента.
NightLuna: а у cg сейчас есть какое-то спонсорство? кто-то знает?
Akarachudra: там вон есть бот CowZow. У него нет высоких wr. Но он капец как стабилен против разных видов ботов. Может и затащит.
Akarachudra: Такое ощущение, что у него что-то типа 55-60% "против всех".
ashelkov: он очень хорошо делает домашнее задание - если можно помать на начальном - ловит
735487: прикольно отрываю лидерборд а там прямо на глазах vadasz с 3 места падает на 4 и пушит кови.
BorisZ: NightLuna они сами вроде зарабанывают https://www.codingame.com/work/
NightLuna: а, понятно
wlesavo: http://cgstats.magusgeek.com/app/spring-challenge-2020/CowZow
KonamiCode: нет, считаются последние сабмиты пока что
ashelkov: а сколько примерно идет подсчет?
vrabosh: сейчас пересчет везде идет и у золота тоже?
Jokero: следующим какой то программерский хакатон №цифровой прорыв№ будет
Jokero: https://leadersofdigital.ru/
Jokero: ченить за него ктонить знает?
Uljahn: сначала всё досчитается, потом докинут игр в леге (т.н. пересчёт)
BorisZ: пересчет только у легенды, часа три примерно
BorisZ: плюс-минус
wlesavo: 46 человек всего осталось, ща начнется уже
Uljahn: если кто-то запромоутится, будут ждать его одного)
Jokero: урфу борется с парижем круто, давай уфрфру ельцен (з.ы я сам там учился)
Uljahn: ромка похоже победит
ashelkov: а какой размер легенды в оос был?
wlesavo: 64
ashelkov: тут 117
ashelkov: полуается в 2 раза плотней
Akarachudra: тут 5000 участников.
Akarachudra: вроде как рекорд.
wlesavo: 4 осталось, закончится и почти сразу пересчет вроде уже
ashelkov: 5000 ничего так/ хорошая PR каспания была
Akarachudra: ashelkov и fangel самые неудобные соперники для моего бота. и я к ним упал))
ashelkov: неповезло))
Akarachudra: serioursly, против вас вр ниже чем с теми, кто до топ 10
ashelkov: да ест такое/ у меня был такой/ с бутылкой на авке/ где то 50-60 места но хер выиграть могу
Akarachudra: с другой стороны потому и кинулу туда. ибо нужно нормальных ботов писать.
ashelkov: пошли доигровки/ удачи всем и каждому!
wlesavo: начался, можно попкорном запасаться
ashelkov: главное не получить даунстриков - опускает сильно
wlesavo: здесь вроде меньше влияют поражения
wlesavo: там уже сигма маленькая, она остается с учетом прошлых игр
wlesavo: ну стрики всмысле
ashelkov: серия поражений
ashelkov: ну окей посмотрим
wlesavo: не, я понимаю что серия
ashelkov: у chokudai вообще редко выигрываю задрал
wlesavo: я вот стабильненько вниз качусь
ashelkov: Akarachudra вместе держимся пока)
Akarachudra: ashelkov ага) давай не избивай меня
Akarachudra: уже избил раз 6))
ashelkov: ну и ты пару))
ashelkov: зато chokudai меня раз 10 я его 0/ какаято контра к моему боту
Akarachudra: у меня против него где-то 60.
BorisZ: да вы в 20ке оба, но до 10 не доползти уже
Akarachudra: ну и последнего бота я не протестированного отправил. добавил агрессии и сабмитнул.
Akarachudra: BorisZ хорошо. наверное. да и нет цели в 10ку заползти.
BorisZ: ромка выиграл, все понятно, можно идти спать - хорошо работать из дома )
wlesavo: главный вопрос будет ли кови опять 4ым
BorisZ: да, это интрига, не везет чуваку(
BorisZ: может на футболки то расщедрятся за 20ку кстати, в прошлом тоже не было написано про футболки, а потом выдали таки
wlesavo: не, в прошлом заранее говорили вроде что будут
wlesavo: до пересчета точно была информация
wlesavo: но вообще да, странно что на такой контест не дают, может передумают
Akarachudra: BorisZ мне футболку так и не прислали.
BorisZ: для них мелочь а людям то очень приятно, чего бы не выдать то
Akarachudra: Поэтому хз, какая разница дают их или нет, если не отправляют?)
BorisZ: Отправляют нормально, мне приходили, скорее всего на почте пролежала месяц и ушла назад
Akarachudra: Ну хз. Уведомлений не было. Можно, конечно, на почту свалить. Только это единственный случай за N последних лет.
wlesavo: Akarachudra у меня по трекеру еще только до россии дошла
metahom: бедный кови
wlesavo: странно что из сша отправляли, неужели проще варианта не было
wlesavo: да, кови похоже опять отлетает
Akarachudra: кови красавчик в том плане, что в открытую держал лучшего бота в топе. и позволял другим искать лучшие решения.
metahom: Akarachudra, а другие скрывали?
oreshnik: Ромка тоже в топе все время был
Uljahn: мэд не прошёл в голду, bob не прошёл в легу, рояль в районе топ-100 :relieved:
Akarachudra: metahom не то что скрывали, не отправляли промежуточные решения. активизировались в последние два дня.
metahom: А Саелус-то вверх лезет. Может и обогнать
Uljahn: там скрилл его подпушивает))
BorisZ: Akarachudra ну выходные же, в будни работают все, зачем искать сложные объяснения если есть простое
BorisZ: старик оккам не доволен
BorisZ: он читает чат и хмурит брови
BorisZ: в выходные можно и ночь позалипать если здоровье позволяет, и стимул дополнительный - лега открыта
Akarachudra: BorisZ звучит так, что другие не работали. Но это неверное утверждение. Понятно, что кто-то хайдит, а кто-то нет. Я за то, чтобы был фан и непрерывная битва весь контест.
Uljahn: какой смысл отправлять промежуточные решения при таком рандоме
Uljahn: чтобы другим веселее было?)
Akarachudra: Ну да. Это же ведёт к развитию популярности. Если никто не отправит промежуточное решение, то с кем играть?
BorisZ: тут я согласен, но мой то поинт что никто не хайдит, а если хайдит то смысла в этом не особо много. Надо найти человека который скажет - я хайдил и занял потом 1 место
AntonT: Господа, легендарные) Колитесь, как делали?
Uljahn: https://www.codingame.com/forum/t/spring-challenge-2020-feedback-strategy/184113
BorisZ: AntonT когда пути разной длины оцениваешь - каждая следующая точка должна идти с дисконтом
metahom: Карлисо хайдил UTG и занял 1е
Uljahn: чё-т вообще всё как под копирку
BorisZ: это мое главное открытие )
MadKnight: > The date of the challenge is not decided yet. It should happen near the end of the year 2020. We'll keep you updated.
gybson_samara: штош ... пойду обратно в 1С пока =)
BorisZ: metahom он сам признался что хайдил?
Uljahn: даже есть котлиновский бот в леге на 300 LoC
metahom: BorisZ, не видел, но все активно обсуждали
Uljahn: karliso сказал, что в последнюю минуту сделал важное изменение
MadKnight: я кстати в золото прошёл
Uljahn: но как проверить - хз
Uljahn: Мэд, круто, я думал - застрял в сильвере
metahom: говорили, что видели его сабмит залезший в топ и тут же ресабмит на низкое место. может случайно, может он соврал
NightLuna: да много кто так делает
Uljahn: если ты сабмитишь в топ, твой id палится, против него уже можно тестить
Uljahn: хайдинг не так работает
metahom: я сам собирался хайдить в UTG, но страту слил TheDuck. ну и я не попал в легенду с ней ))))
NightLuna: пыталась пройти в крестиках ноликах на шарпе в легу, не получилось =(
AntonT: ох, крестики-нолики, боль
metahom: Uljahn, может не заметили тот сабмит вовремя
dbf: крестики отличные. изучаешь все оптимизации, потом используешь в других играх по необходимости
NightLuna: у меня вроде симуляция быстрая
NightLuna: мл
NightLuna: может недостаточно, надо будет посмотреть
Uljahn: на втором ходе должно быть не менее 20к роллаутов)
Uljahn: 20-25к для леги достаточно, говорят
NightLuna: хм
Uljahn: на плюсах народ 80-120к выжимает, вроде, да ещё и книги дебютов пилят
dbf: второй ход еще можно из словаря сделать :)
Uljahn: из книги дебютов? или что за словарь?
dbf: да, так просто называл для себя :)
Uljahn: обычно на втором ходу меряются роллаутами, потому что время уже ограничено 100мс, а длина роллаутов самая большая (если они рандомные)
dbf: да, у меня они тоже считаются, чтобы jvm-ку прогревать, просто значение не используется
ilt: dbf где нибудь можно про прогрев толково прочитать?
Uljahn: jvm warm-up
Hamibar: ооо, регистрацию на осенний открыли
Akarachudra: karliso поднялся где-то из топ 15 в топ 6.
ashelkov: ну и ейлер неплохо
Akarachudra: эйлер весь контест был в топе, а этот чел нет, при этом у него бот оказался супер стабилен против большинства.
dbf: ilt, сходу не скажу какой-то одной статьи, надо примерно представлять как работает jit и проследить, чтобы вызвалось как можно больше лямбд, потому что их компиляция проходит во время выполнени и может вызвать таймауты (по крайней мере какое-то время назад это было проблемой)
AntonT: а там никакого параметра нет, чтобы сразу насильно заJITить код?
dbf: есть флажки jvm сколько код раз вызывается ,чтобы jit-нутся, но на CG нет к ним доступа
Akarachudra: даже если вызовешь методы в первый вход все, это не даст гарантий со стороны JIT'а. он не так прост внутри. ну и не кажется, что он может привести к таймаутам. делаешь ифчик на затраченное время и это перестаёт быть проблемой.
dbf: " делаешь ифчик на затраченное время и это перестаёт быть проблемой" - это если у тебя не 1-2 лямбды вызывают таймаут
dbf: иначе до ифчика дело может не дойти
Akarachudra: с чего компиляция двух лямбд должна вызывать таймауты?)
AntonT: плюсы тут тоже "типа в дебаге" компилятся
dbf: потому что это занимало больше 50мс
Akarachudra: 50мс - это очень дофига.
dbf: меняешь лямбду на цикл и всё ок
dbf: последнее время я с таким не сталкивался тут, но во время какого-то контеста прямо задолбало, там народ советовал копировать все лямбды в специальную функцию и вызывать их там )
gybson_samara: чет топ леги не впечатляет иногда https://www.codingame.com/share-replay/467302547
gybson_samara: лбами толкаются
Uljahn: блочат сопернику доступ к территории
Akarachudra: ну это плюсовое действие почти всегда. отойдёшь - отдашь пилюли сопернику. свитчнишься - он пройдет.
Akarachudra: в этой ситуации невозможно оказаться победителем по-другому.
Akarachudra: вот если бы механика была SWITCH + MOVE. вот тогда весело было бы.
gybson_samara: у красного вроде и на своей половине норм насыпано
gybson_samara: +кд слит на скорость при бодании ... сожрать же могли
Uljahn: всегда можно найти самую удачную и самую неудачную игру, но важнее как боты в среднем играют
Uljahn: даже с таймаутами в топе были боты
gybson_samara: да я понимаю
gybson_samara: просто в CSB очень краисиво боты играют, а тут чет нет
Uljahn: в CSB пространство почти непрерывное
gybson_samara: бгыыы, в 1С теперь интеграция с тележенькой, вконтактиком и БОТИКИ https://wonderland.v8.1c.ru/blog/boty-v-sisteme-vzaimodeystviya/
Uljahn: погодите, а разве Телегу не пытались блочить? или это чисто прикрытие было для распила бабла и давления на неугодные сайты?
Uljahn: угу
S0L0: интересно статистику увидеть , после его "блокировки" количество пользователей пошло по экспоненте наверно
Uljahn: и рекламы в нём всё ещё нет, говорят из Пашиного кармана все затраты))
Uljahn: а теперь в 1С интегрируют, занятно
gybson_samara: я думаю просто с ним проще интегрироваться, чем с другими
gybson_samara: не с вазапом же
S0L0: Измерял время на ход (в начале и в конце хода), получал цифры сильно больше 50 мс и без таймаутов, как надо измерять чтоб по времени выходить ?
S0L0: или питону поблажку дают ?
tomatoes: после получения первой строчки запускай таймер
Uljahn: ^
Uljahn: отсчёт хода начинается после первого инпута, а не в начале игрового цикла, т.е. до первого инпута всё ещё прошлый ход считается
S0L0: ясно , измерял до инпута
wlesavo: поздравляю контурцев кстати, стеклышко свое выйграли :slight_smile:
metahom: даже самое большое :)
Akarachudra: что за стеклышко?
metahom: и УРФУ на 3м
wlesavo: ну вот узнаете, написано glass awards
wlesavo: видимо на адресс компании вышлют))
Beard: привет всем. а есть финальная борда по контесту?
Uljahn: https://www.codingame.com/contests/spring-challenge-2020/leaderboard/global
Beard: спасибо)
Akarachudra: там про мл спрашивают. вообще, кто-нибудь пилил/побеждал контест нейронной сеткой? в теории 100к ограничения на количество кода - позволяет нагенерить и положить модель в код. сабмитнуть.
Akarachudra: модель генерить брутом двух твоих ботов
zuko3d: я пилил нейросеть пару лет назад - вошёл в легу.
Uljahn: в итоге модель заточена против двух твоих ботов
Uljahn: zuko3d: на контесте?
zuko3d: ага, legends of code & magic
Uljahn: а, там вероятности
zuko3d: я там, правда, перед закрытием отослал плохой код и ушёл спать - в итоге вместо 20го места взял дно легенда =)
Uljahn: у тебя и пик, и игра на нейросетке?
zuko3d: ага.
zuko3d: пик полностью на сетке, игра - частично
Uljahn: офигенно
Uljahn: а в постмортемах не писал отчёт?
wlesavo: прикольно, я бы почитал
zuko3d: неа. Это было первое соревнование, я думал тогда что постмортем только топ-3 имеет смысл писать
Uljahn: пм ещё имеет смысл писать, если твой подход никто выше не использовал
Uljahn: особенно с нейронками, это же бомба
Uljahn: сразу ачивку набъёшь себе за полезный пост)
ilgiocatore: мне кажется, для написания рабочего кода на нейронках нужно больше времени
zuko3d: хах, не знал что такое есть :D
ilgiocatore: тот контест целый месяц шёл
Uljahn: справедливо
zuko3d: ага. ну у меня были наработки уже - я на работе тогда много с нейронками работал
zuko3d: т.е. был свой код на плюсах, который делает инференс, обсучал на питоне через TF
zuko3d: *обучал =)
Uljahn: жалко, что логи чатовские смывает быстро
piter239: Zuko3d, это СУПЕР интересно!
Akarachudra: Uljahn это стандартный подход Deepmind при обучении сейчас. Некое подобие ГА, при битве двух ботов. Если нормально написать, то это не будет "локальный максимум".
Uljahn: если ты про self-play, то там две нейросети играют
Uljahn: чтобы получить норм игру без априорных данных (как в supervised learning), нужно сыграть очень много игр, и не факт, что такая игра появится
Uljahn: правда, сильно зависит от игры, рекурс говорил, что за полчаса может обучить с нуля бота для гоночек
aropan: Uljahn через xmpp логин не смывает. Сбросить тебе чего?
aropan: *логи
Uljahn: не, я про то, что zuko3d тут рассказывал, останется где-то в логах на внешних клиентах у некоторых
aropan: А, ну так это пост конечно надо делать.
Uljahn: Akarachudra: т.е. для гоночек легко, а для крестиков - уже нет
Uljahn: хотя казалось бы
zuko3d: ну вот я хочу как-нибудь для крестов попробовать с сетками что-то сделать.
Akarachudra: Для таких как крестики, шахматы и т.д. очень важно конкретные таблицы решений иметь.
Uljahn: т.е. я не утверждаю, что невозможно, но скорее всего возникнут трудности с упаковкой весов в 100к
Akarachudra: Поэтому да, вероятно, решение и можно запилить, но речь не будет идти о 100к строках
zuko3d: Akarachudra ты имеешь в виду таблицу эндшпилей?
Akarachudra: И дебютов, и эндшпилей.
Uljahn: угу
zuko3d: ну это не обязательно. Для бота, который будет побеждать всех в мире - да, надо. Но чтобы протистнуться в легенду - думаю, можно обойтись какими-то вариантами, сгенерёнными в первый ход.
Akarachudra: это интересный competition. найти бы мотивации этим позаниматься. недели контеста не хватит. нужно методично в мультике посидеть.
Uljahn: для крестиков может выгореть такая идея - научить нейронку расставлять ловушки против MCTS-ботов (использовать эффект горизонта), но это прям очень мета
zuko3d: ага, я вот uttt потихоньку мучаю на досуге иногда
735487: чисто теоретически если для uttt на вход нейронки подавать состояние каждой клетки, а на выходе куда ходить. и пусть даже сетка будет очень большая теоретически ее возможно обучить? наверное получиться должно что то типа полностью просчитанной игры
Uljahn: скорее всего, она тупо оверфитнется
Uljahn: выучит твои партии и не обобщит ничего
Uljahn: мне кажется, чтобы нейронка смогла учиться, должна быть какая-то неочевидная, но всё же последовательность, взаимосвязь во входах и выходах, а в крестиках - трэш и угар, стейт меняется скачкообразно
Uljahn: в гоночках же почти всё линейно изменяется
Uljahn: это как в гоночки добавить абилку телепортации
Uljahn: https://prnt.sc/sipo2z
Uljahn: хд что-то новенькое на CG
735487: Uljahn: выучит твои партии и не обобщит ничего, а если будет играть сама с собой по монте карло с учетом уже обученных весов?
Uljahn: ну, будет как-то играть, найдёт локальный оптимум и там застрянет
Uljahn: мы же хотим, чтобы нейросетка обучалась более качественной игре, становилась сильнее
qbit86: Akarachudra Таблицы желательно, если правилами разрешены. Но в шахматы и без них можно играть. Пару лет назад на TCEC движок нейросетевой MCTS-движок Leela Chess Zero одолела альфа-бета-молотилку Stockfish.
qbit86: И как обычно Zero в названии значит, что обучена с нуля, только исходя из правил.
qbit86: Играя сама с собой.
Uljahn: это всё хорошо, пока не начинают рассматривать информационную ёмкость нейросети и количество процессорного времени обучения
TheCrucial: ребят, а в каком часовом поясе khao поживает и онлайн бывает?
qbit86: ...Иногда удивительные партии выдавала, сливала пешки одна за одной, а потом внезапно для Стокфиша выигрывала. А Стокфиш это не тот движок, которому в норме станешь жертвовать пешки «из позиционных соображений» :)
Uljahn: у стокфиша вроде дебютные книги были отключены, не?
qbit86: Там начало партии было с заранее выбранных дебютов.
qbit86: Типа, выбрали стандартных 50 начал, играли их за оба цвета.
qbit86: Но всем движкам выдавали 6-men-tables эндшпилей.
Uljahn: преимущество нейросетей в том, что для известной задачи можно заранее набрутить хорошие решения для большинства начальных условий, потом только ответы выдавать в реалтайме, а если поверх MCTS навесить, так и вообще убоечка
Uljahn: человеки тоже много лет учатся распознавать образы, но делают это более универсально и с меньшими затратами энергии
Uljahn: да, я в курсе про зеро, которая в трёх играх достигла топовых результатов
Uljahn: но только вот не одновременно на одной нейросети, до эффективного knowledge transfer across domains ещё далековато, мне кажется
BorisZ: только магус пытался для врага пути генерить тоже
BorisZ: у меня руки не дошли - хотел проще сделать, если у врага только 1 точка рядом, то он идет по цепочке до ближайшего перекрестка
wlesavo: BorisZ там ктото вообще с миником
BorisZ: если несколько то хрен с ним
BorisZ: миник это не то, он бы ко мне не залез никак
BorisZ: а тут с путем было б удобно - я все равно со своими предыдущими сверяюсь каждый раз, сверялся бы заодно и с врагами которые сильнее
BorisZ: чтоб из-за угла не ели
wlesavo: а ну так то я тоже учитывал противника, считал что он идет во все стороны но вероятнее если в соседней клетке есть еда и что он никогда не возвращается
wlesavo: и в зависимости от количества вариантов уменьшал стоимость еды в головах
wlesavo: ну и считал что враг скорость по кд использует
BorisZ: я учитывал тоже, но по простому - если враг в корридоре, то все точки корридора + перекрестков протухшие
wlesavo: но там бранчинг большой даже так, гдето через пять шесть ходов уже нет смысла пытаься учитывать
wlesavo: ну по крайней мере в моей вариации
BorisZ: непонятно что делать с этим деревом то - ну есть у нас вероятность 1/32 что враг за углом - не ходить туда? веса надо подбирать как-то
BorisZ: главное этот путь для врага сохранять июзать на следующем ходу, когда его не видно уже
wlesavo: BorisZ ну вот я пытался в весах при хотьбе учитывать, а потом все поотключал
Akarachudra: А как скрин сюда вставить?
BorisZ: через ссылку на сторонниее хранилище только
ashelkov: https://ru.imgbb.com/
ashelkov: )
Akarachudra: https://snipboard.io/UYfyHk.jpg
ashelkov: ухты
Akarachudra: Видно? Пытался угадывать пути соперников. Помечать "посещёнными". Работало первые 15 ходов и далее в течение 5 ходов, после встречи.
ashelkov: у тебя такая красота?
Akarachudra: Но как видите, я на 20 :) значит сделал криво.
Akarachudra: Ну да, я дебаггер написал где-то на третий день, когда устал отлаживать баги.
Akarachudra: Там на скрине есть "прозрачные" паки. Это предсказанная позиция соперника, ну и рядом "вероятный" путь.
BorisZ: Akarachudra очень круто, виден серьезный подход сразу
Akarachudra: спасибо, но я потратил только несколько часов на него.
Akarachudra: сейчас вот вам скрин отправил и увидел, что внёс баг в последний день... :)
Akarachudra: видно, что первый ход мои паки сходили без ускорения... shit.
ashelkov: классно/ я парился с тем что выводил пути паков в консоль чтоб понят почему мой пак выбирает не потимал путь
ashelkov: *optimal
CaN1s: всем привет
Akarachudra: это жестко. тоже хотел "на релаксе" тюнить бота. но быстро надоело. всё таки, дебаггер - это очень важная штука в таких контестах, иначе легко запутаться.
ashelkov: визуализацию я когда то пилил для конеста про змейки котору локальный епам проводил
ashelkov: щас ссылку найду
BorisZ: Akarachudra ну а потом в середине игры, если увидел врага - строишь ему такой же путь?
Akarachudra: для врага я "зеркалил" карту весов.
MadKnight: чё теперь собираетесь делать посоны?
Akarachudra: ashelkov :thumbsup:
ashelkov: тайлы брал серваковские а аналитику сверху дорисовывал
ashelkov: спасибо)
BorisZ: меня всегда отпугивало от написания дебагера то что там тоже будут баги и их тоже надо будет ловить
Akarachudra: это верно. нужно запариваться за архитектуру.
BorisZ: пишешь дебагер - множишь баги )
BorisZ: ну и времени сколько-то уйдет
Akarachudra: причем в случае отсутствия дебаггера, тебе можно вообще за неё не запариваться, а при наличии его - и в нём, и в боте нужна нормальная.
ashelkov: но реально в визуализацией своей аналитики - гораздо легче и правильней улучшаться
Uljahn: так его один раз написать нормально надо, потом реюзать, как бэтлстейшон у рекурса
Uljahn: >3 in legend removed: kord, mataranga, FrenchKiss - за копипастинг
BorisZ: в прошлом райке летнем в тг чате был чувак который весь контест писал дебагер - получился очень красивый, с темой из героев 3
735487: TheCrucial: ребят, а в каком часовом поясе khao поживает и онлайн бывает? последний раз когда он об этом говорил он был в Японии. но бывает обычно только во время контестов
BorisZ: но ему потом организаторы дали приз вроде даже как за 5 место такой же, за красоту
Uljahn: ахах, контур скатился на второе место в зачёте, плагиатчики
Akarachudra: стыдоба. нас уличили в плагиате.
TheCrucial: amurushkin спасибо
dbf: Akarachudra, круто визуализацию сделал
dbf: Но пока вот самый топ: https://recursive.cc/blog/halite-iii-battlestation.png
S0L0: а как данные в визуализатор получаете ?
Uljahn: ага, я это и имел в виду
Akarachudra: S0L0 снимал дамп игры и парсил
Uljahn: т.е. выводишь инпуты в дебаг, копируешь в локальную IDE и там визуализируешь
BorisZ: Akarachudra а где про плагиат объявили? там какие-то доказательства есть или что?
735487: я когда на джавке полями занимался я там копировал дебаг в файл и с него читал
Uljahn: в общаке Тибо написал
S0L0: вот про этап копируешь интересно, как достать из браузера
Akarachudra: BorisZ на канале написали. как нашли - хз, ещё в лохматые года в нулевых в контестах были распознавалки плагиата. сейчас, наверное, эти системы развились, но уже раньше четко работали.
Uljahn: S0L0? ctrl+c, ctrl+v
Uljahn: под реплеем есть консоль, куда дебаг можно выводить
Uljahn: оттуда копируешь
S0L0: я думал плагин какой нить, спс
735487: S0L0: я выводил просто в debug потом в браузере убирал стилями ненужные штуки. копировал и все
dbf: круто, поднялся на 2 места, может еще кого забанят :)
Uljahn: :smiley:
735487: в идеале надо было банить до пересчета.
ashelkov: ну если б 17 первых забанили
ashelkov: :innocent:
Akarachudra: будем считать, что плагиат система не доработана и поэтому они смогли улизнуть.
wlesavo: так там сказали альтов забанили
wlesavo: ну альт и плагиат +- одно и тоже, они же по коду смотрели
Uljahn: но оставили по одному варианту кода, который был выше в рейтинге
Beard: альтов?
Uljahn: да
Uljahn: по идее, надо было всех чистить, как с kodle
Akarachudra: а что за история с kodle?
Beard: Uljahn, кто такие альты?? XD
Akarachudra: может альфы, как из сериала?
BorisZ: думаю альтернативный аккаунт
BorisZ: мульт
Uljahn: угу
Uljahn: ещё smurfs
Beard: а, ну да...
Uljahn: Akarachudra: koddle закоммитил контестный код на гитхаб в публичный репозитарий
Akarachudra: да там полно публичных ботов на гите
Akarachudra: или его наказали, потому что он был силён?
Uljahn: дело было в леге GitC
Uljahn: во время контеста нельзя шарить код
Hiker: а почему паков нету в бот рпограмминге?
wlesavo: рано еще
wlesavo: вечером будут
Uljahn: должно оповещение появиться
Hiker: в колокольчике?
Uljahn: угу
Akarachudra: Uljahn сейчас вбил в поиск гите, там десятки ботов доступны от этого контеста.
Hiker: а блин тут новости не постят? типо закончился контест, победил то-то тот-то, учавствовало столько то юзаров
Uljahn: Akarachudra: это уже после контеста, тогда всем пофиш
Uljahn: пофиг
Akarachudra: просто они не уличены и не в легенде, видимо.
Uljahn: а, ну наверное
Uljahn: проверяют легу и подозрительных ботов
Akarachudra: типа если серебро, то можно)
Uljahn: нет, нельзя
Uljahn: просто не проверяют
Uljahn: если не проверяют - не значит, что можно
BorisZ: Hiker compete - conntcns
BorisZ: contests
BorisZ: но плашку на главную могли бы повесить, это да
Uljahn: с другой стороны - стримы до голды разрешены
Uljahn: т.е. там и код, и все рецепты
Akarachudra: видимо, ровно до того момента как застримит кто-нибудь уровня топ10 и получит за это по голове.
Uljahn: я уже в дискорде поднимал эту тему, сказали - не лезь
735487: вот читаю пмы как народ юзал бимсерч. я вчера тоже написал его и всего лишь получил + 500 мест в серебре ))
Uljahn: всего лишь
BorisZ: да это только доказывает что хоть как можно было искать ходы, хоть монетку кидать, только бы оценка была
BorisZ: ну или сравнение
735487: возможно я сам бимсерч неправильно реализовал. я его первый раз в океане писал. и толковых док не нашел как его писать.
BorisZ: по мне бимсерч - неудачный выбор, зачем перебирать ходы туда-сюда или по кругу?
735487: ну я там запрещал ходы назад на прошлую клетку
Uljahn: бимсёрч - это компромисс между глубиной и шириной, не?
735487: ну да хранятся не все состояния а только часть топовых
BorisZ: ну типа того - перебираешь все варианты хода, оставляешь допустим 100 самых удачных, следующие ходы только от них генеришь
735487: пу сути это немножко жадный поиск в глубину
735487: я его попробовал модернизировать и запоминать не по принципу глубины решение а по оценке. но тогда таймить начинает и уже начинает напоминать перебор ))
Uljahn: т.е. оценка будет сильно влиять на результат, т.к. от неё будет зависеть, каких кандидатов оставлять, каких отсекать...
735487: я вот сижу и думаю а почему я не сделал visited массив. я ведь действительно не проверил даже какие пути он искал
735487: ну ничего потом в мульти потренюсь
735487: Uljahn: да от оценки зависит и от ширины. ею когда играешься тоже сильно влияет
Uljahn: ну да
BorisZ: тут вроде все намекает что есть точки, куда надо стремиться идти, не как в океане например
735487: у меня в оценке были пелетки и перекрестки
Uljahn: я думал сначала, что это точки соприкосновения с областью противника, типа рашить на границу с учётом типов паков
735487: пелетки видимым я обновлял скор а остальным уменьшал каждый ход.
wlesavo: amurushkin у тебя все вроде похоже на то что у меня, я думаю там какойто мелочи не хватило чтобы пройти
Uljahn: но тут цилиндр и паки разбросаны по карте, так что хз
wlesavo: ну только у меня не бим
MadKnight: wlesavo чего не хватило?
MadKnight: wlesavo ты на каком месте?
wlesavo: 68
wlesavo: ну амур же не прошел в голду вроде
MadKnight: в леге?)
wlesavo: хотя там все на месте +-
wlesavo: да в леге
MadKnight: amurushkin ты в голду не прошёл?)
MadKnight: wlesavo расскажи свою тактику
wlesavo: да я пм небольшой написал, тактики нет как таковой, ищу пути, оцениваю, свичусь если опасный пак на расстоянии одной клетки, и проверяю фраги в тупиках
MadKnight: пм?
wlesavo: на форуме
wlesavo: ну и параметры плавающие от числа оставшихся пелеток
wlesavo: короче ничего особенно оригинального, половина идей из чатика
735487: MadKnight: да не прошел. но у меня и времени особо не было кодить. но этот контест какой то очень требовательный получился. ифами не обошлось ))
Uljahn: ну вон в легу именно такие боты проходили, какие я не хотел кодить :)
Uljahn: зато с numpy поигрался, вспомнил как графы строить и находить все расстояния, а потом ближайших к суперпеллетам паков определять
BorisZ: у меня кстати в паоследней версии суперпелеты вобще никак не обрабатываются специально - само берется, я аж удивился когда увидел
Uljahn: а я видел, как у эйлера не брались)
BorisZ: ну значит и у него не обрабатывается - верная дорога то есть
Uljahn: возможно, на суперпеллеты дискаунт сильнее действует
Uljahn: или баг какой
BorisZ: там есть конечно сложные случаи когда один свой пак может заблокировать дорогу врагу к ближайшей, но такие я видел где-то вначале, потом не попадалось чтото
Uljahn: во, про альтов нашёл: https://forum.codingame.com/t/spring-challenge-2020-bugs-questions/180397/163?u=uljahn
vrabosh: BorisZ? поздравляю с русским первым местом на питоне:)
vrabosh: напиши на хабре плз с примерами как у тебя получилось на питоне хорошее место знять.
wlesavo: там классный пм от 3го места на генетике
vrabosh: где?
vrabosh: я смотрю даже на пхп пишут
wlesavo: https://www.codingame.com/forum/t/spring-challenge-2020-feedback-strategy/184113/41
BorisZ: vrabosh спасибо, но я на статьи не готов - трудно это, да и достижение не ахти какое, ты спрашивай если что интересно, я всегда рад
BorisZ: vrabosh ты тоже молодец, первый контест и сразу золото, и про четные ячейки ты первый углядел, очень круто
vrabosh: спасиб..
vrabosh: буду пока трон баттл ковырять до легенды, если что у вас спрашивать.
BorisZ: трон скучновато, там одна дорого к нормальному боту - минимакс и вороной, нет места для творчества, но идеи обе полезные, спору нет
BorisZ: ну и на питоне далеко не уехать, глубина минимакса будет маленькая
vrabosh: я уже сделал вороной.. почти золото взял.
Uljahn: ну, если не пытаться, то максимум не научишься из пиотна выжимать https://www.youtube.com/watch?v=zdnjKx-OdXE
vrabosh: походу минимакс еще прикрутить хотябы на глубину 4
vrabosh: вы как вороного делаете? по формуле или через цикл?
BorisZ: vrabosh посмотрел - у меня на графе через одновременный бфс из нескольких точек
BorisZ: похоже что у меня все пролемы решаются через бфс )
vrabosh: я за этот контентс хорошую функцию сделал... кидаю ей координаты, она от всех строит волну.
BorisZ: но видимо это не оптимально по скорости, судя по результатам, наверное есть пути побыстрее
735487: я через цикл делал но реализация какая то корявенькая
vrabosh: но да это не быстро.. через формулы быстрей полюбому.. но через формулу хз как учесть лабиринто подобные ситуации
wlesavo: уменя просто нумпайный массив дистанций из бфс, и тремя операциями сравнения вроной получается, при этом даже не учитываются действия противника, просто оценка 3х направлений на нулевую глубину
wlesavo: +1 эвристика и достаточно для легенды
MadKnight: wlesavo чё теперь пилить собираешься?
ashelkov: добрый вечер, немного поспал))
wlesavo: MadKnight хочу space maze, посомтреть на сколько процентов получится на питоне сделать
wlesavo: и по работе хочу разобраться с одним моделированием
ashelkov: а я наверно еще паков попилю когда откроется/ кажется есть что еще попробовать
ashelkov: а именно spreading - както часто если стратую на 1 половине проигрываю - паки сжирают свою територию а потом идут искть сожранную противника/ надо их максимально распределять
MadKnight: с каким таким моделированием wlesavo ?
wlesavo: MadKnight спектры из первых принципов считать, нашел неплохой скриптик, хочу под свои цели адаптировать и проверить на модельных системах заработает или нет
MadKnight: чё за первые принципы?
MadKnight: чё за спектры?
MadKnight: о чём вообще речь
wlesavo: физика
wlesavo: типа есть система какая то, можно рассчитать ее уровни энергии и переходы в ней
dbf: мощно звучит, мы тут напрягаемся после написания бизнес-лапши на работе, а у тебя, похоже, наоборот :)
wlesavo: да не, на работе у меня вообще нет программирования, это так, если получится будет хорошо если нет никто даже не узнает что пробовал
dbf: ну можно голову напрягать и без программирования :)
wlesavo: на самом деле ты бы видел код который пишут дедки теоретики в матлабе
dbf: да я немного поработал в околонаучном программировании, тоже многое видел. хотя и без фортрана
wlesavo: я фортаран тоже избежал, хотя была возможность
AntonT: да уж, дедки многое пишут) я видел файл в 5к+ строк на Паскале)
Uljahn: у вас моделирование или экспериментальная физика тоже есть?
Uljahn: LabVIEW используете? или матлаб только?
wlesavo: Uljahn моделирования вообще нет, только эксперимент, но в принципе я общался с теми кто моделированием занимается и хочу это в нормальном виде попробовать сделать. лабвью некоторые используют, но в основновном экспериментальные программы либо на плюсах либо на питоне
Uljahn: вона как
wlesavo: матлаб это тоже конкретный дедок использовал, но он такого нагородил что в этом разбираться не хочется совсем
wlesavo: у нас есть два чувака, отец и сын, которые разработкой занимаются, и там на низком уровне под приборы которые тоже сами делают пишут что-то
Uljahn: маньяки какие-то
wlesavo: ну они готовые решения тоже используют когда это возможно
Uljahn: хотя у нас при кафедре в НПО серийные частотные электроприводы тоже всего человек 5-6 разрабатывало, но там хотя бы специализация какая-то, тоже сами паяли опытные обрацы, сами алгоритмы управления придумывали, сами кодили
Uljahn: правда, тогда с сименсом и бошем трудно было конкурировать, не знаю как сейчас под санкциями
wlesavo: здесь близко к тому но источники тока для соленоидов и температурные контроллеры делают,базовые принципы простые, но точность нужна хорошая, и приборы делают на уровне или лучше тех что можно купить
wlesavo: катушки сами мотают, но конечно это штучное производство, для себя или под конкретный заказ
TheCrucial: как скоро паков выложат в поиграбельный доступ?
Uljahn: хз, должны бы уже выложить, чё-то тупят
Uljahn: got delayed till tomorrow
Uljahn: в общаке написали
vrabosh: вот так я себе в идеале представлял.. еслиб сразу пошел на перебор, может быть так начал делать.
qbit86: Это иллюстрация к паттерну чётности?
Uljahn: ага, какая-то картинка из дискорда
Uljahn: тут и чётность, и тупики
qbit86: Чётность всё-таки произвольна. Да, ввиду схемы генерации карты (стенки занимают ширину клетки, а не между клетками; коридоры шириной в одну клетку и не больше) паттерн есть. Но требуемую логику можно было выражать и без чётности...
qbit86: Напрямую: хочу останавливаться на перекрётсках типа +, L и T и с них стартовать; не хочу останавливаться на «трубах» I, если только они не в глубине.
vrabosh: перекрестки + L T находятся всегда на нечетном x и y
qbit86: Проверять эти свойства напрямую было бы гораздо надёжнее ,чем на притянутую чётность. Организаторы могли вдруг выкатить карты, которые сдвигают на полфазы паттерн, скажем, посреди коридор шириной 2.
qbit86: Зачем исходить из шатких предпосылок, что таких лабиринтов нет, если можно просто явно выражать требуемые свойства, не закладываясь на наблюдения?
wlesavo: там в пмах хорошо про это один парень написал, на глубине 10 смотрит расстояние между перекрестками в найденом пути и проверяет остановкичтобы оценить нужно ли скорость использовать
tomatoes: кого-то дисквалифицировали?
tomatoes: а, френчкисс пропал. и еще ктото похоже
wlesavo: tomatoes да, несколько альтов/копипастеров, даже кто то из контура вроде
tutubalin: Ульян, а что ты там такое написал?
tutubalin: Thank you for making that restricted information public.
ДжБМ: ya tol'ko hotel' skazat': my (kotorye ne na diskorde) ne to videm, chto vy tam govorite
tutubalin: а, это не ульяну было адресовано?
ДжБМ: a ya poehtomu rad, kogda ya chto-to ottuda uznayu
tutubalin: Ульян свой пост удалил