
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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-критерію Ст’юдента
5.5. Блоки статистичної категорії
У статистичній категорії GPSS використовуються два типи об’єктів: черги і таблиці. Вони вводяться для збирання та реєстрації статистичних даних. Статистичні дані про черги автоматично збираються у моменти входження транзактів у блок QUEUE (Стати у чергу) або у блок DEPART (Вийти з черги). Необхідно зауважити, що блоки QUEUE і DEPART не моделюють чергу, а тільки дозволяють системі GPSS збирати інформацію про чергу.
Ця статистика повинна дати відповіді на наступні питання:
скільки разів транзакти надходили в чергу і яке максимальне значення її довжини;
скільки транзактів надійшли до черги й скільки їх відразу без черги потрапило на обслуговування в ОКП;
яке середнє число транзактів і середній час їх очікування.
Формат запису блоку QUEUE наступний:
QUEUE А,[В]
Операнд А задає номер або назву черги, в яку надходить транзакт. Значення поточної довжини черги зберігається в СЧА Q$<назва черги>. Транзакт, що приєднується до черги, запам’ятовує її назва. Також визначається довжина інтервалу часу, протягом якого довжина черги не змінюється. Операнд В визначає число одиниць, на яке збільшується поточна довжина черги з входом транзакта у блок. Якщо операнд В не використовується, то додається одиниця. Після цього порівнюється нова довжина черги з максимальною (вже досягнутою). Якщо нове значення більше від максимального, то попереднє максимальне значення замінюється на нове. Загальне число одиниць черги використовується для визначення середнього часу перебування транзактів у черзі.
Розглянемо приклади запису блоку QUEUE.
QUEUE Cher1
Із входом кожного транзакта в блок QUEUE збільшується довжина черги Cher1 на одиницю.
QUEUE P5,P12
Цей блок збільшує довжину черги, номер якої заданий у параметрі Р5 транзакта, на число одиниць, заданих у параметрі Р12.
Транзакт перестає бути елементом черги після того, як він переходить у блок DEPART відповідної черги. Формат запису блоку DEPART має вигляд:
DEPART А,[В]
Блок DEPART служить для зменшення довжини черги. Операнд А задає номер або назву черги, довжину якої треба зменшити. Операнд В задає число одиниць, на яке зменшується довжина черги. Це число не повинне перевищувати поточну довжину черги. Якщо операнд В не використовується, то за замовчуванням довжина черги зменшується на 1. Операнди А і В у блоках QUEUE і DEPART можуть бути назвою, додатним цілим числом, виразом у дужках, СЧА або СЧА*параметр.
Наведемо приклад використання блоку DEPART, що зменшує довжину черги Buf на одиницю:
DEPART Buf
Розглянемо використання блоків QUEUE і DEPART у моделі на прикладі, представленого на рис. 5.2 сегменту.
Рис. 5.2. Блок-діаграма використання блоків QUEUE, DEPART в моделі
Для збирання статистики про очікування у черзі через зайнятість ОКП з назвою KANAL введемо блок QUEUE з іменем NAK1. Якщо транзакт увійшов у сегмент у момент, коли ОКП KANAL не зайнятий, транзакт входить у блок QUEUE. Далі транзакт намагається ввійти в блок SEIZE і, оскільки KANAL вільний, ця спроба виявляється успішною. Стан KANAL змінюється на “зайнято”, і далі транзакт відразу потрапляє в блок DEPART. Виконується відповідна підпрограма й транзакт потрапляє в блок ADVANCE, де затримується на час, обчислений відповідно до розподілу 20±3.
Нехай ОКП KANAL перебуває в зайнятому стані й наступний транзакт входить у сегмент моделі. Він проходить у блок QUEUE і одержує далі відмову, оскільки KANAL перебуває в зайнятому стані. Транзакт перестає рухатися, залишаючись у блоці QUEUE.
Пізніше, коли транзакт, що перебуває на обслуговуванні в пристрої, залишає його, транзакт, що очікує, знову спробує ввійти в блок SEIZE. Цього разу спроба виявиться успішною. Рухаючись далі, транзакт увійде в блок DEPART, зменшуючи значення лічильника поточного вмісту черги на 1 і т.д.
Для накопичування та оброблення статистичних даних у процесі моделювання використовуються GPSS-таблиці TABLE (Таблиця) i QTABLE. Інформація заноситься у таблиці за допомогою спеціального блоку TABULATE (Табулювати).
Оператор TABLE має такий формат
Name TABLE A,B,C,D
Мітка Name визначає назву таблиці (числове або символьне). Операндом А задається аргумент таблиці – елемент даних, частотний розподіл якого табулюється. Він може бути іменем, виразом у дужках або СЧА. Операнди В і С відповідно задають верхню границю першого інтервалу і ширину кожного частотного інтервалу (різницю між верхньою і нижньою границями). Операндом D задається число частотних інтервалів. Операнди B ,C, D можуть бути цілими додатніми числами.
Q-таблиці використовуються для отримання лише розподілу часу перебування транзактів у черзі. Для створення у моделі такої таблиці використовується оператор QTABLE у такому форматі
Name QTABLE A,B,C,D
Значення мітки та операндів у QTABLE є таким же як і для TABLE за винятком того, що операнд А задає назву черги.
Для збирання статистичних даних і занесення їх значень у таблицю транзакту необхідно увійти у блок TABULATE з тим же іменем таблиці, яке визначено TABLE
TABULATE A,[B]
Операнд А визначає назву таблиці у якій накопичується (табулюються) значення статистичної інформації. Одну таблицю можна використовувати у декількох блоках TABULATE моделі. Операнд В задає число одиниць, яке заноситься у цей частотний інтервал, куди потрапило значення аргументу. Якщо операнд В не вказується, то це число дорівнює одиниці. Операнди А і В можуть бути назвою, виразом у дужках, СЧА або СЧА* параметр. Окрім того, операнд А може бути додатнім цілим числом, а операнд В – лише додатнім числом.
Зазначимо, що при використанні QTABLE занесення інформації у таблицю здійснюється автоматично з входом транзакту у блоки QUEUE i DEPAPT. Тому у даному випадку блок TABULATE є непотрібним. Після завершення процесу моделювання наявна в таблиці інформація виводиться у стандартному звіті GPSSW.
Наведемо приклад використання статистичних таблиць
WRon TABLE P$Lv, 8.4,3.5,10
. . . . .
TABULATE WRon
Аргументом таблиці з іменем WRon є СЧА P$Lv з верхнею границею першого інтервалу 8.4, шириною 3.5 і числом інтервалів 10. Кожне значення аргументу P$Lv, яке є меншим або рівним 8.4, збільшує частоту першого частотного класу таблиці на 1. Якщо аргумент таблиці не попадає у перший частотний клас, тоді клас визначається діленням значення аргументу на операнд С оператора TABLE.
Розглянемо інші приклади використання блоку TABULATE
Time TABLE M1,150,30,8
. . . . . .
TABULATE Time
Стандартний числовий атрибут М1 має бути виведений у табличному виді. Нижня границя змінної (поле В) дорівнює 150. Ширина кожного частотного інтервалу (поле С) дорівнює 30, а число частотних інтервалів (поле D) дорівнює 8. Операнд Time визначає назву таблиці, у якій накопичується інформація про функціонування даної системи. Якщо такий об’єкт є відсутнім, тоді виконання програми зупиняється. Пізніше таблиця поповнюється інформацією відповідно до заданих операторів команди TABLE.
Використання операнда В у блоці TABULATE
TABULATE Wron, 3
Число одиниць 3 додається до значення частоти класу.