Постановки задач

Мета заняття

Вивчення основних операторів мови імітаційного моделювання GPSS, набуття практичних навичок побудови і дослідження програм-моделей об’єктів, що представляються у вигляді систем масового обслуговування (СМО), засобами пакету програм моделювання дискретних систем GPSS W.

2.2 Вказівки з організації самостійної роботи

Для розв’язання завдань практичного заняття використовується комп’ютер зі встановленим на ньому пакетом програм моделювання дискретних систем GPSS W або йому подібним [6–8]. Короткий опис пакету програм GPSS W наведений у додатку А.

Під час підготовки до практичного заняття необхідно вивчити: основні оператори мови GPSS; способи формування випадкових величин із заданими законами розподілу [6–8]; технологію роботи з пакетом GPSS W [8].

Створення та введення до моделі потоку транзактів здійснюється за допомогою блоку

Generate A, B, C, D, E

де A, B, C, D, E – операнди блоку.

За допомогою операндів A та B задається розподіл інтервалів надходження транзактів. Операнд C визначає момент модельного часу, в який y блоці Generate повинен з’явитися перший транзакт. Операнд D задає максимальну кількість транзактів, що можуть увійти до моделі через даний блок Generate. Якщо кількість транзактів не задана, блок генерує необмежену кількість транзактів. Операнд E встановлює рівень пріоритету кожного з транзактів, що генеруються цим блоком. Якщо пріоритет не заданий, транзактам присвоюється найнижчий пріоритет (його значення дорівнює нулю).

Видалення транзактів із моделі здійснюється блоком

Terminate А.

Видаленнятранзактів з моделі супроводжується видаленням з пам’яті комп’ютера всіх записів, що характеризували стан транзакта під час його переміщення всередині моделі. Операнд А задає значення постійної, що віднімається від значення лічильника завершень.

Початкове значення лічильниказавершень задається операндом A керуючої команди

Start A, B, C, D.

Коли значення лічильника завершень подій стане меншим чи таким, що дорівнює нулю, процес моделювання припиниться та будуть видані результати моделювання. Якщо поле A блоку Terminate залишити незаповненим, значення лічильника залишатиметься без змін.

У полі В може вказуватись ознака відміни видачі результатів (NP).

У полі C може задаватись кількість завершень, після яких буде виконуватись проміжна видача результатів.

У полі D за допомогою символу "1" може задаватись ознака видачі стандартної статистики.

В моделі може бути декілька блоків Terminate, що впливають на один і той же лічильник завершень.

Транзакти, мають такі основні стандартні числові атрибути (СЧА):

Pj – параметр j – го транзакта. Параметри змінюються блоком Assign;

M1 – час перебування транзакта в моделі;

PR – пріоритет транзакта (від 0 до 127).

Функції. Для опису залежностей, які мають місце в об’єктах, що моделюються, використовуються функції. Функція задається за допомогою рядка визначення функції й одного або більше рядків слідування. Рядок визначення функції має вигляд:

< імя > Function A, B,

де A – аргумент функції, який може бути будь-яким СЧА;

B – тип функції (C – безперервна, D – дискретна) і кількість пар "значення аргументу – значення функції".

Ім’я функції може бути числовим або символьним. Безпосередньо після рядка визначення функції розташовуються рядки слідування функції. У рядках слідування задаються пари "значення аргументу Xi – значення функції Yi " у вигляді

X1, Y1/ X2, Y2/... / Xn,Yn.

Дискретна числова функція є ступінчастою. Вона змінюється тільки при тих значеннях аргументу, що задані в картах слідування. Значення дискретної функції обчислюється за наступним правилом: для X X1 значення функції дорівнює Y1; для Xi-1 < X Xi, значення функції дорівнює Yi; для X > Xn значення функції дорівнює Yn. Значення функції передається її СЧА – Fn. Посиланням на функцію може бути: Fnj, де j – числове ім’я функції або Fn$<ім’я>, якщо ім’я функції задане символічно. При цьому припускається, що всі Yi – цілі числа. Наприклад,

5 Function P3, D4

2, 10/5, 17/6, 20/7, 26.

