2.07M
Категория: ПрограммированиеПрограммирование

Системы обслуживания с несколькими приборами и очередями

1.

Системы обслуживания с несколькими приборами и очередями
уход
приход
Одна общая очередь к параллельно
работающим приборам
моделируется многоканальным
устройством.
Общая очередь
Раздельная очередь1
приход
уход
В реальности существуют раздельные
очереди (они могут быть разными) к
параллельным приборам:
продовольственные магазины,
турникеты, и т. п.
Раздельная очередь2
Раздельная очередь3
Здесь транзакты могут выбирать
одну из 3-х очередей-ветвей, потом
снова объединиться.
Каждая ветвь может быть смоделирована цепочкой блоков
Queue-Seize-Depart-Advance-Release.
Если использовать числовые имена блоков и значения операндов
А этих блоков определить косвенно, то тогда можно обойтись
одной единственной последовательностью блоков для изображения1
тех же 3-х ветвей.

2.

Queue
Queue
1
Seize
1
1
Depart
Seize
Depart
2
Queue
2
2
Seize
Depart
Advance
Advance
Advance
Fn$Hold
Fn$Hold
Fn$Hold
1
Release
Queue
Seize
Depart
Р1
Р1
Р1
Advance
Release
2
Release
3
3
3
3
Вместо изображения 3-х ветвей используется
компактное изображение одной ветви с
косвенной передачей параметров через Р1.
Здесь предполагается, что номер ветви
заранее определяется, значением
параметра Р1 до входа в этот фрагмент.
Fn$Hold
Release
Р1
Экономия тем больше, чем большее
число ветвей (сейчас 5 вместо 15).
2

3.

X
Операнд
A
B,C
D
Блок Select в режиме оператора отношения
При входе транзакта в блок Select
выполняется просмотр состояний
элементов заданной группы в порядке
(F)
возрастания номеров.
Select
A,B,C,D,E
Если найден такой элемент, просмотр
прекращается. Иначе просмотр продолжается
до конца указанного множества.
Значение
Умолчание
G> Greater
GE>= Greater
or Equal
Номер параметра транзакта, в который
записывается номер члена группы,
отвечающего заданному условию
ошибка
Наибольший и наименьший номер
множества группы
Ошибка
E= Equal
Ошибка
NE/= Not
Equal
LE< Less
or Equal
Значение, с которым сравнивается
заданный атрибут Е
E
Имя группы заданного стандартного
числового атрибута
ошибка
F
номер блока, куда переходит транзакт, если
ни один член группы не отвечает заданному
условию Х
Следующий
блок
X
G> GE>= E= NE/= LE< L<
L< Less
3

4.

Рассмотрим фрагменты с использованием блока Select в режиме отношения.
Здесь просматриваются приборы (судя по F).
Е
Select
Все СЧА
Selесt
Номера приборов от 1 до 3.
7,1,3,0,F
Среди них находится номер свободного прибора,
у которого F=0.
Этот номер записывается в 7 параметр активного транзакта.
Здесь просматриваются нагрузки многоканальных устройств.
Просматриваются номера от 5 до 8.
L
Select
P3,5,8,250,SR
Среди них находятся номер устройства, нагрузка которого SR<250.
Этот найденный номер записывается в параметр активного
транзакта, номер которого в параметре 3 (т.е. косвенно).
Т.е. если Р3=4, то запись будет в 4 параметр.
Здесь просматриваются времена пребывания без нулевых.
Просматриваются номера от 13 до 17.
GE
Select
5,13,17,3,QX
(exit2)
Среди них находятся номер устройства, время
пребывания без нулевых которого QX>=3.
Этот номер записывается в 5 параметр активного транзакта.
4

5.

Все СЧА
Selесt
Если ни один член группы не удовлетворяет заданным условиям и операнд F
не используется, тогда в операнд А записывается 0 и транзакт переходит в
следующий блок.
Если операнд F задан и условия не выполняется, тогда транзакт переходит в
блок с именем F, но параметр транзакта не изменяется.
Если несколько членов группы удовлетворяют заданным условиям, то в
параметр А будет записан меньший номер, он первым попадется при
проверке.
Блок Select в режиме MIN MAX
Отличие режима MIN MAX от режима отношения заключается в
следующем:
1. Операндом Х является ключевое слово MIN или MAX
2. Операнды D и F не имеют смысла и отсутствуют.
В остальном всё полностью совпадает.
5

6.

