МЕТОДЫ МОДЕЛИРОВАНИЯ ДИСКРЕТНО-СОБЫТИЙНЫХ И ДИНАМИЧЕСКИХ СИСТЕМ

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

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

Наиболее часто дискретно-событийный подход применяется при моделировании систем массового обслуживания.

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

Имеется следующая классификация СМО.

  • 1. СМО с потерями, в которых транзакты, не нашедшие в момент поступления ни одного свободного ресурса, выбывают из системы необслуженными.
  • 2. СМО с неограниченным временем ожидания, в которой поступающие транзакты помещаются в очередь и находятся в ней неограниченное время, до тех пор пока не будут обслужены.
  • 3. СМО с ограничениями: ограниченным временем ожидания или такие, в которых длина очереди не может превышать некоторого заданного значения. При этом транзакт, поступающий в переполненную СМО, автоматически выбывает из системы необслу- женным.

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

  • FIFO (first infirst out) — пришедший первым обслуживается первым;
  • LIFO (last in — first out) — пришедший последним обслуживается первым.

Отметим, что примеры систем массового обслуживания описаны в параграфе 3.3, а также во втором задании компьютерного практикума в конце книги.

Следует отметить, что моделирование дискретных потоков возможно с использованием различных систем имитационного моделирования, в том числе Powersim [14], AnyLogic [9], GPSS World [ 181 и др.

Например, для моделирования очереди некоторых произвольных транзактов в системе Powersim можно использовать следующий подход. Допустим, некоторые дискретные объекты (тран- закты) должны находиться в очереди в течение девяти дней, а /шлее выходить из очереди в соответствии с правилом FIFO.

Тогда для входного (Input) и выходного (Output) потоков системного уровня Container (рис. 3.1) устанавливаются измерения (dimensions) с характеристиками, соответствующими первому дню вхождения в очередь: (dim INPut = 1..1) и (dim Output = 10.. 10). При этом размерность контейнера составляет 10 дней (dim Container = 1..10), а размерность переменной, определяющей время нахождения объектов в пути (In Transit), — 9 дней (dim ‘In Transit’ = 1..9).

Программирование пространственной динамики транзактов в системе Powersim

Рис. 3.1. Программирование пространственной динамики транзактов в системе Powersim

Далее представлена реализация модели очереди транзактов в программном виде в системе Powersim (описание специальных обозначений элементов модели см. в гл. 1).

aux INPut = * l«l/da>> dim INPut = 1..1

aux ‘In Transit’ = FOR(i=1..9 | Container[i]*l«l/da>

dim ‘In Transit’ = 1..9

aux Output = Containcr[10] *l«l/da>>

dim Output = 10..10

level Container = 0

dim Container = 1..10

flow Container = + dt*FillInZcrocs(INPut)

- dt*SuffixZero(Tn Transit’)

+ dt*PrefixZero(‘In Transit’)

- dt*FillInZeroes(Output)

Следует отметить, что для моделирования дискретных потоков в системе Powersim используются системные уровни с типом Integer.

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

Flow = dt*Rate // непрерывный поток Flow = Rate // дискретный поток

При этом единицы измерения потоков и уровней должны совпадать:

unitRate = unitLevel

Для создания дискретных потоков необходимо использовать нулевой порядок интеграции {Zero order или Zero order immediate), соответсвующее свойство которого доступно на вкладке дополнительных свойств переменной. Различие между этими двумя порядками интеграции представлено в выражениях ниже, где L — уровень и F — темп потока.

Различие между непрерывными (Lv F{) и дискретными потоками типа Zero order (L2, F2) и Zero order immediate (L3, /'?,) прошилострировано на рис. 3.2. Ясно, что непрерывные потоки интегрируются полностью с запаздыванием в один шаг модельного времени. Дискретные потоки Zero order суммируются также с запаздыванием. И только дискретные потоки Zero order immediate поступают в уровень мгновенно, т.е. без запаздывания.

Иллюстрация различия между непрерывными и дискретными потоками

Рис. 3.2. Иллюстрация различия между непрерывными и дискретными потоками

Далее перейдем к рассмотрению вопросов, связанных с моделированием событий.

Для моделирования простых событий в системе Powersim можно использовать функцию РIILSЕI F(Condition, Volume).

Функция PULSEIF возвращает импульс со значением Volume, если условие Condition истинно.

В частности, для имитации какого-нибудь события (триггера), наступающего 01.01.2014, можно использовать следующую функцию (рис. 3.3):

PULSEIF(Time = DATE(2014; 1; 1); 1).

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

TIMECYCLE(STARTTIME; 1«уг»; l«qtr»).

Здесь, параметр STARTTIME представляет собой начальное модельное время, а 1«уг» и l«qtr>> — это периодичность и длительность события соответственно.

Имитация одиночного события в системе Powersim

Рис. 3.3. Имитация одиночного события в системе Powersim

Имитация периодически повторяющегося события в системе Powersim

Рис. 3.4. Имитация периодически повторяющегося события в системе Powersim

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >