Имитационные модели многоканальных СМО

 

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

Структура трехканальной СМО представлена на рис. 7.24.

 

 

Рис. 7.24

 

На вход трехканальной СМО поступает поток заявок, интервалы времени между которыми имеют распределение A(t). Каждый прибор характеризуется функцией распределения времени обслуживания Bi(t), i=1,2,3. На выходе каждого i-го прибора существует выходной поток Pi(t) (i=1,2,3) обслуженных заявок, из которого образуется суммарный поток P(t) обслуженных заявок.

Структурная схема алгоритма имитационной модели трехканальной данной СМО приведена на рис. 7.25. Работает алгоритм следующим образом.

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

 

Рис. 7.25

 

 

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

Если в данном такте моделирования Твозникла заявка, то идентификатор I=1. Если ёмкость очереди ограничена числом заявок JPM и число заявок в очереди меньше JPM, то заявка ставится в очередь на обслуживание (обращение к подпрограмме OSTH) после соответствующей фиксации её времени возникновения в подпрограмме набора статистических данных о входном потоке STATP (см. работу 4, 5, 6, 10, 11 на рис. 7.25).

Число заявок в очереди JP может быть равно максимально допустимому значению JPM. В этом случае заявка не будет потеряна, если в предшествующем такте Т-1 один из приборов освободился от обслуживания, то есть или L1, или L2, или L3 равны нулю (см. блоки 5 - 8). Действительно, в этом случае одна заявка из очереди будет взята на обслуживание и одна поставлена в очередь (переход от блоков 5 - 8 к блоку 10 на рис. 7.25). В противном случае, если I=1, JP=JPM, L1=L2=L3=1, то заявка теряется и информация о времени возникновения потерянной заявки фиксируется в подпрограмме набора статистических данных о потоке потерянных заявок STAТT (см. работу блоков 4, 5, 6, 7, 8, 9 на рис. 7.25).

Алгоритмы подпрограмм STATP, STAТT, OSTH полностью аналогичны алгоритмам одноименных подпрограмм имитационной модели одноканальной СМО.

При анализе функционирования трехканальной СМО можно воспользоваться понятием их состояния, определяемого состояниями очереди и приборов. Всевозможные комбинации состояний очереди и приборов обслуживания приведены в табл. 7.1. Первая строка состояний в табл. 7.1 соответствует ситуации, когда в СМО нет заявок и все приборы свободны. В этом случае после выявления данной ситуации (см. блоки 12,13,14,15 на рис. 7.25) управление передаётся блоку 37, в котором проверяется условие имитации функционирования системы за заданное число тактов TZ.

Особым набором состояний следует признать и последнюю строку табл. 7.1, когда все приборы заняты обслуживанием и имеется очередь. После работы блоков 12, затем 16,17,18 управление передаётся блоку 21. Затем следует анализ состояния первого прибора и имитация времени обслуживания в первом приборе, а затем и в последующих двух приборах.

 

Таблица 7.1

M1 L1 L2 L3 Выбор на обслуживание
Выбора нет
Выбора нет
Выбора нет
Выбора нет
Выбора нет
Выбора нет
Выбора нет
Выбора нет
Выбор есть
Выбор есть
Выбор есть
Выбор есть
Выбор есть
Выбор есть
Выбор есть
Выбор есть

 

Состояния, когда нет очереди и занят обслуживанием, по крайней мере, один из приборов, анализируются в работе блоков 12,13,14,15. Затем управление передается блоку 21.

Состояния, когда есть очередь и свободен хотя бы один из приборов, анализируется работой блоков 12, 16, 17, 18, и управление передается подпрограмме выбора заявки на обслуживание WIB (см. блок 19 на рис. 7.25).

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

а) выбор по порядковому номеру, т.е. заявка поступает на тот из свободных приборов, у которого меньший (больший) порядковый номер;

б) выбор по большей интенсивности обслуживания (по меньшему среднему времени обслуживания), то есть заявка поступает на тот из свободных приборов, у которого меньшее время обслуживания;

в) случайный выбор одного из свободных приборов.

