Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5mzQtxCL1a.doc
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
3.06 Mб
Скачать

11.14.1. Дискретные функции

Значение дискретной функции в GPSS/PC определяется следующим образом:

- определяется значение аргумента функции (операнд A);

- находится величина аргумента функции xi, такая, что выполняется условие: xi-1 < A  xi;

- в качестве значения функции принимается величина yi.

Важное применение дискретных функций - имитация дискретных случайных величин (ДСВ). Дискретная функция для такой цели составляется следующим образом. Пусть требуется смоделировать ДСВ, которая может принимать значения X1,X2,...,Xn с вероятностями P1,P2,...,Pn. Функция для имитации такой ДСВ имеет следующее объявление.

метка FUNCTION RNj,Dn

R1,X1/R2,X2/.../Rn,Xn

где j - номер используемого датчика случайных чисел.

Значения R1,R2,...,Rn следующие: R1=P1, R2=P1+P2,R3=P1+P2+P3,.., Rn=P1+P2+...+Pn=1.

Пример. Имитируется работа ВЦ, на который поступает поток задач; средний интервал времени между задачами - 2 часа  30 минут. Известно, что среди задач имеются задачи разных типов: 20% - типа A, 30% - типа B, 15% - типа C, 35% - типа D. Для того, чтобы различать типы задач при имитации их обработки, в первый параметр транзакта, имитирующего задачу, заносится номер 1,2,3 или 4 (для типов A,B,C,D соответственно).

Тип задачи можно имитировать как ДСВ, которая может принимать одно из 4 значений: 1,2,3 или 4. Вероятности этих значений - 0,2; 0,3; 0,15; 0,35 соответственно. Для имитации такой ДСВ будем использовать дискретную функцию с именем TIP (конечно, можно использовать и любое другое имя). Аргумент функции - СРРЧ, генерируемое 1-м датчиком случайных чисел (RN1).

SIMULATE

TIP FUNCTION RN1,D4

0.2,1/0.5,2/0.65,3/1,4

GENERATE 120,30

ASSIGN 1,FN$TIP ; в 1-й параметр записывается

; значение функции TIP

Приведем пример использования дискретных функций, не связанный с моделированием ДСВ.

Пример . Пусть в задаче из предыдущего примера решениe задачи типа A занимает в среднем 40 минут, B - 20 минут, C - 2 часа, D - 1 час 40 минут. Пусть требуется записывать среднее время решения задачи во второй параметр транзакта, имитирующего задачу. Для этого будем использовать функцию SRED, аргументом которой является первый параметр транзакта (в него записывается номер типа задачи, как показано в примере 2.13), а значением - среднее время решения задачи данного типа.

SIMULATE

TIP FUNCTION RN1,D4

0.2,1/0.5,2/0.65,3/1,4

SRED FUNCTION P1,D4

1,40/2,20/3,120/4,100

GENERATE 120,30

ASSIGN 1,FN$TIP ; в 1-й параметр записывается

; значение функции TIP

ASSIGN 2,FN$SRED ; во 2-й параметр записы-

; вается время решения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]