Chat:Ru/2020-11-19

From CG community
Revision as of 11:31, 15 June 2021 by Chat Log (talk | contribs) (Created page with "<img src=/a/23956705948685> Uljahn: Automaton2000: kak deal? <img src=/a/40502662118268> Automaton2000: я к тому что у меня есть <img src=/a/4405751597540>...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Uljahn: Automaton2000: kak deal?

Automaton2000: я к тому что у меня есть

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

BorisZ: чет никто со мной не спорит, странно Automaton2000

Automaton2000: я понял, что это не просто

Hoggins: новый параметр богу параметров - это тоже новая фича

BorisZ: да, нужно вводить больше параметров)

BorisZ: я подумал как можно было бы доказать что новые фичи лучше чем кручение параметров - провести двойное слепое рандомизированное исследование

BorisZ: взять 100 человек, разбить случайно на 2 группы, одна пилит фичи, а другая - контрольная

BorisZ: она думает что пилит фичи а на самом деле крутит параметры)

BorisZ: потом опубликовать в солидном научном журнале

BorisZ: результаты

Hoggins: такое исследование могут проводить в CG. Смотреть корреляцию процента отличий кода и результативности сабмита

Hoggins: ух, вообще мечта иметь доступ ко всему тому .... коду который мы сюда сабмитим. Там же столько гениальных идей :)

BorisZ: это тоже было бы круто, но солидный научный журнал не возьмет )

BorisZ: я думаю идей не так много, повторяются они

BorisZ: что-то прям оригинальное да еще и чтоб оно побеждало - это может пара примеров можно вспомнить

BorisZ: я только смитси могу вспомнить

BorisZ: параллельный рост мктс для каждого агента

Hoggins: может этого хватит для солидного журнала?

BorisZ: это мсмитс который придума он вроде преподает гдето

BorisZ: недалек от академических кругов короче

SergeI: если журнал не возьмет, создайте свой =)

Uljahn: смитс физику преподаёт, а CS только недавно взялся изучать

Uljahn: да и его алгоритм очень похож на DUCT вроде, хотя и не идентичен

Uljahn: вот и всё, эйлер уходит с шарпа, Automaton2000

Automaton2000: и у меня не было

wlesavo: BorisZ у смитса там вроде в d&b были результаты мирового уровня, я подначивал опубликовать его

Uljahn: под результаты надо теорию подводить, асимптотические оценки

Uljahn: на arxiv полно статей типа "мы придумали алгоритм", а там одни формулы ))

Uljahn: без псевдокода даже...

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

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

Uljahn: берут какой-то бейзлайн, какой-то набор тестов, херак-херак - получили 10% улучшения, запилили статью

Uljahn: потом покрутили параметры - ещё 5% улучшения, ещё статья

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

735487: я тоже пару раз пытался по статьям расширения для mcts писать. вообще не получилось

wlesavo: Uljahn и это только в CS а прикинь че там в физике например, еще хуже ситуация. но архив что ни говори таки помойка относительная, если брать высокорейтинговые журналы там сэтим чуть получше, хотя не прямо на много

Uljahn: это понятно, всё бесплатное - помойка по умолчанию

Uljahn: но и там изредка попадаются стоящие задумки

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

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

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

Uljahn: на rss пейволы не распространяются же?

wlesavo: ну как, там же только заголовки и абстракты, если open access типа nature какого-нибудь то там вообще все бесплатно. а так если действительно интересная статья то скайхаб в помощь

wlesavo: у архива тоже кстати рсс есть

