Перед современными предприятиями часто встает задача оптимизации технологических процессов. Метод функционального моделирования позволяет обследовать существующие бизнес-процессы, выявить их недостатки и построить идеальную модель деятельности предприятия. Построение функциональной модели осуществляется от общего к частному - сначала описывается общая схема деятельности предприятия, затем шаг за шагом все более и более подробно описываются конкретные технологические процессы. Такой подход весьма эффективен, однако на уровне наибольшей детализации, когда рассматриваются конкретные технологические операции, для оптимизации этих операций функциональной модели может оказаться недостаточно. В этом случае целесообразно использовать имитационное моделирование.
Имитационное моделирование - это метод, позволяющий строить модели, учитывающие время выполнения функций. Полученную модель можно "проиграть" во времени и получить статистику происходящих процессов так, как это было бы в реальности. В имитационной модели изменения процессов и данных ассоциируются с событиями. "Проигрывание" модели заключается в последовательном переходе от одного события к другому.
Одним из наиболее эффективных инструментов имитационного моделирования является система Arena фирмы System Modeling Corporation (http://www.sm.com). Arena позволяет строить имитационные модели, проигрывать их и анализировать результаты такого проигрывания. Имитационное моделирование - это универсальное средство для оптимизации процессов, поэтому модели с помощью Arena могут быть построены для самых разных сфер деятельности - производственных технологических операций, складского учета, банковской деятельности, обслуживания клиентов в ресторане и т. д. и т. п. В настоящей книге описана версия Arena BE 3.6.1.
Имитационная модель Arena включает следующие основные элементы: источники и стоки (Create и Dispose), процессы (Process) и очереди (Queue). Источники - это элементы, от которых в модель поступает информация или объекты. Скорость поступления данных или объектов от источника обычно задается статистической функцией. Сток - это устройство для приема информации или объектов. Понятие очереди близко к понятию хранилища данных - это место, где объекты ожидают обработки. Времена обработки объектов (производительность) в разных процессах могут быть разными. В результате перед некоторыми процессами могут накапливаться объекты, ожидающие своей очереди. Часто целью имитационного моделирования является минимизация количества объектов в очередях. Тип очереди в имитационной модели может быть конкретизирован. Очередь может быть похожа на стек — пришедшие последними в очередь объекты первыми отправляются на дальнейшую обработку (LIFO: last-in-first-out). Альтернативой стеку может быть последовательная обработка, когда первыми на дальнейшую обработку отправляются объекты, пришедшие первыми (FIFO: first-in-first-out). Могут быть заданы и более сложные алгоритмы обработки очереди. Процессы - это аналог работ в функциональной модели. В имитационной модели может быть задана производительность процессов.
Простейшая имитационная модель, созданная в Arena, показана на рис. 1.4.40.
Для построения моделей Arena имеет набор средств, которые включают палитру инструментов, набор гидов и др. Для создания модели сначала нужно щелкнуть по кнопке New на панели инструментов. Слева появляется палитра инструментов (рис. 1.4.41), которая содержит два типа модулей.
Модули типа Flowchart (в том числе Create, Dispose и Process) служат для отображения потоков объектов и могут быть перенесены на рабочее пространство модели drag&drop. Модули типа Data (например, Queue) не могут быть размещены в рабочем пространстве модели и служат для настройки параметров модели. Окно редактирования параметров появляется в нижней части модели, когда фокус установлен на модуле типа Data.
Перенесем из панели инструментов в рабочее пространство модели по одному модулю Create, Dispose и Process. Связи между модулями устанавливаются автоматически (хотя могут быть и переопределены вручную). Модуль Create является источником сущностей в системе. Так, например, если описывается изготовление изделий, то модуль Create может описывать поступление заготовок на конвейер. Модуль Process отвечает за обработку сущностей. Например, он может имитировать станок, обрабатывающий заготовки. Модуль Dispose является стоком сущностей из системы. Он может моделировать снятие готовых изделий с конвейера.