Одним из перспективных направлений научных исследований является моделирование постоянно изменяющихся и развивающихся во времени дискретно-непрерывных структур. К числу самых сложных структур такого типа относятся экосистемы, включающие динамически изменяемое множество территориально распределенных активных, постоянно взаимодействующих друг с другом агентов (субъектов) и пассивных объектов. Основными задачами исследований таких систем являются прогноз развития экосистем, а также анализ результатов различного типа внешних воздействий. К числу эффективных методов исследования экосистем относится имитационное моделирование. Большое разнообразие типов объектов и субъектов, их внутренних процессов, а также способов их взаимодействия предъявляет особые требования к языкам и средствам имитационного моделирования таких систем. К числу известных программных средств (ПС) для моделирования дискретно-непрерывных систем относятся MATLAB Stateflow/Simulink [1] и AnyDynamics [2].
Целью данной работы является сравнительный анализ указанных ПС с точки зрения возможностей их использования для построения моделей социальных территориально распределенных систем, являющихся частными случаями экосистем. Для достижения поставленной цели необходимо определить номенклатуру показателей, произвести анализ и сравнение ПС в соответствии с этими показателями и сформулировать соответствующие выводы.
Материалы и методы исследования
В качестве исходной информации для определения номенклатуры и значения показателей ПС использовались: документация на ПС [1, 2], результаты собственных исследований [3, 4] и стандарт Continuous System Simulation Language (CSSL) [5], описывающий общие требования к языкам имитационного моделирования. В [3, 4] показано, что для построения моделей обществ, включающих динамически изменяемое множество пассивных объектов и активных, постоянно взаимодействующих друг с другом агентов, удобно использовать модели множества взаимодействующих гибридных автоматов (ГА). Поэтому в качестве дополнительных требований к инструментальным средствам рассматриваются также возможности языков рассматриваемых ПС по определению графов и условий переходов между состояниями объектов, а также непрерывных процессов в каждом из состояний. Стандарт CSSL для языков моделирования систем был разработан в 1968 г. Этот стандарт используется и в настоящее время [6] и оказывает существенное влияние на развитие языков и систем моделирования.
Результаты исследования и их обсуждение
Для сравнения ПС из стандарта CSSL выбраны возможности инструментов ИМ, которые существенны для представления коллективного поведения сложных ГА:
SC – моделирование на основе диаграмм состояний в текстовом и графическом представлении;
DAE – дифференциальные алгебраические уравнения (ДАУ);
IR – снижение индекса (порядка) ДАУ;
ED – представление событийно-управляемых процессов;
SD – декомпозиция динамических систем;
PM – текстовое и графическое компонентное моделирование физических систем;
VIS – визуализация симуляции модели.
Рассмотрим соответствие возможностей каждой из сравниваемых ПС по стандарту CSSL.
SC: Пакет Simulink используется для создания блоковых динамических моделей, а пакет Stateflow – для изменений состояния, управляемых событиями, которые описываются диаграммой состояния (рис. 1а). Основой AnyDynamics [7], так же как и Stateflow, являются гибридные диаграммы состояний, которые позволяют в единой форме описать сложное, многорежимное поведение, используя описания локальных поведений (режимов) – кусочно-непрерывных динамических систем, алгоритмы смены поведений и алгоритмы обработки и формирования новых данных при переходе к очередному режиму (рис. 1б). Следует отметить, что представление сложного графа переходов ГА в Stateflow выглядит сложнее по сравнению с AnyDynamics.
DAE: Дифференциальные алгебраические уравнения можно представлять как функциями в MATLAB, так и блоками в Simulink (рис. 2). Аналогичный функционал имеет AnyDynamics (рис. 3).
IR: AnyDynamics может самостоятельно решать системы дифференциальных алгебраических уравнений и понижать их порядок [2], для этого нужно сформировать систему из объектов класса и указать анализатору тип системы уравнений и искомые переменные. У Simulink-Stateflow такой функционал отсутствует.
ED: Simulink/Stateflow и AnyDynamics могут представлять последовательно-параллельные процессы.
SD: Оба пакета поддерживают структурную декомпозицию. Однако пакеты Simulink/Stateflow могут работать только с заданным числом элементом и не позволяют реализовать динамическое изменение структуры объекта, т.е. в них отсутствует возможность добавления элементов прямо во время выполнения модели. Инструмент AnyDynamics поддерживает изменение структуры системы в процессе моделирования, создание новых экземпляров объектов и их удаление из модели во время симуляции, а также позволяет динамически создавать и ликвидировать потоки ресурсов между компонентами модели (рис. 4).
Рис. 1. Пример блоковой динамической модели: а) Stateflow б) AnyDynamics
Рис. 2. Блочное представление ДАУ в Simulink
Рис. 3. Представление ДАУ в математическом редакторе в AnyDynamics
Рис. 4. Фрагмент модели в AnyDynamics, в которой создается новый экземпляр продукта
PM: AnyDynamics предоставляет возможность выполнять многокомпонентное моделирование физических систем [8] благодаря языку Model Vision Language (MVL), который базируется на концепции активного объекта языка UML. В пакетах Simulink/Stateflow отсутствует возможность сборки моделей из компонентов, представленных ГА.
VIS: У обоих пакетов имеется широкий набор инструментов визуализации процесса симуляции модели, таких как динамическая визуализация значений переменных, построение диаграмм, 2D- и 3D-анимация, динамическая визуализация структуры численно решаемой системы уравнений и т.д.
Справедливости ради нужно отменить, что все возможности, отсутствующие в пакетах Simulink/Stateflow, можно восполнить при помощи других пакетов MATLAB. Например, в Simscape присутствует возможность моделирования физических систем. Однако расширение списка используемых пакетов MATLAB повышает сложность процесса разработки и отладки модели по сравнению с AnyDynamics, где все функции сосредоточены в одном пакете.
Рассмотрим ряд дополнительных характеристик ПС, существенных с точки зрения выбора инструмента для разработки модели социального общества, основанной на гибридных автоматах:
SS – скорость симуляции;
GEN – возможность начальной генерации больших множеств различных классов агентов и объектов;
RI – наличие простых средств описания процессов установления отношений и взаимодействия между агентами общества;
RUS – возможность использования русского языка при разработке модели;
LIC – стоимость и условия лицензии на пакеты.
SS: Модели социальных сообществ обычно включают большое количество агентов, что предъявляет высокие требования к скорости симуляции. Последняя зависит от того, исполняется ли модель интерпретатором (медленно) кода или компилятором (быстрее). В AnyDynamics встроен компилятор модели, и все эксперименты проводятся с предварительным преобразованием модели в исполняемый код. В Simulink используется интерпретатор, но при желании для получения исполняемого кода нужно воспользоваться специальным приложением Compiler.
GEN: В AnyDynamics встроена возможность определения количества однотипных объектов модели, обладающих разными случайными характеристиками, что позволяет просто масштабировать эксперименты моделью. В MATLAB проведение таких экспериментов затруднено.
RI: В AnyDynamics, в отличие от Stateflow/Simulink, имеются специальные конструкции языка (broadcast send), которые могут быть использованы для динамического установления отношений и моделирования процессов дистанционной передачи информации между агентами.
RUS: Еще одним преимуществом AnyDynamics с точки зрения русскоязычной аудитории, является возможность использования в модели русского языка (рис. 5).
LIC: Стоимость и тип лицензии на использование пакета прикладных программ MATLAB для юридических лиц зависят от целей использования. Лицензия у MATLAB бывает двух типов: годовая и бессрочная. В первом случае лицензия предоставляется в виде ежегодной подписки на продукт. Во втором случае лицензия оплачивается единоразово. Стоимость бессрочной лицензии выше годовой в несколько раз. Каждый пакет MATLAB приобретается отдельно. Основная программа MATLAB имеет цену: бессрочная лицензия – 550 долларов, годовая – 275 долларов. Согласно информации на официальном сайте, у среды моделирования AnyDynamics лицензия одного типа – бессрочная. Она покупается один раз и не имеет срока. А также имеется бесплатная лицензия для использования среды в ознакомительных, образовательных и иных некоммерческих целях [2].
Рис. 5. Модель компонента-генератора энергии в AnyDynamics
Таблица 1
Сравнение возможностей ПС для имитационного моделирования развития территориально распределенных социальных систем
SC-T |
DAE |
IR |
ED |
SD |
PM |
VIS |
SS |
GEN |
RI |
RUS |
|
Simulink-Stateflow |
+ |
+ |
– |
+ |
– |
– |
+ |
– |
– |
– |
– |
AnyDynamics |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Результаты сравнения программных средств представлены в таблице 1.
Выводы
На основе сравнения возможностей двух ПС для моделирования, симуляции и анализа территориально распределенных социальных динамических систем можно сделать следующие выводы. Несмотря на то что MATLAB Simulink-Stateflow широко распространен в университетах ведущих научных держав, в исследовательских центрах и компаниях, он является не самым рациональным выбором при построении моделей социальных динамических систем. Так, например, при освоении функционала интуитивно понятным является AnyDynamics, а для освоения MATLAB приходится читать множество страниц документации. Также в MATLAB отсутствует ряд функций, которые есть по умолчанию в AnyDynamics. Важной характеристикой продукта для потребителей представляется стоимость лицензии, что не является плюсом ПС MATLAB, тем более если требуется восполнить отсутствующие функции другими пакетами MATLAB, а на такие пакеты приходится покупать лицензию отдельно. Таким образом, следует признать, что при выборе средства разработки имитационных моделей территориально распределенных непрерывно-дискретных социальных систем предпочтительным по сравнению с ПС MATLAB Simulink-Stateflow является использование ПС AnyDynamics.