Pyhesty: на питоне совсем нестабильно с таймингами?((( а то вылетов то один цикл в контесте 1-2мс, а некоторые 25-30 ну и вылеты постоянно...

Uljahn: не только на питоне

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

gybson_samara: я же могу структуру интов в массив кастить?

735487: в плюсах через union вроде делается такое

735487: или что в твоем понимании кастить?

gybson_samara: ну взять из класса 4 байта в виде массива и сложить с другими =)

gybson_samara: соответственно указатель кастится в int[4] и вуаля

735487: наверное так можно только если там никакого хедера у структуры в начале

gybson_samara: разумеется

gybson_samara: если есть хедер, то добавить его размер к указателю

735487: но зачем настолько стремно делать?

735487: переопредели оператор плюс и слаживай структуры

gybson_samara: ну вот у меня есть массив классов, мне надо из каждого класса взять 4 байта, прибавить - проверить результат

gybson_samara: но можно и через точку взять

gybson_samara: чет я совсем жестко придумал, больше в духе C

Hamibar: питоны в топ 100 еще держатся. Получается можно на эвристечках играть.

gybson_samara: ну нафиг плюсы тогда, буду смотреть где у меня тормозит

735487: я с прошлого четверга то ли пятницы еще не писал ничего но собирался просто сделать структуру с 4 числами и для нее определить операторы и функцию какие надо

735487: а можно вообще засунуть в avx регистр и складывать. но тут я хз будет ли лучше или нет

wlesavo: Hamibar там безусловно неплохие эвристики, но основное это то что глубина большая не нужна

wlesavo: там все-таки у них тоже поиск

Hamibar: ну все питон в топы!

Hamibar: я то думал будет как крестики - все на MCTS

Uljahn: так все на бимсёрче, вроде

Uljahn: или даже чокудай

wlesavo: мда, написал спелл симу, придумал оценочную, все ради того чтобы она всегда выбирала нулевой спелл

gybson_samara: я сделал реверс от зелья к инвентарю, все замечательно, но баги ТА =)

wlesavo: два часа проведенные с максимальной пользой я щитаю

Uljahn: gybson_samara: от каждого зелья? с рестами?

gybson_samara: от лучшего

gybson_samara: без рестов, но с изучаемыми

Uljahn: а если противник выучит раньше?

gybson_samara: а как?

Uljahn: можно учить не по порядку же, но заплатить мзду

gybson_samara: мзду включаю в рецепт

Uljahn: так спелл достанется только противнику?

gybson_samara: неее

Uljahn: или ты учишь сразу максимальные нужные спеллы?

gybson_samara: ну если спелл -1,1, то в последовательность включается как -2,1

gybson_samara: и просчитывается с учетом мзды автоматически

gybson_samara: или -5,1, не суть

Uljahn: а, то есть только одно изучаемое включается в цепочку?

gybson_samara: все

gybson_samara: но они отсекутся

Uljahn: т.е. влияние противника не учитывается

gybson_samara: нет

gybson_samara: и так баги и таймауты =)

Uljahn: а, ты на питоне

gybson_samara: с нампи пока норм

Uljahn: в нампи удобнее всё хранить, чем в классах

gybson_samara: одна математика

Uljahn: в смысле, по быстродействию лучше

gybson_samara: у меня классов и нет

Uljahn: "ну вот у меня есть массив классов, мне надо из каждого класса взять 4 байта"

gybson_samara: это был порыв

Uljahn: это абстрактный пример был?

Hamibar: добавили бы воровство ингредиентов, было бы интересней :grinning:

wlesavo: блин нашел баг, все-таки работает спеллсима то

Uljahn: понятно

gybson_samara: ну тут 4 заклинания просто матаппарат

Uljahn: ейлер тоже баг нашёл, пока на плюсы портировался

gybson_samara: я в прошлый контент баг нашел исразу в серебро влетел =)

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

Hamibar: gybson_samara обычно все наоборот)

wlesavo: на самом деле тут сима и поиск достаточно простые

wlesavo: у меня на mc держится в топ 50 +-

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

gybson_samara: с первыми четырьмя моментально считается последовательность, с изучаемыми уже дольше

wlesavo: да мне последовательность считать не интересно, мне интересно придумать что учить первые 4-6 ходов

gybson_samara: там и посчитай рецепты с изучаемыми

wlesavo: дальше у меня поиск работает нормально и сам учит что надо

gybson_samara: у меня дерево рецептов, если в нем есть что изучать - изучаем

gybson_samara: ресурсы на это уже посчитаны, добавить 1 ход на изучение

gybson_samara: должно быть дерево, но пока одна ветка =)

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

wlesavo: давай, заодно идею обсудим

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

735487: последовательность искать думал бфсом или рандомом

