Методы имитационного моделирования

Методы имитационного моделирования

Существующие методологии имитационного моделирования

Имитационное моделирование – широкая сфера с огромным количеством прикладных областей, в каждой из которых существуют свои приемы моделирования. Здесь можно выделить четыре основные парадигмы моделирования, то есть четыре основные системы взглядов, подходов и концепций, используемых в качестве каркаса при построении моделей:

  • динамические системы;
  • системная динамика;
  • дискретно-событийное моделирование;
  • мультиагентные системы.

С точки зрения классификации систем, в рамках динамических систем и системной динамики осуществляется оперирование непрерывными во времени процессами, а при использовании дискретно-событийного и мультиагентного подходов – дискретными. Каждая из перечисленных парадигм может быть отнесена к различным уровням абстракции, отвлечения от объекта моделирования, степени детализации при его описании. Динамические системы имеют низкий уровень абстракции, системная динамика, наоборот, предполагает высокий уровень отвлечения при описании системы. Дискретно-событийные системы могут быть классифицированы как системы со средним уровнем абстрагирования от объекта моделирования, а мультиагентное моделирование может быть применено для описания систем при любом уровне детализации.

Дискретно-событийное моделирование

Идея моделирования систем с дискретными событиями была сформулирована в 60-х годах прошлого столетия Джеффри Гордоном (Geoffrey Gordon) и реализована в среде моделирования GPSS (General Purpose Simulation System – система моделирования общего назначения). GPSS по праву считается языком, который сделал моделирование практической деятельностью, доступной широким массам программистов.

Язык GPSS ввел в моделирование парадигму потокового или сетевого моделирования (flowchart или network-based modeling). В соответствии с этой парадигмой поток сущностей (транзакций) продвигается по структурной диаграмме, представляющей систему. Транзакции ожидают в очередях, конкурируют за использование ресурсов и блоков, осуществляющих их обработку (обслуживание), и в конце покидают систему. Структура системы представляется блок-схемой – блоками и их направленными связями.

Существуют две противоположные трактовки транзакций и блоков. Согласно первой, транзакции являются активными сущностями, поскольку именно они передвигаются по системе, а блоки являются пассивными объектами, поскольку они никуда не передвигаются, а обрабатывают транзакции, оставаясь на месте. Другая трактовка рассматривает именно транзакции как пассивные сущности, поскольку они не обладают поведением, а подвергаются изменениям в блоках, которые, в свою очередь, являются активными сущностями (именно они обладают поведением). 

Важно отметить, что любую дискретно-событийную модель можно рассматривать по сути как глобальную схему обработки заявок, в основе программной реализации которой заложен алгоритм продвижения заявок через блоки. Причем в таких моделях обычно присутствуют стохастические элементы, выражающиеся в случайном времени задержки и случайных моментах поступления заявок в систему.

Пример дискретно-событийной модели в AnyLogic Лог операций дискретно-событийной модели в AnyLogic Статистика дискретно-событийной модели в AnyLogic

Системная динамика

Данный подход был разработан и предложен Джеем Форрестером (Jay Forrester) в конце 50-х годов прошлого века как «исследование информационных обратных связей в промышленной деятельности с целью показать как организационная структура, усиления (в политиках) и задержки (в принятии решений и действиях) взаимодействуют, влияя на успешность предприятия». Область приложения системной динамики также включает социальные, урбанистические, экологические системы. Процессы, происходящие в реальном мире, в рамках данного подхода представляются в терминах накопителей (stocks), потоков между этими накопителями (flows) и информации, которая определяет величину этих потоков. 

Системно-динамическая модель может быть разработана с использованием специальной графической нотации, основные компоненты которой перечислены выше. Но идентичная модель может быть записана системой интегрально-дифференциальных уравнений, являющейся по сути математической моделью системы, описанной в терминах системной динамики.

