Правила игры Игра основана на изобретенной Джоном Конуэмом математической модели эволюции колоний биологических форм, которая имитирует процессы, происходящие в живой природе: зарождение, жизнь и гибель. Место действия игры – «Вселенная» – размеченная на клетки замкнутая поверхность. Верхняя граница поля "соединена" с нижней, а левая граница – с правой, что представляет собой имитацию поверхности тора, но на экране поле всегда отображается в виде равномерной сетки 40х40 ячеек (рис.1). Команда А (Team A) Команда В (Team B) Рис.1. Игровое поле Каждая клетка на этой поверхности может находиться в двух состояниях: быть «живой колонией» или быть «мёртвой» (пустой). Клетка имеет восемь соседей (окружающих ее клеток). Во Вселенной обитают колонии 2-х видов, которые активно борются за выживание. Колонии одного вида обозначаются желтым цветом, а другого вида – зеленым. Первый этап игры: «Первое поколение» Первый этап заключается в расстановке игроками своих колоний на игровом поле, формирующей начальное распределение живых колоний, которое называется первым поколением. Расстановка происходит поочередно. Первой ставит на поле одну колонию Команда A, следующей – Команда B, и так далее до тех пор, пока популяции каждого из видов не составит 100 живых колоний (в сумме на игровом поле должно быть размещено 200 живых колоний). Ставить живую колонию можно только на свободной клетке поля. Второй этап игры: «Жизнь» На втором этапе запускается процесс эволюции поколений – одно поколение сменяет другое, при этом часть колоний погибает, часть остается жить, а в некоторых пустых клетках зарождаются новые колонии. Каждое последующее поколение рассчитывается на основе предыдущего по следующим правилам: • если колония имеет только одного живого соседа, то в следующем поколении она умирает «от одиночества»; • если колония имеет четыре и более живых соседей, то в следующем поколении она умирает «от перенаселения»; • если колония имеет два или три живых соседа, то в следующем поколении она остается жить; • если у пустой клетки имеется ровно три живых соседа, принадлежащих одному виду, то в следующем поколении в ней зарождается живая колония этого вида; • если у пустой клетки имеется один сосед вида А и два соседа вида В, то в следующем поколении в пустой клетке зарождается живая колония вида В; • если у пустой клетки имеется один сосед вида В и два соседа вида А, то в следующем поколении в пустой клетке зарождается живая колония вида А. Перед сменой поколения одной из команд поочередно дается возможность миграции одной колонии из всей популяции вида на соседнюю пустую клетку (… смена поколения -> миграция колонии вида А -> смена поколения -> миграция колонии вида В -> смена поколения …). На выбор колонии, которая осуществит миграцию, и нового положения, куда она мигрирует, дается 1 секунда. Условие завершения игры Игра завершается при полном вымирании одной из популяций, либо после 400-ой смены поколений. Условие победы Побеждает та команда, численность популяции (количество колоний) которой на момент завершения игры больше. Задание олимпиады Участникам олимпиады предлагается создать виртуальный прибор (VI), который мог работать в двух режимах: «Первое поколение» и «Жизнь». В первом режиме программа должна осуществлять выбор положения новой колонии на основе информации о текущем распределении колоний на игровом поле. Во втором режиме – программа должна выдать текущую и будущую координату колонии, которая осуществляет миграцию. Макет программы с указанными типами входных и выходных параметров прилагается к заданию. Также имеется программа «Арбитра», с помощью которой Вы можете проверить созданный Вами виртуальный прибор. Решение может быть исполнено в виде набора виртуальных приборов, однако основной должен иметь окончание _main.vi. Программы могут быть исполнены в LabVIEW версий 8.6, 2009, 2010, 2011 и 2012. Работа программы ограничивается по времени: на ход дается 1 секунда для обоих режимов («Первое поколение» и «Жизнь»). Если ход будет занимать более 1 секунды, то популяция будет оставаться без изменений, а ход будет передаваться другому игроку после смены поколения. Регламент соревнований Соревнования будут проходить в 2 этапа – «групповой этап» и «плей-офф». Групповой этап Все присланные решения, удовлетворяющие требованиям соревнований, будут в произвольном порядке разделены на группы по несколько команд в каждой. В зависимости от общего числа команд-участников, количество команд в группе и размерность игрового поля могут быть изменены организаторами соревнования. В группе команды сыграют по принципу «каждый с каждым». За победу во встрече команде присуждается 1 балл. После проведения игр, из каждой группы во второй этап – «Плей-офф» выйдут 2 команды, набравшие максимальное число баллов. В случае, если 3 и более команд из одной группы наберут равное число баллов, то в «Плей-офф» пройдут те 2 команды, которые одержали победу в среднем за наименьшее время. Плей-офф На втором этапе команды будут соревноваться по Олимпийской системе («Плей-офф»). В каждом круге из команд будут составляться пары, играющие между собой серию из 3-х матчей. Это позволит однозначно определить победителя. Из каждой пары в следующий круг выходит победитель, а побеждённый выбывает из турнира. Команда, выигравшая финальный круг, становится победителем, ее последний соперник получает второе место. Также будет проведена дополнительная игра за 3-ье место между двумя командами, проигравшими в полуфинале. Трансляция соревнований будет проходить в интернете. Работа программы арбитра будет транслироваться через web-интерфейс в режиме реального времени, поэтому все участники смогут следить за успехами своего алгоритма on-line.