Многоязыковые возможности среды многоагентного моделирования Repast Symphony
Д.А. Тымчук, В.П. Свечкарев
Стремительное проникновение методологии многоагентного моделирования в различные отрасли научного знания столь же стремительно расширяет круг специалистов, использующих методологию для проведения исследований. В последние годы наблюдается значительный интерес к многоагентному моделированию и у российских ученых [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). Он не требует от исследователя знания языков программирования или каких-то специальных умений. Но построить серьёзную модель, используя только этот метод, не получится. Он скорее подходит для создания прототипов или быстрой проверке идей.
tjaf®- 9 fi&OOG
»^(MWotKi
Li
i 'j Hliwf
ф Hin
£ End
ПоЫмп* Ji»ail(M _ № darum SconKit О brorlog ' ■■-.«"яг в'
Мер L 1>р» InШ CffmnHM ПИЛ Otunfc« iiui Taik,
■Игр.' 1фг ih*
Sirp 1 T»pr in Тик. Still t
Siep Tipe in Тай. Step 2 'ОриучП
ilrp 1 Tre* in Тай ii« I ЮдМячи
5lrp Ь Ttp« m Tabk Игр 4 lOpCionali
Sitp 7 Tip« in Talk. Slip S lOpoeAaD
th4*4tl9t
»lift «ДО huliuni
paniWnhMüiiHurnafti - ctfl.ftcPMnrü "члСоит - csif wirU
Рисунок 1 - Блок-схема Repast Simphony
Следующим достаточно мощным средством создания моделей является ReLogo. Это обёртка библиотеки RS в семантический простой, но мощный пакет. С его помощью исследователь может быстро создать симуляцию, которая в дальнейшем очень просто может быть масштабирована. К тому же, в академических кругах в процессе обучения часто используется инструмент NetLogo [10], так что в дальнейшем обучающиеся очень просто смогут перейти к использованию промышленного инструмента при необходимости. ReLogo использует те же примитивы, что и в NetLogo: черепашки, связи, обозреватели и пат-чи. Код, написанный на ReLogo, в последствие генерирует Java код в читаемом виде.
Процесс запуска эксперимента и работа с данными
Среда моделирования и анализа представляет собой отдельную программу, в которую компилируется сама модель. Интерфейс с изменяемыми элементами управления, графиками, а также входные данные и место, куда экспортируются выходные данные - всё это настраивается по усмотрению проектировщика. Конечный пользователь сможет управлять моделью, задавать необходимые параметры и входные данные, не прибегая к изменению в исходном коде с помощью визуальных средств управления.
Для работы с данными реализовано несколько механизмов. Они могут поступать как программы, интерфейсных значений, так и из любой базы данных. Выходные данные (их вид, количество и необходимые значения) могут быть сохранены в файл, загружены в базу или же выведены сразу в виде графиков, вид которых настраивается прямо из интерфейса.
Работа с многоагентной моделью подразумевает под собой также наглядный анализ данных в виде визуальной репрезентации. Для этого в Repast Simphony встроены 2D и 3D системы визуализации, причём 3D может тесно интегрироваться с ГИС. Обе системы могут задействовать OpenGL - плат-формонезависимую библиотеку для работы с графикой. В качестве примера на рис.2 представлена в среде моделирования и анализа трёхмерная модель Земли.
Рисунок 2 - Трёхмерная модель Земли
Ещё одна встроенная функция может быть полезна исследователям и аналитикам - возможность замораживать модель в текущем состоянии. В последствие этим состоянием можно поделиться с коллегой или продолжить дальнейший эксперимент, скорректировав немного входные данные.
Дополнительные модули и приложения
Как писалось выше, модульная архитектура Repast Simphony и достаточно либеральная лицензия позволяет использовать огромное количество дополнительных приложений. Некоторые из них интегрированы в запускаемый интерфейс. В частности: JUNG (Java Universal Network/Graph Framework) - аналитическая система графов (сетей) и JoSQL - использование SQL для объектов Java. С помощью этого механизма, можно производить SQL запросы во время паузы модели. Это существенно упрощает возможности всевозможные возможности выборок.
Таким образом, для решения наиболее проблемной части многоагентного моделирования, а именно, для построения модели в программной среде, в каче -стве последней целесообразно использовать распространяемый под лицензией открытого исходного кода программный продукт Repast Simphony. Описанные выше возможности формирования модели, определения её архитектуры, проведения исследований, визуализации и т.п., соответствуют современным требованиям к средствам моделирования и значительно расширяют возможности исследователей сложных систем.
Литература:
1. Макаров, В.Л. Социальное моделирование - новый компьютерный прорыв (агент-ориентированные модели) / В. Л. Макаров, А.Р. Бахтизин. - М.: Экономика, 2013. - 295 с.
2. Современная практика социального моделирования конфликтных процессов /Под ред. Розина М.Д. - Р/Д: Изд-во СКНЦВШ ЮФУ, 2010. - 120 с.
3. Современная практика моделирования этносоциокультурной конфликтности на Юге России /Под ред. М.Д. Розина. /Авторы: Иванова М.И.,
Клаус Н.Г., Литвинов С.В., Мощенко И.Н., Носко В.И., Розин М.Д., Свечкарев В.П., Сущий С.Я., Тымчук Д.А., Угольницкий Г.А.- Р/Д: Изд-во СКНЦВШ ЮФУ, 2012. - 160 с.
4. Свечкарев, В.П., Тымчук, Д. А. Многоагентное моделирование критических социальных поведений [Электронный ресурс] // «Инженерный вестник Дона», 2010. №1. - Режим доступа: http://www.ivdon.ru/magazine/archive/n1e2010/175 (доступ свободный) - Загл. с экрана. - Яз. рус.
5. Тымчук, Д. А. Многоагентная модель социальных взаимодействий на основе групповой идентичности [Электронный ресурс] // «Инженерный вестник Дона», 2011. - №1. - Режим доступа: http://www.ivdon.ru/magazine/archive/n1y2011/402 (доступ свободный) - Загл. с экрана. - Яз. рус.
6. 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.
7. 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
8. 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
9. 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).
10. Клаус Н.Г., Свечкарев В.П. Многоагентное моделирование конфликтных ситуаций: Учебное пособие. - Ростов-на-Дону: Изд-во СКНЦ ВШ ЮФУ, 2012. - 124 с.