Помимо моделирования временных связей между экземплярами операций с помощью диаграммы процесса перед аналитиком часто встают задачи моделирования более сложных логических или временных связей между экземплярами операций, например:
Для моделирования таких связей метод имитационного моделирования предлагает следующие способы:
Первый способ реализован путем задания значений параметров на вкладке Смены (см. главу Параметры вкладки "Смены") и в Окне свойств объекта справочника "Процессы" (вкладка Параметры ФСА → вкладка Ресурсы, см. главу Моделирование использования / потребления ресурсов при выполнении экземпляра операции).
Для реализации двух оставшихся способов используется следующий механизм: аналитик объявляет переменную у объекта справочника, а затем во время имитации движок имитации по заданным аналитиком данным создает экземпляр(ы) переменной.
Переменные делятся на два типа: глобальные и локальные. При проведении имитации глобальная переменная создается в единственном экземпляре для всех экземпляров имитирующих процессов и существует в течение всей имитации. В случае с локальными переменными, во время имитации создается множество экземпляров локальной переменной - по одному для каждого экземпляра имитирующего процесса, и экземпляр локальной переменной существует, пока существует экземпляр соответствующего имитирующего процесса.
Изменение значений экземпляра переменной происходит по правилам, заданным аналитиком на вкладке Действия с переменными объектов справочника "Процессы" (см. главу Действия с переменными).
Далее рассмотрим различные способы объявления переменных.
Для объектов справочников "Субъекты" и "Объекты деятельности" переменные объявляются аналитиком на вкладке Переменные (Окно свойств объекта справочника "Субъекты" или "Объекты деятельности" → вкладка Параметры ФСА) (Рис.1).
Описание параметров вкладки Переменные приведено в Табл.1.
Параметр | Описание |
---|---|
Имя | Задает имя переменной. |
Тип | Задает тип переменной. Тип может быть: - Целый; - Вещественный; - Строка; - Логика; - Дата; - Время; - Длительность. |
Стартовое значение | Задает стартовое значение переменной. Стартовое значение может быть задано в виде константы, распределения или значения другой переменной (Рис.4). |
Нижняя граница | Задает минимально возможное значение переменной. Задается только для переменных типа "Целый" и "Вещественный". Может использоваться для управления ходом выполнения экземпляра имитирующего процесса, даже если он создан на основе диаграммы с последовательной цепочкой фигур операций. Если во время имитации при попытке совершить действие с экземпляром переменной при выполнении экземпляра имитирующей операции (см. главу Действия с переменными) значение экземпляра переменной окажется меньше Нижней границы, действие не будет совершено. При этом выполнение экземпляра имитирующей операции приостановится до тех пор, пока значение экземпляра переменной не станет достаточным для совершения действия с ней. Нижнюю границу можно использовать для имитирования операций с материальными ресурсами. При этом для объекта справочника "Субъекты" или "Объекты деятельности", на основе которого будет создан имитирующий материальный ресурс, должна быть объявлена системная переменная "Количество" (см. главу Системные переменные модели материального ресурса). Если значение нижней границы для этой переменной не задано, то количество имитирующего материального ресурса будет всегда считаться достаточным для выполнения всех экземпляров имитирующих операций. Если же оно задано, то экземпляр имитирующей операции не начнет выполняться до тех пор, пока количество имитирующего материального ресурса, необходимое для его выполнения, не станет достаточным. |
Верхняя граница | Задает максимально возможное значение переменной. Задается только для переменных типа "Целый" и "Вещественный". Может использоваться для управления ходом выполнения экземпляра имитирующего процесса, даже если он создан на основе диаграммы с последовательной цепочкой фигур операций. Принцип использования данного параметра аналогичен принципу использования параметра "Нижняя граница". |
Комментарий | Задает комментарий к переменной. |
Стартовое значение переменной может быть задано в виде константы, случайной величины или значения другой переменной (Рис.2).
Если стартовое значение переменной должно быть представлено в виде константы, оно задается в параметре "Значение" (Рис.2).
Если стартовое значение переменной должно быть представлено в виде закона распределения, оно задается в параметре "Случайная величина" (Рис.2). В открывшемся окне выбирается закон распределения и заполняются необходимые параметры этого закона. На Рис.3 представлен пример задания закона распределения стартового значения переменной.
Если в качестве стартового значения переменной необходимо подставить значение другой переменной, используется параметр "Переменная" (Рис.2). При нажатии на кнопку открывается Окно справочника "Переменные ФСА" (Рис.4).
Параметр "Тип ресурса" группы параметров Материальный ресурс (Рис.1) определяет количество и область видимости экземпляров переменных, создаваемых во время имитации (Табл.2).
Тип ресурса | Количество экземпляров и область видимости |
---|---|
Глобальный | Создается один экземпляр переменной. Область видимости - экземпляры всех имитирующих процессов и операций. |
Локальный | Создается множество экземпляров переменной. Область видимости - экземпляр имитирующего процесса, при выполнении экземпляров имитирующих операций которого с экземпляром переменной совершаются действия, но не экземпляры его имитирующих подпроцессов. |
На основании этих данных во время имитации движок имитации создает экземпляр глобальной или экземпляры локальной переменной.
Для модели материального ресурса может быть объявлена системная переменная "Количество". Переменная "Количество" объявляется на вкладке Переменные (Окно свойств объекта справочника "Объекты деятельности" или "Субъекты" → вкладка Параметры ФСА) путем нажатия на гиперссылку Создать системные переменные материального ресурса. Значения параметров "Стартовое значение" и "Нижняя граница" для этой переменной по умолчанию устанавливаются равными 0, при необходимости, эти значения можно изменить.
Для системной переменной "Количество", объявленной у объекта справочника "Субъекты" или "Объекты деятельности", во время имитации уменьшение и увеличение значения экземпляра (значений экземпляров) происходит автоматически. Изменение значения (значений) происходит при выполнении экземпляров имитирующих операций, в рамках которых используются имитирующие материальные ресурсы или производятся имитирующие продукты на заданное в параметре "Количество" значение (см. главы Моделирование использования / потребления ресурсов при выполнении экземпляра операции и Моделирование производства продуктов при выполнении экземпляра операции).
Дополнительные действия по изменению значения экземпляра (значений экземпляров) этой переменной также могут совершаться в соответствии с правилами, заданными аналитиком на вкладке Действия с переменными объекта справочника "Процессы" (Рис.6).
Параметр "Тип ресурса" группы параметров Материальный ресурс (Рис.1) определяет количество и область видимости экземпляров переменной "Количество", создаваемых во время имитации (Табл.3).
Тип ресурса | Количество экземпляров и область видимости |
---|---|
Глобальный | Во время имитации для всех экземпляров имитирующих процессов создается общий запас имитирующего материального ресурса, который потребляется всеми экземплярами всех имитирующих процессов. Глобальный тип выбирается для модели материального ресурса, если необходимо смоделировать конкуренцию между экземплярами операций разных процессов за ограниченное количество материального ресурса. Примером модели глобального материального ресурса может служить объект справочника "Объекты деятельности" - "Бензин". Если необходимо смоделировать конкуренцию между экземплярами операций за ограниченное количество бензина, то для модели данного ресурса следует выбрать тип ресурса "Глобальный". |
Локальный | Во время имитации для каждого экземпляра имитирующего процесса создается свой запас имитирующего материального ресурса, который потребляется только в рамках одного экземпляра имитирующего процесса. Локальный тип выбирается, если нет необходимости моделировать конкуренцию между экземплярами операций разных процессов за ограниченное количество материального ресурса. Примером модели локального материального ресурса может служить объект справочника "Объекты деятельности" - "Лист бумаги". Если нет необходимости моделировать конкуренцию между экземплярами операций разных процессов за листки бумаги, то для модели данного ресурса следует выбрать тип ресурса "Локальный". |
Вне зависимости от того, объявил или нет аналитик системную переменную "Количество" для объекта справочника "Субъекты" или "Объекты деятельности" на вкладке Переменные (Рис.1), во время имитации для соответствующего имитирующего материального ресурса и/или продукта экземпляр(ы) переменной с наименованием "Количество" будет создан (будут созданы) автоматически. Это делается для обеспечения возможности наблюдать за изменением динамики потребления имитирующих ресурсов и производства имитирующих продуктов. При этом экземпляр(ы) переменной "Количество" создается (создаются) со стартовым значением, равным нулю, и не имеет (не имеют) ограничений на принимаемые значения. Это значит, что в процессе имитации не будет производиться проверка на ограничения значений данного экземпляра (экземпляров) переменной. Если необходимо, чтобы стартовое значение экземпляра (экземпляров) переменной было отличным от нуля, или же необходимо задать ограничения на принимаемые значения, аналитик должен явно объявить системную переменную "Количество" на вкладке Переменные объекта справочника "Субъекты" или "Объекты деятельности" (Рис.1).
Для модели временного ресурса могут быть объявлены системные переменные "Количество экземпляров", "Количество свободных экземпляров", "Количество занятых экземпляров". Переменные объявляются на вкладке Переменные (Окно свойств объекта справочника "Объекты деятельности" или "Субъекты" → вкладка Параметры ФСА) путем нажатия на гиперссылку Создать системные переменные временного ресурса.
Рассматриваемые переменные всегда являются глобальными вне зависимости от значения параметра "Тип ресурса" (Окно свойств объекта справочника "Объекты деятельности" или "Субъекты" → вкладка Параметры ФСА → группа параметров Материальный ресурс).
Значения параметра "Стартовое значение" для этих переменных устанавливаются равными 0. Во время имитации изменение стартовых значений экземпляров переменных "Количество экземпляров", "Количество свободных экземпляров" и "Количество занятых экземпляров" происходит автоматически. Изменение значений происходит в соответствии с графиком работы экземпляров имитирующего ресурса, а также при старте и окончании выполнения экземпляров имитирующих операций, в рамках которых участвуют экземпляры имитирующего временного ресурса, на заданное в параметре "Количество" значение (см. главу Моделирование использования / потребления ресурсов при выполнении экземпляра операции).
Системные переменные, объявленные для моделей временных ресурсов, используются для управления траекторией выполнения экземпляров имитирующих процессов: объявленные переменные используются для задания логических условий в точках ветвлений (см. главу Задание условий).
Для объектов справочника "Процессы" переменные объявляются аналитиком на вкладке Переменные (Рис.5). На основании этих данных во время имитации движок имитации создает экземпляры локальной переменной. Область видимости экземпляра переменной - экземпляр процесса и экземпляры всех имитирующих подпроцессов всех уровней.
В отличие от переменных, объявляемых для объектов справочников "Объекты деятельности" и "Субъекты", для переменных, объявляемых для объектов справочника "Процессы", не задаются верхняя и нижняя границы.
В разделе "Переменные глобальные и системные" справочника "Переменные ФСА" (Главное меню → Анализ процессов → Переменные ФСА) по умолчанию объявлены системные переменные. Дополнительно здесь также могут быть объявлены пользовательские глобальные переменные. Все они могут быть использованы для управления ходом выполнения экземпляров имитирующих процессов.
Ниже приведена сводная таблица по способам объявления глобальных и локальных переменных (Табл.4).
Место объявления переменной | |||
---|---|---|---|
Объекты справочника "Процессы" | Объекты справочника "Субъекты" или "Объекты деятельности" | Справочник "Переменные ФСА"/ раздел "Переменные глобальные и системные" |
|
Глобальные | Не поддерживается | Поддерживается. Параметр "Тип ресурса" должен иметь значение "Глобальный" (Окно свойств объекта справочника → вкладка Параметры ФСА → группа параметров Материальный ресурс) либо должны быть объявлены системные переменные для модели временного ресурса | Поддерживается. Также доступны системные переменные: Текущее время, Текущая дата. |
Локальные | Поддерживается. Область видимости экземпляра переменной - экземпляр имитирующего процесса и экземпляры имитирующих подпроцессов всех уровней. | Поддерживается. Параметр "Тип ресурса" должен иметь значение "Локальный" (Окно свойств объекта справочника → вкладка Параметры ФСА → группа параметров Материальный ресурс). Область видимости экземпляра переменной - экземпляр имитирующего процесса, при выполнении экземпляров имитирующих операций которого с экземпляром переменной совершаются действия, но не экземпляры его имитирующих подпроцессов. | Не поддерживается. Доступны системные переменные: Текущая длительность процесса, Текущая стоимость процесса. Область видимости экземпляра переменной - экземпляр имитирующего процесса. |
Во время выполнения экземпляров имитирующих операций с экземпляром переменной совершаются действия, в результате которых его стартовое значение изменяется. Действия, которые необходимо совершить с экземпляром переменной во время имитации, задаются аналитиком на вкладке Действия с переменными (Окно свойств объекта справочника "Процессы" → вкладка Параметры ФСА) (Рис.6).
Описание параметров вкладки Действия с переменными приведено в Табл.5.
Параметр | Описание |
---|---|
Переменная | Задает переменную, с экземпляром которой во время имитации будет совершено действие. Переменная выбирается из справочника "Переменные ФСА" (Рис.4). |
Оператор | Задает оператор. Может принимать значения: =, +, -, *, /. |
Операнд | Задает значение операнда. Значение операнда может быть задано в виде константы, распределения значений или значения другой переменной (Рис.2). |
Момент совершения операции | Задает момент совершения действия с экземпляром переменной во время имитации. Может принимать значения: - В начале процесса; - В конце процесса. |
Тип переменной определяет перечень операторов, которыми можно воспользоваться для совершения действия с экземпляром переменной (Табл.6).
Тип | Используемые операторы |
---|---|
Целый | (= ), (+), (-), (*), (/). |
Вещественный | (= ), (+), (-), (*), (/). |
Строка | (= ), (+). |
Логика | (= ), (+), (*). |
Дата | (= ), (+), (-). |
Время | (= ), (+), (-). |
Длительность | (= ), (+), (-). |
Моделируется деятельность по обработке партии деталей. Каждый день в 9 утра поступает партия деталей на обработку (количество деталей в партии: 10-15 шт.). При обработке детали с вероятность 20% может возникнуть брак, и деталь будет отправлена на повторную обработку. Количество экземпляров операции "Обработка детали", таким образом, носит случайный характер и, в общем случае, больше, чем количество деталей в партии. После обработки всех деталей задание закрывается (Рис.7).
1. Зададим правила возникновения экземпляров имитирующего стартового события "Поступила партия деталей" (Рис.8 и Рис.9).
2. Создадим объект в справочнике "Объекты деятельности" с наименованием "Партия деталей". Для данного объекта справочника объявим переменную "Количество деталей" (Рис.10).
Обратите внимание, что значение параметра "Тип ресурса" в группе параметров Материальный ресурс - "Локальный". Это значит, что для каждого экземпляра имитирующего процесса будет создана своя партия деталей.
3. Зададим параметры вкладки Действия с переменными объекта "Обработка детали" справочника "Процессы" (Рис.11).
4. Зададим параметры вкладки Действия с переменными объекта "Оформление брака" справочника "Процессы" (Рис.12).
5. Зададим вероятность возникновения брака (Рис.13).
6. Зададим вероятность того, что брак не возникнет (Рис.14).
7. Зададим условия возникновения экземпляра события "Обработаны все детали". Для этого зададим параметры стрелки, ведущей к фигуре события "Обработаны все детали" на диаграмме процесса (Рис.15).
Таким образом, мы смоделировали управление ходом выполнения экземпляра имитирующего процесса "Обработка партии деталей" в зависимости от значения переменной "Количество деталей".