
- •Практическое занятие №2 Моделирование входящих и выходящих потоков одноканальная смо с очередью как объект моделирования
- •Алгоритм, моделирующий работу смо
- •Понятие tpah3akta, блока, таймера и блок-схемы
- •Моделирование входящих и выходящих потоков
- •Пример создания модели идеализированного морского порта
Моделирование входящих и выходящих потоков
Истокам и стокам СМО в GPSS соответствуют блоки GENERATE (генерировать) и TERMINATE (завершить) соответственно. Через GENERATE транзакты поступают в модель, т. е. моделируется входящий поток. Таких блоков в одной модели может быть несколько.
Когда транзакт входит через блок GENERATE, интерпретатор планирует время прихода следующего разыгрыванием случайного числа в соответствии с распределением интервала поступления и прибавляет его к текущему значению таймера. При достижении этого времени следующий транзакт вводится в модель и т. д.
Общий вид блока: GENERATE А, В, С, D, Е. В таблице 3 приведены операнды и их значения для базисного GPSS. Графическое изображение блока представлено на рисунке 4.
Рисунок 4 - Графическое изображение блока GENERATE
В данном параграфе рассмотрим моделирование входящих потоков только с равномерным законом распределения интервалов прибытия заявок.
Таблица 3
Операнд |
Значение |
Значение по умолчанию |
A |
Средний интервал времени |
Ноль |
B |
Половина поля допуска равномерно распределенного интервала |
Ноль |
C |
Смещение интервалов |
Смещение отсутствует |
D |
Ограничитель |
Бесконечность |
E |
Уровень приоритета |
Ноль |
Пример 2. Имитировать входящий поток с равномерным распределением интервалов между заявками на отрезке [18, 24].
Рабочая формула:
xi = 18+(24-18)ξi,
где xi - случайная, равномерно распределенная величина на интервале [18, 24];
ξi
-
псевдослучайные числа, ξi
[0,1].
Для реализации на Фортране потребуется восемь операторов для
ξi и четыре для xi. В GPSS достаточно записать GENERATE 21, 3.
Положим, что в интервале [18, 24] были разыграны следующие значения: 19, 20, 20. Тогда первый транзакт войдет в модель в момент времени 19, второй - 39, третий - 59. Напомним, что таймер GPSS регистрирует только целые значения.
Пример 3. Транзакты должны поступать в модель точно через 2 единицы времени. Тогда запишем GENERATE 2.
Операнд С используется как для ускорения, так и для замедления прихода первого транзакта. Операнд D указывает число транзактов, которые могут войти в модель через этот блок, затем он перестает быть активным. Операнд Е устанавливает для транзакта уровень приоритета задаваемого числами от 0 до 127. Чем больше число, тем выше приоритет.
Пример 4. Имитировать входящий поток из 30 заявок 2-го уровня приоритета. Интервалы между приходами имеют равномерное распределение, т. е. 10±3 мин. Первая заявка должна прийти спустя 32 мин.
Такой входящий поток моделируется следующим образом:
GENERATE 10, 3, 32, 30, 2.
Д
1
Рисунок 5 - Графическое изображение блока TERMINATE
В счетчик завершений интерпретатор заносит целое положительное число из поля операндов оператора START (начать). При моделировании транзакты попадают в блоки TERMINATE и содержимое счетчика уменьшается. При достижении им нулевого значения моделирование в GPSS завершается.
Пример 5. Выполнить моделирование поведения вычислительной системы для 50 заявок.
Для завершения моделирования после выхода 50-й заявки через TERMINATE в счетчик завершений необходимо занести 50:
˳
˳
˳
TERMINATE 1,
START 50
Пример 6. Разработчик принял за единицу модельного времени 1 мин. Завершить моделирование через 7 часов.
Для этого нужно включить в модель сегмент:
GENERATE 420
TERMINATE 1
а в счетчик завершений занести единицу START 1.
Во всех других блоках TERMINATE, если они есть в программе, операнд А не указывается. В момент времени 420 транзакт входит в блок GENERATE и сразу же перейдет в блок TERMINATE, из счетчика завершений вычитается единица и моделирование завершается. Таким образом имитируются «часы» в GPSS.