Безперервну числову функцію, як і дискретну, задають парами точок. Значення безперервної функції, що знаходяться між точками Yi, Yi+1, компілятор GPSS W визначає шляхом лінійної інтерполяції.

Арифметичні змінні дозволяють виконувати обчислення за формулами, в яких використовуються імена СЧА, матриць і т.д. Кожна арифметична змінна визначається рядком опису

< ім’я > Variable < вираз >.

У полі мітки записується ім’я змінної (числове або символьне). У полі операції вказується слово Variable або Fvariable. Змінна Variable використовується для обчислення за правилами цілочисельної арифметики, а Fvariable – за правилами арифметики з плаваючою крапкою. Результат обчислень, що присвоюється змінній, завжди є цілим числом. У записах виразів використовують такі арифметичні оператори: "+" – додавання; "–" – віднімання; "*", "#" – множення; "/" – ділення; "@" – ділення за модулем. Остання операція визначена тільки дляоператора Variable.

Ім’ям СЧА арифметичної змінної є V, після якої записується числове ім’я змінної або через знак $ символьне ім’я. Звертанням до арифметичної змінної є або Vj, якщо вона була задана номером j, або V$< ім’я > – у випадку символічного завдання.

Таблиці. Таблиці використовуються для одержання числових характеристик і гістограм СЧА. Опис таблиці слід виконується за допомогою оператора

< ім’я > Table A, B, C, D,

де < ім’я > – числове або символьне ім’я таблиці;

A – аргумент таблиці (ім’я СЧА), значення якого табулюється;

B – перше граничне значення;

C – ширина проміжних інтервалів;

D – загальна кількість інтервалів таблиці, включаючи лівий.

Якщо транзакт входить у блок Tabulate A, де A – ім’я таблиці, то до цієї таблиці заноситься значення СЧА, що задане у полі A оператора Table

Abcd Table Q$Queue, 2, 4, 12

........................................

Tabulate Abcd.

У наведеному прикладі кожного разу, коли транзакт буде входити у блок Tabulate, до таблиці з ім’ям Abcd буде заноситися значення довжини черги, що має ім’я Queue.

Використання засобів моделювання випадкових величин. У GPSS є датчики рівномірно розподілених псевдовипадкових чисел, кожний з яких має своє ім’я: Rn1, Rn2,..., RN8. Імена датчиків є СЧА, що використовуються у разі звертання до них. Якщо ім’я датчика використовується як аргумент функції, то він видає числа, рівномірно розподілені в інтервалі від 0 до 0.999999. У будь-якому іншому випадку – в інтервалі від 0 до 999. Для імітації дискретних випадкових величини використовуються дискретні функції GPSS. Нехай необхідно імітувати дискретну випадкову величину X, задану рядом розподілу

X        
Y 0.1 0.2 0.3 0.4

Дискретна функція для імітації цієї випадкової величини може бути записана у такий спосіб

Proba Function Rn3, D4

. 1, 5/. 2, 8/. 3, 11/. 4, 14,

де RN3 – аргумент функції (третій датчик псевдовипадкових чисел).

У рядку слідування функції наводяться сумарні частоти використання значень випадкової величини. Значення функції компілятор встановлює у такий спосіб: Fn$ Proba = {5, якщо Rn3 Î (0, 0.1); 8, якщо Rn3 Î (0.100001, 0.2); 11, якщо Rn3 Î (0.200001, 0.3); 14, якщо Rn3 Î (0.300001, 0.4)}.

Безперервні випадкові величина імітуються у GPSS- моделях за допомогою безперервних функцій. Для цього використовується кусково-лінійна апроксимація функцій, зворотних нормованим функціям розподілу. Рядки визначення і слідування функцій для моделювання випадкових величин, розподілених за експоненційним законом Expon ізпараметром a=1/b і нормальним законом Norm з математичним сподіванням m=0 й середньоквадратичним відхиленням =1, наведені нижче

Expon Function Rn1, C24

0, 0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915

.7, 1.2/.75, 1.38/.8, 1.6/.84, 1.83/.88, 2.12/.9, 2.3

