
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню gpss World
- •Меню File
- •Меню Edit
- •Панель інструментів gpss World
- •Вікно моделі у системі gpss World
- •Інтерактивний перегляд значень виразів
- •Налаштування параметрів моделювання
- •4.1. Основне меню gpss World
- •4.2. Подання моделей у вигляді блок-діаграм
- •4.3. Основні складові системи gpssw
- •4.4. Об'єкти обчислювальної категорії
- •4.4.1. Константи
- •4.4.2. Системні числові атрибути
- •4.4.3. Арифметичні і логічні оператори
- •4.4.4. Бібліотечні математичні функції
- •4.4.5. Змінні користувача
- •4.4.6. Вирази в операторах gpss
- •4.4.7. Зберігаючі комірки
- •4.4.8. Матриці зберігаючих комірок. Оголошення та ініціалізація матриць
- •4.4.9. Арифметичні змінні й арифметичні вирази
- •4.4.10. Булеві змінні
- •4.4.11. Типи функцій
- •5.1. Введення транзактів у модель і вилучення їх із неї
- •5.2. Блоки для зміни значень параметрів транзактів
- •5.3. Блоки апаратної категорії зайняття та звільнення одноканальних пристроїв
- •5.4. Блоки перевірки стану та передавання керування в одноканальних пристроях
- •5.5. Блоки статистичної категорії
- •5.6. Блоки для зміни послідовності руху транзактів у моделі
- •5.7. Блоки апаратної категорії для переривань одноканальних пристроїв
- •5.8. Блоки апаратної категорії для переведення одноканальних пристроїв у стан недоступності
- •5.9. Створення і застосування списків користувача
- •Основні етапи моделювання у системі gpssw
- •Команди gpss World
- •Інтерактивні можливості gpss World
- •Відлагодження моделей у gpss World
- •Блоки зайняття та звільнення багатоканальних пристроїв
- •Блоки апаратної категорії для переведення багатоканальних пристроїв у стан недоступності та відновлення доступності
- •Блоки перевірки стану багатоканальних пристрів
- •Моделювання перемикачів
- •Основні елементи мови
- •Побудова виразів
- •Plus-оператори та їх призначення
- •Вбудована бібліотека процедур
- •Генератори випадкових чисел
- •Реалізація методу Ньютона для розв’язування нелінійних рівнянь за допомогою мови Plus
- •Налагодження Plus-процедур
- •Команда integrate і блок integration для моделювання неперервних систем
- •Використання plus-процедур для моделювання неперервних систем
- •Використання функцій в імітаційних моделях
- •Генерування випадкових чисел для дискретних рівномірних розподілів
- •Генерування випадкових чисел для дискретних нерівномірних розподілів
- •Генерування випадкових чисел для неперервного рівномірного розподілу
- •Генерування випадкових чисел для неперервних нерівномірних розподілів
- •Функції типу e, l і м
- •9.1. Основні відомості з теорії планування експериментів
- •9.1.1. Повний факторний експеримент
- •Оцінювання точності результатів моделювання
- •Дисперсійний аналіз
- •Однофакторний дисперсійний аналіз
- •9.2.2. Двофакторний дисперсійний аналіз
- •9.3. Технологія дисперсійного аналізу у gpss World
- •9.4. Технологія регресійного аналізу у gpss World
- •9.5. Організація експериментів користувача у gpss World
- •Initial Rezult_tf,unspecified ;Ініціалізація матриці результатів
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні положення
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання одноканальних розімкнутих смо
- •Індивідуальні завдання для моделювання одноканальних замкнутих смо
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання багатоканальних розімкнутих смо
- •Індивідуальні завдання для моделювання багатоканальних замкнутих смо
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи транспортного конвеєра
- •Індивідуальні завдання для моделювання роботи ділянки цеху
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи еом для оброблення завдань з різними пріоритетами
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання роботи вузла комутації повідомлень
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для моделювання поширення вірусу на системному диску
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для проведення дисперсійного аналізу для дослідження вагомості впливу змінних користувача на об’єкт моделі
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання для розроблення експерименту користувача
- •Контрольні запитання
- •Загальні відомості
- •Завдання для виконання роботи
- •Індивідуальні завдання проведення регресійного аналізу для оптимізації і кількісного прогнозу поведінки системи
- •Контрольні запитання
- •Елементи стандартного звіту
- •Загальна інформація про результати роботи моделі
- •Інформація про імена
- •Інформація про блоки
- •Інформація про об’єкти типу «пристрій»
- •Інформація про об’єкти типу «черга»
- •Інформація про об’єкти типу «багатоканальний пристрій»
- •Інформація про таблиці
- •Інформація про списки користувача
- •Табличні значення критеріїв
- •Значення t-критерію Ст’юдента
Генератори випадкових чисел
Застосування МСВ у ймовірнішому моделюванні систем потребує проведення великої кількості випробовувань. Для цього потрібні довгі послідовності випадкових чисел. Кількість випадкових чисел, які реалізуються для формування одного випробовування коливається у досить широких межах. Тому наявність простих та економічних способів формування послідовності випадкових чисел багато у чому визначає можливість практичного використання МСВ. Одержання випадкових чисел за допомогою генераторів, безпосередньо з’єднаних з комп’ютером, може здійснюватися за допомогою апаратних або програмних методів.
Апаратний або фізичний спосіб генерування випадкових чисел допускає застосування електронних генераторів випадкових сигналів. Їх дія застосована на деяких фізичних випадкових явищах, наприклад, шумах в електронних і напівпровідникових приладах. Під час застосування апаратних генераторів випадковий електричний сигнал перетворюють у двійковий код за допомогою спеціальних аналогово-цифрових перетворювачів. Основними недоліками способу є нестабільність ймовірнісних характеристик випадкової функції і неможливість повторного одержання однієї і тієї ж реалізації. Можна використовувати готові таблиці випадкових чисел, які слід розміщати пам’яті комп’ютера або на зовнішньому накопичувачі.
Для формування випадкових чисел із заданими законами розподілу вихідними даними є випадкові числа, отримані програмними генераторами рівномірно розподілених випадкових величин в інтервалі (0, 1), які вбудовані практично у всі мови програмування. Спеціалізовані програмні засоби ймовірнісного моделювання як правило мають власні вбудовані процедури генерування випадкових величин із заданими законами розподілу.
Найбільш розповсюдженими є програмні генератори, які допускають відтворення випадкових чисел за допомогою реалізації рекурентних алгоритмів. Оскільки ці алгоритми є детерміновані, то числа, які знаходяться програмними генераторами є псевдовипадковими або квазівипадковими. До генераторів випадкових чисел пред’являються такі вимоги:
генерувати статистично незалежні випадкові числа, рівномірно розподілені в інтервалі (0,1);
послідовність чисел має бути такою, що відтворюється;
генератор повинен бути швидкодіючим, а використання комп’ютерної пам’яті мінімальним;
легко створювати незалежні послідовності випадкових чисел.
У стохастичних моделях важливим є отримання випадкових чисел з довільним законом розподілу F(x). Тому найчастіше застосовувана на практиці двоетапна процедура у різних методах генерування випадкових чисел.
На першому етапі генерується послідовність випадкових чисел рівномірно розподілених в інтервалі (0,1)
.
(2.1)
На другому етапі здійснюється функціональне перетворення Ф послідовності випадкових чисел ri у послідовність випадкових чисел хi, що мають заданий розподіл F(xі)
(2.2)
Таким чином, ri (0, 1) є основою для генерації різних розподілів. Тому спочатку зупинимося на отриманні випадкових чисел ri (0, 1), а пізніше розглянемо процедури, за допомогою яких ці числа перетворюються у випадкові величини, розподілені за різними законами розподілу.
Для формування рівномірно розподілених випадкових чисел в інтервалі (0, 1) можуть використовуватися такі методи:
метод квадратів;
метод добутків;
конгруентні методи;
модифікації вищенаведених методів.
Метод середин квадратів є одним з найпростіших методів алгоритмічного генерування випадкових величин ri (0, 1) з максимально можливою довжиною періоду.
Суть методу полягає у виборі n-розрядного цілого числа, яке підноситься до квадрату. З отриманого 2n-розрядного числа виділять n-середніх розрядів, які розглядаються як дробова частина випадкового числа ri (0, 1). Виділені на попередньому етапі n середніх розрядів розглядаються як нове вихідне n-розрядне число.
Розглянемо застосування методу на прикладі. Для наглядності будемо оперувати десятковими числами, а не двійковими, як це реалізується у програмних генераторах. Результатами застосування алгоритму для вибраного чотирьохрозрядного числа 7153 показано у табл. 2.1.
Таблиця 2.1.
7153 |
51 1654 09 |
0,1654 |
1654 |
02 7357 16 |
0,7357 |
7357 |
54 1254 49 |
0,1254 |
1254 |
01 5725 16 |
0,5725 |
5725 |
32 7756 25 |
0,7756 |
7756 |
60 1555 36 |
0,1555 |
Метод добутків аналогічний до методу квадратів. У ньому перемножуються два n-розрядні цілі числа. Перше число (ядро) є незмінним, а друге (множник) формується з n правих розрядів отриманого 2n-розрядного числа, як добутку ядра і множника. Застосування цього методу показано у табл. 2.2. Тут вибране ядро дорівнює 5167, а множник 3279.
Таблиця 2.2.
-
Множник
Добуток
Випадкове число
3
729
1
9 26 77 43
0,2677
7743
40 0080 81
0,0080
8081
41 7545 27
0,7545
4527
23 391009
0,3910
1009
05 2135 03
0,2135
3501
...
...
Найбільш широке застосування знайшли конгруентні генератори випадкових чисел [9, 12]. Два цілих числа А і В є конгруентними за модулем m, якщо їх різниця (А - В) є числом, яке ділиться на m без остачі (тобто є кратними)
Розглянемо два основних типи конгруентних генераторів випадкових чисел, а саме мультиплікативний і змішаний. В основі яких лежить лінійний алгоритм генерування випадкових чисел
, (2.3)
де і = 1, 2, ...; a, c, m – цілі константи.
Якщо с > 0, то генератор називається змішаним, а якщо с = 0 – мульти-плікативним.
Змішаний метод генерування випадкових чисел. У цьому випадку використовуються такі співвідношення (2.4)
,
, (2.4)
де хі – псевдовипадкове
число, а, с, m – невід’ємні
цілі числа, які задовільняють умови:
,
с > 0,
m > a,
m > c,
m > x0,
x0 – початкове значення
послідовності.
Якщо задано початкове значення x0, константи а, с, то можна визначити послідовність цілих чисел {x1, x2, ..., xi, ...}, що є рівномірно розподілені в інтервалі (0, m). Поділивши ці числа на m, отримаємо послідовність псевдовипадкових чисел ri, і = 1, 2,... з рівномірним розподілом в інтервалі (0,1).
Теоретично можна отримати послідовність
випадкових чисел з періодом Т = m,
якщо с і m є взаємно прості числа,
а а має порядок
.
Мультиплікативний метод. Якщо с = 0, то отримаємо мультиплікативний конгруентний метод, який передбачає використання співвідношення
,
. (2.5)
Цей метод більш швидкодіючий ніж попередній, але отримання послідовності випадкових чисел з повним періодом є неможливим.
Для розглянутих вище методів за модуль m вибирають m = qn, де q – основа системи числення, що виконується у комп’ютері, n – довжина розрядної сітки комп’ютера. Для 32 – розрядного комп’ютера m – найбільше число, яке може бути відтворене дорівнює 232-1=2147483647 (один розряд відводиться під знак числа).
Використовується ще генератор, що використовує числа Фібоначчі.
.
Для побудови програм генерування випадкових чисел за допомогою конгруентних методів, необхідно мати на увазі, певні умови вибору параметрів генератора х0, , , М, які визначають його основні робочі характеристики (закон розподілу, довжину періоду, кореляційні властивості тощо). У працях [8, 12] показано, що для M > , M > , M > x0 виходять якісні послідовності (за критерієм 2, довжині відрізка аперіодичності L). У [12] коротко викладаються правила визначення констант , , М для конгруентних генераторів. Ці правила дають лише загальні рекомендації для вибору , , М.