gybson_samara: из любого зелья можно выти на инвентарь овершенно определенным способом

735487: еще была идея через бфс искать за себя и за противника и делать те рецепты которые успеваешь раньше соперника

gybson_samara: несколькими, но они математически строго определены

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

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

gybson_samara: ну ты если в первый ход сформировала книгу по всем рецептам из рефери, то да

gybson_samara: моя идея в том, что чтобы сварить [0,1,0,0] надо сварить [1,0,0,0] и т.д.

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

gybson_samara: я не сразу

gybson_samara: я разматываю цепочку от зелья к инвентарю, у меня может быть большой избыток

gybson_samara: после варки\

gybson_samara: ингрнидиенты на зелье это минимум, что я получу

gybson_samara: за минимум ходов, в теории

ilgiocatore: ну да, про поиск с конца я с самого начала думаю. но у меня эффективно это не получалось сделать

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

Uljahn: wlesavo: прикидывал, что не стоит брать "околоравноценные" повторяемые, типа [0, -2, 2, 0] и [0, -3, 3, 0], повышать приоритет, если нет спеллов на апгрейд/даунгрейд какого-то тира или типа того

735487: или вручную проставить оценку всем 42 спелам

Uljahn: тут ещё про связность говорили

wlesavo: хм про повторяемые кстати не думал

Uljahn: amurushkin: зачем вручную? нейросеть же обучить )

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

735487: нейросеть я пока научусь обучить и контест пройдет )))

Uljahn: и жизнь :(

Uljahn: Hamibar: там что-то про клики и факторизацию?

wlesavo: amurushkin суть в том чтобы всю комбинацию оценивать

Uljahn: как в LoCaM

amurushkin: Hamibar: всех состояний врядли но можно попытаться найти оптимальные решения от стартового ко всем рецептам

amurushkin: вот кстати вариант. запустить в оффлайне поиск нескольких путей для всех рецептов. и составить топ спелов которые учить

Hamibar: Uljahn клики это что?:grimacing:

Uljahn: "В теории графов кликой неориентированного графа называется подмножество его вершин, любые две из которых соединены ребром."

Hamibar: а я думал мышкой

Uljahn: т.е. по сути находим подграфы, полученные из исходного удалением ребра

Uljahn: типа факторизации

Hamibar: ну понятно. Сделать это быстро тяжеловато)

Uljahn: так в оффлайне же

Hamibar: а зачем нам в оффлайне?

Hamibar: все равно же не сможем перебрать все цепочки

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

Hamibar: а потом решил вообще не участвовать)

amurushkin: так тогда лучше сразу включать в граф эти спелы и смотреть какие используются а какие нет

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

wlesavo: 5/12 конечно лучше чем ничего, но чувство такое что все-равно не полезнее эвристики

Hamibar: так просто не хочется проходиться бфсом еще раз по всему графу. А хочется быстренько пересчитать расстояния

Hamibar: ну хотя мб это и не надо и так все можем успеть.

tomatoes: у меня примерно так сделано :thinking:

tomatoes: делаю вид что всё из тома изучено, прогоняю бфс, считаю чо использовалось

wlesavo: неплохо

Hamibar: я еще думал сделать что-то вроде цепочек зелий. Попробовать посмотреть за какое время мы можем собрать не 1 зелье а например 2-3.

Hamibar: хотя это не сработает. У нас же еще противник есть)

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

Uljahn: сначала было удивительно, что питон в топ-40 где-то держался, сейчас уже джава в топ-15 удивляет

Uljahn: 10 прагм из 10 контест

amurushkin: может у джавы с рефери один сборщик теперь?

Uljahn: типа свой мусор можно отправлять на сборку в рефери?

amurushkin: ага :)

Default avatar.png S0L0: может они не перебором

Uljahn: мб, в реплеях у wala какие-то интересные цифры выводятся в мессейдж, явно не количество нод

wlesavo: как же легко моего бота сломать, чуть чуть где-то подкрутил и все, перестает играть

Uljahn: классика выхода в легу - подёргать коэффициенты

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

wlesavo: приходиться возвращать все как было, тогда играет

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

