
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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-критерію Ст’юдента
Генерування випадкових чисел для неперервного рівномірного розподілу
Для отримання випадкових чисел з неперервним рівномірним розподілом використовується функція типу С. У списку даних функції 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).
З огляду на те, що неперервна функція задається за допомогою лінійної інтерполяції, для всіх точок на одному інтервалі значень сумарної частоти існує однакова ймовірність їх використання. Це робить процедуру генерування випадкової величини з рівномірним неперервним розподілом надзвичайно простою.
Генерування випадкових чисел для неперервних нерівномірних розподілів
У деяких випадках виникає необхідність генрування чисел згідно деякої кривої, що задається спочатку.
Для генерування випадкових чисел з деяким неперервним розподілом використовуються методи оберненої функції та кусково-лінійної апроксимації. Ці методи детально розглянуті у розділі 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 (m = 0, = 1). Як правило, нормальні випадкові величини, є ненормованими.
Функція стандартного нормального закону розподілу з параметрами m = 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
Для моделювання нормально-розподілених випадкових величин з математичним сподіванням m ≠ 0 і середньоквадратичним відхиленням ≠ 1 використовується метод кусково-лінійної апроксимації. У нашому випадку випадкову величину знаходиться за допомогою перетворення (2.23). У GPSSW випадкова величина з нормальним законом і параметрами m = 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 необхідно дотримуватися умови m ≥ 5. Ця умова забезпечує невід’ємність значень інтервалів надходження і часу затримування транзактів, оскільки від’ємні значення даних параметрів не мають змісту.