Рассмотрим фрагменты с использованием блока Select в режиме MIN MAX.
Все СЧА
Selесt
MIN
MAX
Select
6,5,8,,FR
Select
5,9,14,,R
Здесь просматриваются приборы (судя по FR) с номерами
от 5 до 8.
Среди них находится номер прибора с минимальной
нагрузкой, т.е. у которого FR минимальна.
Этот номер записывается в 6 параметр активного транзакта.
Здесь просматриваются оставшаяся емкость многоканальных
устройств R с номерами от 9 до 14.
Среди них находятся номер устройства, у которого R максимальна.
Этот найденный номер записывается в 5 параметр активного
транзакта.
Просматриваются времена занятия приборов FT с номерами от 2 до 5.
MAX
Select
Р2,2,5,,FT
Среди них находятся номер устройства, у которого FT максимально.
Найденный номер записывается в параметр активного транзакта,
номер которого указан значением параметра 2 (косвенно).
Просматриваются очереди Q с номерами от значения, которое
косвенно указано в Р2, до значения, которое косвенно указано в Р3.
MIN
Select
Р1,Р2,Р3,,Q
Среди них находятся номер очереди , у которой длина Q минимальна.
Найденный номер записывается в параметр активного транзакта,
номер которого указан значением параметра Р1 (косвенно).
Соответствующий программный код для этого фрагмента выглядит так:
Select MIN P1,P2,P3,,Q
6

7.

Фрагмент модели для поиска кратчайшей очереди
(Queup)
Е
Select
1,1,3,0,F
(Queup)
MIN
Select
1,1,3,,Q
(line)
(line)
transfer
Транзакт сначала входит в
блок Select и пытается
найти свободный прибор
F=0.
Если свободный
прибор существует,
его номер
записывается в Р1.
Затем транзакт проходит по цепочке блоков Queue-seizedepart-advance-release именно этого прибора.
Если свободного прибора нет, транзакт направляется на
второй Select, который находит самую короткую очередь
Q среди 1-3 и номер её записывается в параметр Р1.
Затем транзакт попадает на обслуживание в самую
короткую очередь на метку (line).
Это типовая простейшая стратегия.
7

8.

Сравнение альтернативных систем обслуживания в банке
Постановка задачи
Приход клиентов образует пуассоновский поток со средней интенсивностью
200/час. Открыто 8 окошек кассиров. Есть 5 видов обслуживания.
Вид
обслужи
вания
Относит
ельная
частота
Среднее
время
обслужи
вания
1
0,10
45
2
0,19
75
3
0,32
100
4
0,24
150
5
0,15
300
Время обслуживания каждого вида имеет
экспоненциальное распределение со своим средним
значением. Каждый клиент требует только 1 обслуживание
за визит. После обслуживания клиенты уходят.
Существует 2 системы обслуживания.
Первая система: к каждому раздельная очередь.
Клиент ищет или свободное окошко или с самой
короткой очередью.
Вторая система: общая очередь, тогда исключаются
ситуации, когда отдельные клиенты с очень долгим
обслуживанием задерживают всю очередь.
Надо сравнить эти две системы. Для
этого надо построить модель для каждой
системы обслуживания за 5 дней по 5
часов/день.
Раздельные
очереди
Общая
очередь
8

9.

Существует большое рассеяние данных (свойство экспоненциального
распределения), что может оказать искажающее влияние на результат
сравнения систем, поэтому надо сделать максимально схожими условия
экспериментов.
Схемы
Очередей
Т.е. в модели последовательность времени прихода клиентов и
последовательность значений времени обслуживания должна быть строго
одинаковой для сравниваемых систем.
Например, если 21 клиент входит в модель с раздельными очередями через
16 минут от начала работы на 3-й день от начала работы и требует 165 сек
для обслуживания, то же самое должно быть для 21 клиента на 3-й день
работы в системе с одной общей очередью.
В случае одновременных событий: «приход клиента» и «завершение
обслуживания» - первым в модели должно быть выполнено «завершение
обслуживания», в реальности так более вероятно.
9

10.

Метод построения модели
Основной вопрос – как сделать строго одинаковыми условия моделирования
для разных систем обслуживания.
Повторяемость условий прихода можно обеспечить, если использовать в
моделях для сравниваемых систем один и тоже генератор, например RN1.
Но для повторяемости времени обслуживания только использование одного и
того же генератора может оказаться недостаточным, если время обслуживания
разыгрывать непосредственно перед началом обслуживания, т.е. в блоке
Advance .
Например, 21 приход клиента в системе с общей очередью привел бы к 21
розыгрышу времени обслуживания.
Но 21 приход клиента с раздельными очередями может привести, например, к
18 розыгрышу времени обслуживания. Поэтому значения времени
обслуживания будут, естественно, различаться для разных систем, а это
логическая ошибка моделирования.
Для полной повторяемости условий сравнительного эксперимента
достаточно разыгрывать время обслуживания сразу после входа транзакта
в модель. Тогда i вход модель вызовет i розыгрыш времени обслуживания
для обоих сравниваемых моделей.
Разыгранное время обслуживания необходимо сохранить в какомнибудь параметре транзакта и использовать в блоке Advance в
качестве операнда А.
10

