Привет! Большинство из нас, специалистов в IT сфере, любит играть в игры — карточные, настольные, компьютерные и другие. Зачастую бывает, что игры пользы никакой не приносят, а хотелось бы всё и сразу — удовольствие, фан и знания. Специально для вас мы стараемся изобретать «игры для программистов», которые сочетают в себе всё вышеперечисленное. Предлагаем вам познакомиться с ними и приглашаем принять участие в соревновании по искусственному интеллекту Mini AI Cup #4!
История соревнований Mini AI Cups
В 2017 году нами была запущена площадка для проведения чемпионатов по искусственному интеллекту AI Cups, ставшую ответом на множество запросов IT-сообщества, которому хотелось попробовать себя в задачах, похожих на те, что встречаются в знаменитом чемпионате Russian AI Cup.
Далеко не каждый может со своими навыками программирования и разработки приблизиться к загрузке осмысленной стратегии. Кроме того, участники требовали больше интересных контестов, а не раз в год. К тому же, для тренировки им нужно решать больше задач. Именно по этим причинам была открыта платформа AI Cups.
За два года на портале зарегистрировалось 3000 человек, 600 из которых приняли участие в трёх мини-соревнованиях и отправили свои варианты стратегий. Остальные пользователи продолжают готовиться в песочнице (тренировочных контестах) к следующему чемпионату.
Прошедшие соревнования
Mini AI Cup #1 / Lifts
Первый тестовый чемпионат Mini AI Cup был проведен в сентябре 2017 года. Участвовало 217 человек. Суть задачи – стратегия развоза пассажиров в лифте, с учетом факторов, влияющих на алгоритм развоза. Победителями стали Антон Козловский, Денис Уткин, Даниил Николенко.
Mini AI Cup #2 / AgarIO
Второй Mini AI cup начался в феврале 2018 года. Задача состояла в том, чтобы запрограммировать бота для игры, похожей на Agar.io. Было зарегистрировано около 1200 участников, активных игроков более превысило 300 человек. Победителями стали Алексей Дичковский, Андрей Токарев, Антон Козловский.
Mini AI Cup #3 / MadCars
Чемпионат начался 30 августа 2018 года и был разработан по мотивам игры Drive Ahead. Каждому игроку давалась машина с кнопкой. Задача состояла в том чтобы написать бота, управляющего машиной, цель которого — нажать на кнопку врага быстрее, чем это сделает он. У каждого игрока 5 жизней.
Победители: Алексей Дичковский, Антон Козловский, Александр Киселев
Новое соревнование Mini AI Cup #4 / PaperIO
На этот раз решили реализовать аналог Paper.io, специализированный для написания ботов. Механика достаточно простая, физики нет. Есть только игровое поле, игроки, правила и бонусы.
Подробнее об этом узнаете в день запуска (если мы расскажем сейчас, то кто-то уже напишет ботов, что будет не очень честно по отношению к другим).
Поддерживаемые ЯП
Здесь всё стандартно — решения можно прислать на любом языке программирования из списка поддерживаемых: C++11, C++14, C++17, C#, Java 1.8, Kotlin, Haskell, Go, Python 2.7, Python 3.6, PHP7, Node JS, Elixir, Rust, Scala.
Для удобства участников, а также для снижения пиковых нагрузок на систему запуска, мы подготовили программу для локального запуска и отладки — Local Runner.
Утилита написана на Python 3.6 с использованием визуализатора Pyglet и поставляется в виде исходных кодов. Детальные инструкции по настройке и использованию вы найдёте в правилах.
Архитектура решения
Самое простое решение на языке программирования Python 3 будет состоять из одного файла main.py. Программа-клиент инициирует сессию и запускает этот скрипт в начале работы. Клиент скрывает внутри себя работу с сетью и обработку ошибок, является посредником между игровой механикой и решением участника. Он передает JSON от мира в стандартный поток ввода (stdin) и забирает ответ из стандартного потока вывода (stdout) (для Python это sys.stdin и sys.stdout).
Для корректной работы решение должно запускаться с параметрами для ввода/вывода без буфера (для Python это флаг -u при запуске интерпретатора).
Решение стартует один раз и далее работает в бесконечном цикле. Обрабатывать остановку не обязательно, в конце игры dockerd завершит работу всех контейнеров. Внутри цикла заключается обработка ввода/вывода, происходит обработка JSON и вызов главного обработчика.
Примеры стратегий и квикстарт будут опубликованы в день запуска.
Расписание и подарки
Итак, стартуем 18 июля в 19:00, заканчиваем 18 августа. В эти промежутки будут проведены три раунда, а именно:
- Бета-тестирование (не влияет на результаты) для исправления возможных багов — 1 неделя.
- Рейтинговые игры (2 недели).
- Финальные игры (1 неделя).
Из рейтинговых игр в финал пройдут 25 % участников. Все участники, прошедшие в финал, получат традиционные футболки.
Кроме того, лучшие участники получат ценные подарки:
- первое место — Apple MacBook Air;
- второе и третье место — Apple iPad;
- четвертое, пятое, шестое места — Samsung Gear S3.
Сообщество
Чтобы было интереснее и веселее, присоединяйтесь к сообществу участников в телеграме (@aicups). Нас уже более 900 человек!
Желаем удачи!
Полезное
- Немного о физике в почти Agar IO на aicups.ru
- «Создание бота на рекуррентной нейронной сети для участия в Mini AI Cups»
- Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети
- Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 2)
- Создание бота для участия в AI mini cup. Опыт применения GPU
- Создание бота для участия в AI mini cup 2018 на основе рекуррентной нейронной сети (часть 3)
- Mini ai cup 2 или почти AgarIO — что можно было сделать для победы
- Запускаем Mini AI Cup #3 Битва машин в тесных закрытых пространствах
- Mini AI Cup #3 Пишем топового бота
Автор: Дмитрий