Chat:Ru/2020-11-06
 wlesavo: ееее, полностью восстановил поведение приведений, 100% точность предсказаний на всех тестах
 Uljahn: :scream_cat:
 YurkovAS: :yes:в нее не просто начать. думал ABCDE для движения UDLR(W), но не похоже. надо еще раз попытаться, на листочке карту порисовать...
 Uljahn: да вроде для движения, просто порядок немного другой
 Uljahn: насколько помню
 YurkovAS: Uljahn <https://www.codingame.com/profile/2e4448c30d32bb44ca3ba3fa28756763885094> как твой 2048, больше не улучшается? до топ1 питона всего 1млн
 Uljahn: пилю ещё
 Uljahn: решил пойти по пути оффлайна
 Uljahn: щас LUT профилирую, 65к комбинаций за полсекунды генерится
 wlesavo:  YurkovAS да там нюансов очень много 
 YurkovAS: могу подсказать хорошую фичу, возможно у тебя ее нет
 Uljahn: у меня только антифичи и антипаттерны)
 YurkovAS: глянул, нет LUT-ов, просто бим серч стандартный над двумя массивами
 YurkovAS: в ней 2 фичи: одна оценка змейкой и есть еще одна нестандартная, которую хотел сообщить (ну для меня уж точно), которые заметно улучшают скор
 Uljahn: а что за два массива?
 YurkovAS: 2 массива для хранения состояний: текущие и новые. 2шт массивов достаточно, меняешь их местами, чтобы память лишняя не выделялась.
ну у меня так. через хип и аналогичные деревья не делал еще, а с массивами просто
 Uljahn: ясно
 Uljahn: а какой порядок размера массивов, чтобы выделение памяти играло роль?
 YurkovAS: ну если каждые состояния хранить в новом массиве, то будет точно заметна просадна на выделение памяти.
а если переиспользуешь 2шт, то предвыделяешь заранее и лишних аллокаций не будет.
тут еще смотря как делать: некоторые в массив все новые состояния добавляют, потом сортируют и оставляют топ-N
 Uljahn: в массиве состояния в страктах хранятся?
 wlesavo: блин YurkovAS заинтриговал
 YurkovAS: тоже смотря как делать, большой стракт будет долго сортироваться
 Uljahn: wlesavo предлагал хэшировать скором
 Uljahn: я запилил себе такое, сортирует быстро
 YurkovAS: у меня в массиве хранится только topN и указатели - для быстрой пересортировки
 wlesavo: не, это не моя идея была а магити вроде, но у меня тоже так, нейман и амуршкин сказали у них такой хеш плохо работает и много коллизий
 Uljahn: в плюсах есть std::nth_element, можно без полной сортировки голову отбирать
 YurkovAS: у меня сейчас тоже хеш только от скора double
 wlesavo: блин теперь придется наверное нормальный поиск прикручивать какой-то к пакману, а то че зря чтоли делал идеальный предсказатель
 Uljahn: а скор научился предсказывать?
 MaksymSkorchenko: ууууу, перешел в пакмане в серебро.... а тут жопа, в хвосте )))
 Uljahn: и ещё вопрос по 2048 - как хранить хистори)
 wlesavo: Uljahn цель не ставил, но подозреваю что могу предсказать, там просто надо так и так зачищать уровень
 Uljahn: в стейтах хранить жирно, надо как-то отдельно в дереве что ли
 YurkovAS: Uljahn хистори - это же ходы? прямо в стейтах храню в видет массива байтов.