На рис. 7.26 приведен алгоритм подпрограммы WIBN по порядковому номеру прибора и по правилу FIFO. Отличие этого алгоритма от алгоритма аналогичной подпрограммы одноканальной СМО (см. рис. 7.8) состоит в добавлении блоков 11 – 15. Назначение этих блоков состоит в анализе наличия свободных от обслуживания заявок приборов и присвоении идентификаторам I1, I2, I3 значения «единица», если заявка из очереди выбирается на обслуживание соответственно 1-м, 2-м или 3-м прибором (см. блоки 11 – 15). Если первый прибор свободен (L1=0), то I1=1, если свободен второй прибор (L2=0), то I2=1, если свободен третий прибор (L3=0), тоI3=1.

На рис. 7.27 приведена структурная схема алгоритма подпрограммы WIBS выбор заявки из очереди, согласно правилу FIFO, при случайном выборе одного из свободных приборов обслуживания. В блоках 1 – 7 реализована имитация выбора заявки из очереди и упорядочивания номеров заявок в очереди.

 

 

Рис. 7.26

 

 

 

Рис. 7.27

 

Случайный выбор прибора для обслуживания организован следующим образом. Генерируется подпрограммой RAN число равномерно распределенного ряда Х (см. блок 10 на рис .7.27). Затем в блоках 11 - 13 определяются числа А, В, С, принимающие значения «единица», если соответственно свободен от обслуживания первый, второй или третий прибор.

Случайное число Х приводится к сумме чисел А, В, С путем умножения числа Х на полученную сумму A+B+C (см. блок 14 на рис. 7.27). Затем значения идентификаторов I1, I2, I3 определяются по известной схеме случайных событий.

На рис. 7.28 приведена структурная схема алгоритма подпрограммы WIB1 выбора заявок из очереди, согласно правилу FIFO, и при условии поступления заявки на тот из свободных приборов, у которого меньше среднее время обслуживания.

 

Рис. 7.28

 

Рассмотрим работу алгоритма. Пусть среднее время обслуживания первого прибора больше среднего времени обслуживания третьего прибора, а среднее время обслуживания третьего прибора больше среднего времени обслуживания второго прибора. Как видно из рис. 7.26 и рис. 7.28, алгоритм подпрограммы WIB1 не отличается в реализации от алгоритма подпрограммы WIBN. В блоках 10 – 14 (см. рис. 7.28) реализован приоритет выбора приборов, исходя из меньшего среднего времени обслуживания.

После работы подпрограммы WIB будут сформированы значения идентификаторов I1, I2, I3 – поступление заявок в такте Т на первый, второй, третий приборы соответственно и значение идентификатора W – время задержки для любой заявки, выбранной из очереди на обслуживание.

Время задержки W фиксируется в подпрограмме набора статистических данных времени задержки STATO, которая по реализации идентична аналогичной подпрограмме в имитационной модели одноканальной СМО (см. рис. 7.11).

Затем, если первый прибор в такте Т занят обслуживанием или поступили на него заявка в такте Т (I1=1) (см. блоки 21, 22 на рис. 7.25), то управление передается подпрограмме OBS1 имитации времени обслуживания в первом приборе(см. блок 23 на рис. 5.25).

Структурная схема алгоритма подпрограммы OBS1 приведена на рис. 7.29.

Затем управление передается подпрограмме STAT1 набора статистических данных о периоде занятости, времени обслуживания и выходном потоке обслуженных заявок первого прибора (см. блоки 24 на рис. 7.25). Алгоритм подпрограммы STAT1 представляет собой совокупность алгоритмов подпрограмм STATB, STATPZ и STATW имитационной модели одноканальной СМО (см. блоки 15 - 22 на рис. 7.3).

 

Рис. 7.29

 

Аналогично работают подпрограммы моделирования времени обслуживания второго прибора (см. блоки 25 - 28 на рис. 7.25) и третьего прибора (см. блоки 29 - 32 на рис. 7.25). Реализации алгоритмов подпрограмм OBS2 и OBS3 аналогичны реализации алгоритма подпрограммы OBS1. Реализации алгоритмов подпрограмм STAT2, STAT3 аналогичны реализации алгоритма подпрограммы STAT1.

Статистические данные о суммарном выходном потоке обслуженных заявок накапливаются в счетчиках подпрограммы STATF, алгоритм которой аналогичен по реализации алгоритму подпрограммы STATP имитационной модели одноканальной СМО (см. рис. 7.5), но в конце алгоритма необходимо добавить блоки, в которых определяются значения К1=0, К2=0, К3=0.