Графическая нотация для моделирования всех компонентов системы и их взаимосвязей делают системную динамику очень удобным инструментом визуального представления всей системы, организации в целостном виде. Системная динамика представляет сегодня парадигму, метод и графический язык для представления моделей сложных систем, а также для их имитационного компьютерного выполнения. Сложные связи и взаимные влияния процессов часто встречаются в бизнесе, экологии, социальных системах, урбанистике и т. п. Системная динамика оказалась очень эффективным методом для представления и анализа динамики организационных систем (таких как анализ рынка, управление проектами, управление цепочками поставок), она дает исследователю понимание эффекта, который производит на систему изменение тех или иных параметров, позволяет сравнить альтернативные решения по управлению системой с выбором наилучшего решения. 

Пример системно-динамической модели в VenSim

Динамические системы

Пример динамической системы

Динамические системы – это сложные объекты, поведение которых описывается системами алгебраических и дифференциальных уравнений, а также событиями, меняющими либо среду, либо модель, либо даже саму структуру системы. К этому классу относятся системы управления, физические и механические объекты, объекты химической технологии, системы обработки сигналов и т. п.

Для моделирования динамических систем используется метод построения структурных схем из программных решающих блоков (аналогичных аппаратным блокам компьютеров: источников тока, интеграторов, усилителей, сумматоров, умножителей). Такая блочная структура системы собирается из стандартных блоков библиотеки какого-либо специального программного средства, а затем по этой структуре автоматически строится система уравнений, решаемая с помощью численных методов на компьютере.

Подобные блок-диаграммы удобны для быстрого построения небольших структур, но наглядности и удобства в таких схемах нет. Поэтому в некоторых программных продуктах алгебро-дифференциальные уравнения, описывающие поведение сложной динамической системы, представляются в форме Коши. Такие выражения анализируются программой и решаются так же, как и в случае структурных схем, с применением численных методов. 

Мультиагентное моделирование

Существует множество определений понятия агента. Общим во всех этих определениях является то, что агент – это некоторая сущность, которая обладает активностью, автономным поведением, может принимать решения в соответствии с некоторым набором правил, может взаимодействовать с окружением и другими агентами, а также может изменяться (эволюционировать). Многоагентные модели используются для исследования децентрализованных систем, динамика функционирования которых определяется не глобальными правилами и законами, а наоборот, эти глобальные правила и законы являются результатом индивидуальной активности членов группы. Цель агентных моделей – получить представление об этих глобальных правилах, общем поведении системы, исходя из предположений об индивидуальном, частном поведении ее отдельных активных объектов и взаимодействии этих объектов в системе. 

Агентная модель, созданная с применением одного из многочисленных программных средств, в большинстве случаев представляет собой программный код, в котором переменные определяют состояния агентов, а алгоритмы – его поведение и взаимодействие с внешней средой. Кроме того, агент может быть описан с использованием карт состояний.

Пример архитектуры многоагентной имитационной модели

Существует два типа имитационных моделей – непрерывные и дискретные.

Непрерывные модели используются для систем, поведение которых изменяется непрерывно во времени. Непрерывные имитационные модели обычно представляются в виде разностно-дифференциальных уравнений, которые описывают взаимодействие между различными элементами системы.

Дискретные модели имеют дело с системами, поведение которых изменяется лишь в заданные моменты времени. Те моменты времени, в которые в системе происходят изменения, определяют события модели. То, что эти события происходят в дискретные моменты, указывает, что процесс протекает в дискретном времени, откуда и появилось название дискретное моделирование.

Текущий тренд на рынке программного обеспечения для имитационного моделирования – комбинирование различных методов в одном инструменте. AnyLogic – пионерское программное обеспечение, которое использует сразу три из четырёх описанных выше методов, называя эту комбинацию – многоподходное моделирование. В PowerSim помимо системной динамики встроен аппарат дискретного-событийного моделирования, а в процессный инструмент Extend – системная динамика.