Главная / Моделирование систем / Непрерывные функции

Непрерывные функции

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

— определяется значение аргумента функции (операнд A в операторе FUNCTION, объявляющим данную функцию);

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

— значение функции находится из диапазона [yi-1, yi] методом линейной интерполяции, т. е. функция на участке от точки (xi-1, yi-1) до (xi, yi) предполагается линейной.

Основное назначение непрерывных функций — имитация непрерывных случайных величин (НСВ). Непрерывная функция для такой цели составляется следующим образом.

1. Находится алгоритм для имитации заданной НСВ, например, по методу обратных функций: X = F-1 (R), где X — имитируемая НСВ, R — СРРЧ.

2. Для значений СРРЧ R0,R1,R2,…,Rn (эти значения могут выбираться, например, с определенным шагом) находятся соответствующие им значения имитируемой НСВ: Xi = F-1 (Ri), i=0,…,n. При этом должны соблюдаться следующие требования: R0=0, R0<R1<R2<…<Rn. Величина Rn должна быть близка к 1.

3. Составляется функция для имитации НСВ:

метка FUNCTION RNj, Cn

0.0,X0/R1,X1/R2,X2/…../1,Xn

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

N — количество пар "аргумент-значение" (аргументом здесь является СРРЧ, а значением — имитируемая НСВ).

Примечание. Первая величина аргумента функции (R0) должна записываться следующим образом: 0.0. Другие дробные величины можно записывать по-разному; например, величину 0,127 можно записать и как 0.127, и как.127.

Пример 2.15. Рассмотрим функцию для имитации экспоненциальной НСВ. Для имитации таких НСВ по методу обратных функций получена следующая формула: X = — m ln(1-R), где m — математическое ожидание (среднее значение) имитируемой НСВ. Например, если требуется имитировать интервалы времени между событиями в пуассоновском потоке (эти интервалы представляют собой экспоненциальные НСВ), и интенсивность потока равна l, то средняя длительность интервала между событиями находится следующим образом: m = 1/l. При m=1 формула для имитации экспоненциальной НСВ имеет вид: X = — ln(1-R). Функция для имитации экспоненциальной НСВ с математическим ожиданием, равным 1, имеет следующий вид.

XPDIS FUNCTION RN1,C24

0.0,0.0/0.1,.104/.2,.222/.3,.335/.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/.998,6.2/.999,7.0/.9997,8.0

В тексте GPSS-модели оператор FUNCTION имеет также номер (как и любой другой оператор). Вместо имени функции XPDIS может использоваться любое другое имя.

Пример 2.16. Рассмотрим функцию для имитации гауссовской (нор мальной) НСВ с математическим ожиданием, равным 0, и среднеквадратическим отклонением, равным 1. Для такой НСВ невозможно аналитически записать функцию распределения (а значит, и обратную к ней). Поэтому для получения значений НСВ, соответствующих СРРЧ R, использованы численные методы вычисления интегралов. Функция для имитации такой НСВ меет следующий вид.

SNORM FUNCTION RN1,C25

0.0,-5/0.00003,-4./.00135,-3.0/.00621,-2.5/.02275,-2./.06681,-1.5

.11507,-1.2/.15866,-1./.21186,-.8/.27425,-.6/.34458,-.4/.42074,-.2

.5,0.0/.57926,.2/.65542,.4/.72575,.6/.78814,.8/.84134,1/.88493,1.2

.93319,1.5/.97725,2/0.99379,2.5/.99865,3/0.99997,4.0/1.0,5.0

Примечание. В дальнейшем набор значений СРРЧ и соответствующих им значений имитируемой НСВ будем называть "таблицей соответствия".

Рассмотрим пример задачи, для решения которой требуется моделировать НСВ.

Пример 2.17. Имитируется работа ВЦ, имеющего три ЭВМ. Поток задач, поступающих на решение — пуассоновский (т. е. интервалы времени между задачами — случайные величины, распределенные по экспоненциальному закону). Средний интервал между поступлениями задач на решение 2 часа. Время решения задачи — случайная величина, также распределенная по экспоненциальному закону; среднее время решения одной задачи 5 часов. Требуется разработать GPSS-модель для анализа работы ВЦ в течение 100 часов.

10 SIMULATE

20 XPDIS FUNCTION RN1,C24

0.0,0.0/0.1,.104/.2,.222/.3,.335/.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/.998,6.2/.999,7.0/.9997,8.0

30 COMP STORAGE 3

40 GENERATE 120,FN$XPDIS

50 QUEUE 1

60 ENTER COMP

70 DEPART 1

80 ADVANCE 300,FN$XPDIS

90 LEAVE COMP

100 TERMINATE

110 GENERATE 6000

120 TERMINATE 1

Примечание. Как уже говорилось ранее, в операторах GENERATE и ADVANCE первый операнд (A) задает среднее значение временного интервала (для оператора GENERATE — это интервал между моментами генерации транзактов, для ADVANCE — интервал задержки транзактов). Второй операнд этих операторов (B) задает отклонение соответствующего временного интервала от среднего значения. Если в качестве операнда B указано конкретное число, то моделируемый временной интервал будет представлять собой величину A±B (т. е. распределенную по равномерному закону). В других случаях величина моделируемого интервала вычисляется как A*B. Так, например, в операторе GENERATE 120,FN$XPDIS интервал времени между транзактами (имитирующими поступление задач) вычисляется по формуле: -120 ln(1-R), т. е. по обычной формуле имитации экспоненциальной НСВ методом Монте-Карло (1.18).