Default avatar.png Zero0: привет, всем. возник вопрос неожиданно, я раньше за собой не замечал, что сам с собой рассуждаю на Мы, типа "мы должны закамментить этот кусок и изменить эту переменную", у кого из присутствующих такое бывает? То я заволновался, вот, Горлум тоже сам с собой на Мы рассуждал....

wlesavo: это фигня, я когда на работу пришел заметил что у нас 90% людей вслух сами с собой разговаривают, сначала думал забавно, а потом когда как норму воспринимаешь сам начинаешь вслух рассуждать

ilgiocatore: ахах, ну я с детства разговариваю сам с собой вслух, когда никто не видит, и пока (к 27 годам) участь Горлума меня не настигла

Default avatar.png Zero0: Спасибо откликнувшимся, но, меня большо, имено смутило, что поймал себя на том, что говорю себе в духе "мы должны", "если мы .." и т.п. С другой стороны, какая разница :slight_smile:

amurushkin: если кому то что то обьясняешь то это вроде само собой так получается

wlesavo: ну на счет мы не знаю, но ничего особенно необычного

amurushkin: главное чтобы не так https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D0%BB%D0%B8%D0%B3%D0%B0%D0%BD,_%D0%91%D0%B8%D0%BB%D0%BB%D0%B8

Uljahn: https://www.meme-arsenal.com/memes/ad1da7492c9850dc3565b01472e840f7.jpg

Uljahn: literally me

Default avatar.png Zero0: Uljahn :thumbsup_tone1: )

Xanrum: Кто нибудь использует повторяемые касты 3 или более раза? так и не подвернулся случай когда это б было нужно

wlesavo: 3 точно бывает

wlesavo: больше не обращал внимания

Uljahn: там не так много спеллов, которые можно 5 раз применить

wlesavo: бывает вроде но реже заметно

Uljahn: 7 штук насчитал

Xanrum: применить можно, но вот что бы был толк - это очень звезды как то сойтись должны

Uljahn: должен быты приоритет на однородность ингредиентов, например

Uljahn: тогда частоту можно повысить

Uljahn: *быть

wlesavo: ингридиенты лишними не бывают обычно

Uljahn: мы же про максимальную мощность преобразования щас говорим?

Xanrum: да, -2 +2 использовать все 5 раз

wlesavo: у меня обычно работает так что лучше преобразовать больше на всякй случай

Uljahn: ну вот, если есть нелишние ингредиенты, то 10 нужных тиров не наберётся

wlesavo: это достаточно эффективно, спелы в целом все-равно в плюс работают

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

wlesavo: ну хз, выглядит не очень эффективно

wlesavo: хотя я хз, может у меня автоматом так же иногда делает

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

Uljahn: типа удельная эффективность преобразования

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

wlesavo: короче это +- само все считается в симе

Uljahn: ну, если прунинга нет, то да

Default avatar.png NoiselessCommitter_ed80: я решил!

Default avatar.png NoiselessCommitter_ed80: наверно

BorisZ: Zero0 я как диванный психоаналитик авторитетно говорю - мы вместо я - это попытка ухода от ответственности

BorisZ: если говоришь я дожен, то если не сделал то обосрался, а если говоришь мы должны и ни фига не сделано то я не виноват

BorisZ: Xanrum Кто нибудь использует повторяемые касты 3 или более раза? точно используют, видел реплей и с 4 и с 5 кратным кастом у топов

wlesavo: когда золото BorisZ :slight_smile:

BorisZ: сейчас, уже собираюсь с силами

BorisZ: все отмазы для слабаков

wlesavo: все отмазы для легенды оставим

BorisZ: либо ты в золоте либо нет, а зашло-не зашло и много работы не канает

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

wlesavo: очень уж высокий средний уровень, если легенда на открытии будет 20 человек еще можно подумать, а если 10 то можно даже не пытаться

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

wlesavo: слишком демотивирует когда каждая новая фича бота ломает в нулину

BorisZ: последний самурай на питоне держится еще

BorisZ: wlesavo пили фичи )

BorisZ: может комбинация разных подходов лучше сработает

