
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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). Для їх генерування у GPSS World використовуються відповідні генератори. Звертаються до генератора без попереднього його оголошення за допомогою СЧА RNn, де n – номер генератора. Початкове число генератора випадкових чисел співпадає з номером n генератора. Наприклад, RN315 – генератор з номером 315 і запускається із початковим числом 315.
У процесі моделювання систем може виникнути необхідність досліджувати:
різні варіанти моделі для одного і того ж вхідного потоку випадкових чисел (послідовності випадкових чисел);
один або декілька варіантів моделі для різних потоків випадкових чисел.
Перша необхідність легко реалізовується, оскільки генератори дозволяють відтворювати одні і ті ж послідовності рівномірно розподілених випадкових чисел.
У другому випадку GPSSW дозволяє змінювати початкові числа перших семи RN1... RN7 генераторів і формувати незалежні одну від іншої різні послідовності випадкових чисел. Для цього в GPSS World є команда RMULT наступного формату:
RMULT [A],[B],[C],[D],[E],[F],[G]
Операнд А задає початкове число для першого генератора випадкових чисел RN1. Аналогічно, іншими операндами задаються послідовності чисел для наступних генераторів, тобто: В – для RN2, С – для RN3, D – для RN4, Е – для RN5, F – для RN6, G –для RN7. СЧА, пов’язаний з даною командою, RN<номер генератора>, повертає ціле число з інтервалу від 0 до 999. При обчисленні випадкових функцій використовується випадкове число, вибиране з інтервалу від 0 до 0,999999 включно. Як правило, має бути заданий хоча б один операнд. Користувач може обрати будь-який генератор на сторінці Random Numbers (Випадкове число) журналу настроювань моделі (за замовчуванням – RN1).
Наприклад, командою
RMULT 15,,125,,518,
встановлюються початкові числа генераторів 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.