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

Чтобы анализировать процессы, протекающие в мире, иногда удобно рассматривать их как последовательность отдельных важных моментов – событий. Подход к построению имитационных моделей, предлагающий представить реальные действия такими событиями и называется "дискретно-событийным" моделированием (discrete event modeling).Discrete Event Modeling

Вот некоторые примеры событий: покупатель вошел в магазин, на складе закончили разгружать грузовик, конвейер остановился, в производство запущен новый продукт, уровень запасов достиг некоего порога и т.д. В дискретно-событийном моделировании движение поезда из точки А в точку Б будет представлено двумя событиями: отправление и прибытие, а само движение становится "задержкой" (интервалом времени) между ними. Это, однако, не означает, что вы не сможете показать поезд в движении - как раз наоборот, AnyLogic позволяет создавать визуально непрерывные анимации для логически дискретных процессов.

Термин "дискретно-событийное моделирование", однако, обычно используется в более узком смысле для обозначения "процессного" моделирования, где динамика системы представляется как последовательность операций (прибытие, задержка, захват ресурса, разделение, ...) над некими сущностями (entities, по-русски - транзакты, заявки), представляющими клиентов, документы, звонки, пакеты данных, транспортные средства и т.п. Эти сущности пассивны, они сами не контролируют свою динамику, но могут обладать определёнными атрибутами, влияющими на процесс их обработки (например, тип звонка, сложность работы) или накапливающими статистику (общее время ожидания, стоимость). Процессное моделирование используется на среднем или низком уровне абстракции: каждый объект моделируется индивидуально, как отдельная сущность, но множество деталей "физического уровня" (геометрия, ускорения/замедления) опускается. Такой подход широко используется в моделировании бизнес-процессов, производства, логистики, здравоохранения и т.д.

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

Библиотека Process Modeling Library

Основное средство процессного моделирования в AnyLogic - это библиотека Process Modeling Library. В эту библиотеку вошли объекты для определения "потока" процесса (process workflow): Source (источник), Sink (выход из системы), Delay (задержка), Queue (очередь), Service (обслуживание), SelectOutput (выбор пути), и т.д., а также задействованных в процессе ресурсов. Все объекты гибкие и настраиваемые: параметры могут изменяться динамически, действия могут зависеть от атрибутов заявок, и т.д. Объекты имеют "точки расширения" типа onEnter/onExit - это места, где можно определить действия, производимые над заявками при их прохождении через объект. Компоненты модели, построенные из блоков библиотеки Process Modeling Library могут естественным образом взаимодействовать с компонентами системной динамики, с агентами или с низкоуровневыми примитивами AnyLogic - картами состояний и событиями.

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

Библиотека Process Modeling Library тесно интегрирована с анимационными средствами AnyLogic и позволяет анимировать процессы любой сложности, в том числе иерархические и с несколькими 2D или 3D перспективами. Например, можно смотреть на процесс производства глобально, визуализируя только высокоуровневые процессы, а можно детально анимировать конкретные операции.

Сетевое моделирование

В Process Modeling Library также входят объекты, разработанные для моделирования процессов, происходящих в пространстве: таких, где объекты-заявки и ресурсы перемещаются в некой сети. Это подмножество объектов значительно упрощает моделирование некоторых типов систем, например, производства, внутризаводской логистики, супермаркета, склада, госпиталя. Для использования этого подхода, называемого сетевым моделированием (Network Based Modeling), нужно определить топологию сети, множества ресурсов, и собственно процесс. Процесс в данном случае - это комбинация объектов типа "переместиться" или "присоединить ресурс" и обычных объектов, задающих бизнес-процесс. Заявки и ресурсы автоматически анимируются движущимися по сегментам сети или находящимися в её узлах; эта анимация может также комбинироваться с обычной.

Process Flow in AnyLogic