
- •Моделювання систем
- •Передмова
- •Моделі процесів і систем
- •Класифікація моделей
- •Основні визначення та класифікація систем масового обслуговування
- •Характеристики систем масового обслуговування
- •Вхідний потік вимог
- •Стратегії керування потоками вимог
- •Класифікація систем масового обслуговування
- •Метод статистичних випробовувань
- •Генератори випадкових чисел
- •Моделювання випадкових подій та дискретних випадкових величин
- •Моделювання неперервних випадкових величин
- •Моделювання нормально-розподілених випадкових величин
- •Моделювання випадкових векторів
- •Моделювання випадкових функцій
- •Статистична обробка результатів моделювання
- •Визначення кількості реалізацій під час моделювання випадкових величин
- •Основне меню 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.4.9. Арифметичні змінні й арифметичні вирази
Арифметичні змінні визначаються перед початком моделювання.
Цілі арифметичні змінні в GPSS World визначаються командою VARIABLE, а дійсні арифметичні змінні командою FVARIABLE. Формати команд:
Name VARIABLE A
Name FVARIABLE A
Операнд А – вираз, що задається користувачем для обчислення значень змінної, а Name – назва арифметичної змінної.
Наприклад, запис
23 VARIABLE Q3+5
означає, що арифметична змінна під номером 23, яка у подальшому іменується V23, дорівнює сумі числа вимог у черзі під номером 3 і константи 5.
Посиланням на арифметичну змінну є V$назва, або Vj, де j – номер змінної. Символічна назва може бути замінене номером (додатним цілим числом) шляхом використання команди EQU. Наприклад:
Nom EQU 5
Nom VARIABLE X$10/MX$Vtm(3,P2)
Тепер на арифметичну змінну Nom можна посилатися так: V5.
Значення арифметичної змінної може використовуватися в такий спосіб:
як операнд; у цьому випадку значення арифметичної змінної може представляти: номери об'єкта j та j логічного атрибута (блок GATE); номер параметра транзакту (блоки ASSIGN, INDEX, LOOP, MARK, SPLIT); значення атрибута;
як аргумент функції;
як значення залежної змінної атрибутивної функції;
як аргумент таблиці;
як операнд іншої арифметичної змінної або булевої змінної.
Наведемо приклади арифметичних виразів:
Has VARIABLE R$Nak+S$Nak
Мmm VARIABLE Q$Park-Q$Rox
Rаk VARIABLE P1+Q$Ful/14
Vtb VARIABLE N$Ewm@10
У першому прикладі величина змінної Has дорівнює сумі ємності, що залишилася, і поточного вмісту пам'яті Nak. У другому прикладі змінна Мmm визначається як поточний вміст черги Park мінус поточний вміст черги Rox. У третьому прикладі змінна Rаk підраховується спочатку діленням поточного вмісту черги Ful на 4, а потім додаванням результату до значення параметра Р1 активного транзакта. У четвертому прикладі Vtb – лічильник числа входів у блок з назвою Ewm за модулем 10.
Обчислювальні вирази складаються з комбінації СЧА, констант, математичних операторів і бібліотечних функцій. Може бути задане будь-яке число довільних комбінацій. Вирази аналізуються зліва направо згідно ієрархії операторів і правил елементарної алгебри.
Значення арифметичного виразу обчислюється, коли активний тран-закт входить у блок, оператор якого серед своїх операндів містить одне або більше посилань на арифметичні змінні. Обчислені значення мають дійсний тип. У GPSSW проміжні значення і СЧА не округлюються. Ця операція здійснюється за вимогою розробника з використанням функції INT (A).
Наведені нижче приклади характеризують розбіжність результатів, отриманих обчисленням змінних із плаваючими й фіксованою крапками:
Dvd1 FVARIABLE 10#(7/3)
Dvd2 VARIABLE 10#(7/3)
Значення змінної Dvd1 дорівнює 13, оскільки константа 10 буде помножена на 1,34 і від результату 13,4 буде взята ціла частина. Змінна Dvd2 дорівнює 10, оскільки результат проміжної операції 1,34 буде закруглений до 1.
4.4.10. Булеві змінні
Булева змінна – це логічний вираз, складений з різних СЧА, у тому числі й інших булевих змінних. Вони зозволяють приймати рішення залежно від значень СЧА істану об’єктів шляхом використання одного виразу.
Булева змінна визначається командою BVARIABLE у такому форматі:
Name BVARIABLE A
Тут Name – назва булевої змінної, котра може бути замінено номером за допомогою команди EQU. Операнд А – це логічний вираз.
Булеві вирази можуть бути представлені комбінаціями стандартних числових атрибутів, булевих змінних, знаків булевих операцій та умовних операторів. Вираз може містити бібліотечні функції й Plus-процедури. Булеві вирази приймають одне з двох значень: 1 (істина) або 0 (хибна).
Існують три типи операторів для роботи з логічними змінними: логічні, булеві та оператори відношення.
Логічні оператори пов'язані з об'єктами апаратної категорії й використовуються для визначення стану цих об'єктів, зокрема багатоканальних пристроїв, логічних класів. Зокрема, є такі логічні оператори (j – описує номер або назву):
FVj дорівнює 1, якщо пристрій j доступний, інакше – 0;
FIj дорівнює 1, якщо пристрій j обслуговує переривання, інакше – 0;
SFj дорівнює 1, якщо БКП j заповнений повністю, інакше – 0;
SEj дорівнює 1, якщо БКП j порожній, інакше – 0;
SVj дорівнює 1, якщо БКП j доступний, інакше – 0;
NUj дорівнює 1, якщо пристрій не використовується, інакше – 0;
Uj дорівнює 1, якщо пристрій використовується, інакше – 0;
LRj дорівнює 1, якщо логічний ключ j виключений, інакше – 0;
LSj дорівнює 1, якщо логічний ключ j включений, інакше – 0.
Наприклад:
Vbn BVARIABLE FV$Kan1
Dfg1 BVARIABLE SF$Buf2
Rty BVARIABLE SV$Pusk
Asdf BVARIABLE LS5
У першому прикладі булева змінна Vbn дорівнює 1, якщо пристрій Kan1 доступний, і – 0, якщо не доступний. У другому прикладі булева змінна Dfg1 рівна 1, якщо пристрій Buf2 заповнений повністю. У третьому прикладі булева змінна Rty дорівнює 1, якщо пристрій Pusk є доступним. У четвертому прикладі булева змінна Asdf рівна 1, якщо логічний ключ з номером 5 включений.
Оператори відношення здійснюють алгебраїчне порівняння операндів, які можуть бути константами або СЧА. Вони мають такий вигляд: “G” – більше, “L” – менше, “Е” – дорівнює, “NE” – не дорівнює, “LE” – менше або дорівнює, “GE” – більше або дорівнює. Наприклад:
Rty BVARIABLE Avto'G'5
Asdf BVARIABLE Q2$'LE'10
Булева змінна Rty дорівнює 1, якщо змінна Avto більша 5, інакше дорівнює 0. У другому прикладі булева змінна Asdf дорівнює 1, якщо поточна довжина черги номер 2 менша або дорівнює значенню параметра 10 транзакта.
Булевих операторів є два: OR – АБО й AND – І. Оператор АБО перевіряє виконання хоча б однієї з умов, а оператор І вимагає виконання обох умов. Наприклад:
Kan1 BVARIABLE FI$Rem'OR'SF4
Kan2 BVARIABLE FI$Rem'AND'SF$Pogr
Булева змінна Kanl дорівнює 1, якщо виконується одна з умов: пристрій Rem обслуговує переривання або пам'ять з номером 4 не заповнена. Булева змінна Kan2 дорівнює 1, якщо виконуються обидві умови: пристрій Rem обслуговує переривання й пам'ять із назвою Pogr не заповнена.