изначально всю память предвыделяю и потом больше нет новых аллокаций.
новый стейт делается во временной переменной, оценивается и если он лучший, тогда копируем из него в массив лучших
 YurkovAS: навелосипедил как всегда
 Uljahn: а, сразу навыделять памяти под максимальное число ходов?
 Uljahn: но копировать же много придётся ближе к концу
 YurkovAS: да, сразу под все выделяем: стейты, история ходов, временный стейт
 Uljahn: фронт работ понятен, через пару месяцев отпишусь ))
 YurkovAS: да там наверное и без этих велосипедов будет норм, просто так интереснее
 Uljahn: угу, я пишу по 4 варианта каждой фичи и профилирую, мне так интереснее
 YurkovAS: Uljahn после бимпоиска у тебя еще что-то есть?
 Uljahn: нет
 YurkovAS: понял, значит нет этой фичи
 Uljahn: бимпоиск-то две строчки у меня
 Uljahn: код-франкенштейн - ООП+ФП+numpy
 Uljahn: даже в офлайне тормозит)
 YurkovAS: давай добавим фичу одну?
 Uljahn: я думал на глубину 1 потомков анализировать
 Uljahn: и ещё графы прикрутить как в статье на хабре
 Uljahn: но это в следующей жизни
 Uljahn: YurkovAS: рассказывай, что за фича, wlesavo вон тоже вроде заинтриговался
 YurkovAS: после бим поиска возвращать на 5-10 ходов меньше, всегда
 wlesavo: а ну это понятно, у меня без этого впринципе не работало
 Uljahn: это как?
 Uljahn: чем это отличается от поиска с шириной луча - 5?
 Uljahn: или я в этапах поиска не секу
 Uljahn: ааааа
 wlesavo: имеется ввиду что не весь найденый луч используется
 Uljahn: историю возвращать меньше
 Uljahn: магаити про бэктрекинг что-то упоминал, это что0то похожее
 Uljahn: проблема в том, что в онлайне у меня питон находит 4-5 ходов ))
 YurkovAS: и это число поподбирай, даже 1 заметно прибавляет
 YurkovAS: всего 5 ходов) у меня порядка 100, на первом 1к+
 Uljahn: вот я и думаю LUT впилить, должно стать пошустрее
 Uljahn: ещё в офлайне с numba хочу попробовать профильнуть, да статью на форум накатать
 YurkovAS: от ширины луча еще зависит, не думаю что у тебя там 500+
 Uljahn: 50-
 YurkovAS: да, заметная разница в скорости.
 Uljahn: ну, код у меня сыроват, скорее пруф ов концепт, слепленный на коленке за выходные, зато ускорять интересно, мотивирует
 Uljahn: ого, реально стало лучше с укороченной историей
 YurkovAS: :yes:
 wlesavo: top4 :scream:
 Uljahn: поиск прикрутил?
 wlesavo: не, костыль просто
 YurkovAS: из пиджина смайлик не сработал, тут не показывается картинка
 YurkovAS: так у него же был поиск МС, на бимсерч если только его поменять. по ПМ-ам к пакману он лучше
 Uljahn: в 2048 постоянно таймят 1-2 валидатора, пока лимиты не зарежешь почти в нулину :(
 735487: это у всех так. надо сабмитить до тех пор пока не повезет
 Uljahn: хм, надо попробовать лимиты привязать к модели процессора, есть подозрение, что подсовывают глючные инстансы на 3ГГц с 16Мб кэша
 YurkovAS: юзаю тайминги 750мс (1-ый ход) и 35мс (2+ ход)
 YurkovAS: первый можно увеличить, а вот 2-ой тайминг уже редко с 40мс срабатывает
 735487: и это не есть хорошо. я думаю что виноват сборщик мусора в рефери
 YurkovAS: и в search race похожие тайминги
 YurkovAS: и ксб часто таймит
 735487: вот если в контесте будет тоже самое будет попадос
 wlesavo: ого, у меня с 99мс работает
 wlesavo: правда у меня и скор сильно ниже
 735487: это в какой игре?
 735487: время точно правильно замеряешь?
 wlesavo: в 2048, да правильно, но у меня маленькая ширина и глубина достатончно
 wlesavo: и в последнюю милисекунду я исключительно печатаю
 wlesavo: ой, 99 я перепутал наверно, там же 49
 wlesavo: в смысле одна милисекунда остается, чет с пакманом перепутал
 735487: а ну тогда реально