В данной статье рассматривается один из подходов к моделированию систем различного уровня — имитационное моделирование. Рассматривается суть метода, варианты и области использования, а также рассматривается современное программное обеспечение, позволяющее проводить различные эксперименты с использованием имитационных моделей.
Ключевые слова: имитационное моделирование, моделирование систем, AnyLogic.
This article discusses one of the approaches to modeling systems at various levels — simulation modeling. The essence of the method, options and areas of use are considered, as well as modern software that allows you to conduct various experiments using simulation models.
Keywords: simulation modeling, system modeling, AnyLogic.
Моделирование как метод изучения окружающего мира используется с давних пор. Любое графическое, табличное, программное или даже словесное представление объекта реального мира является моделью. Наибольшее распространение в экспериментально-прикладных науках получил аналитический подход к моделированию. Аналитическое моделирование есть математическая формализация изменения свойств объекта во времени.
К сожалению, не всегда аналитический подход удобен, так как он требует как физических носителей для построения модели, так и хорошей математико-аналитической базы от человека, строящего модель. В частности, для проведения моделирования «на бумаге» с различными параметрами исследуемого объекта/системы требуется произвести множество расчетов. Также некоторые задачи, поставленные перед аналитической моделью, не всегда можно решить аналитическим методом ввиду возможности возникновения каких-либо внешних воздействий на объект исследования, которые в модели учтены быть не могут [3].
В связи с данной проблематикой, в XX веке был придуман и реализован новый подход к моделированию — имитационное моделирование.
Имитационное моделирование — метод моделирования объекта/системы реального мира, позволяющий в режиме замедленного, реального или ускоренного времени проводить и наблюдать эксперименты над объектом/системой. Построенные процессы описывают модель так, как бы это происходило в действительности [1].
Имитационный подход к моделированию используют в следующих случаях [2]:
– Когда невозможно или дорого экспериментировать на реальном объекте;
– Когда построение аналитической модели невозможно ввиду ряда причин: система зависит от времени, причинных связей, случайных воздействий;
– Если необходимо провести симуляцию системы во времени;
– Если необходимо провести большое количество экспериментов.
В настоящее время выделяют три основных подхода к имитационному моделированию:
– Системная динамика;
– Дискретно-событийное моделирование;
– Агентное моделирование;
Рис. 1. Три подхода к имитационному моделированию
В зависимости от решаемой задачи можно использовать как один из этих подходов, так и их объединение. Рассмотрим подробнее каждый из подходов.
Системная динамика
Метод моделирования системной динамики возник в результате исследований Джея Форрестера в конце 1950-х годов. Дж. Форрестер исследовал зависимость эффективности деятельности предприятия от внутренних факторов, таких как организационная структура.
Данный метод реализуется при помощи описания процессов, протекающих в системе в виде дифференциальных и линейных уравнений, а также описания прямых и обратных связей между этими процессами. Часто модели системной динамики представлены в виде схемы, на которой присутствуют накопители (сумматоры, дифференциальные уравнения), динамические переменные (переменные, линейные уравнения), потоки (законы изменения) и прямые/обратные связи.
Модель, построенная данным образом, работает только с количественными показателями, вследствие чего объекты, находящиеся, например, в накопителе, неотличимы между собой по каким-либо признакам.
Одной из стандартных моделей-примеров является модель распространения нового товара на рынке (рис. 2.). Данная модель учитывает два основных фактора распространения информации о продукте: рекламу компании-производителя и рекламу клиента-обладателя продукта.
Рис. 2. Имитационная модель распространения товара
Также к моделям низкой сложности, используемым при обучении методу имитационного моделирования, относятся:
– Модель динамики населения Басса (социальные науки) [4];
– Модель пружинного маятника (естественные науки) [5];
Дискретно-событийное моделирование
Впервые метод дискретно-событийного моделирования был воплощен в 1961 году Джефри Гордоном при помощи разработанного им языка GPSS [6]. Суть подхода заключается в том, что процесс представляет собой последовательность событий, изменяющую состояние системы либо отдельных ее частей.
Данный подход часто используется для моделирования системе массового обслуживания, а также кибернетических систем, в основе которых лежит матрица состояний и функция переходов.
Одной из стандартных моделей-примеров является модель обслуживания очереди на кассе банка (магазина, авиакассы) (рис. 3.). Данная модель оперирует понятиями очереди ожидания, ресурса (кассир) и конкуренции за ресурс. Основными операциями тут являются захват ресурса (занимание кассового окна человеком), высвобождение ресурса, момент входа и покидания системы.
Рис. 3. Модель СМО «Банк»
Еще одним из простейших примеров, используемых при обучении имитационному подходу в моделировании, можно назвать дискретно-событийную модель цифровых часов (рис. 4.). Данная модель представляет из себя схему перехода системы между состояниями в зависимости от сработавшего условия (прошедшее время, либо событие нажатия кнопки).
Рис. 4. Модель и схема состояний цифровых часов
Агентное моделирование
Агентный метод имитационного моделирования считается самым новейшим. Его разработали в 90-е годы XX века в результате исследований децентрализованных систем.
Суть агентного метода в создании системы из нескольких агентов разного уровня. Каждому агенту прописывается его поведение, зависимость от действий других агентов, карта состояний. Основным отличием этого подхода является то, что не система в целом определяет поведение отдельных ее элементов, а отдельные элементы-агенты определяют поведение всей системы. В процессе моделирования агенты взаимодействуют друг с другом, что и является результатом работы агентной модели.
Данный подход широко используется для моделирования поведения систем, в которых присутствует много независимых объектов, которые могут взаимодействовать друг с другом, например: моделирование поведения пассажиропотока в аэропорту, моделирования дорожных ситуаций на перекрестках, моделирование поведения биологических агентов (вирусов) внутри тела человека.
Одной из простейших моделей-примеров, используемых для обучения агентному подходу, является модель распространения эпидемии (рис. 5.).
Рис. 5. Агентная модель распространения эпидемии
Данная модель может быть реализована всеми тремя подходами. В данном случае модель состоит из двух агентов: агента-человека и агента верхнего уровня. Для агента-человека задана следующая диаграмма переходов между состояниями в зависимости от событий взаимодействия с другими агентами и прошедшего времени моделирования:
Рис. 6. Схема состояний агента «Человек»
Внутри агента же верхнего уровня (рис. 5.) располагаются элементы управления, влияющие на вероятность происхождения события заражения.
Методы реализации имитационных моделей
В статье приведены изображения с примерами имитационных моделей, разработанных в специальной среде для имитационного моделирования AnyLogic [7]. Однако, это далеко не единственный вариант создания имитационных моделей.
В силу универсальности имитационного подхода к моделированию, реализовать одну и ту же модель можно как любым из трех подходов, так и с использованием различного программного обеспечения. Наиболее распространенным программным обеспечением для моделирования являются:
– MATLAB Simulink — программный комплекс, позволяющий как производить сложные аналитические построения и расчеты, так и строить имитационные модели. Недостатком является проприетарность ПО.
– AnyLogic — программное обеспечение для графического задания имитационных моделей, основанных так или иначе на агентном подходе и использующее язык программирования Java. Возможно использование любой комбинации подходов к имитационному моделированию. Доступна полноценная бесплатная образовательная версия.
– С++/Python (или любой другой высокоуровневый ЯП). Любую модель, в том числе и имитационную возможно запрограммировать на любом языке программирования высокого уровня. Для создания моделей системной динамики потребуется хорошая математическая база; для создания дискретно-событийной модели потребуется развитое логическое мышление, так как они строятся при помощи условных блоков «if … then … else...»; для создания агентных моделей потребуются знания объектно-ориентированного подхода к программированию, так как понятие агента очень близко понятию класса.
Особым преимуществом имитационного подхода к моделированию служит возможность сколько угодно много раз проводить эксперименты, изменяя любое количество параметров, в том числе, параллельно.
Вывод
Обобщая вышеизложенную информацию, можно сделать следующие выводы:
Во-первых, метод имитационного моделирования является одной из «прорывных» технологий, так как позволяет существенно ускорить проведение экспериментов и уменьшить затраты на их материальную составляющую.
Во-вторых, метод имитационного моделирования является универсальным подходом к моделированию абсолютно любых систем из любой области знаний. В том числе: для проведения моделирования лабораторных экспериментов, для моделирования процессов макро- и микромира, для моделирования производственных процессов, для моделирования поведения биологических объектов, как единичных, так и множественных.
В-третьих, имитационный подход к моделированию легок в восприятии и освоении. По нему доступно много материалов, в том числе в открытых источниках, а спроектировать и реализовать имитационную модель возможно при помощи простейших инструментов, доступных любому, знающему основные принципы программирования.
Литература:
- Т. И. Алиев «Основы моделирования дискретных систем» — ИТМО, Санкт-Петербург, 2009. — 363 с.;
- Электронный ресурс «Имитационное моделирование»: «https://studopedia.ru/5_32577_imitatsionnoe-modelirovanie.html» [02/02/2021];
- М. С. Эльберг «Имитационное моделирование»: учеб. пособие / М. С. Эльберг, Н. С. Цыганков. — Красноярск: Сиб. фед. ун-т, 2017. — 128 с.
- Соколов С. В. «Модели динамики популяций»: учеб. пособие. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2018. 61 с.;
- Куприяшкин, А.Г. «Основы моделирования систем»: учеб. пособие / А. Г. Куприяшкин; Норильский индустр. ин-т. — Норильск: НИИ, 2015. — 135 с.
- Электронный ресурс «Подходы имитационного моделирования»: « https://studwood.ru/1586990/informatika/podhody_imitatsionnogo_modelirovaniya « [01.02.2021];
- «AnyLogic»: « https://www.anylogic.ru « [02.02.2021].