Chat:Ru/2020-05-17
dbf: лечь спать было правильным решением - за ночь в легу запихнули :grinning:
Hamibar: теперь осталось 24 часа, чтобы попытаться выбраться со дна легенды)
mykeich: крут
mykeich: мне не хватит усердия в легу попасть
gybson_samara: а мне надеюсь хватит в голду для начала
ashelkov: щас лега уплотняется все крутых ботов понаписывали/ непросто тут бодаться )
vrabosh: те кто берут легенду, пишите плз статьи на русском. давайте продвигаться вместе в рейтинге:)
zuko3d: лучше учись читать английские статьи - на русском мало годного материала
vrabosh: прочесть на англ можно с переводчиком
vrabosh: а тут суть пообсуждать вместе..
zuko3d: мм... я не очень понимаю, как это сделать тут. Не будешь же на форуме тут на русском писать =)
vrabosh: где нить, типа на хабре..
MadKnight: vrabosh просто пили симу
vrabosh: да толку мне от этой симуляции
vrabosh: я то часть алгоритмов на компе решал..
vrabosh: карту загрузил.. и тестировал.. мне разницы нет где масив перебирать
MadKnight: непонел
MadKnight: переобъясни
vrabosh: если будем делиться друг с другом знаниями, это только вплюс будет..
MadKnight: рекурс тоже так думал
zuko3d: тут спору нет =) но делиться на английском - удобнее, т.к. больше аудитория
zuko3d: а что с рекурсом? :)
MadKnight: подкинул алгоритм в чат, а потом народ стал применять этот алгоритм вообще везде, даже там где он не подходит
NightLuna: что за алгоритм такой?
zuko3d: я такую история про смистимакс помню. а что за алгоритм рекурс подкинул?
vrabosh: я вот допустим ранье только рекурсиями все делал перебором..
MadKnight: минимакс
vrabosh: сейчас узнал про графы, но освоил только волновой..
zuko3d: не, ну минимакс и до рекурса был известен же...
vrabosh: если ктото расскажет, про чтото еще.. попрактикую еще будет инструмент у меня.
MadKnight: в итоге народ начал применять миник во всех играх
MadKnight: до него миник был мало кому известен
NightLuna: о, помню был контест с минимаксом
vrabosh: что за миник?
vrabosh: что за алгоримт?
vrabosh: я сейчас думаю.. знания какие сейчас получил, на троне баттл потренероваться
zuko3d: https://en.wikipedia.org/wiki/Minimax
dbf: проходил его в институте, наконец-то высшее образование пригодилось
Hamibar: для того чтобы писать нужно сначала выйти на какой-то результат. Хотя бы где-то близко к топам
dbf: на самом деле, статьи топов иногда, наоборот, демотивируют, потому что огромный разрыв между тобой и их уровнем. у меня так было со статьями про раик :)
dbf: а вот если просто написано про, например, топ-10%, то может быть польза для многих
Khao: только демотивируют? и ты ничего нового из их статей не узнаешь?
vrabosh: dbf прав, когда в статье там такие знания которые сам сразу не применишь, сразу интерес пропадает туда копать
vrabosh: а вот если знания простые, но рабочии хотябы на легенду в хвосте. то это супер.
vrabosh: я как понял минимакс - это и есть перебор.. этож банально.
vrabosh: и слишком нагружаемо.
Hamibar: Ну мб вы и правы. Но обычно это просто удачаная комбинация костылей, алгоритмов которые и так все знают.
S0L0: думаешь тут топы задачу китайского почтальона решают за 50 мс ? вряд ли , там тоже что нидь попроще типа симуляций с отсечением
dbf: Khao, узнаешь, конечно, какие-то подходы хотя бы, но часто слишком большой разрыв. Т.е. я написал раик на ифах, а потом на хабре статья от топ-1, где он сделал симу с оптимизациями и mсts. А я и когд-то его понять не могу :)
Khao: Но ведь ты что-то новое вынес из этого?
vrabosh: слушаю вас столько новых терминов)
vrabosh: и я не понимаю зачем симуляцию писать?
Khao: Т.е. отойдём от самоцели "занять место повыше", и перейдём к цели "накопление опыта". В таком случае же, чемп только в плюс для тебя проходит?
vrabosh: хочется не просто узнать, но и сразу попробовать..
Khao: Ну отлично. Находишь первое незнакомое слово, допустим минимакс. Идешь смотреть, что это. Идёшь пилить, смотришь, что из этого получилось
vrabosh: а если это какой нить ИИ или еще чтото замудренное, где нужна подготовка предварительная или без опыта даже не войдешь.. то это тяжко.
dbf: Khao, я же не говорю ,что они бесполезные. Тут просто выше была мысль, что для статей надо быть на топ-уровне, вот я и отметил ,что статьи не про самые высокие места, но понятные для многих тоже хороши.
Hamibar: vrabosh что бы симулировать) грубо говоря сделал несколько ходов, посмотрел как изменится(просимулировал) мир, сделал выводы.
Khao: Статьи же разные люди пишут. Для Раика люди и просто из финала пишут (т.е. топ 50), там вполне понятные идеи часто.
vrabosh: Khao, тут фишка в том, что когда просто читаешь, чтото по одному инфа устваивается...
vrabosh: а когда поучаствовал в контесте, а потмо читаешь как другие реализовывали, совершенно подругому инфу воспринимаешь..
tomatoes: CSB попробуй. там и симуляция, и нейронки, и куча статей/описания стратегий
vrabosh: и сразу понимаешь как это попробовать..
tomatoes: и физика еше :smirk:
Khao: По физике, кстати, давно ничего не было
Khao: Я хоть и ненавижу её, но уже соскучился )
Uljahn: +
vrabosh: короче надо просто тупо опыт набивать.. брать постую игру относительно и на ней пробовать легенду брать.
Uljahn: кстати, в статьях топов какие-то уникальные алгоритмы каждый раз описываются? их не так уж и много на самом деле
vrabosh: а перед след контестом, примерно понимать о чем будет задача и практиковаться в этом направлении
Uljahn: попробуй Game of Drones - самая простая симуляция на CG
dbf: Самая простая в UTTT
dbf: :)
dbf: но там жесткая легенда, особенно если не на c++
Khao: UTTT - это что?
tomatoes: крестики
Khao: Ага
gybson_samara: в csb симуляция простая довольно
gybson_samara: но там мэджик намбер до голды сразу тащит =))))
vrabosh: что за csb непонятно
gybson_samara: coders strike back
Xanrum: иногда лучше ходить, чем жевать https://www.codingame.com/share-replay/466187018
MadKnight: vrabosh https://www.codingame.com/ide/puzzle/coders-strike-back
MadKnight: там даже нейронки есть
MadKnight: и генетические алгоритмы
MadKnight: и миники
MadKnight: и смитсики
MadKnight: и -3vel
MadKnight: и даже Automaton2000
Automaton2000: а у меня с самого начала
NightLuna: и даже физика
vrabosh: круто. надо читать и практиковать
MadKnight: NightLuna а ты там есть?)
MadKnight: vrabosh го в голду сначала пройди
Uljahn: ну да, из гридов крестики самые простые, из непрерывных - GoD всё же проще гоночек, без коллизий, углов и скоростей
vrabosh: я прошел в голд
MadKnight: то
MadKnight: топ
MadKnight: теперь го в #1 legend
vrabosh: пойду для легенды изучать и практиковать разные алгоритмы..
MadKnight: для начала симу запили
vrabosh: начну с трона. там попроще думаю будет изучать
MadKnight: будешь во время контеста играть в гоночки?)
MadKnight: го в легу в троне
vrabosh: вот на это и нацеливаюсь
NightLuna: MadKnight в csb? нет, но я знаю, что там можно на паре строчек в голд зайти
MadKnight: можешь взять мой стартер для гоночек
NightLuna: я не люблю физику, мне больше крестики нолики нравятся, надо их добить до легенды
NightLuna: Этот контест какой-то странный, я не понимаю какие улучшения дают реальный прирост, а какие все ухудшают. Сильно зависит от удачности сабмита.
NightLuna: либо у меня какой-то фатальный баг, который дает рандомный результат. я уже не знаю
dbf: да, отправка в золоте очень сильно влияет
dbf: можно в топ-20 закинуть, а потом тем же кодом не войти в 150-200
dbf: кажется, что у многих походие реализации и поедание из-за угла добавлет нестбильности
NightLuna: я меняю 2 строчки и не могу даже в топ 200 зайти, хотя вроде хорошие строчки
ashelkov: тут только на дистанции смотреть какие улучшения дают результат
dbf: я пересылал, пока не будет 7-8 побед в первых 10, а то не подняться :)
NightLuna: да, бывает из первых 10 у меня 2 победы, пересабмичиваю и 8 побед
NightLuna: ну с 8 победами конечно проще подниматься
Telpenair: А что за СКБ Контур такой что столько участников от него в алгоритмическом соревновании? Я не думал что у нас кроме Яндекса есть такие задаче-ориентированные компании.
gybson_samara: электронный документооборот, криптография
Telpenair: Т.е. криптография предполагает постоянное изобретение или допиливание существующих алгоритмов? Ну я про современное, есть ведь уже куча готовых решений и библиотек, неужели не всё придумано еще?
Akarachudra: Мы не пишем криптографию. У нас большие масштабы и высокие нагрузки.
gybson_samara: вы вроде выдаете сертификаты?
Xanrum: а я думал что контур это лишь пилильщики гос денег на криптографии
Akarachudra: Ну выдавать серты - это же не код писать)
Akarachudra: Активно использовать криптографию != разрабатывать её
gybson_samara: так вы же ими и подписывате потом и все такое
gybson_samara: я и не говорю, что разрабатываете
gybson_samara: вы с ней плотно работает в любом случае
Akarachudra: Хз, вопрос был о том, зачем алгоритмические знания. Я ответил - решать задачи, когда простые способы решения уже закончены.
ashelkov: залез в топ 20
ashelkov: шафлы страшные конечно/ кто был вчера в топах сегодня на 30-х местах
ashelkov: ну и наоборот
Akarachudra: Да, тестирование показывает, что дисперсия выравнивается только где-то к 400 играм двух ботов.
Akarachudra: Поэтому любой бот с WR 50% может быть топ1 при удачном сабмите.
Xanrum: Telpenair почему до сих пор не в голде?
ashelkov: интересно конечно/ все уже написали гигиеническую механику/ теперь круче тот кто больше ситуаций хендлит и как то на них реагирует
Hamibar: хм. Я думал хоть в легенде будет достаточно игр, чтобы понять хорошее ты сделал улучшение или нет
Akarachudra: есть вероятность, что и завтра не будет столько игр чтобы однозначно определить места. разброс в +/- 2 места останется, имхо.
Hamibar: да точно не будет. Сколько там игр проходит, когда закрываются сабмиты 1000 или что-то типа того?
Akarachudra: в общем, нужно минимум 200 каждый с каждым, чтобы было точное определение.
Telpenair: А кто-нибудь пробовал генетический алгоритм, я видел тут обсуждали. Почитал недавнюю статью что можно даже как-то ГА оптимизировать чтобы в таймаут не упасть.
Akarachudra: оптимизировать ты можешь до усрачки, но чтобы не упасть по таймауту ставишь ифчик if (elapsedTime > 45ms) break;
gybson_samara: :)
Hamibar: еще неделю будут результаты обсчитывать :grinning:
gybson_samara: кто придумал чего тут скрещивать-мутировать, наверное сделали ГА
gybson_samara: не ходы же от одного бота другому переставлять
Uljahn: тогда это не ГА)
Uljahn: пересаживать можно цели
vrabosh: я вот размышлял над этим.. типа 4 матрицы w*h максимум, - это ходы.. и потом в них коэфициэнты крутить..
vrabosh: и каждая матрица смотрит все поле.. и по своим коэфициентам перемножает поинты, стенки, игркоов итд..
vrabosh: и потом у кого сумма больше, туда и ход
vrabosh: больше идей нет)
Xanrum: и это все за 50мс?
wlesavo: psyh o и magu s даже в легенду подтянулись
Uljahn: линейное программирование, задача о назначениях?
gybson_samara: у меня просто считаются все пути на глубину 14
vrabosh: у себя на симуляции играешь.., выигрышных ботов выставляешь
vrabosh: это в 2мс влезет
gybson_samara: палетка +35, враг -300, свой - 500
ashelkov: интересные коефы
gybson_samara: неизвестный перекресток +60 за направление
gybson_samara: http://chat.codingame.com/pastebin/3f040298-c75a-473d-a2b7-4fba2e404db7
gybson_samara: у меня уже глаз дергается
gybson_samara: это все надо загонять в программу, чтобы перебирала
gybson_samara: но в этот раз нет времени на такое
gybson_samara: и тонны вот такого в дебаге
gybson_samara: http://chat.codingame.com/pastebin/2bae2047-030a-44b2-adad-36ab07d6d5d1
Uljahn: в начале тупикам понижаешь стоимость?
gybson_samara: нет, но у меня штраф за возвраты
Uljahn: http://chat.codingame.com/pastebin/0385cf0a-e50a-40d3-bf1e-6ea5f8b1254e
gybson_samara: про угловые это отличная мысль и делается быстро
ashelkov: мне кажется надо не на констах а на коефициентах делать
ashelkov: очень важный unseen coef - говорит о том чтоит ли открывать невидимые клетки или пособирать видимые и он всю игру меняется от количества оставшихся пеллеток и неизведданых клеток
gybson_samara: так поменяем потом, начать бы с чего было
dbf: ого, интересно про unseen, у меня константа он сейчас
gybson_samara: у меня приоритет на перекрестки, чтобы все посмотреть
S0L0: на скорости пак вбок не видит , или у меня баг ?
S0L0: пролетает перекресток - видимые только впереди- сзади
Hamibar: да, если пролетает, то не видит
ashelkov: не видит
andrey-vinokurov: А подскажите тому кто только начал можно в один ход активировать скорость и делать MOVE?
TheCrucial: нельзя
TheCrucial: 1 команда для 1 пака
andrey-vinokurov: Спасибо!
Hamibar: ооо, стандартный фикс багов)
Hamibar: 7/30 сабмит)
ashelkov: да в леге страшно сабмититься вообще можно внизу остаться)
Hamibar: я просто создал новый баг, когда исправил старый)
ashelkov: то же самое
ashelkov: бывает сабмитишся и не поймешь в чем дело - ведь ты поправил все а оно только хуже
ashelkov: уже код не как не стартап а кровавый ентерпрйз - нужны тесты и акцеп новых фич)
Hamibar: принцип работает не трогай во всей красе)
ashelkov: не потрогаешь - не поднимешь
ashelkov: это про код и рейтинг)
Hamibar: ахах, а как звучит то :grinning:
ashelkov: ох т плотненькие победы/поражения/ 144-146 https://www.codingame.com/replay/466279518
ashelkov: стршано сабмитить правки с топ12 )) но придеться
Hamibar: в легенде как раз не страшно. Все равно пересчитывать будут
ashelkov: это как? я не в курсе
wlesavo: в конце играется по 1000 игр где-то, но текущий рейтинг все равно важен
wlesavo: ты начинаешь играть с текущего места с людьми вокруг
wlesavo: а не со дна таблицы как в сабмите
ashelkov: типа блочаться сабмиты и вперед смотреть?
wlesavo: да, блочится ide вообще, можно только в общей таблице нажать ласт батлс
Hamibar: ааа, мне почему то казалось, что должны сбрасывать перед финаьными играми.
ashelkov: попкорном запасаться? )
wlesavo: ага запасаться и писать пм заодно)
wlesavo: Hamibar последний раз так было, не думаю что поменяют сейчас
Hamibar: да я уже забыл просто
Uljahn: да, сначала досчитывают все предфинальные сабмиты и просто накидывают игр к текущему рейтингу
Uljahn: причём игры против +-5 мест как в дискорде говорят
Uljahn: т.е. начальное положение очень сильно влияет
Akarachudra: пульнул бота с минимумом изменений и взлетел в топ. этот же бот упал до топ 20.
ashelkov: ну я с 15 того пересабмитил на 73 ))
ashelkov: прекрасто просто
ashelkov: *ой 37
ashelkov: Akarachudra - поздравляю! топ 2
Akarachudra: Спасибо, но замечу, это практически один-в-один тот же бот, что и был. И у него гарантированно винрейт не выше (или чуть выше).
Akarachudra: Который был скатился до топ-22 - больше похоже на правду.
ashelkov: решил подождать/ вроде как бот вверх ползет
ashelkov: уже 28 а не 37/ посмотрим через полчасика
zuko3d: уф... стал считать все ходы перебором, с AB-pruning дабы отсекать совсем плохие. И скатился на дно золота. Какие вы используете эвристики для оценки пути?
ashelkov: 1 вопрос - как запустить сохраненый сид
Hamibar: ставишь слева в настройках эксперт мод.
Hamibar: заходишь в options в окошке где игроки
Hamibar: ставишь manual и копируешбь сид туда
Akarachudra: прикольно. не знал. а agentId подменить? просто реплей куда-нибудь воткнуть (у меня есть JSON сохранённый), можно?
Hamibar: этого я не знаю)
Hamibar: что такое agentId?
Hamibar: https://www.codingame.com/replay/466352084 на скорости 2 раза бьется в одну и туже клетку. Не замечал этого раньше
ashelkov: оо спасибо
ashelkov: а то терял важные кейсы которые хотлеось разобрать
Akarachudra: Hamibar это id бота
Hamibar: я сам 2 контеста отыграл и не знал об этой штуке
Hamibar: а зачем его менять? чтобы со своими старыми сабмитами сравнить? которых нет на арене?
wlesavo: Akarachudra есть реплай репродьюсер
Akarachudra: ну противники подменяют ботов свои.
Akarachudra: wlesavo а где взять можно?
wlesavo: ща найду
ashelkov: блять такой элементарной вещи не было у меня как коефициент на перекрестки
ashelkov: аж стыдно что не додумался сразу
wlesavo: http://eulerschezahl.herokuapp.com/codingame/replays/reproduce/460472631
wlesavo: там вроде бы можно было в обратную сторону, но сейчас чето не вижу
zuko3d: что за кофэффициент? типа чаще перекрёстки посещать?
kotobotov: здаров посоны
ashelkov: ну типа велью клетки увеличивать на количество путей из клетки
gybson_samara: ashelkov для начала можно просто считать сколько из него лучей идет, но в идеале конечно посчитаь сколько с него клеток видно
ashelkov: ну лучи пока и считаю - да можно улучшить до количества клеток
gybson_samara: я простобоюсь тут на ифах долго будет в питоне, а как в нампи пока не сообразил
wlesavo: Akarachudra вообще можно скачать рефери, и два файла сделать для игроков, считывать инпуты не нужно, поэтому просто принтишь и все
wlesavo: можно даже одного захардкодить и второго своего
wlesavo: ну и сид там в main фиксируется
kotobotov: оба своих, одни и теже)
kotobotov: пускай друг друга мочат
gybson_samara: ashelkov главное не борщнуть, а то мои вон иногда мимо пелет к перкресткам чешут =)
Uljahn: Akarachudra: можно глянуть, как в cg benchmark через api матчи создаются
ashelkov: закончился сабмит/ ввылез в топ 15. это уже чтото! всего то добавил велью перекрестков
ashelkov: так что рекомендую)
AntonT: а в чём вообще повышенная ценность перекрёстков? а то я тоже добавил, и стало лучше)
ashelkov: они ползут в центр карты и варинтов ходов больше потом
zuko3d: ценность ещё в том, что ты больше видишь = более актуальная информация
gybson_samara: перекресток открывает пелеты же
Uljahn: и врагов палит
ashelkov: и врагов - вижн это святое ))
gybson_samara: ну да
gybson_samara: я врагов не ищу, но если вижу, то либо убиваю, либо убегаю
gybson_samara: кажись я близок к голде
ashelkov: я просто их как блокеры в расчете пути использую
gybson_samara: можно еще в пройденные клетки -K писать
ashelkov: все убийства случайны
ashelkov: тяжело сделать хантинг чтобы не бегать по пустым клеткам за ним
gybson_samara: и я все ходы проверяю, нет ли там врага на соседних клетках
zuko3d: есть ощущение, что лучше бы не было убийств. они вонсят какой-то ненужный рандом в исход битвы
zuko3d: *вносят
Hoggins: но зато можно упороться с еще одним уровнем сложности - сделать так что бы вероятность кого то сьесть была выше чем умереть, правильно направив паков
Hoggins: но я пока просто упоролся с весами путей и топчуть на месте пол соревнования
zuko3d: сомнительно. на контест у тебя не бесконечность времени
gybson_samara: можно упороться и переключать всю команду так, чтобы минимум пострадать
gybson_samara: типа если у него все камни, то свою всю команду в бумагу свитчнуть
Hoggins: у тебя, кстати, получилось что то дельное из этой идеи?
gybson_samara: нет
gybson_samara: я пока не упоролся =)
gybson_samara: из бронзы а вылезал на AntonT
gybson_samara: надо найти на ком из серебра вылезу
gybson_samara: Anna-Kozachenko выбираю
Hamibar: ахах 0/10 сабмит) что-то пошло не так
AntonT: gybson_samara не понял про "вылезал"
gybson_samara: твоего бота победил
gybson_samara: увидел в ластбатлах, послал в ИДЕ, отладил все, победил и засабмитил
AntonT: аа, ясно)
gybson_samara: босса то я и так побеждал
vrabosh: может кто знает интересный способ как в нампе полчить данные крестиком от указаной координаты?
735487: как вы решали проблему что сьесть последнюю пелетку в углу?
vrabosh: 0 1 0 1
1
vrabosh: чтото типа так
vrabosh: еще приэтом если стоит на 0,0 координат ошибку не выдавало)
vrabosh: может есть какой нить хитрый способ
wlesavo: amurushkin я проверяю если мой путь короче скорости то иду на одну клетку только
wlesavo: ну пути у меня без возврата через голову
735487: да я вот тоже пытаюсь так сделать а он почему то упорно стоит на месте гад ))
NightLuna: а у меня бот любит туда сюда ходить, я пыталась решить эту проблему штрафами за то, что он идет в точку, в которой уже был, но вроде только хуже стало
vrabosh: я с этими туда сюда так намучался.. потом полюнул и запустил простой алгоритм.
735487: выяснил что я неправильно присваивал длину пути в поиске и он находил в этом случае длину 0 )))
Hamibar: целый день что-то менял. Откатился на старую версию - работает не хуже :grimacing:
Xanrum: вообще не понятно как отслеживать. Пробовал сабмитить одно и тоже 5 раз подряд ( в золоте) получал от 5 до 250
Xanrum: чтото делаешь, делаешь и не понятно стало ли лучше
Xanrum: ни в одном бот програминге такого не припомню
Hamibar: в легенде боев больше, а игроков меньше. Точнее результат. Примерно в одно место прихожу
Uljahn: vrabosh: как у тебя 0,0 может быть, если там всегда стена? делаешь дополнительные стобцы в массиве - слева добавляешь самый правый, справа - самый левый, потом сдвигаешь полученную карту в 4 стороны и стекаешь в один массив, потом срезом по индексу получаешь пять элементов - сам элемент и 4 его соседа
Uljahn: получается массив HxWx5
vrabosh: я щаз решил в троне поиграть)
Uljahn: ну тогда добавь границы вокруг
vrabosh: чтото не хочется лишнии столбцы делать. думал както без этого можно придумать..
vrabosh: у меня задача, найти максимальное число рядом стоящих клеток
vrabosh: и чтобы я знал их координаты
Uljahn: рядом стоящих?
vrabosh: да
vrabosh: как вывести их.. я замутил извращенным сопособом..
vrabosh: bb[[abs(y1-1),y1,height-abs(height-(y1+1)),y1],[x1,width-abs(width-(x1+1)),x1,abs(x1-1)]]
vrabosh: понятно как из этого макс получить. но как потом узнать где эти координаты на основном масиве хз
vrabosh: так не люблю это все через if делать
vrabosh: http://chat.codingame.com/pastebin/e9a5422b-be6b-4c39-9b97-67e0235349af
vrabosh: можно это както короче написать?
Uljahn: я уже выше ответил - собери матрицу из сдвинутых матриц
Uljahn: тогда одним индексом сможешь выбрать элемент и 4 его соседа
Uljahn: т.к. ты знаешь, в какую сторону сдвиги были, то и индексы соседей легко получить
gybson_samara: на порталах глючить не станет?
vrabosh: вконце впринципе можно только стенки добавить
vrabosh: (-1,-1) - как раз тоже на стенку попадет как и (max+1,max+1)
gybson_samara: потеряешь переход с одной стороны на другую
gybson_samara: а это обычно много пелеток
vrabosh: я другим занимаюсь.. уже забил на этот челенж. надо отвлечься
vrabosh: за этот челенж знания получил, которые можно в троне баттл применить, хочу как раз протестировать
wlesavo: я так после ooc пошел в троне написал 200 строчек и в легенду попал
vrabosh: трон он простенький.. в нем можно и ГА потестить
vrabosh: хорош для обучения..
vrabosh: вот старый код на переборе основан, еле себеро взял..
735487: vrabosh: задачи в которых нужно путь искать плохи для ГА как мне кажется. скрещивать тяжело
MadKnight: да и в гоночках тоже ищется путь
MadKnight: но он хоть скрещивается проще
MadKnight: vrabosh но не в троне, там не поскрещиваешь
MadKnight: да и как оценивать собираешься?
AntonT: хех, закинули меня в голду всё-таки)
gybson_samara: MadKnight ну если умудриться все это пихнуть в полярнуюю систему координат и скрещивать угол поворота
gybson_samara: я в дереве тут ходы по ГА перебирал, глубина до 30, но бестолковая =)
gybson_samara: но я для одного пака, а если для команды, то может и взлетело бы
vrabosh: MadKnight, пока хз, что скрещиват.. пока просто в планах потестить алгоритмы до легенды.. а там уже будет видно
gybson_samara: да теоретически можно с одного гена перставить поворот направо, вместо поворота налево
gybson_samara: если в стену попал, то особь померла
gybson_samara: просчитаешь на 30 ходов вперед аж
gybson_samara: толку только не будет от этой глубины =)
gybson_samara: в гоночках противника можно посчитать, а тут нет
Uljahn: так в гоночках тумана нет, хотя тут как и в оос или ww можно тоже примерно посчитать
gybson_samara: тут просто без ГА на 12-14 ходов считается
gybson_samara: ГА же просто перебор оптимизирует
gybson_samara: и это у меня еще не все на нампи переделано, а то и на 20 посчитал бы, но согласно моим наблюдениям, каждый следующий ход в 2 раза менее ценен
Uljahn: можно вместо ГА использовать Монте-Карло и SA, они проще и скрещивать не надо
S0L0: тут вариантов перебора слишком много для монте карло тем более на питоне
Uljahn: тогда только генерить по эвристикам, или на плюсы переходить
Uljahn: или глубину уменьшать
Uljahn: тебе же не надо все варианты перебирать, а только те, что имеют смысл
S0L0: тут numba сильно не хватает , было бы куда полезнее чем нампи
wlesavo: ashelkov тут интересную идею в общаке обсуждали, использовать скорость только на (odd,odd) потому что внезапно все перекрестки на нечетных координатах, тогда твой ход на скорости всегда будет заканчиваться на перекрестках
S0L0: там циклы всякие почти как в с++
wlesavo: мне вроде хуже не сделало, а может даже и лучше
wlesavo: если интересно можешь проверить
S0L0: главное многопоточность нахаляву
Uljahn: какая многопоточность? тут одно физическое ядро выделяют
AntonT: у меня монте-карло не завёлся чёт(
Uljahn: так-то да, nimba бы не помешала, или даже cython
Uljahn: *numba
Uljahn: прикольно, джява вышла в топ
Xanrum: Они количество боев после сабмита увеличили? теперь по пол часа читает - но гораздо точнее
dbf: скорее серваки тормозят от воскресного наплыва
Xanrum: 110 боев до 100%!
Uljahn: вроде от лиги зависит количество боёв, чем выше, тем больше
Hamibar: хех. Забавный баг нашел. Мои паки в разных сабмитах ходят немного по другому, хотя код поиска путей не трогал)
Hamibar: точнее думаю, что не трогал, но это похоже не так
Uljahn: где-то пути равной длины не упорядочены
Uljahn: когда соседей хранишь в множестве, порядок их обхода может меняться, например
Hamibar: порядок то всегда один и тот же.
Hamibar: я понял
Hamibar: они ходят одинаково. Просто не зеркально
Uljahn: хд
Hamibar: то есть 1 пак повернул направо. и его копия тоже
S0L0: если не сабмитить место бои не проводятся ? только вниз могут спихнуть ?
Uljahn: бои проводятся за счёт тех, кто сабмитит
Xanrum: обычно только вверх спихивают
Uljahn: если ты только один в своей лиге сабмитишь, то новых боёв не будет, когда кончится сабмит, так в мультиплеерах бывает, в которых нет активных игроков
Uljahn: в контестах такое маловероятно, конечно, в лидерборде есть сортировка по незавершённым сабмитам, можно примерно прикинуть активность
Uljahn: score -> computing
wlesavo: прикольно, в топ 40 попал со скоростями на нечетных клетках
wlesavo: +20 мест гдето
AntonT: скорости на нечётных клетках? это что такое?)
ashelkov: ух ты - пока я играл в воллейбол пак тут работал - на 14 закрепился
Uljahn: расстояния между перекрёстками кратны двум
ashelkov: wlesawo интересная мысль про скорости
Akarachudra: wlesavo это мысль с унитаза которая?
wlesavo: да
AntonT: Uljahn мм, интересное наблюдение
Akarachudra: норм, мне кажется, что статистически это неверное утверждение
Akarachudra: может повезло с сабмиттом?
wlesavo: но перекрестки реально на нечетных, особенность генератора похоже
dbf: хм, это чтобы тормозиться на перекрестках и обозревать их?
wlesavo: но и сабмитом повезло наверняка
wlesavo: но до того както хуже было заметно
wlesavo: даже в удачных сабмитах
AntonT: типа ускоряться, только если сумма x и y чётная?
wlesavo: ну +20 мест это конечно для красного словца, реально не понятно сколько
Akarachudra: я тестил такое, разницы не было. ты ведь и теряешь на этом тоже. оно +/- нивелируется
wlesavo: хм
wlesavo: euler тоже сказал что +- тоже самое
ashelkov: бывает 1 ход решает чтобы не пустить соперика в важный проход))
AntonT: мне вот понижение приоритета пеллетов на кратчайшем пути между текущим и последним наблюдением противника помогает
wlesavo: ну так то да
S0L0: разница в видимости не в скорости
S0L0: наконец то в золото переполз , сколько дней вверху серебра болтался
Hamibar: тоже попробовал так скорость прикрутить) щас посмотрим
Hamibar: как-то очень медленно стал сабмит идти
Hiker: а сабмитить до конца можно? или типо за какое-то вре5мя до консца контеста закрывается возможность?
wlesavo: пока кнопка активна можно
Hiker: а по опыту сколько она активна??
Hiker: еще 13 часов7
wlesavo: потом подождут пока досчитается и начнут реран
Hiker: или ее прикрывают за 12 часов до конца?
wlesavo: ну сколько написано сверху +-
Hiker: понятно спасибо
Uljahn: ничего не прерывают, тут вам не раик)
Uljahn: теоретически можно на последней секунде засабмитить бота в вуд2 и пройти в легенду
Uljahn: *не прикрывают
gybson_samara: пробую включать скорость только на перекрестках, но пока сути в этом не вижу =)
Uljahn: суть не бежать на скорости за угол
Hamibar: и не пролетать коридоры
Uljahn: угу, это может даже важнее
gybson_samara: чтобы не пролететь надо в них сходить
MadKnight: https://www.codingame.com/share-replay/466631164
MadKnight: изи
ashelkov: сабмит пошел) подождем
AntonT: gybson_samara не на перекрёстках, а если сумма координат чётная. Мне реально помогло
gybson_samara: AntonT спс
ashelkov: проверю в следующем сабмите про скорость
dbf: там уже Hamibar проверяет :)
dbf: надо не допустить перегруза серверов, а он с нами поделится результатами :)
wlesavo: ну от тактики еще может зависеть конечно со скоростью
gybson_samara: чет нет, выигрышную катку такой трюк со скоростью завалил
ashelkov: тока я думаю это стоит использовать когда не т больших пеллеток
ashelkov: иначе неуспеешь за ними
dbf: конечно
gybson_samara: почему?
AntonT: ashelkov хорошее уточнение
gybson_samara: в смысле такие конкурентные палетки не всегда и стоят
gybson_samara: но попробуем и это =)
Uljahn: в лейт гейме норм должно быть и если трекаешь противника по съеденным пеллетам
ashelkov: чтото печальный сабмит какойто / мини подкрутка коефициента + мальенькая правка = совсем разыне результаты
gybson_samara: фишку со скоростью прикрутил?
MadKnight: чё за фишка со скоростью?
Hamibar: по началу казалось, что действительно работает, даже на 40е залетел или типа того, но по итогу примерно туда же и пришел 60 +- 10.
dbf: осталось понять, почему оно не работает :)
ashelkov: не пока поправил кейс где меня убивали и коеф покрутил
Hamibar: Включать скорость только на (odd, odd) координатах
Hamibar: так как все перекрести находяться только на таких точках
ashelkov: а ты включал всегда там или когда уже нет больших пеллет
Hamibar: всегда
dbf: а
dbf: не опаздывал к ним из-за этого?
ashelkov: а еще мне кажеться это надо на больших картах прокручивать
Hamibar: не смотрел еще
ashelkov: на маленьких решают секунды
ashelkov: на больших - информация
Hamibar: по первому взгляду не опаздывал. Хотя в каких-то граничных случаях мб. По сути же всего 1 ход теряешь. Не так уж и много
ashelkov: там где 1 проход важный и паки стучаться друг в друга - это решает
ashelkov: а таких достаточно кейсов
Hamibar: ага. О таком я не подумал.
Hamibar: Но видишь wlesavo получил от этого профит. Мб я плохо закодил. Ну к моим костылям этот плохо клеится.
andrey-vinokurov: Да, объясните про скорость :)
Я думал скорость просто 2 шага вдоль пути, если путь заугол в чем проблема?
S0L0: теряеш 1 ход если с нечетной начал
Hamibar: Так и есть. Но ты делаешь 2шага за 1 ход. Поэтому можешь как-бы пролететь коридор и не увидеть что в нем.
S0L0: и не видишь вбок с перекрестка
Hamibar: А включение скорости на нечетных клетках помогает это изменить. Тепрь всегда будешь останавливаться на коридорах.
dbf: и тебя будет видеть враг :)
Hamibar: Но только это не дает улучшений)
Hamibar: у меня по крайней мере
S0L0: ну у кого как путь предсказывает , у кого и раньше было больше 2 - то без разницы, за угол тоже не теряет
Hamibar: если он тебя видит, значит и ты его
dbf: а толку, если у меня трекера нет :))))
Hamibar: у меня тоже :grimacing:
ashelkov: тоже
Hamibar: походу он и не нужен)
dbf: 30% прошло за 17 минут
dbf: не потестить особо
andrey-vinokurov: Ну т.е. если у меня путь > 2 то я ничего не потеряю? :)
У меня пока простой алгоритм, (тока начал), если могу врубаю скорость сразу и пытаюсь идти в нужном направлении, но судя по визуализатору смещаюсь все так же на 1 клетку, а не на две :(
ashelkov: да тестить фишки тяжело
wlesavo: Hamibar может и правда удачный сабмит просто был
andrey-vinokurov: Что-то я делаю не так :)
dbf: в визуализаторе движение по 1 клетке
dbf: это как бы дополнительный ход
wlesavo: не знаю, но логика в этом точно есть, нулевой ход можно хардкодно разрешать скорость
Hamibar: мб у меня был неудачный :stuck_out_tongue:
AntonT: andrey-vinokurov на скорости нужно не соседнюю клетку указывать, а через одну
andrey-vinokurov: Дополнительный только в визуализаторе да, моя стратегия при этом не вызывается? Т.е. если есть паки под скоростью, то такой ход в визуализаторе как 2?
ashelkov: 96%
AntonT: andrey-vinokurov да, не вызывается. Даёшь указание идти на две клетки, и он идёт, но в визуализаторе это как два шага выглядит
dbf: andrey-vinokurov не вызывается
andrey-vinokurov: Спасибо! Немного наркомании конечно :)
andrey-vinokurov: Теперь дело пойдет :)
dbf: в визуализаторе это выглядит как 2 отдельных кадра, но контроль твоей стратегии дается толкьо на одном
Hamibar: Мне кажется это самый часто задаваемый вопрос на этом контесте. Реально непонятно сделали
MadKnight: https://www.codingame.com/share-replay/466670957
MadKnight: к успеху пришёл
ashelkov: ну что сабмит окончен на 26 было 15/ хрен поймешь толковые ли изменения
gybson_samara: в вызодных данных это видно
S0L0: - 40 мест , изменил только четность
ashelkov: или просто сабмит такой
ashelkov: щас скорость протещу
ashelkov: как там (x+y) должно быть четным?
dbf: да
Hamibar: а я по отдельности каждую координату на нечетность проверял. Можно было проще)
A2CHisPerfect: Часто в конце остается позиции которые твои паки не видели. В части из них лежат очки, в части уже нет потому что противник их подобрал. Как вы выбираете пути для паков ближе к концу игры?
Hamibar: я стараюсь искать пути подлиннее в конце.
AntonT: а я продолжаю делать то, что делал в течение игры: построение карты расстояний от Пака, обратное схлопывание с суммированием стоимостей клеток, жадный выбор самой жирной клетки вокруг Пака
AntonT: как бы теперь в Легу пройти)
ashelkov: я тоже чтото продолжаю делать хз шо ))
ashelkov: идеи та конечно есть но до конца официальной части контеста неуспею
ashelkov: осталось выяснить что лучше работает из текущих настроек
Hamibar: пытаешься на ходу прикрутить к этому велосипеду новые фичи.
ashelkov: а оно только хуже))
Akarachudra: да может не хуже. повторю ещё раз. нужно 400 игр сыграть двум ботам, чтобы выровнять дисперсию.
ashelkov: ну согласен/ поглядим как оно пойдет
Akarachudra: тогда процент "идеальный". где-то на 200 "почти идеальный"
Hamibar: хех, я создал бота который побеждает моего предыдущего бота, но проигрывает всем остальным
ashelkov: это нормально))
MadKnight: обычное дело
MadKnight: называется overfeeded
MadKnight: это значит что твой бот заточился под старую версию
MadKnight: "ослабил" защиту против других тактик и засчёт этого стал рвать твою версию сильнее
Hamibar: я дажу знаю почему. Я стал зачищать кратчайший путь, от последней точки где увидел врага до текущей. И поскольку мой бот ходит по таким путям против него это хорошо работало)
dbf: я пробовал это гонять наа коротких путях только, на глаз вроде норм, но в рейтинге что-то не то
AntonT: а если не зачищать, а уменьшать стоимость пеллет на этом пути?
dbf: да, я пробовал уменьшать сильно
Hamibar: уже готов код. Нужно только дождаться окончания этого сабмита
ashelkov: а чем смысл на коротких?
dbf: чтобы больше вероятность была, что это так
ashelkov: типа щас глубина 15
dbf: не
dbf: я имел ввиду, что если между позициями врага мало клеток, то их можно снизить в стоимости
dbf: если там путь клеток на 12, то он часто не кратчайший
735487: у меня вообще прикол. решил штрафовать если путь идет по чужой территории по вороному. и сделал там баг. сравниваю не свою область а следующего пака. пофиксил - стало хуже ))))))
ashelkov: ладно сабмичу со скоростью
AntonT: ни пуха)
ashelkov: глянем - откатил мелкое свое изменение + добавил скорость
ashelkov: через минут 30 узнаем
Akarachudra: там submit ddos) хз как узнать.
ashelkov: блин а если наоборот делать скорость на нечетной сумме ) видеть ты нихрена не будешь но и тебя на перекрестке не поймают)
MadKnight: Uljahn
MadKnight: что вообще значит bytearray index out of range ?
Hamibar: поймать то могут
Hamibar: почему нет
Hamibar: ты же не застрахован от случайной смерти
AntonT: ashelkov я сначала так сделал случайно, у меня хуже было
ashelkov: окей/ очень тяжело щас идеи валидировать
Hamibar: можно подождать до утра)
dbf: да, лучше сейчас лечь, 1 час утром даст больше сабмитов, чем час сейчас :)
wlesavo: dbf последние часы все еще хуже будет
dbf: да ладно, утром обычно все быстро т.к. в европе и сша спят еще
dbf: а в японии уже работают :)
Akarachudra: ashelkov а потом такой "а что если юзать скорость на четных и нечётных клетках". да не, бред какой-то)
ashelkov: :grinning:
ashelkov: четным паком на четных а нечетным ... ye ds gjyzkb
ashelkov: *ну вы порняли
ashelkov: у меня очень херовый начальный матчинг паков на пелетки - могу не заьирать то что положено
ashelkov: надо попроьбовать написать
ashelkov: так могу проигрывать всем у кого такой матчинг написан
dbf: что-то меня скорость на нечетных только на -20 скинула, а идея богатая
dbf: погоняю с утра на быстрых (надеюсь) отправках
gybson_samara: нас всех потрепала эта война
Uljahn: MadKnight: индекс выходит за пределы байтового массива :)
gybson_samara: 9 бит в байте, че тут непонятного?
Xanrum: когда закончится это все - предлагаю сходить в бар -_-
gybson_samara: а у вас там это разрешили?
gybson_samara: я так-то дома работаю, считай из бара и не уходил
wlesavo: это все наверное в смысле карантин)
wlesavo: я бы сходил
Uljahn: вы вообще о чём?
Xanrum: у меня дома есть барная стойка ; )
Uljahn: я как пить бросил, стал плохо шутки понимать :smiley:
Xanrum: как же долго идет сабмит, 53% и 68 боев
wlesavo: я вроде +- стабилизировался на 40ом
wlesavo: это примерно раз в 10 лучше чем я ожидал
Xanrum: я чтото из золота не могу выйти : ( 2-30 уже как 5 часов
wlesavo: пару дней назад еще бросить хотел
ashelkov: я в сотню хотел на этом контесте
ashelkov: щас в 20
ashelkov: как вы догадались это ровно в 5 раз лучге чем я ожидал )):grimacing:
ashelkov: но от 20 до 50 пару фиксов и правок всего надо внести ))
wlesavo: но конечно без чатиковых советов точно бы забил
ashelkov: та у меня тоже был момент когда я выкинул пол старго кода на котором заехал в голду
ashelkov: там я вообще пути не строил - точки конечные указывал ))
wlesavo: по сути реальный буст дало ансин+перекрестки в скоре+ учет тупиков и тупиковых килов
Xanrum: а что за перекрески?
AntonT: вероятно увеличение оценки пеллеты на перекрёстках
Xanrum: а в чем её повышенная ценность?
ashelkov: в том что твой пак скорее пойдет на перекресток чем в тунель
ashelkov: а с перекрестка можно свернуть
wlesavo: ансин это те пелетки которые ты ни разу не видел, перекресток собственно вижн и прочее
ashelkov: а из тунеля только возвращаться
Xanrum: а.. ну мой алгоритм перебора это учитывает делая длинные пути
wlesavo: ну и совет что ансин нужно в конце игры уменьшать
wlesavo: я вообще в ноль убираю
wlesavo: все бонусы ближе к концу убираю чтобы дальние пелетки назходились лучше
Xanrum: то за ансин?
ashelkov: unseen = это количество клеток что ты не видел никогда
AntonT: как так вообще получается? после сабмита лечу вверх до 60 на череде побед , потом падаю до 200 на череде поражений)
wlesavo: Xanrum бонус к тем клеткам которые ты ни разу не видел
Xanrum: мне из интересного есть - я знаю сколько все клеток, вычитаю очки собранные мной и противником - это есть оценка тех клеток что не видел
wlesavo: можно видеть и не собрать
wlesavo: отдельный учет нужен
oreshnik: Xanrum, спасибо, и сам прошел и меня пропихнул )
wlesavo: Xanrum поздравляю :slight_smile:
Xanrum: Yay! паровозом ^.^
wlesavo: ну теперь и за топ 20 можно бороться :slight_smile:
Xanrum: в топе вижу все теже лица на с++
TheCrucial: javascript евал не успевает посчитать мой :(
ashelkov: знач шото лишнее считаешь
ashelkov: мой же успевает
TheCrucial: да дохрена чего считаю если честно)
TheCrucial: ты в какой лиге?
ashelkov: топ20 легенд
ashelkov: javascript справляется)
TheCrucial: крут. можешь после завершения рассказать чё и как делал?
TheCrucial: или мой глянуть, советов дать :)
ashelkov: да навреное
ashelkov: напишешь
TheCrucial: спасибо
ashelkov: тут люди обычно пост мортемы пишут - после финала рассказывают страты
wlesavo: да, там много интересного будет
Xanrum: но код не выкладывают?
wlesavo: не, оно же в мульти уходит
wlesavo: но если попросить в лс могут дать
NightLuna: меня запушили в легенду, офигеть
Akarachudra: И из-за этого Контур вышел в топ1 по компаниям)
NightLuna: ну у меня был баг, большой коэф на убегание от врагов. и я сделала, чтобы спид применялся на нечетных ячейках
NightLuna: да, есть шанс быть топ1
NightLuna: и у урфу есть шанс
Akarachudra: спид на нечетных - это миф
Akarachudra: тут я тебе точно могу сказать, что статистика говорит, это не имеет положительного эффекта
Akarachudra: хотя, для конкретного бота это может отличаться, конечно.
wlesavo: Akarachudra возможно на и без того хорошем боте ничего не дает, а если бот много чего не учитывает то чтото дает
NightLuna: ну не только он применяет спид на четном только если нет нечетного соседа
NightLuna: ну у меня еще был баг с убеганием от врагов, там был очень большой коэф и я не знаю, что дало эффект
wlesavo: могло еще просто с сабмитом повезти, слишком уж решает рандом
NightLuna: да, с сабмитом тоже помогло
NightLuna: повезло*
Xanrum: а из тинькофф не стали со мной играть : ( сказали мол уже не вставляет подобное
gybson_samara: и это наш Босс https://www.codingame.com/replay/466827358
gybson_samara: Akarachudra вас ведь не для картинки по телевизору мобилизовали?
Akarachudra: нет конечно. скорее даже из-за concurrency с другими событиями ряд любителей cg не стали участвовать
Akarachudra: мы в этом году icfp проводить будем.
gybson_samara: а у вас это на работе поощеряют?
Akarachudra: ты про материальную мотивацию? - нет.
ashelkov: что такое icfp?
Akarachudra: https://ru.wikipedia.org/wiki/ICFP_Programming_Contest
gybson_samara: Akarachudra и правильно делают, тут спорт личных достижений
NightLuna: случайность
Akarachudra: комп рабочий ребутнулся на апдейт, админы намекают, что пора спать.
gybson_samara: первая десятка сабмита повторила десятку против боса, 8/10
NightLuna: а у меня комп рабочий дома, даже не знаю, может ради такого случая таймауты починить...
NightLuna: хотя я их что-то давно не видела, может они сами полечились
gybson_samara: NightLuna у меня рабочий комп тоже дома, но все по РДП
gybson_samara: с такими медленными сабмитами лучше спать лечь
Xanrum: вы тоже через рдп работаете, и с домашнего нельзя?
Xanrum: я то sre... нам ноутбуки выдали доступные для рабты в любой момент, а остальные через рдп
gybson_samara: Xanrum ну кто вы? я с февраля работаю по удаленке как самозанятый потому, что такая моя новая работа и она меня устраивает
gybson_samara: я 1с-ник
Jokero: у нас с середины марта самоизоляция. gybson_samara хай, я тож 1Сник
gybson_samara: вот наверное каждый мечтал на удаленке работать с пляжей. А я, наверное, поеду работать в Ундоры удаленно, на берега Куйбышевского водохранилища. У нас там квартира.
gybson_samara: Jokero хай. Тебя тоже бесят асинхронные вызовы и запрет модальности?
gybson_samara: 72% - 144
gybson_samara: сам сегодня в голду не влезу, но может за ночь протолкнут
Jokero: ассинхронки у меня нет, а модальность есть, но я ее стараюсь не использовать, т.к. уже смирился
Jokero: больше всего меня бесят сами 1С ники нафигачивающие длиннющие ветвистые бизнес процессы без каких либо комментариев или документации.
Jokero: потом сиди разбирайся, что за "светлые" идеи пришли в голову писавшему этот код челу, толи он просто ошибся, толи это так и задумывалось
Jokero: я в основном на самописках работаю, так хочется на типовую уйти уже
gybson_samara: Jokero я 12 лет сидел на самописке в kuvalda.ru и это конечно круто, но это как плить одного бота всю жизнь
gybson_samara: Jokero гратц с голдой
Jokero: спасибо. блиинн, я как при открытии серебра застрял там 200м, так и не мог сдвинуться
Xanrum: в 1с асинк сахар завезли?
Jokero: ну там появились всякие фукнции типо НачатьПомещениеФайла. ты туда пихаешь, какой метод нужно вызвать, когда функция отработает. Но это уже давно вроде.
Xanrum: ну.. функции конечно асинхронные, но не сахарные. Сахар когда не надо колбек передавать