wlesavo: да в том то и дело что пилю, но после этого бот перестает играть

BorisZ: дерево + монтекарло или бимсерч + еще что-то хз )

wlesavo: да на бимсерч долго переписывать, на дерево еще можно, но чето я не вижу большого смысла

BorisZ: объединять спеллы в цепочки паравозиком

wlesavo: ощущение такое что проблема не в поиске самом

BorisZ: которые друг в друга переходят

wlesavo: да они вроде сами неплохо объединяются

BorisZ: если паравозик за 1 шаг то может больше вариантов переберется

wlesavo: слабое место это изучение на начальных этапах у меня

wlesavo: но ничего не могу сделать с этим, подхода три уже проверил, все хуже чем просто нулевой спел

Xanrum: вопрос еще как долго и как много этот нулевой спел учить

wlesavo: в целом у меня против топов ненулевой винрейт, так что надежда остается, все-таки это не крестики где тебе шанса не оставляют

wlesavo: 4-5 спеллов достаточно, дальше сима сама подсасывает что нужно

Xanrum: меньше +6 на старте что-то плохо себя показывает

BorisZ: добавить фейковые спеллы к себе может?

Xanrum: это какие такие фейковые?

BorisZ: с ценой = цена + тир1 и 2 хода на каст

Xanrum: а есть вариант выгрузить все свои бои из арены? кроме как мышкой кликать каждый

wlesavo: ну у меня просто изучение как действие в симе, этого хватает вроде

wlesavo: есть апи

BorisZ: ну будто спелл в книге - это спел у тебя в памяти, просто догоже стоит каст (+ цена в синих камнях)

BorisZ: если уже в симе тогда смысла нет конечно

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

wlesavo: офигеть, даже еулер на плюсы переписал

Uljahn: Xanrum: https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction

andrey-vinokurov: Я буду доволен, если на питоне зайду в золото :)

Xanrum: у питонистов в этот раз особый челендж

andrey-vinokurov: мне правда пришлось весть numpy выкорчевать чтобы в лимит уложиться :)

andrey-vinokurov: Но у меня теперь еще 40ms запаса :) сча буду изучать mcts :)

amurushkin: на питоне mcts можно и не начинать. потеря времени только

andrey-vinokurov: я хочу простую сделать, у меня оценка количества ходов до зелья и что учить внешняя будет :)

andrey-vinokurov: я вчера со стратой учить первое заклинание до первой варки соперника залетел наверх серебра

andrey-vinokurov: прочитал что тут коллеги в золоте учат просто 10 первых заклинаний :) поставил 12 смотрю что будет :)

Xanrum: пока писал парсер для боев с арены, бот неведомым способом улетел с 50 серебра в золотую лигу

Pyhesty: на питоне в золоте, как только сделал поиск варки на 5 ходов (полный перебор) вперед, сразу начал давать случайное время выполнения от 1 до 33мс, так что дальше, если тайминг так плавает питон не рулит, только если на статических таблицах, когда не нужно перебирать

andrey-vinokurov: ну у меня во многом так и есть, очень много считается на первом ходе, а для обучения я хочу сейчас посчитать таблицу заранее

Default avatar.png S0L0: а почему от numpy отказался ?

andrey-vinokurov: ну я так себе питонист, может я что-то делал не так, но у меня все np.add, multiply, sum, min работали сильно медленее чем ручная фильтрация или использование стандартных sum, min

andrey-vinokurov: У меня мой предпросчет с numpy вылетал за секунду, а сейчас укладывается в 200 ms

Uljahn: а что предрассчитываешь?

andrey-vinokurov: ну я строю граф переходов из всех состояний в соседние, с учетом спелов, правда обратный, но не думаю что это важно :)

andrey-vinokurov: но зато это позволяет хорошо учитывать повторяемость на этапе предрасчета

Uljahn: типа матрицы 1001 х 115 с фильтрацией невалидный стейтов?

Uljahn: *невалидных

andrey-vinokurov: а 115 это что?

Uljahn: все возможные спеллы

Uljahn: с учётом повторяемых

Uljahn: так-то да, можно подсократить