11.

При единице модельного времени 0,1 сек получаем интервал прихода
200/час=60мин*60сек*10:200=36000 :200=180
приход
требований
Generate
180,Fn5
1,Fn$Mean,5
ASSIGN
Если определить какую-нибудь функцию с
числовым именем как экспоненциальную,
например, 5, то приход транзакта можно
оформить так:
Для каждого транзакта при входе в модель 3
раза разыгрывается случайные числа, т.е. 3
раза используется какой-нибудь генератор,
например, RN1:
1. При расчете интервала прихода по
экспоненциальному распределению в функции 5
2. При расчете среднего времени облуживания
(функция Mean по таблице данных)
3. При расчете фактического времени облуживания
в соответствии с экспоненциальным
распределением (функция 5)
Использование функции 5 с числовым именем дает возможность
использовать ASSIGN с оператором С как сомножитель для
расчета фактического экспоненциального времени облуживания.
11

12.

Для обеспечения старшинства события «завершение обслуживания» над
событием «приход транзакта» используется повышение приоритета перед
обслуживанием в модели с раздельными очередями.
Для модели с общей очередью клиенты не различают кассиров, поэтому
приоритет можно не изменять.
Таблица определений
Единица времени 0.1 сек
Система с общей очередью
GPSS
Реальность
Система с раздельными очередями
GPSS
Реальность
Транзакт 1
сегмента
Клиенты, Р1-время
обслуживания
Р2-номер очереди
Транзакт 2
сегмента
Таймер
Функция 5
Экспоненциальное
распределение
Транзакт 1 сегмента
Клиенты,
Р1-время
обслуживания
Транзакт 2 сегмента
Таймер
Функция 5
Экспоненциальное
распределение
Функция
Mean
Среднее время банковских
операций
Функция Mean
Среднее время
банковских
операций
Приборы 1-8
8 кассиров банка
Очереди 1-8
Очереди к кассам
Очередь One
Общая очередь
Очередь 10
Искусственная очередь для
суммарной статистики
по всем очередям
Многоканальное
устройство Telrs
8 кассиров банка
12

13.

Разработка блок-схемы модели с общей очередью
приход
клиентов
Generate
180,Fn5
Для 1 дня
Розыгрыш
времени
обслуживания
Р1=время
обслуживания
1,Fn$Mean,5
5час*60мин*60сек*10=
180 000
ASSIGN
Queue
one
Generate
Приход
транзакта
таймера
180 000
Enter
Depart
Telrs
one
Terminate
1
Завершение
моделирования
Advance
P1
Leave
Telrs
Terminate
13

14.

**************общая очередь
************* сегм 1
Mmm equ 5
Mmm function Rn1,C24
0,0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.609/
0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12/
0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/
0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7/0.9998,8
Telrs
STORAGE 8
Mean
function Rn1,D5
0.1,450/0.29,750/0.61,1000/0.85,1500/1,3000
Generate 180,Fn5
Assign 1,Fn$Mean,5
Queue one
Enter Telrs
Depart one
Advance p1
Leave Telrs
terminate
************* сегм 2
Generate 180000
Terminate 1
Start 1
****2 день
Clear
Start 1
****3 день
Clear
Start 1
****4 день
Clear
Start 1
****5 день
Clear
Start 1
;p1=врем обсл
При использовании Clear
статистика сбрасывается,
но последовательность
выдачи случайных чисел
генератором Rn
продолжается.
14

15.

Разработка блок-схемы модели с раздельными очередями
приход
требований
Generate
F=число
парам.
Для 1 дня
180,Fn5
5час*60мин*60сек*10=
180 000
1,Fn$Mean,5
ASSIGN
Повысить
приоритет
1
Priority
(Queup)
Е
Select
2,1,8,0,F
Generate
(Queup)
MIN
180000
Select
2,1,8,,Q
(line)
(line)
transfer
Queue
Terminate
Р2
Depart
Queue
Приход
транзакта
таймера
1
Завершение
моделирования
Р2
10
Advance
Seize
Depart
Р2
10
Р1
Release
Washr
Terminate
15

16.

