Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КНИЖКА_Моделювання систем у GPSS World.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.15 Mб
Скачать
      1. Генерування випадкових чисел для неперервного рівномірного розподілу

Для отримання випадкових чисел з неперервним рівномірним розподілом використовується функція типу С. У списку даних функції X і Y (див. п. 4.4.11) повинні бути типу integer або real. Наприклад:

SSN FUNCTION RN23.C5

.1,14.2/.35,30.4/.6,50/.85,64.7/1,80

Оскільки функція визначена як неперервна, то виконується лінійна інтерполяція для пари точок Хj і Хj+1, що знаходяться по краях того інтервалу значень вірогідності, в який потрапило згенероване випадкове число X, що є аргументом. Інтерполяція проводиться відповідно до виразу

(8.1)

де т – число точок функції.

Нехай в приведеному вище прикладі отримали RN23 = 0.43. Це число потрапляє у інтервал (0.35; 0.6). Неперервна функція обчислюється за наведеною формулою (8.1) інтерполяції

Наведемо ще один приклад:

AAN FUNCTION V$Knc,C3

3.1,17.6/4.8,25.2/7.9,33.5

Арифметична змінна із назвою Knc використовується як аргумент функції. Коли функція викликається, спочатку обчислюється ця змінна. Якщо значення аргументу виходить за межі області визначення функції, тобто менше 3.1 і більше 7.9, то функції присвоюються значення в найближчих граничних точках: 17.6 і 33.5 відповідно. Якщо аргумент попадає в область визначення функції, то виконується лінійна інтерполяція за формулою (8.1).

З огляду на те, що неперервна функція задається за допомогою лінійної інтерполяції, для всіх точок на одному інтервалі значень сумарної частоти існує однакова ймовірність їх використання. Це робить процедуру генерування випадкової величини з рівномірним неперервним розподілом надзвичайно простою.

      1. Генерування випадкових чисел для неперервних нерівномірних розподілів

У деяких випадках виникає необхідність генрування чисел згідно деякої кривої, що задається спочатку.

Для генерування випадкових чисел з деяким неперервним розподілом використовуються методи оберненої функції та кусково-лінійної апроксима­ції. Ці методи детально розглянуті у розділі 2.4. Там же наведено алгоритм моделювання неперервних випадкових величин методом кусково-лінійної апроксимації. Він зводиться до послідовного виконання таких етапів:

  • генерування випадкового числа ri з рівномірним розподілом в інтервалі (0, 1);

  • за значенням цього числа визначається інтервал (Fi, Fi+1);

  • обчислюється значення випадкової величини за формулою (2.21).

Розглянемо застосування методу кускової-лінійної апроксимації до моделювання експоненціального і нормального розподілів у GPSS World.

Пуассонівський потік надходження вимог визначається рівнянням

(8.2)

де Pk (Т) – ймовірність того, що k вимог надійде за час Т, λ – середня інтен­сивність надходження заявок.

Для пуассонівського потоку інтервали часу між надходженням двох сусідніх вимог мають експоненціальний закон розподілу (див. розділ 2.4). Тому для моделювання пуассонівського потоку вимог немає необхідності у визначенні ймовірності Pk (Т). Досить мати лише значення інтервалів часу надходження вимог. Розрахунок значення часу надходження наступного транзакта в блок GENERATE проводиться за допомогою складання поточ­ного значення системного часу і згенерованої величини для розподілу інтер­валів часу. Виразивши це рівняння відносно часу, отримаємо експонен­ціаль­ний розподіл.

Для експоненціального розподілу згідно з методом оберненої функції відповідні інтервали часу можуть бути обчислені безпосередньо за виразом

(8.3)

де Тргенерований інтервал часу, Тсрсередній інтервал часу, RNn – назва генератора рівномірно розподілених випадкових чисел (ri  (0, 1)).

Таким чином, для моделювання пуассонівського вхідного потоку в блоці GENERATE з використаного рівняння (8.3) потрібно отримати число від RNn і взяти натуральний логарифм величини із знаком мінус, а отриманий результат помножити на Тср.

Перший етап можна виконати шляхом задавання в GPSS функції, що використовує як аргумент RNn і приймає значення . В GPSS функцію логарифма можна визначити наступним способом. Розподіл вигляду апроксимується 23 відрізками, які охоплюють значення експоненціальної функції випадковою змінною на інтервалі [0, 8]. Визначення такої функції, що має назву XPDIS (eXPonential DIStribution), складається з 24 пар значень, які використовуються для перетворення значень RNn в значення :