andrey-vinokurov: ну по факту там же сильно меньше когда отфильтруешь невалидные

Uljahn: 20к у меня получается

Uljahn: и считает 20 мс

andrey-vinokurov: плюс я еще заранее расчитываю терминальные состояния для всех зелей

Uljahn: ?

andrey-vinokurov: ну я же с конца иду :)

Uljahn: а какая разница?

andrey-vinokurov: не знаю зачем :)

Uljahn: у меня просто спеллы с минусом

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

Uljahn: как порядок применения спеллов засимулировать? генерить все перестановки?

andrey-vinokurov: ну я иду от всех состояний где могу сварить зелье к текущему, для каждого зелья отдельно

gybson_samara: как в cpp в вектор добавлять? =)

Uljahn: лучше не использовать вектор вообще

andrey-vinokurov: у всех свои проблемы :)

gybson_samara: как список то?

gybson_samara: Uljahn как лучше список сделать, нефиксированный массив?

Uljahn: сделать большой фиксированный, с запасом

gybson_samara: ну это несерьезно =)

wlesavo: да, потому что иначе ты не в стеке а в куче выделишь память

gybson_samara: мне просто список входящих параметров сохранить

RiSuS: Если нет цели в топ топа попасть, то бери вектор и не парься

RiSuS: у меня все на векторах) Пробовал массивы делать. Кода много, толку мало)

gybson_samara: я думаю моя борьба будет точно не за оптимизацию чтения параметров

Uljahn: а чё, в инете нет инфы, как в вектор добавить? pushback какой-нить?

RiSuS: push_back если с++

wlesavo: да пушбак

gybson_samara: я написал пушбэк

gybson_samara: оно тут в иде заругалось

gybson_samara: а, ну я вектор типов создал, а сунул указатель\

gybson_samara: ох и я наем я памяти по первости

gybson_samara: я если вектор почищу он объекты удалит же?

ilgiocatore: да

ilgiocatore: если это вектор объектов, а не указателей

gybson_samara: а то отвык я за памятью следить

gybson_samara: так что пока не буду наверное явно создавать =)

ilgiocatore: еще лучше использовать emplace_back вместо push_back, чтобы объект создавался "на месте" внутри вектора

ilgiocatore: push_back копирует объект

gybson_samara: спс

gybson_samara: но он void, все в конструктор не очень удобно

gybson_samara: а, c 17 ссылку дает

gybson_samara: а тут какая версия?

ilgiocatore: 17

gybson_samara: работает, огонь вообще

gybson_samara: int к bool все еще автоматически кастится?

ilgiocatore: вроде да

ilgiocatore: я недавно упустил баг с опечаткой "&" вместо "&&" ) но потом предупреждение от vs увидел к счастью)

gybson_samara: такой баг и в питоне можно словить

amurushkin: я несколкьо раз ловил баг что в условии писал a=b

gybson_samara: ну это вот да, это совсем подлый баг

gybson_samara: получил ссылку на структуру, хочу копию, memcpy?

ilgiocatore: можно просто присваивание использовать

ilgiocatore: в плюсах присваивание по умолчанию копирует объект

ilgiocatore: либо передать в конструкторе

ilgiocatore: memcpy обычно используется, чтобы в одну строчку массив скопировать

Egrace: А если я выжру всю память, что мне отведена, я получу какую-нибудь особую ошибку или такую же как по таймауту?

wlesavo: удачными сабмитами закатываюсь в топ 40, похоже не понюхаю легенду в этот раз(

ilgiocatore: Egrace на плюсах пишет просто таймаут

gybson_samara: ilgiocatore t_brew brew = brewin, brewin это t_brew* brewin

gybson_samara: нирботаит

Egrace: вот жеж

ilgiocatore: gybson_samara надо дереференсить

ilgiocatore: t_brew brew = *brewin

gybson_samara: спс

gybson_samara: можно перегрузить [] чтобы как inline? пишешь a[0], а оно сразу a.val подставляет?

Xanrum: а как оно будет работать если написать a[i] ?

NightLuna: почему сколько бы я ни улучшала становится только хуже

wlesavo: жиза

Xanrum: именно так, попал в золото, и все попытки улучшить - приводили к последнему месту золота

Xanrum: что тут за звери обитают

Xanrum: ощущение что они все просчитали еще на первом ходу

wlesavo: я с глубиной 5-7 дохожу до топ 40

RiSuS: А какие ощущения когда в последние дни в легу проходишь) В золоте всех рвешь. Выходишь на первое место. А в леге отгребаешь ото всех и случайная победа за радость) Местная лега будет очень крутая, да

