
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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-критерію Ст’юдента
Основні елементи мови
До основних елементів мови PLUS відносяться алфавіт, меню, вирази та оператори.
Імена – це створені користувачем послідовності алфавітно-цифрових та спеціальних символів для опису об’єктів, змінних і програм. Назва розпочинається з літери і може містити від одного до 250 алфавітно-цифрових символів. Імена не повинні співпадати з ключовими словами і з СЧА GPSS.
Алфавітно-цифрові символи містять великі літери А...Z, малі а...z, цифри 0...9 і знак підкреслення. Літери кирилиці використовуються у коментарях програм.
Спеціальні символи “#”, “*”, “-“, “/”, “\”, “,”, “;”, “^” використовуються для позначення операторів і пунктуації.
Символ # використовується для позначення операції множення, а символ * – як оператор відносної адресації СЧА GPSS. GPSS World не розрізняє регістр абетки, тому використання великих чи малих літер не має жодного значення.
Проіменовані величини – це імена, розміщені в полі мітки чи в Plus-операторі присвоювання.
Якщо проіменовані величини використовуються для позначення операторів GPSS, що визначають об’єкти, вони називаються мітками об’єктів. Якщо проіменовані величини застосовуються для присвоєння значень, вони називаються змінними користувача.
Міткам об’єктів автоматично присвоюються системні номери (цілочисельні значення). За винятком міток блоків, міткам об’єктів можна присвоїти власні значення за допомогою команди EQU.
Змінні користувача можуть бути локальними і глобальними. Локальні змінні користувача задаються всередині Plus-процедури за допомогою оператора TEMPORARY. Один оператор TEMPORARY створює одну або декілька тимчасових неініціалізованих іменованих величин. Їх можна використовувати лише всередині тієї процедури, в якій вони були визначені. Інші змінні користувача є глобальними. Вони можуть використовуватись у всій моделі.
Plus-процедурі і Plus-експерименту обов’язково присвоюються імена. Імена процедур мають глобальну область видимості. Будь-яка процедура може викликатись із будь-якого місця моделі. Експерименти є спеціальним видом процедур. Вони ідентичні процедурам у синтаксисі. Але задаються різними ключовими словами PROCEDURE і EXPERIMENT. Експерименти можуть викликатись лише командою CONDUCT. Мітки матриць можуть мати локальну або глобальну область видимості. Локальні матриці задаються за допомогою оператора TEMPORARY MATRIX. Один оператор TEMPORARY MATRIX створює одну тимчасову неініціалізовану матрицю. Локальні матриці доступні лише в тій процедурі, в якій вони були задані. Глобальні матриці задаються командою MATRIX. Глобальні матриці, на відміну від локальних матриць, є постійними. До них можна звертатись із будь-якого місця моделі. Усі матриці створюються з неініціалізованими елементами. Їх ініціалізація здійснюється за допомогою оператора INITIAL або блоку MSAVEVALUE.
Побудова виразів
Вирази будуються із використанням операторів і викликів процедур, які поєднують фактори. Вирази застосовуються в Plus-процедурах і в операндах операторів GPSS.
Змінні користувача, елементи матриць, комірки, параметри транзактів можуть мати значення різних типів даних. У GPSS World використовуються три основні типи даних – цілочисельний (integer), дійсний (real) і рядковий (string). Типи даних перетворюються явно за допомогою відповідних процедур, або неявно під час обчислення виразів.
До основних елементів виразів належать рядкові константи, дійсні константи, цілочисельні константи, імена, елементи Plus-матриці. звернення до процедур, стандартні числові атрибути. У виразах вони об’єднуються операторами і викликами процедур згідно з правилами, пов’язаними з конкретним оператором чи процедурою.
Оператори, які використовуються для об’єднання елементів у вирази, наведені у табл. 8.1. Зменшення пріоритетів враховано в арифметичних операторах.
Таблиця 8.1
Оператор |
Дія |
Результат |
- |
Заперечення |
Адитивна інверсія |
^ |
Піднесення до степеня |
Арифметичний показник степеня |
NOT або ~ |
Інверсія |
1(TRUE) або 0 (FALSE) |
AND |
Логічне І |
1(TRUE) або 0 (FALSE) |
OR |
Логічне АБО |
1(TRUE) або 0 (FALSE) |
> або ‘G’ |
Більше |
1(TRUE) або 0 (FALSE) |
< або ‘L’ |
Менше |
1(TRUE) або 0 (FALSE) |
= або ‘E’ |
Рівно |
1(TRUE) або 0 (FALSE) |
/ = або ‘NE’ |
Не рівно |
1(TRUE) або 0 (FALSE) |
<= або ‘LE’ |
Менше або рівно |
1(TRUE) або 0 (FALSE) |
>= або ‘GE’ |
Більше або рівно |
1(TRUE) або 0 (FALSE) |
# (або *) |
Множення |
Арифметичний добуток |
/ |
Ділення |
Арифметична частка |
\ |
Цілочисельне ділення |
Цілочисельне ділення |
@ |
Цілочисельний залишок |
Цілочисельний залишок |
+ |
Додавання |
Арифметична сума |
- |
Віднімання |
Арифметична різниця |
Відповідно до цих пріоритетів обчислюються вирази з автоматичним перетворенням операндів на необхідні типи даних. Наприклад, рядки, які об’єднані арифметичним знаком “+”, автоматично перетворюються на числа, які додаються.