Mail.Ru Group проводит соревнование по программированию искусственного интеллекта Russian AI Cup

Возврат к списку

16.11.2017     

Mail.Ru Group совместно с Саратовским государственным университетом проводят шестой чемпионат по программированию искусственного интеллекта Russian AI Cup.

Суть чемпионата состоит в том, чтобы, используя открытое API и один из 6 языков программирования (С++, Java, C#, Python, Pascal или Ruby), написать стратегию поведения в игровом мире. После чего две выбранные случайным образом стратегии разных участников запускаются в один мир и бьются друг с другом. В случае победы рейтинг стратегии растет, в случае поражения – уменьшается. 300 лучших по рейтингу стратегий первого раунда переходят во второй, а 50 лучших из второго раунда – в финал. Кроме этого, для участия во втором раунде и финале будет проводиться дополнительный набор участников с наибольшим рейтингом в Песочнице (60 участников для участия во втором раунде и 10 для участия в финале).

Каждый год состязание проводится в рамках выбранного жанра компьютерной игры. В этом году это жанр RTC – real-time strategy (наиболее известные представители – Total War, StarCraft, C&C). Сражение происходит на различных типах местности и при различных погодных условиях, влияющих на некоторые параметры техники. В начале игры игрок получает 500 единиц техники пяти типов (танк, БМП, вертолет, истребитель и БРЭМ). Задача – обучить стратегию управлению юнитами и уничтожить технику противника или получить над ним преимущество по баллам в отведенное на игру время.

Для участия достаточно базовых навыков программирования.



Источник: https://infostart.ru/journal/news/tekhnologii/mail-ru-group-provodit-sorevnovanie-po-programmirovaniyu-iskusstvennogo-intellekta-russian-ai-cup_701443/

Комментарии
1. Ivan Khorkov (vano-ekt) 1028 16.11.17 12:00 Сейчас в теме
давайте сюда свое апи, щас на 1С запилим :-D
3. Павел Одинцов (Darklight) 16.11.17 13:23 Сейчас в теме
(1) Язык 1С не поддерживается :-( но если сделать код-конвертор..... в Java Script же на вебморде он транслируется..... то можно и запилить! Только смысл? Для хорошего ИИ нужны продвинутые языки - с сильными синтаксическими конструкциями - а конвертор из 1С будет создавать уж очень примитивный код... вряд ли он будет победоносным! Думаю, рулить в первую очередь будет C# и Java (если там 8-мая). Хотя Питон с Руби может тоже покажут хороший результат (просто боюсь спецов по ним на олимпиаде будет заметно меньше). Жаль Котлина нет - вот он бы точно с C# и Явой бы потягался в локоничности. С++ и Pascal - не будут успешны (хоть и будут популярны) - т.к. первый слишком сложен - качественно писать на нём сложные системы - это настоящее искуство - студентам ещё не подвластное, а Паскаль - слишком ущербен, по сравнение с другими языками турнира. Но... поживём увидим - чья возьмёт. Жаль чисто функциональных языков нет, даже гибридных (глубоко), хоть F#, Scala (гибрид) или Haskell - для ИИ было бы интересное противостояние.
4. Plague Fox (A1ice1990) 58 16.11.17 13:33 Сейчас в теме
(3) Python обязан показать отличный результат. Это не шутер где важна скорость исполнения (в нем плюсы должны былиб показать лучший результат за счет "реакции". У питоши куча библиотек, очень симпатишный синтаксис + кто то может додуматься использовать нейросети, библиотек коих у змеюки - великое множество (в тч градиентный бустинг яндекса и новый конструктор нейросетей гугла).

Алсо, в цивилизованных странах белые люди входят в мир погромирования не через жёппу паскаль, а питон. Красноглазики тоже его весьма почитают.

Так что ставлю на последнего :3
Жаба с решеткой это всеж энтерпрайз языки.
6. Павел Одинцов (Darklight) 16.11.17 13:38 Сейчас в теме
(4)Я не возражаю, я лишь сказал - что просто уровень владения Питоном среди участников, будет недостаточный (по моему личному мнению). Широкие возможности Явы и C# знает более число студентов. А уровень синтаксических возможностей у этих языков в сейчас очень высок - что, при должном мастерстве, позволяет писать гибкий и надёжный код. О скорости выполнения алгоритмов я ни слова не говорил, а вот о скорости написания кода - да - здесь это будет важно!
Да, и олимипиада не мировая - а Российская - у нас паскаль, ява, си, C# в ходу. Ну и 1С ;-)

По поводу нейросетей - нет здесь это тупиковая ветвь - нейросетям нужно обучение - формат олимпиады этого не предоставляет. Разве что обучать заранее на локальном раннере - и потом всю нейросеть встраивать в основной алгоритм - кодогерацией. Но приличная нейросеть в таком формате - не впишется в ограничения по памяти - всего 256Mb. Я не говорю, что это слишком мало - можно и в такой объём впихнуть ого-го как много - правильным образом организую архитектуру упаковки - но это просто выходит за формат данного мероприятия - это задача интересна и сложна уже сама по себе.
8. Plague Fox (A1ice1990) 58 16.11.17 13:44 Сейчас в теме
(6) разве студентоту сейчас учат жабе?
Школьников - Pascal с Visual Basic (в министерстве образования похоже все еще живут в начале 90х)
Студентиков - Delphi (фу-фу-фу), плюсы, ассемблер.
Да и не сильно важно чему учат, тк учат плохо (нет такой специальности как погромизд и соответсвенно погромиздов не учат).

А вот js с питошей многие сами по себе осваивают.
Для js даже стратегия-ммо есть Screeps. Которая 1 в 1 соответсвует правилам турнира :3
9. Павел Одинцов (Darklight) 16.11.17 13:47 Сейчас в теме
(8)Да, учат. Жабу сейчас продвигают. Даже компания 1С учит Яве начиная со школьной парты ;-) Слышал и в школах сейчас уже где-то преподают. Но мало.
Screeps наверное является прообразом органиазции турнира. Но JavaScript не заявлен поддерживаемым языком, почему-то - не компилируется?
11. Plague Fox (A1ice1990) 58 16.11.17 13:49 Сейчас в теме
(9) Так и Python с Ruby - интерпретируемые.
Зря они так с JS, веб девелоперы - солидный кусок погромиздкого сообщества.
12. Павел Одинцов (Darklight) 16.11.17 13:52 Сейчас в теме
(11)В байткод не компилируются разве, как Java?
14. Павел Одинцов (Darklight) 16.11.17 13:55 Сейчас в теме
(12)Хотя на олимпиаде он собираются в zip - значит нет байткода. Ну.... значит не стали добавлять JavaScript - Java же есть ;-) хоть это и разные языки
15. Plague Fox (A1ice1990) 58 16.11.17 13:56 Сейчас в теме
(12) Нет, через интерпретатор как PHP.
Правда у PHP интерпретатор вроде собирает байткод, но тут не уверен, с PHP знаком мало, обычно от себя добавляю всего пару строк, а все остальное доверяю CMS.
5. Павел Одинцов (Darklight) 16.11.17 13:34 Сейчас в теме
(3)На странице указано больше поддерживаемых языков: там есть и Scala и Kotlin, но чистых функциональные языков - нет. Компиляторы - кросплатформенные.
28. Алексей Перелыгин (pereligins) 20 16.11.17 17:42 Сейчас в теме
(3) Какая разница на каком языке реализация? Там же не на скорость реализация, а на логику. За 1 тик 1 юнит все равно не сделает больше 1 действия.
2. Павел Одинцов (Darklight) 16.11.17 13:13 Сейчас в теме
Забавно, но не представляю как можно за такие короткие сроки создать "универсальный" ИИ. Да ещё если и с API не знаком.... студенты Саратовского университета, набившие на нём руку, будут иметь явное преимущество. И даже если победят не они - значит кто-то заранее кого-то где-то уже подготовил, На мой взгляд - явный дисбаланс сил. Вот если бы базовые условия чемпионата от года в год не сильно менялись (чего не скажешь о тестовой среде), и можно было бы годами усовершенствовать и тестировать свой ИИ на одной и той же библиотеке API - было бы куда интереснее и продуктивнее. А если бы ещё свои наработки творцы бы выкладывали в общий доступ (в качестве доп. библиотек) и их мог бы испролзовать любой (а автору такой наработки на чемпионате бы просто начислялись доп очки от других кандидатов - реферальные очки, когда использование их библиотеки приводит к победе против конкурента, не использующего эту библиотеку) - то всё стало бы намного круче, а уровень ИИ рос бы на дрожжах!

Призы тоже очень скромные - конечно расчёт на то, чтобы заинтересовать молодых студентов, но всё равно - очень уж скоромные награды! Да, и мне кажется, успешными ИИ будут только те, что разрабатываются командами - как будет команда делить приз - очень большой вопрос.


Хм... может это будут игры будущего - где нужно не руками дёргать каждого юнита - а писать алгоритмическую стратегию поведения как по отдельности, так и для целых формаций. Естественно в упрощённом виде - через специальный API - вот веселуха бы была.
В всё время я этим улекался - делал моды и ИИ для Warcraft 3 - было очень забавно потом наблюдать - как это в новом игровом пространстве всё приходит в осмысленное движение и воюет друг с другом!
7. Plague Fox (A1ice1990) 58 16.11.17 13:39 Сейчас в теме
(2) Будь Я организатором подобных "фестивалей", вместо ноунейм площадки с API, Яб использовал популрные соревновательные игры, а в финале заставлял ИИ "мочить" киберкотлетов.

Тут 3 в 1:
1) зрелищность
2) объективность
3) подорваные пердаки школьников
Shef_zeon; +1 Ответить
10. Павел Одинцов (Darklight) 16.11.17 13:48 Сейчас в теме
(7)Звучит очень агрессивно и очень непонятно :-(
13. Plague Fox (A1ice1990) 58 16.11.17 13:54 Сейчас в теме
(10)
1) Берем популярную в массах игру, по которой и так устраиваются "соревнования": DoT'a, Counter Strike, ну и прочие.