DDN FUNCTION RN1,C24

0, 0/.1, .104/.2, .222/.3, .355/. 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/.9998,8

Оскільки найбільшим значенням RNn є 0.999999, то найбільшим значенням виразу є 13.8155. Але функція видає як своє значення величину 8, а не 13.8155, тому що останнім значенням функції є пара .9998, 8. В більшості випадків така апроксимація є цілком достатньою.

На другому етапі значення функції потрібно помножити на Тср, щоб отримати значення інтервалу часу, що відповідає пуассонівському потоку.

Для автоматичного виконання цього блок GENERATE має спеціальну властивість. Пуассонівський потік моделюється за допомогою блоку GENERATE шляхом виконання наступних дій:

  • як операнд А використовується значення інтервалів часу;

  • як операнд В використовується запис FN$DDN.

Значення інтервалу часу обчислюється в блоці за допомогою множення значення функції на значення операнда А.

Наприклад, блок GENERATE 180, FN$XPDIS моделює пуассонівсь­кий вхідний потік із середнім значенням інтервалів надходження, що дорівнює 3 години, а одиниця часу у моделі складає 1 хвилину. Для випадку, якщо використовується змінна, наприклад

OT FVARIABLE 180#FN$XPDIS

то блоки

GENERATE 180,FN$XPDIS і GENERATE V$ OT

є еквівалентними.

Аналогічним чином моделюється час затримування у блоці ADVANCE, що розподілений за експоненціальним законом. Наприклад, блок

ADVANCE 543,FN$XPDIS

затримує транзакт у середньому на 543 одиниці модельного часу.

Випадкова величина з нормальним розподілом повністю описується задаванням двох значень: математичного сподівання і стандартного відхи­лення (див. розділ 2.5). Нормована випадкова величина з нормально розподілом має математичне сподівання, рівне нулю, а стандартне відхи­лення, рівне 1 (= 0,  = 1). Як правило, нормальні випадкові величини, є ненормованими.

Функція стандартного нормального закону розподілу з параметрами = 0,  = 1 апроксимується за допомогою неперервної функції GPSS, складеної з 24 відповідних їй прямолінійних сегментів. Визначення функції, що має назву SNorm, складається з 25 пар значень:

SNorm FUNCTION RN123,C25

0,-5/.00003,-4/.00135,-3/.00621,-2.5/.02275,-2/.06681,-1.5 .11507,-1.2/.15866,-1/.21186,-.8/.27245,-.6/.34458,-.4

.42074,-.2/.5,.0/.57926,.2/.65542,.4/.72575,.6/.78814,.8

.84134,1/.88493,1.2/.93319,1.5/.97725,2/.99379,2.5/.99865,3

.99997,4/1,5

Для моделювання нормально-розподілених випадкових величин з математичним сподіванням ≠ 0 і середньоквадратичним відхиленням  ≠ 1 використовується метод кусково-лінійної апроксимації. У нашому випад­ку випадкову величину знаходиться за допомогою перетворення (2.23). У GPSSW випадкова величина з нормальним законом і параметрами = 80,  = 15 моделюється так:

MTP1 FVARIABLE 80+15#FN$SNorm.

Розглянемо приклад. Нехай час обслуговування у будь-якій точці моделі має нормальний розподіл, а математичне сподівання і стандартне відхилення залежать від виду обслуговування. Відповідні дані наведемо у табл. 8.3.

Таблиця 8.3

Задавання закону розподілу залежно від виду обслуговування

Вид обслуговування

Математичне сподівання

Стандартне відхилення

1

35

4

2

25

2

3

46

7

Нехай вид обслуговування, який необхідний транзакту, записаний у його параметрі 7. Тоді блок ADVANCE можна представити так

ADVANCE V$SRem

Визначення функцій й арифметичної змінної, що забезпечують функціонування блоку, можна представити так:

Din FUNCTION P7, D3

1,35/2,25/3,46

Kar FUNCTION P7, D3

1,4/2,2/3,7

Zar FVARIABLE FN$Kar#FN$SNorm+FN$Din

Аргументами функцій використовуються значення параметра Р7 активного транзакта. Під час звертання до функції Zar спочатку обчислю­ються функції Din, Kar і SNorm. Отримані значення використо­вуються для знаходження функції Zar.

Зазначимо, що для використання функції нормального розподілу у блоках GENERATE і ADVANCE необхідно дотримуватися умови ≥ 5. Ця умова забезпечує невід’ємність значень інтервалів надходження і часу затримування транзактів, оскільки від’ємні значення даних параметрів не мають змісту.