Примеры решения задач моделирования на GPSS
Примеры решения задач моделирования на GPSS
Пример 1. Моделирование непрерывной случайной величины распределённой по экспоненциальному закону с l = 0.1.
10 SIMULATE
20 EXPON FUNCTION RN1, C24
30 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69
.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12
.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5
.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0
40 GENERATE 10,FN$EXPON
Рекомендуемые материалы
50 MARK1
60 TABULATE XTIME
70 TERMINATE 1
80 XTIME TABLE P1,0,2,100
90 START 200
100 END
Модель включает 4 блока, выполняющие следующие функции:
40 - генерирование транзакта;
50 - присвоение параметру 1 транзакта значения, равного текущему значению часового времени;
60 - уничтожение транзакта;
10 - признак, необходимый для прогона модели;
20 - описание функции (EXPON - метка, RN1 - генератор случайной функции, число пар координат-24);
30 - задание значений пар координат функции;
80 - определение таблицы; XTIME - метка, табулируемой величиной является Р1 значение параметров последовательных транзактов, верхний предел первого интервала равен 0, ширина интервала - 2, общее число интервалов - 100;
90 - признак ввода данных, необходимый для выполнения моделирования; прогон модели должен завершится после прохождения через неё 200 транзактов;
100 - признак конца программы.
Пример 2. Составить модель композиции двух случайных величин X1 и X2 имеющих экспоненциальные распределения с параметрами l1 и l2 (Х= X1 + X2), удовлетворяющих обобщённому закону Эрланга 1-ого порядка: g(t)= l1l2(e-l1- e-l2)/(l1-l2).
Рис. 10.1. К задаче моделирования композиции 2-х случайных величин.
10 SIMULAT
20 EXPON FUNCTION RN1, C24
30 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69
.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12
.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5
.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0
40 GENERATE 0,0,,1
50 ASSIGN 1,K500
60 INPUT ADVANCE 10,FN$EXPON
70 ADVANCE 20, FN$EXPON
80 TABULATE XTIME
90 LOOP 1,INPUT
100 TERMINATE 1
110 XTIME TABLE M1,0,5,100
120 START 1
130 END.
Функции блоков:
40 - генерирование 1-ого транзакта в момент времени t=0;
50 - присвоение параметру 1 значения, равного 500;
60 - моделирование экспоненциального распределённых временных интервалов с параметром l1;
70 - моделирование экспоненциального распределённых временных интервалов с параметром l2;
80 - формирование таблиц частот XTIME для суммарных интервалов;
90 - контроль числа прохождений транзактов через сегмент блоков, начинающийся с блока INPUT;
100 - уничтожение транзакта.
Пример 3. Моделирование однолинейной системы с пуассоновским входящим потоком с параметром l = 0.1 1/сек. И экспоненциальным временем обслуживания с параметром m = 0.2 1/сек.
10 SIMULATE
20 LINE EQU 1
30 EXPON FUNCTION RN1,C24
40 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69
.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12
.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5
.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0
50 GENERATE 10, FN$EXPON
60 ASSIGN 1,LINE
70 QUEUE O1
80 SEIZE LINE
90 DEPART O1
100 ADVANCE 5,FN$EXPON
110 RELEASE LINE
120 TABULATE XTIME
130 TERMINATE 1
140 XTIME TABLE M1,0,10,100
150 START 500
160 END.
9 блоков: 50 - генерирование транзактов;
60 - назначение параметру 1 транзакта номера, соответствующего прибору LINE;
70 - вхождение транзакта в очередь на прибор;
80 - занятие прибора;
90 - выход из очереди;
100 - моделирование обслуживания;
110 - освобождения прибора;
120 - формирование таблицы частот XTIME для времени прохождения транзакта;
130 - уничтожение транзакта;
20 - назначение величины 1 переменной LINE.
Пример 4. Моделирование работы однолинейной системы, имеющей 3 Пуассоновских потока требований с относительными приоритетами и параметрами l1=0.01 1/сек., l2=0.04 1/сек., l3=0.05 1/сек. Экспоненциальный закон обслуживания m1=0.2 1/сек.
10 SIMULATE
20 LINE EQU 1
30 EX FUNCTION
40 0.0/.1,.104/.2,.222/.3,.365/.4,.509/.5,.69
.6,.915/.7,1.2/.75,1.38/.8,1.6/.84,1.83/.88,2.12
.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5
.98,3.9/.99,4.6/.995,5.3/.995,6.2/.999,7.01.9997,8.0
50 GENERATE 100, FN$EX,,,3
60 TRANSFER ,INPUT
70 GENERATE 25, FN$EX,,,2
80 TRANSFER ,INPUT
90 GENERATE 20, FN$EX,,,1
100 INPUT ASSIGN 1,LINE
110 QUEUE LINE
120 SEIZE LINE
130 DEPART LINE
63 Первый раздел Речи Посполитой - лекция, которая пользуется популярностью у тех, кто читал эту лекцию.
140 ADVANCE 5,FN$EX
150 RELEASE LINE
160 TERMINATE 1
170 START 1000
60, 80 - безусловная передача транзактов;
50, 70, 90 - генерирование транзактов с приоритетами 3, 2, 1.