2) Учим ботов насилию над друг другом и людьми (прости меня Азимов).

3) Собираем целый стадион зевак и падающую от трафика трансляцию

4) ???

5) Зрелищное соревнование, меметичность, внимание масс.
Заработаное на образование бабло + интерес к индустрии.
16. Павел Одинцов (Darklight) 16.11.17 13:59 Сейчас в теме
(13) Ну, когда-нибудь когда-нибудь и до этого докатимся. Хотя я против физического членовредительтва. Даже для роботов. Уж лучше всё осуществлять в виртуальной реальности (матрице).... или.... хотя бы через клонов аватаров/суррогатов! Вот тогда да - веселуха ещё та будет! Если ничего более зрелищного к тому времени, не придумают :]
17. Plague Fox (A1ice1990) 58 16.11.17 14:02 Сейчас в теме
(16) Вроде в других странах испытывают ботов на людях, например запускают "говорилку" в ММО и смотрят, распознают ли игроки подлог :3
Базы для обучения нейросетей речи собирают в имиджбордах, чатах, книгах.

Мы с другом в старенькой игре Ragnarok Online создавали свою гильдию (сообщество) состоящую полностью из ботов и учили их взаимодействию друг с другом и нами.
Вот даже одно ВИДЕО схоронилось.
20. Павел Одинцов (Darklight) 16.11.17 14:28 Сейчас в теме
(17)Я написал про проблему не сбора данных для нейросети - а передачи её в алгоритм, с учётом наложенных ограничений олимпиады.
18. Plague Fox (A1ice1990) 58 16.11.17 14:04 Сейчас в теме
(16) Ну это и есть виртуальные игры.
По ним сейчас тоже соревнования устраивают, такие дела :3
19. Иван Сидоров (succub1_5) 45 16.11.17 14:27 Сейчас в теме
хе, а я ботов для РПГ (ММОРПГ) писал/пишу - дьябло, ВОВ, для херстоуна пробовал и для ХоС. а для стратегии даже не брался - ИМХО даже не предугадать что и как =)
в какой-то фантастике читал что самый умный ИИ в будущем появился благодаря детским игрушкам - ребенок оценивал какая игрушка лучше/интереснее, а ИИ все пытался этого ребенка развеселить.