wlesavo: на первом ходу ток хеши считаю немного

NightLuna: а дальше курят бамбук XD

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

Xanrum: видимо я чтото со своей глубиной 9 - не учитываю

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

NightLuna: wlesavo, а ты только в начале учишь?

wlesavo: NightLuna не у меня в симе обучение прикручено\

NightLuna: вот это я понимаю

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

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

NightLuna: у меня глубина где-то 7-8 сейчас

NightLuna: мне кажется, что мало

wlesavo: у меня парадоксально чем меньше глубина тем лучше играет, было 15, уменьшил до 10 заиграло лучше, уменьшил до 7 заиграло еще лучше, теперь вообще 5

Zhmyh: вершин скоко

wlesavo: у меня мс

Zhmyh: а

wlesavo: 15к роллаутов гдето

wlesavo: ну с глубиной 5 правда там под 30к бывает

NightLuna: у меня было 15 глубина, но я переписала поиск и стало хуже

Hoggins: хм, что то в моем МС сделано по совету не так. С глубиной в 30 играет заметно лучше чем 15...

wlesavo: попробуй 6-7 для теста

Hoggins: хотя тут предсказуемость игры далеко не 30 ходов

Hoggins: Угу, пошел бэнчмаркать

NightLuna: а что у тебя функция оценки оценивает?

Hoggins: по сути собраные пошены

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

RiSuS: У меня МС не взлетело. DFS рвет в клочья

wlesavo: а, ты от бимсерча ушел?

wlesavo: хм, мож тоже на дфс перепишу если не пролезу на этой сломаной телеге в легенду

NightLuna: а как тут дфс писать? нужно как-то приоретизировать вершины в которые идти чтоли?

RiSuS: не ушел. Просто до сравнения с beam search дело даже не дошло)

RiSuS: места с 40 по 30 жуть какая-то. 50% винрейт. Если через них везет пробиться то дальше мест 5-8 легче идет. А потом затык =(

Hoggins: с глубиной в 6 получается 6к ролаутов для врага и 25к для себя. Всё как в той шутке: я печатаю 500 знаков в минуту, но такая белиберда получается :)

Hoggins: против себя бэнчмарк из 100 боев говорит 45 побед

wlesavo: у меня против 10-20 мест ненулевой винрейт, это конечно небольшую надежду дает, но такое себе

Xyze: RiSuS а дфс на какую глубину?

RiSuS: Xyze: пили beam search лучше

RiSuS: #2 судя по сообщениям со старта игру до конца просчитывает...

Xyze: жоска

RiSuS: О. Сабмит зашел. Буду ждать легенду)

MadKnight: до какого конца?)

RiSuS: до победного обычно

MadKnight: так рецептов нету

MadKnight: и книга рандомит

wlesavo: RiSuS найс

MadKnight: надо рандом игры брать за 3го игрока

MadKnight: который играет против тебя и за противника

MadKnight: RiSuS го запили это

MadKnight: и потом смитси

RiSuS: А че я? Пусть лучше Xyze пилит =)

Xyze: =)

Xyze: я просто не успеваю делать всё что хочу

Xyze: до сих пор в жопе золота

MadKnight: RiSuS так ты быстрее пилишь

MadKnight: ты и в гоночках быстрее чем Xyze

NightLuna: MadKnight а почему сам не запилишь?

Xyze: он постарел

Xyze: уже не может

MadKnight: я стал слишком перфекционистом

MadKnight: ни один язык меня больше не радует

MadKnight: не хватает фич чтобы писать красиво

MadKnight: а кашу не хочется

dbf: MadKnight напиши свой и транслируй его в C++

MadKnight: слишком просто

dbf: тогда в питон