.922, 2.52/.94, 2.81/.95, 2.99/.96, 3.2/.97, 3.5/.98, 3.9

.99, 4.6/.995, 5.3/.998, 6.2/.999, 7./.9998, 8.

Norm Function RN2, C25

0, –5./.00003, –4./.00135, –3./.00621, –2.5/.02275, –2.

.06681, –1.5/.11507, –1.2/.15866,–1./.21186, –.8/.2725, –.6

.34458, –.4/. 42074, –.2/.5, 0/.57296,.2/.65542,.4

.72575,.6/.78814,.8/.84134, 1./.88493, 1.2/.93319, 1.5

.97725, 2./.99379, 2.5/.99865, 3./.99997, 4./1., 5.

Пуассонівський потік імітується в GPSS за допомогою блоку Generate як потік з експоненційним розподілом інтервалів часу між подіями. Наприклад, блок Generate 150, Fn$Expon забезпечує імітацію пуассонівського потоку подій з 1/ b =150.

Значення нормально розподіленої випадкової величини із середнімзначенням m та середньоквадратичним відхиленням σ одержують на основі співвідношення X= Xн+m, де Xн – значення нормованої випадкової величини з рівномірним розподілом, що може бути отримане звертанням до функції Norm. Для обчислення цього співвідношення може бути використана, наприклад, дійсна змінна

Gauss Fvariable 30+4#Fn$Norm,

що забезпечує одержання нормально розподіленої випадкової величини з параметрами m =30, σ=4.

Об’єкти GPSS для імітації роботи каналів СМО. Обслуговуючі канали СМО описуються в моделі блоками Seize (зайняти), Release (звільнити), Advance (затримати), що реалізують наступні властивості: пристрій (канал) у будь-який момент часу може обслуговувати тільки один транзакт; при надходженні транзакта до пристрою здійснюється його затримка на час, що відповідає часу обслуговування заявки у каналі СМО.

Блок Seize забезпечує: заборону транзакта на вхід до блоку, якщо пристрій у даний момент часу зайнятий обслуговуванням; дозвіл транзакта війти до вільного пристрою. Блоки Seize і Release мають один операнд A (символьне або числове ім’я пристрою). Правила застосування імен пристроїв такі ж як і для функцій.

Вхід транзакта у блок Release імітує звільнення пристрою. Імітація полягає у зміні його стану "зайнятий" на "вільний". Для реалізації затримки транзактів на час їхнього обслуговування використовується блок Advance, що має операнди A і B, аналогічні відповідним операндам блоку Generate.

Приклад імітації роботи пристрою, що має ім’я Кanal, може бути представлений у такому вигляді

Seize Кanal

Advance 10, 4

Release Кanal.

Кожен пристрій має чотири СЧА, які зберігають статистичні дані про використання пристрою: Fj (F$ім’я) – стан j-го пристрою: Fj=1, якщо пристрій зайнятий, і Fj=0, якщо пристрій вільний; Frj (Fr$ім’я) – коефіцієнт використання; Fcj (Fc$ім’я) – загальна кількість входів; Ftj (Ft$ім’я) – середній час використання пристрою одним транзактом.

Організація збирання статистичної інформації щодо черг. Збирання й обробку статистичних даних щодо черг транзактів в моделі виконують реєстратори черг – блоки Queue (зайняти чергу) і Depart (звільнити чергу), кожен з яких має два операнди: A – ім’я (номер) черги; B – число, на яке змінюється довжина черги при вході до неї або при виході з неї транзакта. За відсутності числа у полі B значення його параметра приймається рівним одиниці. Правила застосування імен черг такі ж як і для пристроїв.

Збирання статистичної інформації щодо черги Ocher пристрою Kanal можна здійснити у такий спосіб

Queue Ocher

Seize Kanal

Depart Ocher

Advance A, B

Release Kanal.