второе ИМХО - выиграют те кто заранее что-то напишет.

третье ИМХО - вообще без разницы на чем писать будут.

и кстати ИИ (в стратегии же можно играть против ИИ, когда соло гамаешь) - изначально жульничает, в противном случае я батраками мог на сверх сложном уровне прийти и убить батраков ИИ пока они что-то строили.
21. Павел Одинцов (Darklight) 16.11.17 14:33 Сейчас в теме
(19) По поводу жульничества ИИ в стратегиях - это особая тема, но не думаю, что на не высоких уровнях сложности, это жульничество сильно критично - просто ИИ пока слабоваты, чтобы уж совсем честно играть. Хотя, когда я делал свой ИИ - то стратегию для Раш атаки я тоже закладывал :-) для атаки, а не для защиты - иначе всё на много бы усложнилось - у меня и так было 5 вариантов стратегии для каждой новой рассы. Я их даже не адаптировал под число противников и их рассы - это тоже всё очень интересно, но офигительно сложно. Хорошо, что в этой олимпиаде нет такого разнообразия.
23. Plague Fox (A1ice1990) 58 16.11.17 14:54 Сейчас в теме
(19) (21) Ии могут жульничать не только ресурсами как в древних играх и всеосведомленностью, наверное самое страшное их "жульничество" это как раз превосходство над углеродными формами жизни. ИИ способен в великолепный микроконтроль всех юнитов сразу и время реакции меньше 1мс.