Если блоки 21, 22, 23, 24 (см. рис. 7.25) рассматривать как алгоритм подпрограммы MOD1, блоки 25, 26, 27, 28 – как алгоритм подпрограммы MOD2, блоки 29, 30, 31, 32 – алгоритм подпрограммы MOD3, то для N – канальной СМО структурная схема моделирующего алгоритма будет иметь вид, представленный на рис. 7.30.

 

 

Рис. 7.30

 

7.8.2. Модели СМО с очередью к каждому прибору.Рассмотрим задачу построения имитационной модели трехканальной СМО, в которой заявки, поступающие в систему, ставятся в очередь только к одному прибору и потом поступают на обслуживание к этому прибору.

Структурная схема такой СМО представлена на рис. 7.31.

 

 

Рис. 7.31

 

Особенностью данной СМО является распределение заявок входного потока с функцией распределения A(t) в очереди к приборам обслуживания. Непосредственно выбор заявок из очереди и обслуживание в каждом приборе моделируются так же, как и в имитационной модели одноканальной СМО. На рис. 7.32 приведена структурная схема алгоритма имитационной модели рассматриваемой СМО. Работает алгоритм следующим образом.

Реализация алгоритма и работа подпрограммы GEN генерации заявок не отличается от реализации подпрограммы GEN для одноканальной СМО (см. рис. 7.4).

Отличие состоит в том, что, если в такте Т поступила заявка в рассматриваемую систему из трех приборов обслуживания (I=1в блоке 4 на рис. 7.32), то анализируется условие JP<JPM (см. блоки 4, 5 на рис. 7.32). Под JP понимается сумма заявок, находящихся во всех трех очередях, то есть JP=JP1+JP2+JP3.

 

Рис. 7.32

 

Если это условие выполняется, то управление передается подпрограмме набора статистических данных входного протока STATP и затем подпрограмме распределения заявок по очередям к приборам ROSTH (см. блоки 3, 4, 5,10, 11 на рис. 7.32). Если условие не выполняется, но есть хотя бы один из приборов, свободный от обслуживания, то заявка также не теряется (см. работу алгоритма по блокам 3, 4, 5, 6, 7, 8, 10, 11 на рис. 7.32).

В противном случае, после работы алгоритма по блокам 3, 4, 5, 6, 7, 8, управление передается подпрограмме набора статистических данных потока потерянных заявок STATT.

Особенности алгоритма модели данной СМО состоят в реализации вариантов алгоритмов подпрограммы ROSTH. В СМО могут быть следующие правила распределения заявок по приборам обслуживания:

а) к прибору с меньшей очередью;

б) случайным образом;

в) по порядку следования номеров приборов;

г) преимущественно к прибору с меньшим средним временем обслуживания.

Очевидно, что могут существовать другие правила распределения заявок к приборам.

На рис. 7.33 приведена структурная схема алгоритма подпрограммы ROSTHM распределения заявок к приборам с меньшей очереди.

Как видно из схемы алгоритма, в нем существуют логические переходы, определенные состояниями очередей к приборам. В табл. 7.2 приведены комбинации возможных состояний очередей к приборам и действие алгоритма подпрограммы ROSTHM по выбору приборов при постановке поступившей заявки в очередь. В случае если максимально допустимые емкости очередей к каждому прибору одинаковые JPM1=JPM2=JPM3, то необходимость в блоках 16, 17, 18 (см. рис. 7.33) отпадает и выходы блоков 10, 11, 12 подаются на вход блока 13.

 

Рис. 7.33

 

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

Пусть, например, поступила заявка и очереди ко всем приборам заполнены полностью, заняты обслуживанием первый и второй приборы, но в текущем такте Т освобождается от обслуживания третий прибор (последняя строка в табл. 7.2).

 

Таблица 4.2

JP1= JPМ1 JP2= JPM2 JP3= JPM3 JP1<JP2<JP3 JP1<JP3<JP2 JP2<JP1<JP3 JP2<JP3<JP1 JP3<JP1<JP2 JP3<JP2<JP1 Действие
Заявка к 3-у прибору
Заявка ко 2-у прибору
Заявка к 1-у прибору
Заявка ко 2-у прибору
Заявка к 1-у прибору
Заявка к 3-у прибору
Заявка к 1-у прибору
Заявка к 3-у прибору
Заявка ко 2-у прибору
Заявка к 1-у прибору
Заявка ко 2-у прибору
Заявка к 3-у прибору
Заявка к прибору, идентификатор занятости L которого равен нулю

 

