Многоязыковые возможности среды многоагентного моделирования Repast SImphony
Аннотация
Дата поступления статьи: 19.11.2013В статье рассматривается инструмент для разработки, симуляции и анализа многоагентных моделей – Repast Simphony. Проводится исследование как самого инструмента, так и способов создания моделей. Рассмотрены наиболее интересные дополнительные возможности среды исполнения модели в Repast.
Ключевые слова: агентная модель, агентное моделирование, Repast Simphony, open source
05.13.01 - Системный анализ, управление и обработка информации (по отраслям)
Стремительное проникновение методологии многоагентного моделирования в различные отрасли научного знания столь же стремительно расширяет круг специалистов, использующих методологию для проведения исследований. В последние годы наблюдается значительный интерес к многоагентному моделированию и у российских ученых [1-3]. Среди других важных при освоении новой методологии вопросов отметим для себя и рассмотрим далее в настоящей статье проблему выбора программной среды для многоагентного моделирования. На данный момент существует несколько продуктов для многоагентного моделирования с различными вариантами распространения и лицензирования. Но среди всего этого многообразия, есть очень гибкий инструмент, в основу которого изначально было заложена возможность его использования исследователями с разным уровнем подготовки и знаний – Repast. Имеются и соответствующие примеры проведения исследований в данной среде и в России (например, [4, 5])
В начале 2000-х в университете Чикаго исследователями и разработчиками Sallach, Collier и др. [6] был разработан пакет Repast 3 – семейство библиотек для многоагентного моделирования: Repast J основано на JAVA, Reapast .NET как видно из названия базируется на C# и NQP (подмножество языка Python) и является основой для Reapst Py. Эти библиотеки распространяются под лицензией «new BSD» (Berkley Software Distribution). В дальнейшем эти разработки были расширены и улучшены Национальной Лабораторией Аргон (Argonne National Laboratory). Так как Repast распространяется под лицензией открытого исходного кода, в его разработке участвует несколько университетов, организаций и просто заинтересованные специалисты.
В последствие, основываясь на опыте эксплуатирования этих трёх библиотек, был создан Repast Simphony (RS). Он был переписан заново и использует полностью свою кодовую базу. RS проектировался с сильным фокусом на хорошо учтённые абстракции. В итоге получился инструмент с модульно-ориентированной архитектурой, которая позволяет любую часть (сетевые компоненты, система логирования и т.п.) заменить на другую. Также модульная архитектура позволяет наращивать функционал практически на любом слое взаимодействия компонентов без переписывания основной кодовой базы.
Сообщество Repast Simphony с каждым годом набирает обороты, что особенно видно в последние годы (выпущена новая версия, участие в летней школе Google с моделями, написанными на Repast и т.д.). Вот лишь несколько наиболее интересных вариантов промышленного применения RS в разных областях исследований.
Лаборатория изучения виртуального рынка является крупномасштабной моделью рынков потребления, построенной в сотрудничестве Национальной Лабораторией Аргон и корпорацией Procter & Gamble (P&G). Она представляет покупательское поведение потребителей, бизнеса розничной торговли и производителей в симулированном национальном рынке. Аргон и P&G успешно скалибровали, верифицировали и подтвердили результаты многоагентной модели. В ней было задействовано огромное количество реальных данных, по которым были проведено более 60-ти модульных тестов для подтверждения модели на истории. В последствие P&G использует модель для принятия управленческих решений в сложных ситуация для уменьшения финансовых потерь [7].
Мониторинг, анализ и диагностика распределённых процессов в многоагентных системах (MADCABS). Эта модель создавалась для изучения процессов и контроля в сложных сетях. MADCABS использовался в многих разработках и исследованиях для изучения эффективности персептрон-ориентированного обучения для изучения процессов сетей распределённых химических реакций [8].
Модель транспорта на водороде для Лос-Анджелеса, Калифорния. Эта модель построена на базе ГИС, где основные агенты – водители и инвесторы. Построена модель всего трафика, видов распределение видов транспорта, достатка водителей, количества заправок и т.п. Модель позволяет выстраивать сценарий для водородных заправок и просчёт инвестиций в нужные районы для их постройки [9].
Процесс построения моделей в RS
В Repast Simphony реализовано несколько вариантов создания модели:
- Java или Groovy (подмножество языка Java) проект;
- ReLogo. Язык примитивов агентного моделирования;
- Блок-схемы.
ReLogo и блок-схемы генерируют, в конечном счете, проект на Java. Так что по сути, можно работать со всеми тремя вариантами, начиная от прототипирования на блок-схемах или ReLogo и более тонкой настройки впоследствии исходного кода. Также можно использовать огромную библиотеку Java приложений, в которой собраны десятки тысяч готовых решений для практически любых задач.
Repast Simphony состоит из двух частей: среда разработки и среда моделирования и анализа. Среда разработки Repast построена на базе Eclipse – популярной свободной интегрированной среды разработки модульных кроссплатформенных приложений. Eclipse служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить его своими модулями. На данный момент существует огромное количество готовых модулей, которые существенно облегчают написание программ, их тестирование, отладку, совместную работу и т.п. Также существуют модули для работы с GIS, базами данных, математическими вычислениями. Eclipse является платформо-независимой и может быть запущена практически в любой операционной системе (Windows, OSX, Linux).
Самый простой способ описания модели – это блок-схемы (см.рис.1). Он не требует от исследователя знания языков программирования или каких-то специальных умений. Но построить серьёзную модель, используя только этот метод, не получится. Он скорее подходит для создания прототипов или быстрой проверке идей.
Следующим достаточно мощным средством создания моделей является ReLogo. Это обёртка библиотеки RS в семантический простой, но мощный пакет. С его помощью исследователь может быстро создать симуляцию, которая в дальнейшем очень просто может быть масштабирована. К тому же, в академических кругах в процессе обучения часто используется инструмент NetLogo [10], так что в дальнейшем обучающиеся очень просто смогут перейти к использованию промышленного инструмента при необходимости. ReLogo использует те же примитивы, что и в NetLogo: черепашки, связи, обозреватели и патчи. Код, написанный на ReLogo, в последствие генерирует Java код в читаемом виде.
Процесс запуска эксперимента и работа с данными
Среда моделирования и анализа представляет собой отдельную программу, в которую компилируется сама модель. Интерфейс с изменяемыми элементами управления, графиками, а также входные данные и место, куда экспортируются выходные данные – всё это настраивается по усмотрению проектировщика. Конечный пользователь сможет управлять моделью, задавать необходимые параметры и входные данные, не прибегая к изменению в исходном коде с помощью визуальных средств управления.
Для работы с данными реализовано несколько механизмов. Они могут поступать как программы, интерфейсных значений, так и из любой базы данных. Выходные данные (их вид, количество и необходимые значения) могут быть сохранены в файл, загружены в базу или же выведены сразу в виде графиков, вид которых настраивается прямо из интерфейса.
Работа с многоагентной моделью подразумевает под собой также наглядный анализ данных в виде визуальной репрезентации. Для этого в Repast Simphony встроены 2D и 3D системы визуализации, причём 3D может тесно интегрироваться с ГИС. Обе системы могут задействовать OpenGL – платформонезависимую библиотеку для работы с графикой. В качестве примера на рис.2 представлена в среде моделирования и анализа трёхмерная модель Земли.
Ещё одна встроенная функция может быть полезна исследователям и аналитикам – возможность замораживать модель в текущем состоянии. В последствие этим состоянием можно поделиться с коллегой или продолжить дальнейший эксперимент, скорректировав немного входные данные.
Дополнительные модули и приложения
Как писалось выше, модульная архитектура Repast Simphony и достаточно либеральная лицензия позволяет использовать огромное количество дополнительных приложений. Некоторые из них интегрированы в запускаемый интерфейс. В частности: JUNG (Java Universal Network/Graph Framework) – аналитическая система графов (сетей) и JoSQL – использование SQL для объектов Java. С помощью этого механизма, можно производить SQL запросы во время паузы модели. Это существенно упрощает возможности всевозможные возможности выборок.
Таким образом, для решения наиболее проблемной части многоагентного моделирования, а именно, для построения модели в программной среде, в качестве последней целесообразно использовать распространяемый под лицензией открытого исходного кода программный продукт Repast Simphony. Описанные выше возможности формирования модели, определения её архитектуры, проведения исследований, визуализации и т.п., соответствуют современным требованиям к средствам моделирования и значительно расширяют возможности исследователей сложных систем.
Литература:
- Макаров, В.Л. Социальное моделирование – новый компьютерный прорыв (агент-ориентированные модели) / В.Л. Макаров, А.Р. Бахтизин. – М.: Экономика, 2013. – 295 с.
- Современная практика социального моделирования конфликтных процессов /Под ред. Розина М.Д. – Р/Д: Изд-во СКНЦВШ ЮФУ, 2010. – 120 с.
- Современная практика моделирования этносоциокультурной конфликтности на Юге России /Под ред. М.Д. Розина. /Авторы: Иванова М.И., Клаус Н.Г., Литвинов С.В., Мощенко И.Н., Носко В.И., Розин М.Д., Свечкарев В.П., Сущий С.Я., Тымчук Д.А., Угольницкий Г.А.– Р/Д: Изд-во СКНЦВШ ЮФУ, 2012. – 160 с.
- Свечкарев, В.П., Тымчук, Д.А. Многоагентное моделирование критических социальных поведений [Электронный ресурс] // «Инженерный вестник Дона», 2010. №1. – Режим доступа: http://www.ivdon.ru/magazine/archive/n1e2010/175 (доступ свободный) – Загл. с экрана. – Яз. рус.
- Тымчук, Д.А. Многоагентная модель социальных взаимодействий на основе групповой идентичности [Электронный ресурс] // «Инженерный вестник Дона», 2011. – №1. – Режим доступа: http://www.ivdon.ru/magazine/archive/n1y2011/402 (доступ свободный) – Загл. с экрана. – Яз. рус.
- Collier N, Howe T, North MJ: Onward and upward: The transition to Repast 2.0. In Proceedings of the first annual North American Association for Computational Social and Organizational Science conference. Edited by Carley K. Carnegie Mellon University, Pittsburgh; 2003.
- North MJ, Macal CM, St. Aubin J, Thimmapuram P, Bragen M, Hahn J, Karr J, Brigham N, Lacy ME, Hampton D: Multi-scale agent-based consumer market modeling. Complexity 2010, 15(5):37-47
- Artel A, Teymour F, North MJ, Cinar A: A multi-agent approach using perceptron-based learning for robust operation of distributed chemical reactor networks. Int Sci J Eng App Artif Intell 2011, 24:1035-1045
- Mahalik, M., G. Conzelmann, C. Stephan, M. Mintz, T. Veselka, G. Tolley, and D. Jones, Transition to Hydrogen Transportation Economy , Poster presentation at the National Hydrogen Association Annual Conference: Ramping up Commercialization, Sacramento, CA (March 30 – April 3, 2008).
- Клаус Н.Г., Свечкарев В.П. Многоагентное моделирование конфликтных ситуаций: Учебное пособие. – Ростов-на-Дону: Изд-во СКНЦ ВШ ЮФУ, 2012. – 124 с.