Для сравнения с человеком:
Время принятия даже простейшего решения 250 мс (Свой/Чужой, Зеленый/Красный, Истина/Ложь), тут немного спасает ситуацию костный мозг, но всеже. Инпутлаг монитора ~20 мс (+40 если по HDMI кабелю), интернет 3-50 мс и тп и тд.

Где то с пару месяцев назад видел ролик как играют в моба игры с помощью аи (там важность микроконтроля и скорости принятия решений важна как реакция в шутерах), там у противников истерика была от такой несправедливости.

Когда проектируют АИ - его делают под стать человеческому поведению, делая из него "затупка" и "тормоза".
25. Павел Одинцов (Darklight) 16.11.17 16:42 Сейчас в теме
(23)Преимущество по микроконтролю - не считаю жульничеством. Это именно преимущество ИИ и только в RTS. Другое дело, что если его не "затуплять" - то оно обернётся очень нелюбимым многими игроками, дёрганьем - когда противник постоянно дёргаеится то в одну сторону, то в другую - нервируя игрока - ИИ может это делать очень быстро - от чего нервы человека быстро сдают. Но я не видел такого в популярных стратегиях - так что где реальное читерство ИИ? В Варкрафте это решено во внутреннем ИИ-движке - есть ограничение на число команд, которые можно отдать юнитам (включая некоторые проверки) в единицу реального времени. Так же есть латентность на исполнение этих команд - обычно они не выполняются мгновенно - есть задержка. Поэтому очень быстро дёргаться не выйдет, средне тоже - ведь нужно следить ещё и за своей базой и за войсками противника (коли они рядом) - поэтому эта стратегия хоть и применяется ИИ, но очень аккуратно - обычно только на высокой сложности. А вот выбирать цели, выбирать оружие, заклинания, прицеливаться - ИИ может очень быстро. И тут, я склонен к тому, что будущие RTS игры должны минимизировать такое микроуправление и у игрока - всё больше отводя настройкам автоматизации исполнения. У того же варкрафта есть автоприменяемые заклинания, да и юниты не стоят без дела - а сами выбирают цель для атаки.

По поводу подсматривания - ну.... просто в RTS, скажем так, функционал шпионажа очень упрощён или вообще почти отсутствует. Людям в реальном времени этим тяжело попросту управлять. А ИИ мог бы, но функционал не разработан. Да и следить то особо не зачем. Туман войны в играх обычно не является весомым препятствием - всегда есть эффективные легальные средства подглядывания. При разработки ИИ порой просто об этом не замарачиваются - считая, что шпионаж работает хорошо . Лично я это делал лишь на высоких сложностях игры - считал какие типы юнитов у игрока сейчас есть, какие постройки - чтобы подготавливать контрмеры - но, я повторюсь, получить данную информацию легально - тоже не проблема ни для ИИ, ни для игрока - если они умеют и не забывают это делать .

