Основной задачей групповой робототехники является построение такой системы, которая давала бы новые качества и улучшенные характеристики за счет взаимодействия многих отдельных агентов, обладающих относительно простыми правилами. Основным методом изучения данных систем является имитационное и агентное моделирование, для чего исследователи пользуются различными средами и библиотеками.
Одним из направлений исследований в групповой робототехнике является изучение биологических систем с целью применения принципов их организации для построения коллектива роботов, поскольку эти системы демонстрируют многие желаемые качества, такие как устойчивость к внешним воздействиям, возможность работы в неизвестной среде, эффективность выполнения задач. Новым и весьма перспективным направлением в этой области является подход, основанный на социальном поведении и различных механизмах, связанных с ним [1]. Искусственные коллективы, реализующие эти механизмы, в дальнейшем будем называть коллективами с социальной структурой. В частности, большое распространение получило построение коллективов, подобных муравейнику, который является классическим примером эусоциального сообщества, что считается высшей степенью социальной организации. Несмотря на весьма сложное устройство, возможности и поведение отдельного муравья, наличие интересных явлений в структуре муравейника, таких как полиэтизм, мобилизация, трофобиоз, накопление и передача знаний, иерархия и других [2], активно изучаются лишь некоторые отдельные механизмы. Например, нахождение пути по феромонам, которое имеет ряд различных описанных в литературе моделей, программных реализаций и используется как для управления движением физических агентов и их моделей, так и для поиска пути на графах.
Однако, помимо развития идеи организации агентов с помощью феромонов, несомненно важными являются и другие механизмы коллективов с социальной структурой. Для полноценного всестороннего изучения искусственных коллективов, строящихся по подобным принципам, важно наличие такой системы имитационного моделирования, которая предоставляет средства реализации в ней основных элементов коллектива с социальной структурой, обеспечивает масштабируемость системы, возможность ее удобного расширения, поддержку сбора данных для последующего анализа. Существует немало обзоров систем агентного моделирования (например [3–6]), однако в основном они касаются систем общего, универсального назначения. Цель данного обзора – анализ имеющихся специализированных систем моделирования, пригодных для решения задач коллективной робототехники, ориентированных на создание социальных структур.
Модели социального поведения
Существует ряд форм, видов и проявлений элементов социального поведения, таких как когезия (стремление держаться группой), контагиозное и агонистическое поведение, кастовость, образование коалиций и т.д. Данные механизмы наблюдались у животных и описаны исследователями, в частности, этология сложного поведения тех же муравьев описана в классических работах [2, 7]. Некоторые механизмы свойственны высокоуровневым формам жизни, например, агрессивные и антагонистические формы поведения шимпанзе рассматривались в [8], а контагиозное поведение – в работе [9]. В работе [1] показано, что для реализации феноменов социального поведения необходим целый ряд ключевых механизмов:
- индивидуальные морфологические и психические различия индивидуумов (например, за счет реализации механизма темперамента и эмоций);
- локальное взаимодействие особей, в том числе коммуникация;
- средства языкового общения;
- формирование коалиций;
- дифференциация функций (распределение ролей и задач);
- выделение иерархической структуры (лидера, групп и т.п.) и другие.
Не все из перечисленных механизмов должны быть ярко выражены в коллективе как социальной структуре, однако можно говорить об их наличии в том или ином виде и, соответственно, система моделирования должна их поддерживать хотя бы на уровне соответствующих базовых модулей и интерфейсов. Для более сложных агентов необходима поддержка создания моделей внутреннего и внешнего мира. Такие модели важны для локализации агента [10], навигации и коммуникации [11], кооперации между агентами [12], планирования действий [13], адаптации к повреждениям [14] и многих других задач, хотя последний пример больше свойственен для более сложно устроенных роботов, чем для тех, на которых зачастую ориентируются исследования в групповой робототехнике.
Система моделирования необязательно должна предоставлять средства реализации всех этих меха- низмов, поскольку для некоторых из них можно воспользоваться специализированными библиотеками, но хотя бы возможность их интеграции должна быть. Чем более явно наличествует поддержка всех элементов коллектива агентов с социальной структурой, тем больше подходит программное средство для создания и изучения этих моделей.
Конечно, поскольку речь идет о моделировании робототехнических распределенных систем, система моделирования должна поддерживать и такие понятия, как отдельный агент, пространство, время, задавать в некотором виде среду, в которой взаимодействуют агенты, предоставлять возможность модульной реализации отдельных аспектов агента. Стоит отметить, что одним из типов коммуникации между агентами является стигмергия, то есть опосредованная передача информации через изменение внешней среды, например, оставление феромонов [15]. Также система должна уметь поддерживать модель из нескольких взаимодействующих коллективов, поскольку среди задач групповой робототехники есть такие, которые связаны с делением и слиянием групп роботов [16].
Несомненно, для изучения отдельных элементов системы также полезно иметь возможность использовать уже готовые алгоритмы для реализации других аспектов системы без необходимости написания программы для всех механизмов сразу. Например, при изучении различных моделей эмоций роботов использовать модули, реализующие один из способов моделирования локальной коммуникации или группового движения. Использование таких стандартных поведенческих модулей позволит, как минимум, сосредоточиться на содержательной части изучаемой проблемы.
В данной работе была сделана попытка сформулировать требования и найти систему моделирования, наиболее подходящую для построения модели множества взаимодействующих искусственных агентов, организованных в коллектив с социальной структурой, и для изучения его с использованием вычислительного эксперимента.
Хотя существуют различные методы моделирования групповых систем [17] и разные типы имитационного моделирования [18], внимание в данной статье сосредоточено на системах агентного имитационного моделирования, ориентированных на дискретные имитационные модели, поскольку метод моделирования в этом случае поддерживает понятие агентов и предполагает возможность реализации модели на ЭВМ.
Таким образом, можно выделить некий предварительный ряд требований к такой системе моделирования:
- поддержка больших групп (тысячи и десятки тысяч особей);
- возможность моделирования сложной внутренней структуры;
- поддержка локальных взаимодействий;
- моделирование пространственных отношений;
- поддержка моделирования коммуникаций и языкового общения.
Системы моделирования поведения эусоциальных животных
Поскольку рассматриваются построение и моделирование искусственной системы из мобильных агентов, организованных в коллектив с социальной структурой, сначала был произведен поиск систем моделирования, созданных для изучения биологических эусоциальных коллективов. При возможности модификации правил и изменения ряда параметров агентов и окружающей среды такая система моделирования могла бы быть применена и для изучения свойств искусственного коллектива.
Яркие представители животного мира с эусоциальной организацией – муравьи, пчелы и некоторые другие насекомые, поэтому в обзор попали в основном программы и библиотеки, относящиеся к моделированию поведения муравьев, такие как Aints [19], Myrmedrome [20], AntMe [21] и т.д. Стоит также упомянуть о наличии платформ для соревнований программ, которые могут быть выполнены в форме муравейников [22], хотя это, скорее, платформы для тестирования, нежели для разработки, и в качестве библиотеки моделирования для исследований не подходят.
Myrmedrome– это агентный симулятор колоний муравьев, построенный на принципе реакции муравьев исключительно на локальные события [23]. Муравьи взаимодействуют друг с другом с помощью химических сигналов. Графический интерфейс программы представлен на рисунке 1 (белые линии – пути следования из феромонов). Алгоритмы управления агентами недетерминированные: на каждом шаге, когда все параметры муравьев обновляются, существует вероятность, что выбранное действие не будет выполнено. Это делает систему адаптивной к непредвиденным ситуациям.
Myrmedrome имитирует жизнь колонии муравьев на ограниченном участке среды. Социальная организация основана на кастовой системе, в которой есть рабочие и солдаты. Первые выполняют основные функции по поиску еды, которую они хранят в совместных желудках и которой делятся с другими муравьями. Рабочие, исследуя территорию, при встрече с добычей пытаются ее убить, а также ищут муравьев из других колоний, рассматривая их как источник опасности и оповещая об их присутствии при помощи феромонов. По этим феромонам солдаты, защищающие гнездо, находят источник опасности и стремятся его уничтожить. Программа предоставляет пользователю возмож- ность манипулировать средой и муравьями: добав- лять еду, двигать муравьев, менять параметры феромона, количество муравьев и некоторые другие. Она является демонстрацией работы муравейника, но не библиотекой для моделирования, и исходный код этой программы для его модификации не предоставляется.
AntMe позиционируется как игра [21], обучающая объектно-ориентированному программированию на примере управления муравейником путем написания соответствующего кода на языке C# или же Visual Basic .NET. В ней программируемым муравьям нужно собирать еду (сахар и яблоки) в гнездо и бороться с жуками, организуясь с помощью феромонов. Взаимодействия локальны: муравей «видит» и взаимодействует лишь с ближайшим окружением. Для изменения алгоритма муравья используются обработчики событий и набор методов-команд, таких как «идти вперед», «возвратиться в муравейник». Доступ к внутренним параметрам (состоянию) осуществляется через параметры объекта. Муравьев можно разбить на касты, каждая из которых будет обладать своим набором параметров, таких как скорость передвижения, величина переносимого груза и т.п. Возможность расширения функционала программы путем написания плагинов заявлена, однако описание этого в документации на сайте проекта отсутствует.
Несмотря на наличие визуализации, а также реализацию некоторых важных механизмов (локальность взаимодействия, коммуникация через феромоны, распределение ролей), данная программа является скорее площадкой для знакомства с объектно-ориентированным программированием в увлекательной интерактивной форме, нежели средством моделирования для изучения коллективного управления, что и заявлено авторами.
NetLogo: Ants. NetLogo – агентно-ориентированный язык программирования и интегрированная среда разработки [24]. Язык реализован на виртуальной машине Java, что делает программы, написанные на нем, кроссплатформенными. Среда NetLogo содержит встроенные библиотеки моделей, в частности, имитирующие биологические системы. Среди них есть библиотека под названием Ants (муравьи) [25]. В этом проекте колония муравьев занимается фуражированием. Каждый отдельный муравей обладает определенным набором простых правил поведения: ищет еду, несет ее в гнездо, когда обнаруживает, оставляя феромоны по мере движения. Если другие муравьи чуют этот запах, они следуют по нему к еде. Феромон со временем распространяется в пространстве путем эмуляции диффузии и исчезает. Настраиваемые функции: скорость испарения запаха, скорость распространения запаха, количество муравьев. Среда NetLogo имеет встроенную систему сбора различной информации и ее графического вывода, а также позволяет менять параметры системы во время ее работы. Характерные возможности программы изображены на примере ее работы (рис. 2). Возможно расширение модели путем расположения источников питания в различных местах, внедрения различных стратегий нахождения обратного пути к гнезду и изменения силы химического запаха.
Несмотря на то, что модель имеет возможности расширения, они представлены в рамках механизма поиска пищи. В то же время для построения социального коллектива необходима реализация других различных механизмов, таких как локальные коммуникации между агентами, построение иерархической структуры и т.д.
К языку NetLogo предоставляются открытый исходный код [26], а также позволяющие его модификацию ряд различных библиотек (например Ants) и обширная документация. Однако модификация исходного кода NetLogo является гораздо более сложной задачей, чем изменение или добавление моделей, написанных на нем, и большинству пользователей целесообразнее работать с предоставляемыми этим языком инструментами в рамках связанных с ними ограничений и особенностей.
Таким образом, NetLogo, являясь гибкой и расширяемой средой агентного моделирования, не реализует многие механизмы, необходимые для построения коллектива с социальной структурой (к примеру, эмоции, языковое общение), а ее язык налагает некоторые ограничения [27].
Системы имитационного моделирования
Поскольку достаточно гибкой системы моделирования, удовлетворяющей поставленным требованиям, среди сред моделирования биологических систем не найдено, был осуществлен поиск по программам и библиотекам, позволяющим строить модели различных систем, не ограниченных выбранным типом. Подобные системы могут предоставлять поддержку моделирования среды различного уровня, в том числе симуляцию законов физики, а также пространственное представление различного уровня.
AnyLogic – это ПО для имитационного моделирования. Оно позволяет симулировать модели, построенные с использованием трех различных подходов: системная динамика, дискретно-событийное моделирование, агентное моделирование и их комбинации [28]. Среда обладает современным графическим интерфейсом, который позволяет создавать интерактивную анимацию для наглядности модели и интеграцию с геоинформационными системами, базами данных и пользовательскими библиотеками. Разработанные модели можно экспортировать в приложения на языке Java. AnyLogic использует модульную объектно-ориентированную парадигму. Помимо задания различных последовательностей взаимодействий элементов модели, в среде также можно использовать стохастические процессы для моделирования случайных событий.
Тем не менее, система предназначена в основ- ном для моделирования бизнес-процессов, логистики и производства, включая стратегические модели развития рынков и компаний, физические законы в этой среде напрямую не поддерживаются, и их необходимо самостоятельно реализовывать. Также стоит отметить, что ПО является платным, хотя есть и бесплатные версии, доступные при соблюдении определенных ограничений.
Simplex3. Система имитационного моделирования Simplex3 [29] позволяет строить дискретные модели и обладает собственным встроенным языком описания эксперимента Simplex-EDL. Simplex3 – среда разработки имитационного моделирования с собственным языком описания модели, разработанная в университетах Нюрнберг-Эрланген и Пассау (Германия), которая развивалась в течение нескольких итераций, включая предшественника Simplex2 [30]. Она позволяет строить системно-динамические и дискретно-событийные модели и расширять их с помощью языка C, но полноценной поддержки агентного моделирования в системе нет. Код системы закрытый, с намерением разработчика коммерциализировать проект, однако пока что, судя по сайту, проект требует лицензии и не предоставляет очевидного способа (кроме прямого запроса автору) получить (скачать) систему или приобрести лицензию. Поддержка продукта в виде документации и примеров весьма ограниченная, особенно на английском языке (основные работы на немецком языке [31]).
Repast – набор инструментов: библиотек и модулей интегрированной среды разработки Eclipse, позволяющий симулировать агентные модели [32]. Поддерживает языки программирования Java, Logo, C++, имеет встроенный расширяемый графический интерфейс, экспорт данных, реализует интерфейсы, позволяющие работать с рядом внешних программ, обрабатывающих и визуализирующих данные (RStudio, обработчики таблиц наподобие Excel, WEKA Data Mining Software и некоторые другие), генерирует переносимый stand-alone-код на Java, во многих случаях скрывает проблемы параллельности и синхронизации и решает их за пользователя, имеет версию для использования на вычислительных кластерах (Repast for High Perfomance Computing [33]). Графический интерфейс среды может настраиваться пользователем. Иллюстративный пример, показывающий одновременно визуализацию модели и вывод собираемых данных, приведен на рисунке 3.
Однако, несмотря на возможность удобным образом редактировать определенные элементы интерфейса, выводить графики и выбирать экспортируемые данные, в нем непросто менять интерфейс произвольным образом, добавлять нестандартное взаимодействие с элементами симуляции и дополнительные пользовательские окна и элементы интерфейса.
В Repast нет стандартизованного и поддерживаемого библиотекой способа организации взаимодействия между агентами: для общения или иных действий агентов, объектом которых выступает другой агент, необходимо вызывать методы объекта взаимодействия или редактировать его параметры напрямую. Это вызывает необходимость следить за его состоянием, учитывая возможность параллельного действия нескольких агентов на него (то есть заниматься синхронизацией, что обычно выполняется библиотекой Repast в других случаях), а также затрудняет написание двустороннего диалога (взаимодействия) между агентами, происходящего в течение одного шага симуляции. Создание модулей или надстройки над Repast возможно, однако, хотя документация и есть, поддержка этого ПО несколько ограниченная, разработка и расширение системы могут быть весьма проблематичными.
Системы симуляции роботов
Отдельно стоит упомянуть системы, предназначенные для моделирования групп роботов как наиболее приближенные к задаче построения искусственного коллектива.
Webots. Система моделирования Webots (см. [34, 35]) является кроссплатформенным (Windows, Mac и Linux) симулятором роботов с множеством возможных интеграций: MATLAB, ROS (Robotic Operating System [36]) и API для языков программирования C++, Java и Python. Webots предоставляет обширную библиотеку моделей сенсоров, интерактивную 3D-визуализацию, поддержку CAD-систем, набор роботов и окружений, библиотеку для коммуникаций между роботами и вывод данных в специальные окна. Среди имеющихся библиотек есть наиболее используемые сенсоры и исполнительные устройства: датчики света, акселерометры, камеры и некоторые другие. Основой Webots является библиотека физической симуляции ODE (Open Dynamics Engine [37]), которая позволяет симулировать динамику твердых тел. Это дает возможность определения столкновений тел, расчета сил, моментов, учета трения и многое другое. Модель робота задает необходимые параметры, позволяющие протестировать ее в симуляции среды с учетом физических эффектов, и включает в себя графические свойства, такие как форма, размер, положение и ориентация, цвет и текстура объекта. Для некоторых моделей есть возможность переноса алгоритма управления из среды разработки в реального робота. Программа является коммерческой.
Gazebo – это программа и набор библиотек, позволяющие моделировать поведение роботов с учетом физических эффектов [38]. Модель робота описывается на специальном языке SDF либо URDF, которые являются надстройкой над XML. Набор роботов и модель мира подгружаются в систему моделирования, после чего можно начинать симуляцию. Работа всегда происходит в 3D-мире. Поддерживается режим как с графическим отображением объектов, так и без него для ускорения обработки.
Основой Gazebo является физический движок, который можно при необходимости переключить перед началом симуляции. По умолчанию исполь- зуется ODE. Стандартные средства Gazebo предо- ставляют возможность моделировать силу тяжести, некоторые виды трения, динамику движения твердого тела и некоторые другие. Возможности среды можно расширить, используя готовые или написав собственные плагины. С их помощью можно как изменить или добавить физический эффект, так и ввести специфические правила поведения объектов: добавить внешне контролируемые актуаторы робота или датчик. Примерами возможностей этих расширений являются инфракрасные дальномеры, видеокамера, сервомоторы, управляемые внешними программами, встроенный в систему моделирования контроллер и даже физические эффекты передвижения в жидкости.
Несмотря на эти многочисленные достоинства, Gazebo не очень подходит для симуляции систем с большим количеством агентов из-за достаточно большой ресурсоемкости производимой обработки, поэтому моделировать работу систем с более, чем 1 000 агентов затруднительно.
ARGoS– многопоточный симулятор, ориентирующийся на поддержку большого количества роботов в различных физических средах в рамках одной симуляции. Он поддерживает как 2D-, так и 3D-моделирование [39]. Большое внимание в нем уделено модульности, в результате чего предоставляется возможность использовать разработанный код как в симуляции, так и на реальных роботах, выбирать между различными визуализациями и физическими движками, пользоваться ускорением вычислений за счет параллельного выполнения расчетов с несколькими типами синхронизации и даже совмещать несколько различных библиотек физической симуляции в одной модели мира. Помимо этого, ARGoS предоставляет симуляцию нескольких разных типов коммуникации между роботами: RFID-метки, WiFi и т.д.
ARGoS доступен в виде исходных кодов (под лицензией MIT [40]), а также готовых пакетов под MacOSX и нескольких дистрибутивов GNU/Linux. Имеется некоторая поддержка Windows. Система поддерживает пользовательские расширения. Скорость симуляции может достигать 40 % ускорения по сравнению с реальным временем для 10 000 роботов [41]. Однако, как и многие другие симуляторы, ARGoS не предоставляет особой поддержки механизмам социального взаимодействия в коллективах роботов, а его масштабируемость, судя по всему, ограничивается использованием локальных ресурсов.
Основные характеристики рассмотренных систем отображены в таблице. Эти критерии расшифровываются следующим образом: имитация физических свойств объекта – моделирование физических явлений, механических ограничений (трение, вязкость, связи между частями объекта и т.п.); реализация библиотек элементов робота – набор готовых реализаций сенсоров и актуаторов; наличие поддержки коммуникации между агентами – моделирование общения (связи) между агентами и предоставление стандартного интерфейса определения протокола и сообщений; поддержка большого количества агентов – приспособленность системы для работы с большими (порядка 1 000, 10 000) группами роботов; уровень поддержки – суммарная оценка качества пользовательской документации, уровня поддержки со стороны сообщества и разработчиков, интуитивность работы с системой, документированность кода (в случае открытого кода); поддержка вычислений на кластерах – встроенная возможность работы системы на кластере; наличие социально ориентированных библиотек – предоставление встроенных или пользовательских библиотек, реализующих хотя бы некоторые из социальных механизмов.
Еще раз отметим, что в обзор попали лишь некоторые системы, характерные для своего класса, интересные с точки зрения критериев, определенных спецификой задач социальной робототехники. Отдельно можно сказать о таких известных и часто упоминаемых системах моделирования, как Microsoft Robotics Developer Studio (MRDS) [42] и Ant Farm Simulator, которые наряду с некоторыми другими не попали в обзор, так как или относятся к одному из рассмотренных классов, или предназначены для решения других категорий задач агентного моделирования, например транспортных, логистических и т.д.
Заключение
Сравнительный анализ приведенных програм- мных продуктов показывает, что они лишь частично удовлетворяют специфике моделирования многоагентных робототехнических систем и искусственных коллективов с социальной структурой, и позволяет составить более точные требования к такой среде моделирования.
ПО моделирования биологических коллективов обладает весьма ограниченным набором возможностей и расширяемостью, а также зачастую не задумывалось как библиотека моделирования для изучения коллективного управления. Исключе- нием является модель Ants для NetLogo, но она тоже не предоставляет особых средств для реализации многих важных механизмов коллективов с социальной структурой.
Несмотря на универсальность и мощность, в средах разработки и библиотеках имитационного моделирования не хватает хотя бы некоторых из следующих элементов: индивидуальные психические различия агентов, поддержка локальной коммуникации, языковое общение, алгоритмы формирования коалиций, дифференциация функций, выделение иерархической структуры, поддержка пространственных и временных отношений.
ПО моделирования роботов больше подходит для отдельных роботов и физических эффектов, а не для систем с большим количеством агентов либо имеет те же проблемы, что и системы имитационного моделирования: специальные средства для моделирования коллективов с социальной структурой не предоставляются, что означает необходимость исследователю самостоятельно реализовывать многочисленные механизмы.
На основе проведенного обзора можно сформулировать следующие функциональные требования к библиотеке (или среде) моделирования для коллективов с социальной структурой в области робототехники:
- масштабируемость, возможность моделирования с применением вычислительных кластеров и соответствующая поддержка со стороны библиотеки (пользователь, насколько это возможно, не должен следить за распараллеливанием кода и синхронизацией);
- поддержка определенного функционала, свойственного агентным системам, и его предоставление в виде библиотек: агент, взаимодействие между агентами, среда, законы взаимодействия со средой, пространство, время;
- реализация некоторых базовых механизмов социального поведения и структур и поддержка дополнения и расширения таких механизмов, как индивидуальные психические различия, дифференциация функций и т.п.;
- поддержка создания моделей внутреннего и внешнего мира агента;
- поддержка модели из нескольких взаимодействующих коллективов.
Кроме того, выделим дополнительные технические требования, которые представляются важными для использования системы различными группами исследователей:
- предоставление инструментов или интерфейсов для интеграции кода в сторонний пользовательский графический интерфейс и визуализации данных, а также базового варианта интерфейса;
- экспорт данных в общепринятые, открытые форматы (CSV, GraphML и т.п.), позволяющие интеграцию с другими инструментами;
- открытость кода для чтения (Open source [43]), соблюдение стилей и наличие хорошей документации: хорошо описанное API, ее общее устройство (архитектура, концепции);
- открытость кода для модификации, поддержка плагинов или иных стандартных способов расширения функциональности для исправления ошибок пользователями и возможности расширения до большего класса поддерживаемых систем.
Таким образом, проведенный обзор существующих систем моделирования для изучения робототехнических коллективов с социальной структурой позволил сформулировать требования к желаемой системе и выявил неудовлетворенную потребность в наличии специализированной системы агентного моделирования, учитывающей их особенности.
Работа выполнена при частичной финансовой поддержке грантов РНФ № 16-11-00018 и РФФИ № 16-29-04412 офи_м.
Литература
1. Карпов В.Э. Модели социального поведения в групповой робототехнике // Управление большими системами. 2016. № 59. С. 165–232.
2. Захаров А.А. Муравей, семья, колония. М.: Наука, 1978. 144 с.
3. Adamatzky A., Komosinski M. (eds.). Artificial life models in software. Springer, London, 2009, no. 2, 441 p.
4. Allan R. Survey of agent based modelling and simulation tools. 2009. URL: http://www.grids.ac.uk/Complex/ABMS/ (дата обращения: 08.01.2017).
5. Kravari K., Bassiliades N. A survey of agent platforms. J. Artif. Soc. Soc. Simul., 2015, vol. 18, no. 1, p. 11.
6. Nikolai C., Madey G. Tools of the trade: a survey of various agent based modeling platforms. J. Artif. Soc. Soc. Simul., 2009, vol. 12, no. 2, p. 2.
7. Длусский Г.М. Муравьи рода формика. М.: Наука, 1967. 236 c.
8. Тинберген Н. Социальное поведение животных; [под ред. П.В. Симонова]. М.: Мир, 1993. 152 с.
9. Гудолл Д. Шимпанзе в природе: поведение. М.: Мир, 1992. 670 с.
10. Karpov V., et al. Multi-robot exploration and mapping based on the subdefinite models. Lecture Notes in Comp. Sc.: Ronzhin A., Rigol G., Meshcheryakov R. (eds.), Springer, 2016, vol. 9812, pp. 143–152.
11. Карпова И.П. Псевдоаналоговая коммуникация в группе роботов // Мехатроника, автоматизация, управление. 2016. Т. 17. № 2. С. 94–101.
12. Kulinich A.A. A model of agents (robots) command behavior: the cognitive approach. Autom. Remote Control. 2016, vol. 77, no. 3, pp. 510–522.
13. Кулинич А.А. Модель командной работы агентов с BDI архитектурой // КИИ-2016: сб. тр. XV Национальн. конф. 2016. С. 344–352.
14. Bongard J., Zykov V., Lipson H. Resilient machines through continuous self-modeling. Science, 2006, vol. 314, no. 5802, pp. 1118–1121.
15. Ровбо М.А. Распределение ролей в гетерогенном муравьино-подобном коллективе // КИИ-2016: сб. тр. XV Национальн. конф. 2016. Т. 2. С. 363–371.
16. Воробьев В.В. Алгоритм кластеризации коллектива роботов // Беспилотные транспортные средства с элементами искусственного интеллекта: сб. тр. III Всерос. науч.-практич. сем. Иннополис, 2015. С. 50–59.
17. Purushotham Muniganti, Albert Oller Pujol. A survey on mathematical models of swarm robotics. Proc. Conf. Workshop on Physical Agents. 2010. URL: https://www.researchgate.net/ publication/230793772_A_Survey_on_Mathematical_models_of_ Swarm_Robotics (дата обращения: 08.01.2017).
18. Бондаревский А.С., Лебедев А.В. Имитационное моделирование: определение, применяемость и техническая реализация // Фундаментальные исследования. 2011. № 12–3. С. 535–541.
19. Économou M., et al. Aints. 2010. URL: http://a-i-nts.blogspot.ru/2010/03/presentation-of-aints.html (дата обращения: 08.01.2017).
20. Cristiani E. MYRMEDROME. 2016. URL: http://www. emilianocristiani.it/myrmedrome/main_en.html (дата обращения: 08.01.2017).
21. Wendel T. AntMe. 2016. URL: https://service.antme.net/ (дата обращения: 08.01.2017).
22. AI Challenge Ants. 2011. URL: http://ants.aichallenge.org/ (дата обращения: 08.01.2017).
23. Cacace S., Cristiani E., D’Eustacchio D. Myrmedrome: simulating the life of an ant colony. Imagine Math 2: Between Culture and Mathematics, Springer Milan, 2013, pp. 201–210.
24. Wilensky U. NetLogo. 1999. URL: http://ccl.northwestern. edu/netlogo/ (дата обращения: 08.01.2017).
25. Wilensky U. NetLogo Ants model. 1997. URL: http://ccl.northwestern.edu/netlogo/models/Ants (дата обращения: 08.01.2017).
26. NetLogo Source Code. 2016. URL: https://github.com/ NetLogo/NetLogo (дата обращения: 08.01.2017).
27. Lytinen S.L., Railsback S.F. The evolution of agent-based simulation platforms: a review of NetLogo 5.0 and ReLogo. Eur. Meet. Cybern. Syst. Res., 2010, pp. 1–11.
28. Borshchev A. The big book of simulation modeling: multimethod modeling with AnyLogic 6. Amazon Digital Services LLC, 2015, 614 p.
29. SOI-Software. Simplex3. 2016. URL: http://www.simplex3.net/Body/Introduction/English/indexAbstract.html (дата обращения: 08.01.2017).
30. Dörnhöfer K. Die Benutzerumgebung von SIMPLEX II – Eine offene graphische Bedienoberfläche zur Erstellung und Auswertung von Simulationsmodellen. Univ. Erlangen-Nürnberg, 1991, pp. 1–336.
31. Eschenbacher P. Entwurf und Implementierung einer formalen Sprache zur Beschreibung dynamischer Modelle. Institut für Mathematische Maschinen und Datenverarbeitung, 1989, 328 s.
32. Argonne National Laboratory. Repast Simphony. 2016. URL: http://repast.sourceforge.net/repast_simphony.php# (дата обращения: 08.01.2017).
33. Argonne National Laboratory. Repast for High Performance Computing. 2016. URL: http://repast.sourceforge.net/repast_hpc.php# (дата обращения: 08.01.2017).
34. Michel O. Webots TM : Professional Mobile Robot Simulation. Int. J. Adv. Robot. Syst., 2004, vol. 1, no. 1, pp. 39–42.
35. Cyberbotics Ltd. Webots. 2016. URL: https://www.cyberbotics.com/webots.php (дата обращения: 08.01.2017).
36. ROS Indigo Igloo. 2014. URL: http://wiki.ros.org/indigo (дата обращения: 08.01.2017).
37. Smith R. Open Dynamics Engine. 2016. URL: http://www.ode.org/ (дата обращения: 08.01.2017).
38. Koenig N., Howard A. Design and use paradigms for gazebo, an open-source multi-robot simulator. 2004 IEEE/RSJ Int. Conf. Intell. Robot. Syst., 2004, vol. 3, pp. 2149–2154.
39. Pinciroli C. et al. ARGoS: A modular, parallel, multi-engine simulator for multi-robot systems // Swarm Intell. 2012, vol. 6, no. 4, pp. 271–295.
40. The MIT License (MIT). 2016. URL: https://open- source.org/licenses/MIT (дата обращения: 08.01.2017).
41. Pinciroli C. et al. ARGoS: A modular, multi-engine simulator for heterogeneous swarm robotics // IEEE Int. Conf. Intell. Robot. Syst., 2011, pp. 5027–5034.
42. Microsoft. Microsoft Robotics Developer Studio 4. 2012. URL: https://www.microsoft.com/en-us/download/details.aspx?id= 29081 (дата обращения: 08.01.2017).
43. Open Source Initiative. The Open Source Definition. 2007. URL: https://opensource.org/osd (дата обращения: 08.01.2017).