Система имитационного моделирования GPSS

Лабораторная работа № 2. МОДЕЛИРОВАНИЕ СЛУЧАЙНЫХ ПОТОКОВ С РАЗЛИЧНЫМИ РАСПРЕДЕЛЕНИЯМИ

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

Блоки изменения маршрута следования транзакта

TRANSFER A,B,C,D - перемещает активный транзакт в новый блок.
A - режим блока перехода. Может принимать значения BOTH, ALL, PICK, FN, P, SBR, SIM либо числовое выражение.
B - номер блока или расположение. Имя параметра или номер в режиме P. 
C - номер блока или расположение. Увеличивающее значение в режиме FN или P.
D - увеличение для номера блока в режиме ALL. По умолчанию равен 1.

Режимы блока:

  • Безусловный переход. Когда операнд A отсутствует, переход осуществляется в безусловном режиме. В этом случае всегда осуществляется переход к блоку, указанному в операнде B.
     TRANSFER ,New_Place 
    При попадании активного транзакта в блок происходит переход к блоку с меткой New_Place.
  • Дробный режим. Когда операнд A не является ключевым словом, блок TRANSFER работает в дробном режиме. В этом случае активный транзакт переходит к блоку, указанному в операнде C с вероятностью из операнда A. Если операнд A принимает значения положительного целого, то это интерпретируется как тысячная доля и переводится в вероятность. В противном случае переходит к блоку, указанному в операнде B, или к следующему блоку за TRANSFER, если операнд отсутствует.
     TRANSFER .45,,New_Place 
    Транзакт перейдет к блоку с меткой New_Place с вероятностью 0.45. И с вероятностью 0.55 к следующему за ним блоку.
  • Режим BOTH. В этом режиме блок, в который должен быть направлен транзакт предварительно тестируется, может ли транзакт в него войти. Если может, то заходит в него, иначе тестируется второй. В случае когда ни в один из блоков транзакт войти не может, он остается в блоке TRANSFER.
     TRANSFER BOTH,First_Place,Second_Place 
    Транзакт войдет в блок First_Place, если он свободен, иначе попытается войти в блок Second_Place, и если уж туда войти не сможет, то останется в блоке TRANSFER до момента освобождения одного из блоков.
  • Режим ALL. В этом режиме тестируются блоки, начиная с указанного в операнде B до блока, указанного в операнде С, с шагом в номерах блоков из операнда D.
     TRANSFER ALL,First_Place,Last_Place,2 
    Когда активный транзакт войдет в этот блок, то сначала будет протестирован блок First_Place, в случае успеха перейдет на него, иначе будет тестировать по порядку все после First_Place до Last_Place с шагом между блоками равным 2.
  • Режим PICK. В этом режиме положение блока для перехода выбирается с помощью генератора случайных чисел. Положение выбирается в интервале от блока, указанного в операнде B, до блока, указанного в операнде C.
     TRANSFER PICK,First_Place,Last_Place 
    Блок перехода будет определен случайно между First_Place и Last_Place. Генератор может быть назначен с помощью команды меню Edit->Settings->Random Numbers.
  • Режим функции. Номер блока перехода выбирается с помощью функции, указанной в блоке B с увеличением положения на операнд C.
     TRANSFER FN,Func1,4 
    При входе в блок вычисляется значение функции Func1, увеличивается на 4, таким образом определяется место перехода.
  • Режим параметра. Номер блока для перехода вычисляется как сумма значения параметра, указанного в операнде B и величины в операнде C.
     TRANSFER P,Placemarker,1 
    Произойдет переход на блок следующий за указанным в параметре с названием Placemarker.
  • Режим подпрограммы. Переход при этом осуществляется к блоку, указанному в операнде B, но в параметр, указанный в блоке C, сохраняется значение текущего блока TRANSFER.
     TRANSFER SBR,New_Place,Placemarker 
    Переход будет осуществлен к блоку New_place и параметр Placemarker примет значение номера блока TRANSFER. Для возврата к этому блоку успользуется режим параметра, приведенный выше.
  • Синхронный режим. Переход осуществляется к блокам в зависимости от состояния индикатора Delay. Индикатор Delay устанавливается, когда активный транзакт отвергается некоторым блоком, и снимается, когда он входит в блок.
     TRANSFER SIM,Nodelay_Place,Delay_Place 
    Транзакт перейдет к блоку Nodelay_Place, если индикатор Delay не установлен, и к блоку Delay_Place в противном случае.

Распределения случайных величин в GPSS

Имеется более 20 встроенных функций, описывающих различные распределения. Эти распределения применимы для широкого класса задач. Каждая процедура требует задания специфических параметров. Первый параметр - номер генератора случайных чисел. Другие параметры зависят от типа распределения. Они могут, например, описывать смещение, сжатие и форму функции плотности распределения.