По поводу ресурсов - тут да - ИИ частенько тут жульничает - но, это либо слабый ИИ алгоритм, либо это высокий уровень сложности. Игроки просто любят брать компьютер измором - а это не совсем честно, в современных стратегических играх.


Добавлю, что выделяю 3+1 уровня ИИ:
1. Стратегический - анализирует всё состояние военных действий - и устанавливает микростатегии, цели и приоритеты
2. Операционный - настраивается по данным стратегического уровня - занимется экономикой, подготовкой войск, формированием атакующих или защитных групп, мелким обслуживанием всего этого хозяйства. Выбирает кого и когда атаковать. Начинает атаку. Или наоборот - начинает защиту выполняя соотвествующие макроскрипты.
3. Тактический - непосредственно управляет добычей ресурсов, строительством или группами войск - по поствленным, от операционного уровня, задачам - у одного ИИ-игрока их может быть несколько - каждый под свою задачу и группу управления (могут с друг другом синхронизироваться). Непосредсвтенно отдаёт приказы каждому конкретному юниту. Но оперирует, в основном, сразу группами юнитов.

+1. Низкоуровневый - отвечает за выполнение отдельных приказов у юнитов - типа: идти туда-то, атаковать того-то, отступать, атаковать всех подряд, держать позицию и т.п. - это ИИ отдельной боевой или поддерживающей единицы. Здесь же расположены и алгоритмы авто выбора локальной цели, поиска маршрута, выбора того или иного оружия или заклинания (но "сверху" на этот выбор могут накладываться ограничения).

В варкратфе, в принципе, без жульничества, доступны уровни 2-3+1 - но обычно их реализуют очень ограниченно. Многое уже есть в API - особенно что касается уровней 3 и +1. Так что там в основном весь ИИ расположен на уровне 2.
27. Plague Fox (A1ice1990) 58 16.11.17 17:06 Сейчас в теме
(25) Именно, что разработчики искусствено ограничивают количество команд в секунду, дабы нивилировать преимущество в реакции.
Как примеры этих ограничений для разных жанров:
1) Во многих шутерах нельзя быстро поворачиваться-целиться и скорость разворота зависит от используемого оружия. (Если не сделать это ограничение, то возникают читы, когда противник крутиться как юла и по нему крайне тяжело "попасть", ну и естественно мгновенная автонаводка).

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

3) В рпг существует "танцующая" атака (на удивление крайне редко встречаю это явление): машина или чит могут бить и отходить или во время атаки продолжать движение рядом с целью. Это позволяет избегать ответных ударов, усложняет наводку и иногда позволяет отменять заложенные механикой кулдауны.

4) В RTS стратегиях это жуткий микроконтроль этакие монголы-викинги-зерги, совершающие налеты по всем фронтам и уходя до того как игрок успеет понять, что произошло.

Касательно стратегий: в реальности, на фронте основными тактическими ограничениями являются туман войны, женевская конвенция, время необходимое на отдачу приказа. Машина не обладает не одним из этих ограничений.
29. Денис Мельников (Mi11er) 16 17.11.17 10:31 Сейчас в теме
(19) на чем пишите ботов ? если не секрет
30. Plague Fox (A1ice1990) 58 17.11.17 13:32 Сейчас в теме
(29) Писать можно на чем угодно.
К примеру один из самых лучших и функциональных ботов, что Я когда либо видел - написан на перле.
https://github.com/OpenKore/openkore

Лучший эмулятор приватного сервера - на Си.

Все зависит от ваших знаний и вашего подхода.
Большую часть "серьезных" читов под клиентские игры делают на плюсах, ну или других языках использующих библиотеки написаные на Си.
Если вам нужен простой визуальный бот (и прочая простенькая автоматизация для офиса и игр), Яб рекомендовал: AHK, просто, быстро, со вкусом, огромное комьюнити особенно на данную "тематику". 1с'ники его, кстати, очень любят, видел тут кучу публикаций с его использованием :3
22. Максим Макаров (mxs89) 3 16.11.17 14:44 Сейчас в теме
26. Павел Одинцов (Darklight) 16.11.17 16:46 Сейчас в теме
Любопытно, что на mail.ru об этом чемпионате до сих пор ни слова :-(
А на инфостарте, наоборот - не написали про "биткойн" сити, что хотят построить в России.
Оставьте свое сообщение