Pull to refresh
30
0
Александр Киселев @m0rtido

Пользователь

Send message

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

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

ИИ перед вами (имхо). Довольно часто в этом соревновании возникают дискуссии по поводу того, что если в решениях нет машинного обучения или нейронок "хотя бы", то это не ИИ. "Что считать ИИ?" — тема достаточно философская. Мое личное мнение, что, в контексте данных соревнований, искуственным интелектом можно назвать программу, которая выполняет задачи, которые традиционно считаются прерогативой человека (играет в игру), не привязываясь к внутреннему устройству.
А уж победит тот бот, который лучше подстроился под условия игрового мира и критерии оценки.

Минимакс в данном случае достаточно сложно применить в виду большой ветвистости. Другими словами слишком много вариантов действий (атаковать, отступать, куда атаковать, куда отступать, кидать ли бомбу, объединять ли в отряд). Т.е. как минимум нужны эвристики или другие способы уменьшить ветвистость. Но глубина просчета всеравно наврятли будет достаточно большой. Возможно в данном раскладе тут мог подойти MCTS лучше.
Тем не менее, в игровом ИИ достачно большое разнообразие подходов, которые имеют свои плюсы и минусы в разных задачах (в т.ч. не стоит забывать про сложность имплементации, т.к. время ограниченно и участие идивидуальное). Данный конкурс показал, что в текущих условиях разработки и игрового мира подход автора статьи оказался наиболее оптимальным из всех, которые опробовали другие участники.

В данном случае имелось в виду, что есть куски кода, которые присутствуют при локальном запуске, но должны быть исключены из посылки на сервер. Как альтернативу можно исользовать условие, чтобы выполнялся этот код только локально. Но в таком случае необходимо придумтаь это условие и, в случае с импортом сторонних библиотек (например для отрисовки), придется тоже что-то решать, т.к. их точно не будет на сервере и стратегия упадет.

Профессионально я этим не занимаюсь, и в соревновании участвовал первый раз. Предыдущий опыт сводится к 1 семестру МО в университете и частично пройденому курсу от Andrew Ng на Coursera. Однако я уже давно пытаюсь подобраться к этой теме поближе, и этот конкурс оказался очень продуктивным для меня.

Источников было достаточно много: документация Scikit Learn, обсуждения в телеграм чате, открытые решения kaggle чемпионатов на GitHub, статьи в блогах и т.д. Я старался добавлять ссылки в статью. Часто при поиске помогало добавить к запросу "kaggle". Кстати, Otto Group Product Classification Challenge — похожее соревнование по которому очень много обсуждений, статей и примеров решения.

Information

Rating
Does not participate
Works in
Registered
Activity