Кожна черга j має сім стандартних числових атрибутів: Qj (Q$ім’я) – поточна довжина черги; Qmj (Qm$ім’я) – максимальна довжина черги; Qaj (Qa$ім’я) – середня довжина черги; Qcj (Qc$ім’я) – загальна кількість входів до черги; Qzj (Qz$ім’я) – кількість нульових входів до черги; Qtj (Qt$ім’я) – середній час затримки у черзі з урахуванням усіх входжень; Qxj (Qx$ім’я) – середній час затримки у черзі без обліку нульових входжень.

Використання команд керування для зміни параметрів GPSS-моделі та її дослідження у стаціонарному режимі. Після початку моделювання потрібен деякий час для досягнення стаціонарного режиму (для одержання незміщених оцінок параметрів моделі). Для поліпшення оцінок параметрів статистику, що отримана на початковому етапі моделювання, слід стерти з пам’яті комп’ютера. З цією метою використовується командакерування Reset, що викликає знищення відносного умовного часу всіх накопичених статистик, зберігаючи поточні значення стану пристроїв, черг, комірок і датчиків псевдовипадкових чисел. Після знищення статистики моделювання відновлюється за допомогою наступної команди Start. Для встановлення нульового відносного й абсолютного часу моделі, видалення з моделі всіх транзактів та статистик, приведення до початкового значення всіх станів всіх об’єктів використовують команду Clear.

Постановки задач

Задача 1. Сформувати послідовність, що складається з 1000 псевдовипадкових чисел із заданим законом розподілу. Дані про вид та параметри закону розподілу взяти зі стовпця "Вхідний потік" табл. 2.1. Закони розподілу позначені: Р – рівномірний; Н – нормальний; Е – експоненційний.

Визначити статистичні числові характеристики послідовності.

Задача 2. Змоделювати процес функціонування одноканальної СМО без відмов в обслуговуванні, що складається: з джерела Д, що генерує потік заявок на обслуговування; черги, в якій заявки можуть очікувати обслуговування; каналу К, що обслуговує заявки. Обслуговування заявок відбувається згідно з порядком їхнього надходження. Відомі види і параметри законів розподілу інтервалів часу між заявками вхідного потоку та часу обслуговування. Із ймовірністю р виникає потреба у повторному обслуговуванні.

Для заданого інтервалу моделювання [ 0, ] визначити кількість обслужених заявок n й незміщені оцінки характеристик системи (час очікування заявки у черзі, час перебування заявки у системі, максимальну довжину черги заявок, інші характеристики у відповідності до варіанту завдання).

Варіанти завдань наведені у табл. 2.1. Інтервали надходження заявок, час обслуговування задані у хвилинах, час моделювання – у годинах. Номери параметрів, що табулюються:

1 – довжина черги заявок;

2 – час очікування заявки у черзі;

3 – час обслуговування;

4 – час перебування заявки у системі.

Таблиця 2.1 – Варіанти завдань

Варіант Вхідний потік Час обслуговування Параметр табулювання
  Р: 7; 4 Н: 5; 2   0.1  
  Е: 5 Р: 5; 2   0.2  
  Р: 6; 4 Е: 6   0.13  
  Е: 9 Р: 9; 4   0.14  
  Н: 6; 2 Е: 6   0.21  
  Р: 8; 5 Н: 8;3   0.12  
  Р: 4; 2 Е: 4   0.3  
  Е: 8 Р: 8; 4   0.14  
  Р: 7; 3 Е: 7   0.21  
  Н: 10; 5 Е:10   0.12  
  Н: 5; 2 Р: 5; 4   0.13  
  Н: 12; 4 Р: 12; 6   0.14  
  Е: 4 Р: 4; 3   0.11  
  Р: 6; 4 Е: 6   0.12  
  Н: 9; 3 Р: 9; 5   0.3  
  Е: 9 Р: 9; 4   0.14  
  Н: 6; 2 Е: 6   0.1  
  Р: 5; 3 Е: 5   0.2  
  Р: 10; 3 Е: 10   0.13  
  Р: 5; 4 Н: 5;3   0.14  
  Р: 9; 4 Н: 9; 2   0.1  
  Е: 7 Р: 7; 2   0.2  
  Р: 6; 4 Е: 6   0.23  
  Е: 9 Р: 9; 4   0.14  
  Н: 11; 4 Е: 11   0.1  

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: