Pull to refresh

Comments 19

Это больше про суть соревнований, когда все в равном состоянии/ а так кто-то из 1000 участников конкурса научился копировать память движка и далее симуляция/ это уже не про соревнования тема/ а про то как я дырку в заборе нашел/ а вы не смогли… Что интересно организаторы выложили исходники движка на Си на сервер соревнований/ хотя другие языки были без расширения просто бибилиотеки поддержки. А так молодцы ребята/ но действительно питонисты, джависты и остальные в проигрышном состоянии. Но это вопрос больше к организаторам/ если конкурс то лучше более равный для участников. А касательно машинного обучения/ три вида машин/ шесть карт/ 18 вариантов начального состояния/ для мини конкурса многовато. Сама статья и подход через генетику к решению безусловно хороши!
Саша, мы кидали доку на портирование движка на другие языки :( Все равно возникали трудности? Но стоит признать, что выбор этого физ движка был не особо удачным.
Проблема в том, что chipmunk не умеет копировать свое состояние, а без этого в симуляции никак. В C++ выкрутились через подмену аллокатора памяти и копирование блоба. В других языках такое реализовать гораздо сложнее, если вообще реально.
Нереально, в си в любом случае пришлось бы чуть влезть.

Впрочем кинули небольшой хелпер для СИ не совсем организаторы, его сделали участники. Причём сразу два хелпера.
Хороший движок/ изучил его за соревнования и даже научился состояние мира копировать/ но без дампа оперативной памяти/ этот секрет наверное из рук в руки передавали. И дух соревнований был конечно и приятно было участвовать. Три подхода испробовал и в топ попал на ифах которые сделал дня за три до конца/ но равные условия важны/ хотя конечно с++ и питон в симуляции как самолет и черепаха )
Так на питоне шансов просимулировать не было, а без движка она есть, но всё равно питон почему-то побеждает только если ифами)

И никаких секретов из рук в руки. Не думаю, что таковыми можно считать сообщения в офчате, что «можно использовать аллокаторы» (от участников, конечно же). А по факту это у меня заняло ~ 30 строк кода и целый вечер, учитывая, что я первый раз писал аллокатор (да и С++ не тот язык, где мне комфортно)

А вот копирование исходников локал раннера из питона в С++ у меня заняло больше, чем половину недели. И тут бы все языки были бы более-менее равны (а питон даже ровнее, исходники ЛР то на нём)
Копировать память научился не один участник. В чате телеграмма можно было получить подсказки, как добиться идеальной симуляции (без кода, разумеется). Те кто не хотели этим заниматься придумывали эвристики и прокладывали альтернативный путь в топ.
На мой взгляд соревновательная часть оставалась до самого конца.

Про другие языки — это правда, C++ в этот раз оказался в сильно выигрышном положении из за специфики движка. В оправдание организаторов можно сказать, что заранее это было узнать довольно сложно, все проявилось только после недели копания в коде чипмунка.

С языками действительно вышел фейл, как я понимаю, задумка была наоборот их выровнять в шансах. А получилось… так как получилось.
Лично я на С++ писал в первый раз и за две недели до конкурса только начинал читать про то как инициализировать переменные и обьявлять функции. Как-то так :)
Буду надеятся, что и организаторы и участники вынесут что-то полезное для себя из статьи и нас ждут интересные задачки и честные зарубы на нескольких ЯП.

Когда там уже не-мини cup? Будет в этом году?
А пока что можно в halite поучаствовать, еще есть время.
спасибо за статью, было очень интересно, думаю еще не раз вернусь почитать )
Да, с движком получилось не очень. Без знания C/C++ я за время чемпионата успел реализовать точную симуляцию с аллокатором, но к тому моменту оставалась пара дней до конца и я не успел написать стратегию.
В итоге времени потратил немало, но так ничего и не залил.

Спасибо за статью, интересно.
И за опыт в C++ спасибо. Давно пора было познакомиться с этим чудесным миром Segfault-ов :)
Протыкал по ссылке три рандомных матча, в первом оба участника стояли на месте (но один каким-то образом всё же выиграл 1:0, видимо, всё же симметрия нарушилась немного и он под мусором утонул позднее), ещё в двух матчах уже на 5:0 выигрывал тот, кто не двигался, его оппонент прекрасно справлялся с суицидом самостоятельно. Может, я чего не понимаю и там можно отфильтровать вменяемые матчи? =)
Наверное игры в песочнице. Там всякие могут быть.

Вариант открыть игры финала
aicups.ru/round/8/?rp=1#ranked-games

или прям рейтинговые игры из профилей топ участников
Спасибо за статью, спасибо организаторам за сам турнир.
Замечу что когда анонсировали этот турнир (в августе) то было много пессимистичных комментариев о том, что в конкурс лучше не соваться, там одни «монстры» и подобное.
Да, первая 5ка (а может и 10ка) лидеров — это те, кто уже не первый раз участвуют в подобных соревнованиях и имеют достаточный опыт. Но! Все они сидят телеграмм-канале соревнования и активно помогают, отвечая на вопросы от других участников.
Лично я впервые участвовал в подобном, писал решение на Go, на чистых IF-ах без симуляций и занял почетное 12-е место. Было очень интересно, даже не ожидал что так захватит.
Так что всем рекомендую участвовать в следующих турнирах!
С каждым разом растёт не только качество соревнований, но и количество интересных подходов, и… объём статей) Очень приятно было почитать! спасибо большое. Я припрятал свой мешок if-ов до новых минираиков, но с удовольствием наблюдал за гиперактивностью в чате. Было весело и очень интересно, поэтому отдельное спасибо организатору соревнования!!!

Обьем получился и правда большим. После завершения соревнования, оказалось, что топовые стратегии имеют как общие, так и отличительные черты, которые было интересно сравнивать и обсуждать. В обсуждениях было выявленно много нюансов и интересных подробностей (и много чего еще не попало в текст...). Именно тогда появилась идея сделать статью сразу с несколькими решениями и коментариями топов по тем или иным "фичам".

Спасибо за статью! Такой формат очень даже неплох! Успехов в следующих контестах!
Sign up to leave a comment.