Вв МАТСН аа

ТRACE и UNTRACE - блоки без операндов - осуществляют трассировку, т.е. вызывают фиксацию в файле результатов каждого шага движения транзактов по блокам модели, начиная с блока TRACE и заканчивая блоком UNTRACE.

Их применение полезно при отладке моделей с разветвлениями и с параллельными процессами.

.

РАЗДЕЛ IV. ОСОБЕННОСТИ ПОСТРОЕНИЯ МОДЕЛЕЙ ДИСКРЕТНЫХ

ПРОЦЕССОВ НА ЯЗЫКЕ GPSS

Общая схемапрограммы на языке GPSS состоит из раздела объявлений, раздела операторов (блоков модели) и ряда управляющих операторов (обязательными из которых являются SIMULATE, START, END), располагающихся в следующем порядке:

[REALLOCATE]

Объявление имен

Объявление функций

Объявление переменных

Инициализация ячеек

Задание емкости памяти

SIMULATE

Последовательность блоков модели.

START

END

Далее рассматриваются особенности построения программ с учетом специфики языка GPSS и принципов моделирования дискретных систем во времени.

4.1. ИМЕНА В GPSS-ПРОГРАММЕ

Имена в GPSS-программе могут задаваться как символами (идентификаторами), так и числовыми кодами – номерами. Для установления однозначного соответствия имен и номеров объектов в разделе «объявление имен» каждому имени присваивается номер по форме:

имя EQU номер

где имя содержит не более 6 символов и располагается с первой позиции. Объектам каждого типа принято назначать номера, начиная с первого.

Примеры.

СР1 EQU 1

UST EQU 2

OZU EQU 1

Q1 EQU 1

Q2 EQU 2

Exp1 EQU 1

4.2. СЛУЧАЙНЫЕ ВЕЛИЧИНЫ В GPSS

Случайные величины в GPSS используются для задания времени появления транзакта в модели, т.е. для формирования потока заявок, поступающих в модель (блок GENERATE) и для задания времени задержки транзактов в модели (блок ADVANCE).

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

Примечание. Пуассоновское распределение количества заявок за единицу времени (дискретное распределение) эквивалентно экспоненциальному распределению интервалов времени между заявками (непрерывное распределение).

Значения случайной непрерывной величины, распределенной по экспоненциальному закону с интенсивностью 1, в GPSS определяются с помощью функции, задаваемой точками, которые были рассчитаны по формуле y = 1- e x :

Exp1 FUNCTION RN$1,C14; Ехр1 – имя, С14-непрерывная, задаваемая 14 точками

0.,0./.1,.104/.3,.555/.5,.69/.6,.915/.7,1.2/.8,1.6/.85,1.95/.9,2.3/

.950,3./.98,3.9/.99,4.6/.995,5.3/.999,7.

При этом в качестве базового используется равновероятное распределение на интервале (0,1), задаваемое одной из восьми встроенных функций RN$i, i=1,2,…,8.

Для вычисления значения случайной непрерывной величины, распределенной по экспоненциальному закону с интенсивностью lambda, необходимо умножить lambda на Exp1. Умножение на константу lambda происходит непосредственно при выполнении программы в момент поступления транзакта в соответствующий блок.

Пример.

GENER 25, FN$Exp1; генерируется поток заявок, имеющий пуассоновское распределение с интенсивностью lambda=1/25 или время появления транзакта равно 25*Exp1

ADVANCE 15,FN$Exp1; задается задержка транзакта 15*Exp1

Примечание.

Если в поле В блоков GENERATE и ADVANCE задается не функция, а константа, то время задержки определяется как случайная величина, равномерно распределенная на интервале ( А-В, А+В ).

Примеры.

GENER 25, 15; генерируется поток заявок, появляющихся через интервалы

време ни, имеющие равномерное распределение на интервале (10; 40)

ADVANCE 15,7; задается задержка транзакта, значение которой выбирается из условий равновероятного распределения на интервале (8; 22).

4.3. ИМИТАЦИЯ ДИСКРЕТНОГО ПРОЦЕССА В GPSS

GPSS-модель представляет собой функционально законченную программу описания некоторого процесса обслуживания потока заявок, начиная от появления заявки в системе, что в модели соответствует генерации транзакта, до удаления заявки из системы, что в модели соответствует удалению транзакта. Таким образом, операторная часть модели, называемая сегментом, начинается блоком GENERATE и заканчивается блоком TERMINATE.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: