Для формирования выберем датчик случайных чисел, подчиняющихся закону . Для определения момента окончания ожидания выберем сумматор .
4. Имитаторы правила обслуживания.
- Клиент не обслуживается, если момент окончания обслуживания выходит за рамки отведённого времени Т: >Т.
- Клиент, поступивший к занятому оператору, становится в очередь: .
- Клиент, у которого время нахождения в очереди ограничено и меньше времени окончания обслуживания предыдущего клиента, не обслуживается: .
2. Имитаторы вспомогательных сервисных функций
1. Имитаторы сбора и обработки информации.
Для определения указанных выше характеристик необходимы следующие блоки:
- Счётчик числа обслуженных клиентов ;
- Счётчик числа необслуженных клиентов ;
- Сумматор, определяющий общее время обслуживания всех клиентов в интервале времени от 0 до Т: ;
- Аналогичный сумматор необходим для вычисления общего времени ожидания клиентами своего обслуживания ;
- Для вычисления необходим вычислитель (вычислитель фактического времени ожидания);
- вычислители: ; ; .
2. Имитаторы организации эксперимента, следующие:
- прогон считается законченным, если tiТ;
- если за время Т собрано недостаточное число данных (меньше 30), в алгоритм вводятся дополнительные блоки, с помощью которых организуются повторные прогоны модели. Это блоки: счётчик числа прогонов N = N + 1 и арифметическое устройство, проверяющее условие N N0 , где N0 – требуемое число прогонов.
3. Имитаторы установки исходных данных.
Если в системе необходимо провести несколько повторных прогонов, то в алгоритме необходимо предусмотреть блок установки начальных условий при переходе к очередному прогону. Блок должен устанавливать: , , , .
Имитаторы основных функций:
А3: ; Ф4: à; А5: ; А6: ;
F7: ; F8: ; Ф9: à ; А10: ;
А11: ; Ф1: à , .
Имитаторы сбора и обработки:
К12: ; А13: ; К14: ; А18: ;
А19: ; А20: , , .
Имитаторы организации испытаний:
А2: ti < T; К15: N = N + 1; А16: N N0.
Имитаторы задания исходных данных:
F17: , , , .
3. Структура алгоритма
4. Описание алгоритма
Оператором 1 формируется поток клиентов к оператору банка. Процедура проверки окончания модельного времени выполняется оператором 2. Если клиент обратился до истечения времени Т, он принимается оператором банка. Далее управление передаётся оператору 3, с помощью которого выясняется, свободен ли оператор банка. Если оператор банка свободен, управление передаётся оператору 8, который присваивает моменту начала обслуживания значение момента поступления в систему. Затем операторами 9 и 10 имитируется обслуживание клиента, а оператором 11 проверяется, достаточно ли оставшегося времени до конца работы оператора, чтобы обслужить клиента. Если «да», то управление передаётся операторам 18, 13, 12, 19 для сбора статистических данных. Далее клиент считается обслуженным, управление передаётся на вход оператора 1 для формирования нового поступления.
Если условие, записанное в операторе 2, не выполняется, то управление передаётся оператору 15 для подсчёта числа прогонов (смен работы оператора банка). Далее оператором 16 проверяется, по всем ли прогонам модели собрана статистика. Если «нет», то путём передачи управления оператору 17 переходят к имитации следующей смены работы оператора банка. Переход осуществляется путём установки нулевых начальных значений переменным, циркулирующим в алгоритме. От оператора 17 управление передаётся оператору 1 для формирования первого клиента новой смены.
Если условие оператора 3 не выполняется (клиент поступил в занятую систему), путём передачи управления операторам 4 и 5 имитируется постановка клиента в очередь. Далее управление передаётся оператору 6, проверяющему, дождётся ли клиент, находящийся в очереди, своего обслуживания. Если «да», то управление от 7 передаётся операторам 9, 10 для имитации обслуживания. Если «нет», управление передаётся оператору 14, который ведёт подсчёт числа необслуженных клиентов.
Если условие оператора 11 не выполняется, то управление передаётся оператору 14 для подсчёта числа необслуженных клиентов.
Если условие оператора 16 не выполнено (все смены просмотрены), управление передаётся оператору 20 для обработки результатов и для вычисления искомых характеристик.
2. 3. Общецелевая моделирующая система GPSS (GPSS/PC)
GPSS ориентирована на моделирование дискретных систем, в частности, систем обслуживания.
Система содержит боле 40 программных блоков и следующие функциональные объекты:
1) транзакты;
2) очереди;
3) устройства;
4) функции;
5) памяти;
6) логические ключи.
Каждый из функциональных блоков и объектов представляет собой набор программных средств, выполняющих те или иные функции. Функциональный объект имеет свои стандартные числовые атрибуты (СЧА).
Функциональные объекты
1. Транзакты (ТА) имитируют пользователей системы, заявки к системе, требования, обращения к системе и т.д. Каждый транзакт имеет индивидуальный номер и номер блока, в котором он находится и набор стандартных числовых атрибутов:
PS $ - приоритет,
X $ j – j-ый номер ТА,
M $ i – время прохождения i-го ТА,
P $ j – j-ый параметр ТА.
ТА создаётся специальным блоком GENERATE, проводится по системе (алгоритму) и выводится из системы оператором TERMINATE. При этом о нем собираются статистические данные.
2. Устройства имитируют процесс обработки ТА и включают в себя следующие операторы (программные блоки):
- SEIZE – занять устройство;
- операторы обработки;
- RELEASE – вывод ТА из устройства.
Устройство имеет следующие СЧА:
FR $ j – коэффициент использования j-го устройства;
FT $ j – среднее время обработки j-ым устройством.
3. Очереди имитируют постановку, нахождение и вывод ТА из очереди. Очереди составляются двумя блоками:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.