Алгоритмизация имитационной модели СМО произвольной структуры

 

Методика построения имитационной модели СМО сложной структуры сводится к разработке модульной структуры алгоритмической модели. Структуру СМО необходимо декомпозировать на отдельные модули генерации заявок, распределения заявок при постановке в очередь и выбора из очереди, обслуживания заявок и набора статистических данных. При алгоритмизации СМО сложной структуры важно правильно выбрать последовательность обращений к подпрограммам в рассматриваемом такте моделирования. Построения имитационной модели СМО сложной структуры рассмотрим для структуры СМО, приведенной на рис. 7.36.

 

Рис. 7.36

 

На вход 1-го прибора поступают заявка первого приоритета с функцией распределения вероятностей поступления A1(t) и заявки второго приоритета с функцией распределения А2(t). Прибор характеризуется функцией распределения времени обслуживания заявок B1(t). С выхода 1-го прибора обслуженные заявки поступают на входы 2-го и 3-го приборов с функциями распределения времени обслуживания заявок B2(t) и B3(t).

На 2-й и 3-й приборы поступают также потоки заявок с функциями распределения A3(t) и A4(t). Обслуженные заявки с выходом 2-го и 3-го приборов поступают на вход четвертого прибора, характеризующегося функцией распределения B4(t). Потоки заявок ко второму и третьему приборам обслуживания однородны (нет приоритетов). На рис. 7.37 приведена структурная схема алгоритма имитационной модели данной СМО.

Рис. 7.37

 

Рис. 7.37. Окончание

 

Блоками 3 – 10 реализован алгоритм моделирования процесса поступления заявок первого и второго потоков на первый прибор. Причем, если в очереди заявки первого приоритета, то они вначале выбираются на обслуживание (см. работу блоков 11, 12, 13, 16, 18 на рис. 7.37). Если заявок первого приоритета в очереди нет (M1=0), то выбираются заявки на обслуживание из очереди второго приоритета (см. работу блоков 11, 12, 14, 15, 17, 18 на рис. 7.37).

Блоками 11 – 19 реализован алгоритм моделирования процесса обслуживания заявок первым прибором.

При наличии на выходе первого прибора обслуженной заявки идентификатор I3 принимает значение «единица». Идентификатор I3 определяется в подпрограмме OBS1 так же, как это делается в одноименной подпрограмме одноканальной СМО (см. рис. 7.12) с идентификатором K.

Затем обслуженная в первом приборе заявка поступает для обслуживания на второй или третий приборы, что определяется в подпрограмме ROSTH (см. блок 21 на рис. 7.37). Алгоритм подпрограммы приведен на рис. 7.38.

 

 

Рис. 7.38

 

В подпрограмме ROSTH введен ключ F. При значении ключа F=0 обслуженная в первом приборе заявка ставится в очередь ко второму прибору (см. блоки 1 - 4 на рис. 7.38). При значении ключа F=1 обслуженная в первом приборе заявка ставится в очередь к третьему прибору (см. блоки 1, 5 - 7 на рис. 7.38).

В подпрограмме GEN3 имитируется поступление заявки третьего входного потока. Если заявка поступила (I4=1), то она после набора соответствующих статистических данных ставится в очередь ко второму прибору (см. блоки 22 – 25 на рис. 7.37). Блоками 26 – 31 реализован алгоритм моделирования процесса функционирования второго прибора.

В подпрограмме GEN4 имитируется поступление заявки четвертого входного потока. Если заявка поступила (I5=1), то она после набора соответствующих статистических данных ставится в очередь к третьему прибору (см. блоки 33 – 35 на рис. 7.37). Блоками 36 – 41 реализован алгоритм моделирования процесса функционирования третьего прибора.

При наличии на выходе второго прибора обслуженной заявки идентификатор I6 принимает значение «единица», а при наличии на выходе третьего прибора обслуженной заявки идентификатор I7 также принимает значение «единица». Заявки, обслуженные вторым или третьим приборами, ставятся в очередь к четвертому прибору обслуживания (см. блоки 42 – 45 на рис. 7.37). Блоками 46 – 51 реализован алгоритм моделирования процесса функционирования четвертого прибора.

Анализ алгоритма, приведенного на рис. 7.37, показывает, что для него сохранен модульный принцип построения.

Подпрограммы GEN1, GEN2, GEN3, GEN4предназначены для имитации процессов поступления заявок в соответствии с законами распределений A1(t), A2(t), A3(t), A4(t). Подпрограммы OSTH1, OSTH2, OSTH3, OSTH4, OSTH5 предназначены для моделирования процесса организации очередей к соответствующим приборам обслуживания. Подпрограммы WIB1, WIB2, WIB3, WIB4, WIB5 реализуют процедуры выбора заявок на обслуживание из очередей к соответствующим приборам. Подпрограммы OBS1, OBS2, OBS3, OBS4,имитируют процедуры обслуживания в соответствующих приборах.

Можно представить алгоритм рассмотренного примера в виде последовательных модулей, как это показано на рис. 7.39.

 

 

Рис. 7.39

 

В подпрограммах GEN1, GEN2, GEN3, GEN4 осуществляется генерация заявок. Подпрограммы MODI включают в себя все подпрограммы, в которых осуществляется постановка и выбор заявок из очереди, обслуживание и набор всех требуемых статистических данных в каждом I–м приборе. Заметим, подпрограммы MOD2 и MOD3 могут «поменяться» местами, так как не важна последовательность рассмотрения смены их состояний в общем алгоритме. Нельзя изменить, например, места подпрограмм MOD3 и MOD4, так как обслуженная заявка третьего прибора становится входной заявкой для четвертого прибора.

Рекомендуется начинать составление схемы алгоритма моделирования СМО сложной структуры именно с такого блочного представления, которое показано на рис. 7.39.

При разработке программного обеспечения подпрограммами WWOD и WIWOD реализован интерфейс пользователя. Разработчик программного приложения может проявить здесь свою фантазию. В качестве примера приводится интерфейсное окно на рис.7.40, позволяющее вводить исходные данные:

- вероятности появления заявок в такте времени Dt;

- параметры законов обслуживания;

- параметры для набора статистических данных;

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

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

На рис. 7.41 приведен пример интерфейсного окна для вывода результатов моделирования.

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

 

 

 

Рис. 7.40

 

 

 

Рис. 7.41

 


 

8. АЛГОPИТМИЗАЦИЯ ПPОЦЕCCОВ ФУНКЦИОНИPОВАНИЯ CИCТЕМ