**************раздельные очереди
************* сегм 1
Mmm equ 5
Mmm function Rn1,C24
0,0/0.1,0.104/0.2,0.222/0.3,0.355/0.4,0.509/0.5,0.609/
0.6,0.915/0.7,1.2/0.75,1.38/0.8,1.6/0.84,1.83/0.88,2.12/
0.9,2.3/0.92,2.52/0.94,2.81/0.95,2.99/0.96,3.2/0.97,3.5/
0.98,3.9/0.99,4.6/0.995,5.3/0.998,6.2/0.999,7/0.9998,8
Mean
function Rn1,D5
0.1,450/0.29,750/0.61,1000/0.85,1500/1,3000
Line
Queup
Generate 180,Fn5
Assign 1,Fn$Mean,5
;p1=врем обсл
Priority 1
Select E 2,1,8,0,F,Queup
;своб. касс
Queue P2
Queue 10
;искусств очередь для общ. учета
Seize P2
Depart 10
Depart P2
Advance P1
Release P2
Terminate
Select Min 2,1,8,,Q ;короткая очередь
Transfer ,line
************* сегм 2
Generate 180000
Terminate 1
Start 1
****2 день
Clear
Start 1
****3 день
Clear
Start 1
****4 день
Clear
Start 1
****5 день
Clear
Start 1
16

17.

Обсуждение результатов
Среднее время пребывания в
очереди
Количество нулевых
входов
день
Общая
очередь
Раздельные
очереди
Общая
очередь
Раздельные
очереди
1
817
1085
440
507
2
821
1199
305
398
3
1683
1873
200
303
4
504
856
413
495
5
1192
1630
242
323
среднее
1003
1328,6
1600
2026
Наблюдается сильное
рассеяния результатов
для отдельных дней
как результат
проявления заданного
экспоненциального
распределения.
В общей очереди
среднее время
ожидания в очереди
=100,3сек ~1,7мин.
Для раздельных очередей время ожидания в очереди 132,9сек ~2,2мин,
т.е. общая очередь имеет преимущество перед раздельными очередями в
виде экономии времени ~24%.
Если бы время обслуживания разыгрывалось не при входе в модель, как было
сделано, а непосредственно в блоке Advance, то можно было бы получить
ложный противоположный вывод на основе того, что, например, время в
раздельной очереди в 4 день =856 меньше,
чем в 3 (=1683)и 5 (=1192) дни в общей очереди.
Но нулевых входов меньше для общей очереди, чем для раздельных очередей,
т.к. предполагается, что в раздельных очередях нет переходов между очередями.
Нагрузка кассиров слегка убывает с увеличением номера кассы, т.к.
17
большие номера занимаются после меньших.(Убедиться по отчету)

18.

Конец
презентации
18

19.

Блок Select в режиме отношения
X
Операнд
A
B,C
D
Select
A,B,C,D,E
(F)
Значение
Умолчание
Номер параметра транзакта, в который
записывается номер члена группы,
отвечающего заданному условию
Ошибка
Наибольший и наименьший номер
множества группы
Ошибка
Значение, с которым сравнивается
заданный атрибут Е
Ошибка
E
Имя группы заданного стандартного
числового атрибута
Ошибка
F
номер блока, куда переходит транзакт, если
ни один член группы не отвечает заданному
условию Х
Следующий
блок
X
G> GE>= E= NE/= LE< L<
19

20.

Блок Select в режиме MIN MAX
X
Операнд
A
Select
A,B,C,,E
Значение
Умолчание
Номер параметра транзакта, в который
записывается номер члена группы,
отвечающего заданному условию
Ошибка
B,C
Наибольший и наименьший номер
множества группы
Ошибка
D
Отсутствует
E
Имя группы заданного стандартного
числового атрибута
F
Отсутствует
X
MIN MAX
Ошибка
20

21.

Рассмотрим наиболее употребляемые СЧА
СЧА для приборов (Facility)
Наименование
Значение
числовое
символьное
Fi
F$имя
0- занят, 1- свободен
FCi
FC$имя
Число занятий прибора
FRi
FR$имя
Нагрузка в долях 1000
FTi
FT$имя
Целая часть задержки транзакта
на приборе в среднем
21

22.

СЧА для многоканальных устройств
Наименование
числовое
Ri
Si
SAi
SСi
Значение
символьное
R$имя
Емкость незанятой части
S$имя
SA$имя
Занятая часть
Среднее заполнение
SС$имя
Счетчик числа входов, каждый Enter
увеличивает на +В
SMi
SM$имя
Максимум занятости
SRi
SR$имя
Нагрузка в долях 1000
STi
(Set)
ST$имя
Целая часть задержки транзакта в
устройстве в среднем
22

23.

СЧА для очереди (Queue)
наименование
числовое
символьное
Qi
Q$имя
QAi
QСi
QMi
QA$имя
QС$имя
QM$имя
значение
Текущая длина очереди
Средняя длина очереди
Счетчик числа входов в очередь,
каждый вход увеличивает на +В
Максимальная длина очереди
QTi
QT$имя
Целая часть среднего времени задержки
транзакта в очереди вместе с нулевыми
QXi
QX$имя
Целая часть среднего времени задержки
транзакта в очереди без нулевых
QZi
QZ$имя
Число нулевых входов
23

24.

Раздельные
очереди
Общая
очередь
24
English     Русский Правила