
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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-критерію Ст’юдента
4.1. Основне меню gpss World
Система GPSS World призначена для імітаційного моделювання дискретних і неперервних систем. Основними об’єктами системи є програмний код, написаний мовою GPSS (GPSS-модель), виконавчий об’єкт, що створюється у результаті трансляції GPSS-моделі і реалізує процес моделювання та звіт з результатами моделювання.
Мова моделювання GPSS (General Purpose Simlation System) з вбудованою мовою програмування PLUS передбачає, що модель складної системи можна представити сукупністю елементів і логічних правил їхньої взаємодії в процесі функціонування системи, що моделюється. Також передбачається, що для модельованих систем можна виділити невеликий набір абстрактних елементів, які називаються об'єктами. Основними елементами мови GPSS є транзакти і блоки. Вони відповідно характеризують динамічні та статичні об’єкти системи. Набір логічних правил обмежений і може бути описаний невеликим числом стандартних операцій. Комплекс програм, що описують функціонування об'єктів і виконують логічні операції, є основою для створення програмної моделі системи даного класу. Компілювання програми у GPSSW здійснюється у два етапи. На першому етапі перевіряється синтаксис і семантика програм, а на другому – здійснюється просування транзактивів у моделі від блоку до блоку.
GPSS-модель обов’язково містить блоки і транзакти. Послідовність блоків відображає напрями переміщення транзактів. За аналогією з іншими мовами моделювання механізм керування у GPSS реалізується у модельному часі. Це дає змогу відображати динамічні процеси у реальних системах. Керування між блоками передається за допомогою руху транзактів у модельному часі. Звернення до підпрограм блоків зумовлюється рухом транзактів. Змістовне наповнення моделі здійснює розробник моделі. Він же встановлює аналогію між транзактами та елементвами реальної сисиеми моделювання.
У системі GPSS World є спеціальна програма-планувальник, що виконує наступні функції:
забезпечення руху транзактів за заданими маршрутам;
планування подій шляхом реєстрації часу настання кожної події, що відбуваються в моделі й виконання їх у наростаючій часовій послідовності;
реєстрація статистичної інформації про функціонування моделі;
просування модельного часу в процесі моделювання системи.
Для забезпечення послідовності оброблювання подій у часі використовується системний годинник, що зберігає значення абсолютного модельного часу.
Об'єкти GPSS поділяються на 7 категорій і 15 типів, які представлені в табл. 4.1. Розглянемо їх призначення.
Динамічні об'єкти – це транзакти, які створюються в певних місцях моделі, пересуваються у GPSS-моделі від одного блоку до іншого у заданій послідовності. Кожний транзакт може мати будь-яке число параметрів. Параметри нумеруються або їм даються назви. Номери та назви параметрів використовуються для посилань на значення, присвоєні параметрам. Транзактам може присвоюватися пріоритет. Він визначає перевагу, що одержує транзакт, коли він й інші транзакти претендують на той самий ресурс.
До об'єктів апаратної категорії відносяться одноканальні пристрої, багатоканальні пристрої і логічні ключі. За допомогою цих елементів може бути здійснена декомпозиція систем моделювання. Впливаючи на ці об'єкти, транзакти можуть змінювати їхній стан і впливати на рух інших транзактів.
Одноканальні пристрої (ОКП) – це об’єкти, що у будь-який момент часу можуть бути лише в одному з двох станів: вільному або зайнятому. Наприклад, один канал передавання даних, один вузол зв’язку.
Багатоканальні пристрої (БКП) призначені для імітації пристроїв, що здійснюють паралельне оброблення даних. Вони можуть бути використані одночасно декількома транзактами. БКП можна використовувати як аналог, наприклад, багатоканального ремонтного органу, декількох каналів зв'язку.
Таблиця 4.1
Об’єкти GPSS
Категорії |
Типи об’єктів |
Динамічна |
● Транзакти |
Операційна |
● Блоки |
Апаратна |
● Одноканальні пристрої ● Багатоканальрні пристрої ● Логічні ключі |
Обчислювальна |
● Змінні ● Функції ● Генератори випадкових чисел |
Статистична |
● Черги ● Таблиці |
Запам’ятовуюча |
● Комірки ● Матриці комірок |
Групуюча |
● Числові групи ● Групи транзактів ● Списки |
Події, що відбувалися у системі раніше, можуть заблокувати, змінити рух транзактів і настання наступних подій. Для моделювання таких ситуацій введені логічні ключі. Транзакт може встановлювати ці ключі в положення “включено” або “виключено”. Згодом стан ключів може бути перевірено іншими транзактами для визначення шляху їхнього подальшого проходження.
Операційні об'єкти (блоки) задають логіку функціонування моделі системи й визначають шляхи руху транзактів між об'єктами апаратної категорії. У блоках можуть відбуватися події чотирьох основних типів:
створення або знищення транзактів;
зміна числового атрибута об'єкта;
затримування транзакту на певний період часу;
зміна маршруту руху транзакту в моделі.
У системі GPSS World використовуються 53 типи блоків. Залежно від функціонального призначення блоки поділяються на такі групи.
1. Блоки, що здійснюють модифікацію атрибутів транзактів:
а) генерування й знищення транзактів – GENERATE, SPLIT, TERMINATE, ASSEMBLE;
б) тимчасове затримування транзактів – ADVANCE;
в) синхронізація руху двох MATCH і декількох GATHER транзактів;
г) зміна параметрів транзактів ASSIGN, INDEX, MARK, PLUS;
д) зміна пріоритету транзакта PRIORITY.
Блоки, що змінюють послідовність руху транзактів (блоки передачі керування): DISPLACE, TRANSFER, LOOP, TEST, GATE.
Блоки, пов'язані з групуванням: ADOPT, ALTER, EXAMINE, JOIN, REMOVE, SCAN.
Блоки, що описують об'єкти апаратної категорії:
а) одноканальні пристрої – SEIZE, RELEASE, PREEMPT, RETURN, FUNAVAIL, FAVAIL;
б) багатоканальні пристрої – ENTER, LEAVE, SAVAIL, SUNAVAIL;
в) ключі (логічні перемикачі) – LOGIC.
Блоки, що зберігають необхідні значення для подальшого використання: SAVEVALUE, MSAVEVALUE.
Блоки, що забезпечують одержання статистичних результатів:
а) черги QUEUE, DEPART;
б) таблиці TABULATE.
Блоки для організації списку користувача: LINK, UNLINK.
Блоки для організації введення-виведення:
а) відкриття/закриття файлу: OPEN/CLOSE;
б) зчитування/запис у файл: READ/WRITE;
в) встановлення позиції поточного рядка: SEEK.
9. Спеціальні блоки: BUFFER, COUNT, EXECUTE, INTEGRATION, SELECT, TRACE, UNTRACE.
Об’єкти обчислювальної категорії використовуються у процесі моделювання, коли зв'язки між компонентами системи виражаються у вигляді математичних (аналітичних і логічних) співвідношень. Для цього до об'єктів обчислювальної категорії введені арифметичні та булеві змінні й функції.
Змінні є складними виразами, які включають константи, системні числові атрибути (СЧА), бібліотечні арифметичні функції, арифметичні й логічні операції.
Кожному об'єкту відповідають атрибути, що описують його стан у цей момент часу. Атрибути можуть використовуватися в операндах операторів GPSS та у виразах. Вони доступні для використання протягом усього процесу моделювання й називаються системними числовими атрибутами (СЧА) (System Numerical Attributes – SNA). У GPSSW використовуються СЧА трьох типів:
СЧА об’єктів, які описують стан об’єктів GPSS-моделі;
СЧА системи, які описують стан системи в цілому;
СЧА транзактів, які описують їх властивості і параметри. Усього в GPSS World є понад 50 СЧА.
Булеві змінні дозволяють користувачеві перевіряти в одному блоці GPSS одночасно декілька умов, виходячи зі стану або значення цих умов і їхніх атрибутів. Тому в даному блоці здійснюється звертання до булевої змінної, вираз якої містить у собі перевірку декількох умов. Булеві змінні можуть бути представлені комбінаціями стандартних числових атрибутів, пов'язаних між собою за допомогою булевих операторів, включаючи й інші змінні. Булеві змінні визначаються так само, як і арифметичні, але замість арифметичних операцій перевіряються різні логічні умови.
За допомогою функцій користувач може здійснювати обчислення неперервних або дискретних функціональних залежностей між аргументом функції (незалежна величина) і залежним значенням функції. Всі функції в GPSS задаються табличним способом за допомогою команд опису функцій. Як і змінні, функції не пов'язані з певними блоками.
Об'єкти запам'ятовуючої категорії забезпечують звертання до значень, що зберігаються. Комірки величин, що зберігаються, і матриці комірок величин, що зберігаються, використовуються для збереження деякої числової інформації. Розмірність матриці не може перевищувати шести.
До статистичних об'єктів належать черги й таблиці. У будь-якій системі рух потоку транзактів може бути затриманий через недоступність пристроїв. У цьому випадку затримані транзакти стають в чергу. Це ще один тип об'єктів GPSS. Облік цих черг становить одну з основних функцій інтерпретатора. Інтерпретатор автоматично накопичує певну статистику щодо пристроїв і чергу вказаних розробником місцях моделі. Вся ця інформація є доступною користувачеві у процесі моделювання.
Генератори випадкових (точніше, псевдовипадкових) чисел є об’єктами GPSS-моделі. Їх можна розділити на три групи:
вбудовані генератори рівномірно розділених в інтервалі (0, 1) випадкових чисел, що будуються на мультиплікативному конгруентному методі; звертання до генератора за допомогою системного числового атрибута RNj, де j – номер генератора, дозволяє створювати цілочисельні випадкові величини в інтервалі (0; 999);
бібліотечні генератори випадкових чисел, реалізовані у вигляді вбудованих бібліотечних процедур мови PLUS, з конкретними законами розподілу;
табличні генератори випадкових чисел з довільними законами розподілів, які реалізуються користувачем у вигляді таблиць.
Для полегшення табулювання статистичної інформації в GPSS передбачений спеціальний об'єкт – таблиця. Вони використовуються для одержання вибіркових розподілів деяких випадкових величин. Таблиця складається із частотних класів (діапазонів значень), куди заноситься число попадань конкретного числового атрибута в той чи інший частотний клас. Для кожної таблиці обчислюється також математичне сподівання й середньоквадратичне відхилення. Наприкінці експерименту з моделлю результати, що містяться в таблицях, можуть виводитися або на дисплей, або на друк.
До групуючої категорії належать три типи об'єктів: числова група, група транзактів і списки.
Під час моделювання у будь-який момент модельного часу транзакти, які знаходяться у моделі, зберігаються в одному із списків. Списки є структурами даних для зберігання інформації про транзакти. Вони відносяться до внутрішньої організації GPSS і забезпечують логіку процесу моделювання структури.
У будь-який момент часу транзакт може перебувати в одному з таких видів списків: 1) поточних подій; 2) майбутніх подій; 3) затримки ОКП або БКП; 4) відкладених переривань ОКП; 5) користувача. Загальна структура списків наведена на рис. 4.1.
У списку поточних подій (СПП) перебувають транзакти, що відповідають подіям, час настання яких є меншим або дорівнює поточному часу. Транзакти зі СПП готові до входу в блоки й повинні ввійти в них до чергової зміни модельного часу. У СПП транзакти розташовані в порядку зменшення пріоритету, а транзакти з однаковими пріоритетами розташовуються в порядку надходження їх у список.
Номер транзакта |
Номер поточного блоку |
Номер наступного блоку |
Час виходу із списку |
Пріоритет |
Час розміщення у списку |
Рис.4.1. Структура списку GPSS
Список майбутніх подій (СМП) містить транзакти, що відповідають подіям, час настання яких повинен відбутися в майбутньому. Такі транзакти розміщуються в списку строго в порядку зростання часу початку руху. Пріоритети не впливають на порядок руху в цьому списку.
У список повторних спроб надходять транзакти, для яких не виконані умови входу в наступний блок TRANSFER. Транзакти зі списку повторних спроб очікують зміну СЧА. Це зумовлює активізацію транзакту і перевірку умови його входження в наступний блок. Якщо умови виконуються, транзакт надходить у наступний блок і автоматично виключається зі списку повторних спроб. Кожний об’єкт GPSS має свій список повторних подій.
Одноканальний пристрій має:
список відкладених переривань — список транзактів, що очікує заняття ОКП за пріоритетом;
список переривань – список транзактів, обслуговування яких даним ОКП було перервано;
список затримування – список транзактів, що очікує заняття ОКП в порядку пріоритету;
список повторних спроб – список транзактів, що очікує зміни стану ОКП.
Багатоканальний пристрій має:
список затримування – список транзактіов у порядку пріоритету, що очікують можливості зайняти канали БКП, що звільнилися;
список повторних спроб – список транзактів, що очікує зміни стану БКП.
Список синхронізуючих транзактів містить транзакти, що перебувають у даний момент часу в стані порівняння.
Список користувача містить транзакти, вилучені користувачем зі списку поточних подій і надіслані в список користувача як тимчасово неактивні. Списки користувача використовуються для організації черг з дисциплінами, відмінними від дисципліни “першим прийшов - першим обслужений”.
Більш детальне використання списків транзактів буде викладене надалі під час побудови моделей з використанням блоків GPSS World.
Після того як система, модель якої потрібно розробити, формалізована, її потрібно описати мовою GPSS, використовуючи блоки, які виконують відповідні операції в моделі.