Таблица 1. Встроенные функции распределения случайных величин.
Распределние Функция Параметры
Бета Beta(A,B,C,D,E) A - номер генератора случайных чисел, [B,C] - интервал генерируемых значений, D и E - определяющие значения формы распределения.
Биномиальное Binomial(A,B,C) B - количество независимых испытаний Бернулли, С - вероятность успешных испытаний Бернулли.
Дискретно-равномерное DUniform(A,B,C) [B,C] - интервал генерируемых значений
Экспоненциальное Exponential(A,B,C) B - величина сдвига, C - величина сжатия.
Экстремальное значение типа A ExtValA(A,B,C) B - величина сдвига, C - величина сжатия.
Экстремальное значение типа B ExtValB(A,B,C) B - величина сдвига, C - величина сжатия.
Гамма Gamma(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Геометрическое Geometric(A,B) B - вероятность успешных испытаний Бернулли.
Обратное Гаусса InvGauss(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Обратное Вейбулла InvWeibull(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Лапласа Laplace(A,B,C) B - величина сдвига, C - величина сжатия.
Логистическое Logistic(A,B,C) B - величина сдвига, C - величина сжатия.
Логлапласово LogLaplace(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Логлогистическое LogLogis(A,B,C,D,E) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Логнормальное LogNormal(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Отрицательное биномиальное NegBinom(A,B,C) B - количество независимых испытаний Бернулли, после которого возвращается число безуспешных испытаний, С - вероятность успешных испытаний Бернулли.
Нормальное Normal(A,B,C) B - среднее значение, C - стандартное отклонение.
Парето Pareto(A,B,C) B - величина сдвига, C - величина сжатия.
Пирсона типа 5 Pearson5(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Пирсона типа 6 Pearson6(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.
Пуассона Poisson(A,B) B - среднее значение.
Треугольное Triangular(A,B,C,D) [B,C] - интервал генерируемых значений, D - мода распределения.
Равномерное Uniform(A,B,C) [B,C] - интервал генерируемых значений.
Вейбулла Weibull(A,B,C,D) B - величина сдвига, C - величина сжатия, D - определяющее значение формы распределения.

Примеры обращения к функциям распределения

ADVANCE (VarBit+(Exponential(3,Mean)))
ASSIGN 3,((Normal(2,Mean,Variance))#2.45)
GENERATE (Exponential(11,0,X$Mat))

Практическое задание

  1. Необходимо построить модель обработки заявок согласно схеме, приведенной на рис. 1.
    Рис. 1. Схема модели обработки заявок.

    На схеме обозначены следующие элементы: gen - генератор заявок, con1 и con2 - элементы разветвления, fac1 и fac2 - устройства обработки, term - завершение обработки. Генератор формирует заявки с интервалом времени n, подчиненому случайному распределению. Устройства обрабатывают заявки за время m1 и m2 соответственно. Разветвление происходит по случайному закону с равномерным распределением и вероятностью y1 и y2. Значения параметров и распределения указаны в таблице 2.

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

    Таблица 2. Данные для модели.
    Вариант n m1 m2 y1 y2
    1 Экспоненц., b=5.6, l=3.4 Равном., [0.8, 3.5] Равном., [1.4, 2.8] 0.5 0.7
    2 Лапласа, a=4.6, b=2.8, l=1.7 Треугол., [0.9, 2.4], c=1.6 Треугол., [1.5, 2.9], c=2.1 0.4 0.8
    3 Логистич., b=4.6, l=3.2 Равном., [2.1, 5.3] Равном., [2.5, 4.2] 0.4 0.6
    4 Экспоненц., b=4.7, l=3.9 Равном., [0.9, 3.1] Равном., [2.1, 3.5] 0.4 0.5
    5 Лапласа, a=3.2, b=2.8, l=3.0 Треугол., [1.7, 3.2], c=2.4 Треугол., [1.9, 4.8], c=2.7 0.4 0.8
    6 Логистич., b=3.6, l=2.6 Равном., [1.6, 3.3] Равном., [2.7, 4.7] 0.5 0.7
    7 Лапласа, a=3.5, b=2.1, l=2.1 Треугол., [0.5, 2.7], c=1.7 Треугол., [1.8, 3.3], c=2.3 0.5 0.7
    8 Логистич., b=2.6, l=2.9 Равном., [0.8, 3.2] Равном., [2.0, 5.0] 0.5 0.5
    9 Экспоненц., b=6.6, l=2.7 Равном., [1.2, 5.3] Равном., [1.7, 2.9] 0.3 0.3
    10 Логистич., b=3.6, l=2.9 Равном., [1.7, 4.8] Равном., [2.3, 4.4] 0.5 0.7
    11 Лапласа, a=5.1, b=3.7, l=0.7 Треугол., [0.7, 3.1], c=1.8 Треугол., [2.5, 3.9], c=3.2 0.6 0.3
    12 Экспоненц., b=4.6, l=3.1 Равном., [3.8, 9.5] Равном., [1.9, 3.6] 0.6 0.2
    13 Логистич., b=4.4, l=3.8 Равном., [2.7, 4.2] Равном., [2.9, 4.8] 0.6 0.8
    14 Лапласа, a=4.1, b=2.4, l=2.3 Треугол., [1.2, 2.9], c=1.9 Треугол., [1.8, 4.0], c=2.5 0.2 0.6
    15 Экспоненц., b=8.3, l=3.9 Равном., [2.5, 6.1] Равном., [1.8, 4.8] 0.5 0.8
    17 Логистич., b=4.9, l=3.4 Равном., [2.9, 5.0] Равном., [1.8, 3.8] 0.3 0.9
    18 Логистич., b=4.0, l=5.6 Равном., [2.5, 5.1] Равном., [3.1, 4.9] 0.4 0.6
    19 Экспоненц., b=4.9, l=2.4 Равном., [1.8, 4.8] Равном., [3.5, 7.2] 0.2 0.9
    20 Лапласа, a=3.6, b=3.8, l=1.5 Треугол., [1.9, 4.4], c=3.0 Треугол., [1.2, 3.6], c=2.6 0.5 0.7

  2. Рассмотрим системы фазового типа. Каждая заявка в такой системе проходит ряд фаз, время задержки в которой определяется случайной величиной, имеющей экпоненциальное распределение.

    Этапы решения задачи:

    • создать модель системы с заданным распределением (Табл. 3), используя функцию экспоненциального распределения, то есть воссоздав структуру системы;
    • провести эксперименты с моделью;
    • построить диаграмму распределения случайной величины, описывающей время обработки заявки в системе;
    • сравнить результаты экспериментов с теоретическими функциями распределения; то есть найти величину отклонения экспериментальной функции распределения от теоретической.
    Таблица 3. Данные для моделей.
    Вариант Распределние Параметры
    1 Эрланга r=5, m=4.5.
    2 гиперэкспоненциальное r=4, y1=0.2, m1=3.5, y2=0.4, m2=4.2, y3=0.3, m3=3.8, y4=0.1, m4=4.7.
    3 Кокса r=4, m1=3.7, y1=0.5, m2=4.2, y2=0.7, m3=5.1, y3=0.1, m4=4.7, y4=0.
    4 гиперэрланговское r=4, y=0.6, m=4.8.
    5 Эрланга r=6, m=6.3.
    6 гиперэкспоненциальное r=4, y1=0.3, m1=3.9, y2=0.5, m2=3.2, y3=0.1, m3=2.8, y4=0.1, m4=4.2.
    7 Кокса r=4, m1=3.9, y1=0.4, m2=4.9, y2=0.3, m3=7.1, y3=0.3, m4=3.7, y4=0.
    8 гиперэрланговское r=6, y=0.4, m=5.9.
    9 Эрланга r=6, m=5.7.
    10 гиперэкспоненциальное r=3, y1=0.4, m1=3.9, y2=0.2, m2=4.7, y3=0.4, m3=4.5.
    11 Кокса r=5, m1=3.8, y1=0.6, m2=4.9, y2=0.5, m3=3.5, y3=0.2, m4=4.8, y4=0.6, m5=3.9, y5=0.
    12 гиперэрланговское r=7, y=0.3, m=5.7.
    13 Кокса r=3, m1=2.7, y1=0.6, m2=3.7, y2=0.6, m3=4.9, y3=0.
    14 гиперэрланговское r=6, y=0.7, m=3.7.
    15 Эрланга r=5, m=4.9.
    16 гиперэкспоненциальное r=4, y1=0.2, m1=4.9, y2=0.3, m2=2.2, y3=0.4, m3=3.8, y4=0.1, m4=4.7.
    17 Кокса r=4, m1=5.9, y1=0.6, m2=3.5, y2=0.7, m3=5.4, y3=0.5, m4=4.7, y4=0.
    18 гиперэрланговское r=5, y=0.5, m=4.5.
    19 Эрланга r=7, m=4.9.
    20 гиперэкспоненциальное r=3, y1=0.4, m1=2.8, y2=0.2, m2=4.9, y3=0.4, m3=5.7.

Следующая работа Главная страница