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

Визначення інтервалів надходження та обслуговування вимог або інших величин у багатьох випадках зумовлює генерування випадкових чисел з дискретним нерівномірним розподілом. Розглянемо приклади використання функцій типу D.

1) IML FUNCTION X$A2,D5

1.2, 6.9/2.1, 1.6/5.33, 9.2/5, 8/9.7, 12.03

2) RAM FUNCTION RN1,D5

0,0/.3, 7.3/.4, 6.7/.8, 8.93/1.0, 0.1

Функція типу D з випадковим аргументом використовується для моде­лювання дискретного ймовірнісного розподілу. Під час обчислення функції з потоку вибирається число у діапазоні (0,1) і знаходиться менше значення X із списку даних функції, яке є більшим або дорівнює вибраному випадковому числу. Відповідне значення Y повертається як значення функції.

3) Нехай функція, яка використовується у моделі, задана таблично. Згідно з цією табл. 8.2, випадкова величина повинна отримувати значення 3, 7, 13, 21, 33 з частотою 0,12; 0,18; 0,25; 0,32; 0,13 відповідно.

Таблиця 8.2

Значення випадкової величини

Відносна частота

Сумарна частота

Діапазон

Інтервал

3

0,12

0,12

0,0...0,12

1

7

0,18

0,3

0,12...0,3

2

13

0,25

0,55

0,3...0,55

3

21

0,32

0,87

0,55...0,87

4

33

0,13

1,0

0,87...1,0

5

Згенеруємо число в інтервалі (0, 1). Нехай ним буде 0,687528. Це число потрапляє в інтервал 4. Шуканим значенням випадкової величини є 21.

Таким чином, для згенерування випадкових чисел відповідно до дея­ко­го дискретного розподілу використовується таблиця, якою задана функція. Дані такої таблиці, а саме значення випадкової величини і сумарної частоти випадання значення випадкової величини користувач задає за допомогою функції типу D – дискретного типу. У списку даних функції типу D значення аргументу Х повинні бути типу Expression, а значення функції Yтипу integer, real або Name. Джерелом випадкових чисел виступає генератор RN3. Для нашого прикладу функція, задана табл. 8.2, буде визначена командою FUNCTION так:

NNN FUNCTION RN3,D5

.12,3/.3,7/.55,13/.87,21/1,33

Функція має назву NNN. Випадкова величина може мати п'ять різних значень. Сумарні частоти і відповідні їм п'ять значень функції записано як п'ять пар чисел. Зазначимо, що пари чисел, які визначають координати Х і Y точки не тільки дискретної, але і функції будь-якого типу, мають відповідати правилам, вказаним у розділі 4.4.11.

Розглянемо інші випадки застосування функцій у моделях.

Як відомо, блок TRANSFER має такі режими роботи, як вибірковий (PICK) і функціональний (FN). У режимі PICK вибір блоку, до якого прямує активний транзакт, проводиться випадково. Блоки повинні бути розташовані один за одним і переходи до кожного з них рівноймовірні. У режимі FN блоки розташовані не один за одним і вибір кожного з них не рівно ймовірний. В цьому випадку слід використовувати функцію і блок TRANSFER в режимі FN. У моделі для режиму FN це виглядатиме так:

FFF FUNCTION RN15,D5

0.3,Met1/0.45,Met2/0.65,Met3/0.82,Met4/1,Met5

GENERATE (Exponential(215,0,10))

TRANSFER FN,FFF

. . .

Met1. . .

Met2. . .

Met3. . .

Met4. . .

Met5. . .

Блок GENERATE генерує транзакти. При вході транзакта в блок TRANSFER обчислюється функція FFF з аргументом RN15. У даному прик­ладі значеннями функції є мітки блоків. Відповідно до вибраної мітки і про­водиться безумовний перехід активного транзакта до блоку, поміченого цією міткою.

Функцію типу D можна використовувати в блоці GENERATE для генерування транзактів з дискретними довільними інтервалами. Наприклад:

MMM FUNCTION RN215,D4

.2,5.1/.48,8.3/.85,9.1/1,6.4

GENERATE FN$MMM

TERMINATE 1

Блок GENERATE генерує транзакти з інтервалами 5.1, 8.3, 9.1 і 6.4. Вірогідність їх появи складає 0.2, 0.28, 0.37 і 0,15. У цьому можна перекона­тися на приведеному прикладі, задаючи в команді START операнд А рівним 1, 2, 3, 4 і аналізуючи час завершення моделювання.

Так само функцію типу D можна застосовувати в блоці ADVANCE.

Часто необхідно блоком організувати на одному і тому ж ОКП або БКП обслуговування вимог з різними часовими характеристиками. В цьому випадку як аргумент функції можна використовувати який-небудь параметр транзакта. Наприклад:

AAA FUNCTION P1,D4

1,5.32/2,4.63/3,5.49/4,4.86

GENERATE FN$NNN

TERMINATE 1

ADVANCE FN$AAA

При вході активного транзакта в блок ADVANCE обчислюється функція з назвою AAA, аргументом якої є параметр Р1. Отриманий результат і використовується як час затримування.