NightLuna: ну транслируй в раст

MadKnight: го придумай мне синтаксис

MadKnight: а я запилю

MadKnight: мне крч надо разделить логику и оптимизации

MadKnight: знаешь хаскель?

dbf: https://code.kx.com/q/learn/q-by-examples/

dbf: вот у этого синтаксис неплохой

MadKnight: да это expressions

MadKnight: как на нём какой-нить filter() запилить?

Xanrum: https://www.codingame.com/replay/506307185 некоторые издеваются, не варят 6 зелье, а ждут

MadKnight: он же застрял

MadKnight: а, ты типа про 2го?

MadKnight: точно ведь

C2H5OH: Game Summary: Bossdorf has not provided 1 lines in time. Bossdorf was disqualified.

C2H5OH: жесть

MadKnight: во всех контестах такое бывает

Xanrum: второй это я - там все варианты зелий что можно было сварить - давали меньше очков чем у противника плюс его не т0 ингридиенты

MadKnight: Xanrum так ты мог наварить на 11+12 и ещё +10 с твоих камней

Xanrum: невозможно сварить и иметь 10 камней, какие то уйдут на варку ведь

MadKnight: ну значит rip

MadKnight: а го реально сделайте кто-нить как я предложил

Uljahn: я так понял, что из новых зелий не могло что-то посолиднее прийти? всё самое жирное сварили))

MadKnight: рандом игры возьмите за 3го игрока

MadKnight: как рецепты новые генерятся вообще?

Uljahn: из заданного списка выбираются

Uljahn: в рефери он есть

Uljahn: Xanrum: вы же по 4 сварили, ещё по два зелья можно было, не?

MadKnight: так я так и сказал

MadKnight: но отрыв слишком большой был

Uljahn: можно было ещё 22 наварить на зельях и 6 в инвентаре...

Uljahn: а, там 89

Uljahn: Automaton2000: finita la comedia

Automaton2000: я и говорю, что ГА меньше думать заставляет

MadKnight: можно и BS сразу для 3 игроков сделать

Uljahn: хотя, мог прийти поушн на 19...

MadKnight: вот именно Xanrum пофикси свой код

Default avatar.png Zero0: я что-то не понимаю, чем я больше отлаживаю и улучшаю, тем у меня хуже играет, что надо чтоб в золото зайти?

BorisZ: после варки 5го зелья упадет еще одно - вдруг на 20, тоже не хватало?

Default avatar.png Zero0: MadKnight. покажи свой код, любой, не обязательно из местных пазлов, интересно ...

Default avatar.png Zero0: "while (true)

           System.Console.WriteLine("0 4\n0 3");"  -- это самое крутое, что я видел:stuck_out_tongue_winking_eye:

Beard: gybson_samara constexpr int & operator[](const int & index) noexcept { if(index==0) { return val; } }

Beard: C++ не для лаконичных

Default avatar.png Zero0: это из пазла?

Beard: это у меня чат застыл и я увидел вопрос

Beard: про перегрузку []

Default avatar.png Zero0: я выше в одну строчку MadKnight пазл про marslander решил, меня впечатлило.

Default avatar.png Zero0: в смысле решение, пазла, как MadKnight решил

Default avatar.png Zero0: что-то такое увидеть бы ещё

Uljahn: реши то же самое на php)

Uljahn: там ещё круче решение

Uljahn: от мэда

Beard: Uljahn ахаха я вспомнил

Default avatar.png Zero0: "реши то же самое на php)", - нда, увидел, круть, а так можно было? )

Hoggins: а что решать? мне теперь срочно нужно посмотреть

Default avatar.png Zero0: marslander easy level на php

Hoggins: почему то я так и подумал увидев заспойленый цикл :troll:

Zhmyh: Ахахах. Залетел с какой-то парашей в топ 100.

Zhmyh: Я не понимаю

Zhmyh: Сидел в конце голды

Zhmyh: Потыкал веса

Zhmyh: И шо-то подскочил неплохо

Zhmyh: Кто-нибудь знает, как их нормально подбирать?

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

Zhmyh: А флудить рандомными сабмитами - не очень идея