В этом случае работа алгоритма происходит последовательно по блокам 1, 2, 3, 4, 6, 8, 9 (см. рис. 7.33). В результате заявка будет поставлена в очередь к третьему прибору обслуживания (см. блоки 8, 9 на рис. 7.33).

Пусть сложилась такая ситуация, что очереди в первом и втором приборе одинаковы, меньше их наибольшего значения и меньше очереди к третьему прибору обслуживания. В этом случае работа алгоритма происходит последовательно по блокам 1, 9, 10, 13, 15, 5, 19 (см. рис. 7.33). В результате поступившая в систему заявка будет поставлена в очередь к первому прибору обслуживания (см. блоки 5, 19 на рис. 7.33).

Если же очередь к первому прибору меньше наибольшего значения JPM1, больше очереди ко второму прибору, а очереди к первому и второму приборам меньше очереди к третьему прибору обслуживания, то работа алгоритма происходит последовательно по блокам 1, 9, 10, 16, 7, 20 (см. рис. 7.33). В результате поступившая в систему заявка будет поставлена в очередь ко второму прибору обслуживания (см. блоки 7, 20 на рис. 7.33).

На рис. 7.34 приведена структурная схема алгоритма подпрограммы ROSTHS распределения заявок к прибором случайным образом. Работает алгоритм следующим образом.

Вначале проверяются условия, при которых в очередях к приборам обслуживания имеются свободные места JP1<JPM1, JP2<JPM2, JP3<JPM3(см. блоки 1 – 3 на рис. 7.34).Если все эти условия выполняются, то равновероятно выбирается одна из очередей (см. работу блоков 4, 5, 6, 7 на рис. 7.34). Генерируется число Х, равномерно распределенное в интервале (0,1), которое затем приводится к отрезку (0,3). ЕслиХ меньше либо равно единице, то заявка ставится в очередь к первому прибору (см. блоки 8, 20 на рис. 7.34). ЕслиХ меньше либо равно двум, то заявка ставится в очередь ко второму прибору (см. блоки 9, 21 на рис. 7.34). ЕслиХ меньше либо равно трем, то заявка ставится в очередь к третьему прибору (см. блоки 10, 22 на рис. 4.34).

 

Рис. 7.34

 

Если JP1=JPM1, JP2<JPM2, JP3<JPM3, то равновероятно выбираются второй и третий приборы обслуживания (см. работу алгоритма по блокам 1, 11, 12, 13, 14 на рис. 7.34). Если JP1<JPM1, JP2=JPM2, JP3<JPM3, то равновероятно выбирается первый и третий приборы (см. работу блоков 1, 2, 17, 18, 19 на рис. 7.34).

Если из трех неравенств выполняется только одно, то заявка направляется к соответствующему прибору обслуживания. Например, при JP1<JPM1, JP2=JPM2, JP3=JPM3 заявка будет поставлена в очередь к первому прибору обслуживания (см. работу алгоритма по блокам 1, 2, 17, 8, 20 на рис. 7.34).

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

 

Рис. 7.35

 

Принцип реализации алгоритма распределения заявок к приборам в соответствии с их порядковыми номерами основан на запоминании номеров прибора, в которых была направлена заявка. Следующая заявка будет направлена в прибор, номер которого на единицу больше. Для этого вводится ключ F. Если значение ключа F=0, то заявка направлена в очередь к первому прибору (см. работу блоков 1, 2 на рис. 7.35). После чего значение F=1 и число заявок в очереди к первому прибору увеличивается на единицу (см. работу блоков 3, 9на рис. 7.35).

Если значение ключа F=1, то заявка направлена в очередь ко второму прибору (см. работу блоков 1, 4, 5 на рис. 7.35). После чего значение F=2 и число заявок в очереди ко второму прибору увеличивается на единицу (см. работу блоков 6, 10 на рис. 7.35). Если значение ключа F не равно ни нулю, ни единице, то заявка направлена в очередь к третьему прибору (см. работу блоков 1, 4, 7). После чего значение F=0 и число заявок в очереди к третьему прибору увеличивается на единицу (см. работу блоков 8, 11на рис. 7.35).

После работы подпрограммы ROSTH управление (см. рис. 7.32) передаётся подпрограммам MD1, MD2, MD3, в которых моделируются процессы обслуживания в каждом из каналов. Реализация каждой из подпрограмм одинакова и представляет собой последовательность блоков 9 – 22 имитационной модели одноканальной СМО (см. рис. 7.3).