Задание Олимпиады по программированию в LabVIEW



Задание олимпиады



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


Игрокам по очереди передаются следующие параметры:

  • размеры поля [Width, Height] (рис. 1),
  • габариты танка [n*n] и его координаты [x_i,y_i],
  • описание препятствий (массив координат крайних точек преград и их оставшаяся прочность),
  • описание выпущенных на данный момент снарядов (координаты текущего положения снаряда, вектор скорости и номер игрока, выпустившего снаряд),
  • описание обоих танков (координате центра танков, углы поворота туловища и башни, оставшаяся прочность и оставшееся время перезарядки).

За определенный квант времени turn time (значение которого также передается) игроки должны сделать ход: указать действие для корпуса танка (движение или поворот), относительный угол поворота башни танка, а также указать, требуется ли произвести выстрел. При окончании кванта времени работа функции игрока прерывается (если значения индикаторов за отведенное время не изменится – то передастся их значение по умолчанию, т.е. не будет совершено никаких действий) и ход переходит к следующему игроку. После того, как оба игрока вернули свои показания, или по истечении кванта времени, подключается алгоритм обработки движений и столкновений, после чего происходит отрисовка последних событий и действий.


Победителем считается тот, кто, либо успел уничтожить танк противника, либо тот, у кого запас прочности больше чем у противника при истечении отведенного на раунд времени.


Трансляция соревнований будет проходить в интернете. Работа программы арбитра будет транслироваться через web-интерфейс в режиме реального времени, поэтому все участники смогут следить за успехами своего алгоритма on-line.


Подробное описание задания и условия



Правила к оформлению решения



  • Главный виртуальный прибор, который будет запускаться как бот, должен иметь название вида: TeamName_Main.vi, где TeamName – название команды.
  • Все другие виртуальные подприборы должны иметь название вида: TeamName_SubVIName.vi, где SubVIName – название подприбора.
  • Все виртуальные подприборы должны храниться в той же директории, что и главный виртуальный прибор, либо в дочерних.
  • Решения должны быть выполнены на LabVIEW версии не ниже 2010.
  • Запрещено использование функций для работы с фоновыми потоками, такими как: «Open VI Reference.vi», «Start Asynchronous Call.vi», «Invoke Node: Run VI». Запрещены любые другие функции сетевого взаимодействия и функции вызова стороннего кода.
  • Запрещены решения, которые не произведут ни одного выстрела в течении раунда.

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



Прием решений



После получения задания участникам дается 21 день для его решения (с 6 марта по 27 марта). По окончанию срока участники, приславшие свои решения, допускаются к проведению «предотборочных» боев. «Предотборочные» бои проводятся по системе «каждый с каждым» без разделения по группам до окончания матча (победы или ничьей).


Суть таких боев состоит в том, чтобы дать возможность участникам оценить стратегию противника во время видео-трансляции. По окончании трансляции участникам дается еще одна неделя на усовершенствование своих алгоритмов. По окончании дополнительного срока (3 апреля) те команды, которые прислали свои решения повторно (т. е. первое решение было отправлено до «предотборочных» боев), будут приняты к участию с новыми решениями.


Участники, приславшие решения после 27 марта и до 3 апреля, не получат приглашение на видео-трансляцию «предотборочных» соревнований.



Судейство



Отбор участников проходит в два этапа:


1. Отборочные бои: Участники разбиваются на группы (число групп будет определенно исходя из количества участников). В каждой из групп выявляются участники, занявшие первое и второе место по системе «каждый с каждым». Эти решения проходят во второй этап.


Критерии формирования списка внутри группы (по степени важности в убывающем порядке):

  • Количество побед (чем больше, тем лучше)
  • Количество сыгранных матчей (чем меньше, тем лучше)
  • Сумма остаточных очков прочности по завершению матчей (чем больше, тем лучше)
  • Сумма игрового времени (чем меньше, тем лучше)

На этапе отборочных боев, сражения проходят до двух побед. Жеребьевка осуществляется судьями с целью разграничить сильные решения по группам.


2. Турнирная сетка второго этапа состоит из двух групп: верхней и нижней. В нижнюю группу автоматически попадает участник, потерпевший поражение в верхней группе. Порядок проведения следующий: сначала проводятся все бои в 1/k – финала верхней группы, затем бои между проигравшими в 1/k – финала в нижней группе. Победителем признается участник, одержавший победу в состязании между лучшими участниками верхней и нижней групп соответственно (Участник, проигравший победителю соревнований, занимает второе место). Третье место присуждается проигравшему в финале нижней группы. На втором этапе бои проходят до не менее трех побед и отрыва в победах минимум в два очка.




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

  • Расположение, прочность и количество препятствий на карте
  • Количество ходов необходимое на перезарядку между выстрелами

Данные меры введены во избежание многочисленных ничьих и долгих боев с минимальными повреждениями друг другу. Все матчи будут проводиться на компьютере со следующими характеристиками (более подробно можно посмотреть здесь):

  • Процессор: Quad-core Intel Core i7 820 QM
  • ОЗУ: 2 Gb 1333 MHz Dual-Channel DDR3
  • Операционная система: Windows 7 64-bit


 Архивы с программой-арбитром олимпиады начиная с 2010 версии представлены по ссылкам:
  2010, 2011, 2012, 2013, 2014.



Победители получат следующие призы



1 место:

  • Подарочный сертификат на 15 000 рублей
  • Возможность бесплатной сдачи CLAD на конференции NI DAYs
  • Возможность бесплатного прохождения он-лайн курсов NI на выбор
  • Футболки с символикой олимпиады
  • Дипломы победителя олимпиады

2 место:

  • Подарочный сертификат на 5 000 рублей
  • Возможность бесплатного прохождения он-лайн курсов NI на выбор
  • Футболки с символикой олимпиады
  • Дипломы победителя олимпиады

3 место:

  • Возможность бесплатного прохождения он-лайн курсов NI на выбор
  • Футболки с символикой олимпиады
  • Дипломы победителя олимпиады


Олимпиада осуществляется при технической поддержке:


ООО «Унискан-Ризерч»

Интегратор технологий National Instruments в Новосибирске
Тел./факс +7 (383) 363-10-03
http://www.uniscan-research.biz, contact@uniscan.biz


ООО «ИнЛаб»

СИСТЕМА ПОДДЕРЖКИ ИНЖЕНЕРНЫХ ЗНАНИЙ ТЕХНОЛОГИЙ
National Instruments Россия, СНГ и Балтия

inlab@training-labview.ru
http://training-labview.ru/

 




 

© 2017 National Instruments Russia. All rights reserved.
Яндекс.Метрика