встановлюються початкові числа генераторів RN1, RN3, RN5. Решта значень залишається без змін.
У GPSS World псевдовипадкові числа генеруються за 32-бітовим мультиплікативним конгруентним алгоритмом (див. розд. 2.5). Алгоритм дозволяє отримати 231 – 1, тобто 2 147 483 647 псевдовипадкових чисел.
У GPSS World генератори випадкових чисел використовуються для оброблення одночасних подій, в блоках TRANSFER, що працюють в режимі статистичної передачі, в блоках GENERATE і ADVANCE.
Розглянемо методи знаходження випадкових чисел з різними імовірнісними розподілами за допомогою засобів GPSS World.
Генерування випадкових чисел для дискретних рівномірних розподілів
Моделювання випадкових дискретних величин було розглянуто у розділі 2.3. У блоках GENERATE і ADVANCE обслуговування вимог, розподілених за рівномірним законом, задається за допомогою модифікатора-інтервалу. Наприклад:
GENERATE 500,30
ADVANCE 500,30
Також можна використовувати описаний у розділі 8.5 вбудований генератор дискретно-рівномірного розподілу DUniForm (n, min, max), де n – номер генератора рівномірно розподілених випадкових чисел, min і max – мінімальне і максимальне значення, що генеруються. Тоді вище наведені блоки запишуться у форматі:
|
|
GENERATE DUniForm(211,5000,9000)
ADVANCE DUniForm(211,5000,9000)
Використаємо обидва ці підходи для моделювання і порівняємо отримані результати.
GENERATE 500,30
QUEUE Cher1
SEIZE Kan
DEPART Cher1
ADVANCE 500,30
RELEASE Kan
TERMINATE
GENERATE 20000
TERMINATE 1
GENERATE (DUniForm(211,5000,9000))
QUEUE Cher1
SEIZE Kan
DEPART Cher1
ADVANCE (DUniForm(211,5000,9000))
RELEASE Kan
TERMINATE
GENERATE 20000
TERMINATE 1
Використовуючи модифікатор-інтервал, блок GENERATE за 10 000 прогонів згенерував 400 005 транзактів, з яких ОКП Саn було обслужено 399 981. Застосування вбудованого генератора DUniForm (211,5000,9000) дозволило згенерувати 399 926 транзактів, з яких обслужено 399 863.
Генерування випадкових чисел для дискретних нерівномірних розподілів
Визначення інтервалів надходження та обслуговування вимог або інших величин у багатьох випадках зумовлює генерування випадкових чисел з дискретним нерівномірним розподілом. Розглянемо приклади використання функцій типу 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
Значення випадкової величини | Відносна частота | Сумарна частота | Діапазон | Інтервал |
0,12 | 0,12 | 0,0...0,12 | ||
0,18 | 0,3 | 0,12...0,3 | ||
0,25 | 0,55 | 0,3...0,55 | ||
0,32 | 0,87 | 0,55...0,87 | ||
0,13 | 1,0 | 0,87...1,0 |
Згенеруємо число в інтервалі (0, 1). Нехай ним буде 0,687528. Це число потрапляє в інтервал 4. Шуканим значенням випадкової величини є 21.
Таким чином, для згенерування випадкових чисел відповідно до деякого дискретного розподілу використовується таблиця, якою задана функція. Дані такої таблиці, а саме значення випадкової величини і сумарної частоти випадання значення випадкової величини користувач задає за допомогою функції типу D – дискретного типу. У списку даних функції типу D значення аргументу Х повинні бути типу Expression, а значення функції Y – типу integer, real або Name. Джерелом випадкових чисел виступає генератор RN3. Для нашого прикладу функція, задана табл. 8.2, буде визначена командою FUNCTION так: