Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Основи моделювання на GPSS/PC

РефератДопомога в написанніДізнатися вартістьмоєї роботи

В полі операції записується ключовим словом (назва оператора), указывающее конкретну функцію, виконувану даним оператором. Це полі оператора обов’язковий. В окремих операторів полі операції включає у собі також допоміжний операнд. У полях операндов записується інформація, уточнювальна і конкретизирующая виконання функції, певної на полі операції. Ці поля була в залежність від типу операції… Читати ще >

Основи моделювання на GPSS/PC (реферат, курсова, диплом, контрольна)

ОСНОВЫ МОДЕЛЮВАННЯ НА GPSS/PC.

Процессы функціонування різних систем та мереж зв’язку можуть бути тій чи іншій сукупністю систем масового обслуговування (СМО) — стохастичних, динамічних, дискретно-непрерывных математичних моделей. Дослідження характеристик таких моделей можна проводити або аналітичними методами, або шляхом імітаційного моделювання [1−6].

Имитационная модель відображає стохастический процес зміни дискретних станів СМО у безперервному часу у формі що моделює алгоритму. У його реалізації на ЕОМ виробляється накопичення статистичних даних із тим атрибутам моделі, характеристики яких є предметом досліджень. Після закінчення моделювання нагромаджена статистика обробляється, й одержують результати моделювання виходять як вибіркових розподілів досліджуваних величин чи його вибіркових моментів. Отже, при имитационном моделюванні систем масового обслуговування завжди йдеться про статистичному имитационном моделюванні [5;6].

Сложные функції що моделює алгоритму можна реалізувати засобами універсальних мов програмування (Паскаль, Сі), що надає необмежені можливості у розробці, налагодженні й використанні моделі. Проте це гнучкість купується ціною великих зусиль, витрачених розробці і програмування дуже складних моделюючих алгоритмів, оперують зі списковыми структурами даних. Альтернативою цього є використання спеціалізованих мов імітаційного моделювання [5−7].

Специализированные мови мають кошти описи структури та процесу функціонування моделируемой системи, що полегшує і спрощує програмування имитационных моделей, оскільки основні функції що моделює алгоритму у своїй реалізуються автоматично. Програми имитационных моделей на спеціалізованих мовами моделювання близькі до з описів моделируемых систем природному мові, що дозволяє конструювати складні имитационные моделі користувачам, які є професійними програмістами. Однією з найефективніших і поширених мов моделювання складних дискретних систем в час мову GPSS [1;4;7]. Він може бути із найбільшим успіхом використаний моделювання систем, формализуемых як систем масового обслуговування. Як об'єктів мови використовуються аналоги таких стандартних компонентів СМО, як заявки, обслуговуючі прилади, черзі й т.п. Достатній набір подібних компонентів дозволяє конструювати складні имитационные моделі, зберігаючи звичну термінологію СМО. На персональні комп’ютери (ПК) типу IBM/PC мову GPSS реалізований у рамках пакета прикладних програм GPSS/PC [8]. Основний модуль пакета є інтегровану середу, що включає крім транслятора зі вхідного мови кошти введення і редагування тексту моделі, її налагодження й чужі спостереження за процесом моделювання, графічні кошти відображення атрибутів моделі, і навіть кошти накопичення результатів моделювання базі даних та його статистичної обробки. Крім основної модуля у складі пакета входить модуль створення стандартного звіту GPSS/PC, і навіть ряд додаткових модулів і файлів. У цьому виданні, що складається із двох галузей, викладаються основи моделювання систем та мереж зв’язки України із використанням пакета GPSS/PC. У першій частині розглядаються засадничі поняття і кошти GPSS/PC, прийоми конструювання GPSS-моделей й технологія роботи з пакетом. Переказ матеріалу супроводжується невеликими навчальними прикладами. Щодо докладний розгляд мови GPSS/PC викликано відсутністю літературі навчального матеріалу з цієї версії мови. В другій частині розглядаються приклади GPSS-моделей різних систем та мереж масового обслуговування, що використовуються формалізації процесів функціонування систем та мереж зв’язку. Наводиться також кілька прикладів моделювання систем та мереж через відкликання використанням GPSS/PC. Докладно коментуються тексти GPSS-моделей й одержують результати моделювання. 1. СПІЛЬНІ ДАНІ Про GPSS/PC Исходная програма мовою GPSS/PC, як і яскрава програма якою мовою програмування, є послідовність операторів. Оператори GPSS/PC записуються і уводять у ПК наступного форматі:

номер _рядки ім'я операція операнды; коментарі Усі оператори вихідної програми повинні починатися з номери 0_строки — цілого позитивного числа від 1 до 9 999 999. Після введення операторів вони містяться у вихідної програмою відповідність до нумерацією рядків. Зазвичай нумерація здійснюється з деяким кроком, відмінними від 1, щоб матимуть можливість додавання операторів у потрібний місце вихідної програми. Деякі оператори зручно вводити, не включаючи їх чи в вихідну програму. Такі оператори вводяться безномерний рядки.

У цьому виданні в описах формату операторів й у прикладах моделей номери рядків будуть опускатися для кращої читаності текста. Отдельные оператори може мати ім'я для посилання ці оператори за іншими операторах. Якщо такі посилання відсутні, цей елемент оператора перестав бути обов’язковим.

В полі операції записується ключовим словом (назва оператора), указывающее конкретну функцію, виконувану даним оператором. Це полі оператора обов’язковий. В окремих операторів полі операції включає у собі також допоміжний операнд. У полях операндов записується інформація, уточнювальна і конкретизирующая виконання функції, певної на полі операції. Ці поля була в залежність від типу операції містять сьомої операндов, розміщених у певної послідовності і які охоплюють зазвичай першими літерами латинського алфавіту від A до G. Деякі оператори не мають операндов, а деяких операнды може бути опущені, у своїй встановлювали їхні стандартні значення (за умовчанням). При записи операндов використовується позиційний принцип: перепустку операнда відзначається коми. Необов’язкові коментарі у випадку їхньої присутності відокремлюються від поля операндов точкою з коми. Коментарі що неспроможні содержатьбукв російського алфавіту.

Оператори GPSS/PC записуються, починаючи з першого позиції, всвободном форматі, тобто. окремі поля поділяються довільним кількістю прогалин. При введення вихідної програми в інтегрованої середовищі GPSS/PC розміщення окремих полів операторів з певною кількістю інтервалів з-поміж них виробляється автоматично. Кожен оператор GPSS/PC належить до жодного з чотирьох типів: операторы-блоки, оператори визначення об'єктів, управляючі оператори і операторы-команды.

Операторы-блоки формують логіку моделі. У GPSS/PC є близько 50 різних видів блоків, кожен із яких виконує свою конкретну функцію. За кожним із таких блоків стоїть відповідна підпрограма транслятора, а операнды кожного блоку служать параметрами цієї підпрограми.

Оператори визначення об'єктів служать для описи параметрів деяких об'єктів GPSS/PC (самих об'єктах йтиметься дальше).Примерами параметрів об'єктів може бути кількість каналів в багатоканальної системі масового обслуговування, кількість рядків і шпальт матриці тощо.

Управляючі оператори служать керувати процесом моделювання (прогоном моделі). Операторы-команды дозволяють управляти роботою інтегрованої середовища GPSS/PC. Управляючі оператори і операторы-команды звичайно входять у вихідну програму, а вводяться безпосередньо з клавіатури ПК у процесі інтерактивного взаємодії з інтегрованої середовищем.

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

Об'єкти GPSS/PC можна розділити до 7 класів:

динамічні, операційні, апаратні, статистичні, обчислювальні, запам’ятовуючі і группирующие. Динамічні об'єкти, відповідні заявками в системах масового обслуговування, називаються в GPSS/PC транзактами. Вони «створюються «і «знищуються «оскільки це потрібно за логікою моделі у процесі моделювання. Із кожним транзактом може пов’язуватися довільне число параметрів, що несуть у собі необхідну інформацію звідси транзакте. З іншого боку, транзакты може мати різні пріоритети.

Операційні об'єкти GPSS/PC, звані блоками, відповідають операторам-блокам вихідної програми. Вони, як говорилося, формують логіку моделі, даючи транзактам вказівки: куди іти і що робити далі. Модель системи на GPSS/PC можна сукупністю блоків, об'єднаних відповідно до логікою роботи реальної системи в так звану блок-схему. Блок-схема моделі то, можливо зображено графічно, наочно показуючи взаємодія блоків у процесі моделювання.

Апаратні об'єкти GPSS/PC — це абстрактні елементи, куди то, можливо розчленована (декомпозировано) устаткування реальної системи. До них належать одноканальные і многоканальные пристрої і логічні перемикачі. Багатоканальне пристрій іноді називають пам’яттю.

Одноканальные і многоканальные устрою відповідають обслуговуючим приладам в СМО. Одноканальное пристрій, яке стислості далі називатимемо просто пристроєм, може обслуговувати одночасно лише одне транзакт. Багатоканальне пристрій (СКУ) може обслуговувати одночасно кілька транзактов. Логічні перемикачі (ЛЗ) йдуть на моделювання двійкових станів логічного чи фізичного характеру. ЛЗ може у двох станах: включено і виключене. Його багатство може змінюватися у процесі моделювання, і навіть опрашиваться до ухвалення певних рішень.

Статистичні об'єкти GPSS/PC служать для збирання та опрацювання статистичних даних функціонування моделі. До них належать черзі й таблиці. Кожна чергу забезпечує збирання та обробку даних про транзактах, чоловіків у будь-якої точці моделі, наприклад перед одноканальним пристроєм. Таблиці йдуть на отримання вибіркових розподілів деяких випадкових величин, наприклад час перебування транзакта в моделі.

К обчислювальним об'єктах GPSS/PC ставляться перемінні (арифметичні і булевские) і функції. Їх використовують для обчислення деяких величин, заданих арифметичними чи логічними висловлюваннями або табличными залежностями.

Запам’ятовуючі об'єкти GPSS/PC забезпечують збереження до пам’яті ПК окремих величин, які у моделі, і навіть масивів таких величин. До них належать звані збережені розміру й матриці сохраняемых величин.

До об'єктах группирующего класу ставляться списки користувача і групи. Списки користувача йдуть на організації черг з дисциплінами, відмінними від дисципліни «раніше прийшов — раніше обслужен ». Групи у виданні розглядатися ні.

Кожному об'єкту тієї чи іншої класу відповідають числові атрибути, описують його у цей час модельного часу. З іншого боку, є низка про системних атрибутів, стосовних немає окремих об'єктах, а до моделі у цілому. Значення атрибутів на всі об'єкти моделі після закінчення моделювання Виводять у стандартний звіт GPSS/PC. Більшість атрибутів доступна програмісту і як звані стандартні числові атрибути (СЧА), 0которые можна використовувати як операндов операторів вихідної програми. Усі СЧА в GPSS/PC є цілими числами.

Каждый об'єкт GPSS/PC має ім'я і номер. Імена об'єктах вони дають у різних операторах вихідної програми, а відповідні їм номери транслятор привласнює автоматично. Ім'я об'єкта є що починається з літери послідовність літер латинського алфавіту, цифр і символу «підкреслення ». За необхідності імені будь-якого об'єкта, крім імені блоку, можна експортувати відповідність будь-який номер з допомогою оператора описи EQU, має наступний формат:

имя EQU номер

Блокам присвоюються їх порядкові номери як у вихідної програмі (не плутати з номерами рядків!).

Для посилання 0на будь-якої стандартний числової атрибут деякого об'єкта відповідний операнд оператора вихідної програми записується однією з наступних способів:

СЧА $ім'я.

;

СЧА j.

де СЧА — системне позначення (назва) конкретного стандартного числового атрибута даного об'єкта; ім'я — ім'я об'єкта; j — номер об'єкта; $ - символ-разделитель.

Прогін поточної моделі, тобто. власне моделювання, виконується з допомогою спеціальної керуючої програми, яку називають симулятором (від англійського SIMULATE — моделювати, імітувати). Робота GPSS-модели під керівництвом симулятора залежить від переміщенні транзактов від самих блоків решти, аналогічна тій, як і моделируемой СМО переміщаються заявки, відповідні транзактам. У початковий час в GPSS-модели немає жодної транзакта. У процесі моделювання стимулятор генерує транзакты у визначені моменти часу у відповідність до тими логічними потребами, які творяться у моделируемой системі. У такий спосіб транзакты залишають модель у визначені моменти часу у залежність від специфіки моделируемой системи. У випадку в моделі одночасно є велика число транзактов, однак у кожен час стимулятор здійснює просування лише будь-якого одного транзакта. Якщо транзакт розпочав свій рух, він переміщається від блоку до блоку шляхом, запропонованому блок-схемою. У той час, коли транзакт входить у певний блок, виконання викликається підпрограма симулятора, відповідна типу цього блоку, а після виконання, у якому реалізується функція цього блоку, транзакт «намагається «ввійти у наступний блок. Таке просування транзакта триває до того часу, доки станеться один з наступних можливих подій: 1) транзакт блокується, функцією якого є видалення транзакта з моделі; 2) транзакт блокується, функцією якого є затримка транзакта на деяке певне в моделі час; 3) транзакт «намагається «ввійти у наступний блок, проте блок «відмовляється «прийняти його. І тут транзакт залишається у цьому блоці, де був, і пізніше повторюватиме свою спробу ввійти у наступний блок. Коли умови в моделі зміняться, така спроба може бути успішної, і транзакт зможе продовжити своє переміщення блок-схеме.

Якщо виникло одна з описаних вище умов, обробка даного транзакта припиняється, і розпочинається переміщення іншого транзакта.

Отже, виконання моделювання симулятором триває постійно.

Проходячи через блоки моделі, кожен транзакт вносить внесок у вміст лічильників блоків. Значення цих лічильників доступні програмісту через СЧА блоків: W — поточне вміст блоки і N — загальна кількість входів у нього.

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

Таймер GPSS/PC має такі особливості:.

1) реєструється лише цілі значення (все тимчасові інтервали в моделі зображуються цілими числами);

2) одиниця модельного часу визначається розробником моделі, який задає все тимчасові інтервали тільки в і тієї ж, вибраних їм одиницях;

3) стимулятор не аналізує стан моделі у кожен наступний момент модельного часу (віддалений від того плинного на одиницю модельного часу), а просуває таймер на момент часу, коли відбувається найближче таке подія.

Значения таймера доступні програмісту через системні СЧА C1 (відносне час) і AC1 (абсолютне час).

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

Список поточних подій включає у собі ті транзакты, плановане час просування яких одно менше поточного модельного часу (до останніх ставляться транзакты, рух яких неможливо було заблоковано раніше). Він організується у порядку спаду пріоритетів транзактов, а межах кожного рівня пріоритету — гаразд надходження транзактов.

Список майбутніх подій включає у собі транзакты, плановане час просування яких набагато більше поточного часу, тобто. події, пов’язані з просуванням цих транзактов, мають відбутися у майбутньому. Цей перелік організується гаразд зростання планованого часу просування транзактов.

Стимулятор GPSS/PC поміщає транзакты залежно та умовами в моделі у той чи інший список і переносить транзакты зі списку до списку, переглядає списки, обираючи наступний транзакт в обробці, коригує таймер модельного часу після обробки всіх транзактов у списку поточних подій. 2. ОСНОВНІ БЛОКИ GPSS/PC І ПОВ’ЯЗАНІ З НИМИ ОБ'ЄКТИ.

2.1. Блоки, пов’язані з транзактами.

З транзактами пов’язані блоки створення, знищення, затримки транзактов, зміни їх атрибутів і шляхом створення копій транзактов.

Для створення транзактов, які входять у модель, служить блок GENERATE (генерувати), має наступний формат:

имяGENERATEA, B, C, D, E.

У поле A задається середнє інтервалу часу між моментами надходження у модель двох послідовних транзактов. Якщо це інтервал постійний, то поле B не використовується. Якщо ж інтервал надходження є випадкової величиною, то поле B вказується модифікатор середнього значення, що може бути заданий як модификатора-интервала чи модификатора-функции.

Модификатор-интервал використовується, коли інтервал надходження транзактов є випадкової завбільшки з рівномірним законом розподілу ймовірностей. І тут в поле B може бути поставлене будь-який СЧА, крім посилання функцію, а діапазон зміни інтервалу надходження має кордону A-B, A+B.

Например, блок.

GENERATE100,40 создает транзакты через випадкові інтервали часу, рівномірно розподілені на відрізку [60;140].

Модификатор-функция використовується, якщо закон розподілу інтервалу надходження різниться від рівномірного. І тут в поле B має бути записаною посилання функцію (її СЧА), описує цього закону, і випадковий інтервал надходження визначається, як ціла частина книжки поля A (середнього значення) на розрахований значення функції.

У поле C задається момент надходження у модель першого транзакта. Якщо це полі порожньо або дорівнює 0, то момент появи першого транзакта визначається операндами A і B.

Поле D задає загальна кількість транзактов, що має бути створено блоком GENERATE. Якщо це полі порожньо, то блок генерує необмежена кількість транзактов до завершення моделювання. У поле E задається пріоритет, присваиваемый генерируемым транзактам. Кількість рівнів пріоритетів необмежено, причому найнижчий пріоритет — нульової. Якщо полі E порожньо, то які генеруються транзакты мають нульової пріоритет.

Транзакты випливає низка стандартних числових атрибутів. Наприклад, СЧА під назвою PR дозволяє посилатися на пріоритет транзакта. СЧА під назвою M1 містить зване резидентное час транзакта, тобто. час, що минув від моменту входу транзакта в модель через блок GENERATE. СЧА під назвою XN1 містить внутрішній номер транзакта, що є унікальним і дозволяє завжди відрізнити один транзакт від іншого. На відміну від СЧА інших об'єктів, СЧА транзактов не містять посилання ім'я чи номер транзакта. Посилання на СЧА транзакта завжди належить до активної транзакту, тобто. транзакту, обрабатываемому в момент симулятором.

Важливими стандартними числовими атрибутами транзактов є значення це параметрів. Будь-який транзакт може мати необмежена кількість параметрів, містять ті чи інші числові значення. Посилання цей СЧА транзактов завжди належить до активної транзакту і має вигляд Pj чи Р$ ім'я, де j й ім'я — номер й ім'я параметра відповідно. Така посилання можливе тільки у разі, якщо параметр із зазначеним номером чи ім'ям існує, тобто. до нього занесено якесь значення.

Для присвоювання параметрами початкових значень чи зміни цих значений служить блок ASSIGN (присвоювати), має наступний формат:

ім'я ASSIGNA, B, C.

У поле A вказується номер чи ім'я параметра, куди за носиться значення операнда B. Якщо поле A після імені (номери) па раметра стоїть знак + чи -, ті значення операнда B додається чи віднімається з поточного вмісту параметра. У поле З может бути вказано ім'я чи номер функции-модификатора, діючої аналогічно функции-модификатору на полі B блоку GENERATE.

Например, блок.

ASSIGN5,0 записывает в параметр з номером 5 значення 0, а блок.

ASSIGNCOUNT+, 1 добавляет 1 до поточному значенням параметра безпосередньо з ім'ям COUNT.

Для записи поточного модельного часу у поставлене параметр транзакта служить блок MARK (відзначити), має наступний формат:

ім'я MARKA.

В поле A вказується номер чи ім'я параметра транзакта, в до торый заноситься поточне модельне час перед входом цього транзакта у нього MARK. Вміст цього параметра то, можливо пізніше использо вано визначення транзитного часу 0пребывания транзакта у частині моделі з допомогою СЧА під назвою MP.

Наприклад, якби вході ділянки моделі помістити блок.

MARKMARKER.

, то не вдома цієї ділянки СЧА MP$MARKER міститиме різницю між поточним модельним часом і часом, занесеним в параметр MARKER блоком MARK.

Якщо поле A блока MARK порожньо, то час заноситься цього разу місце позначки часу входу транзакта в модель, використовуваної щодо резидентного часу транзакта з допомогою СЧА M1.

Для зміни пріоритету транзакта служить блок PRIORITY (прио ритет), має наступний формат:

имяPRIORITYA, B.

У поле A записується новий пріоритет транзакта. У поле B мо жет утримуватися ключовим словом BU, за наявності якого транзакт, яка у блок, міститься у списку поточних подій після решти транзактов нової пріоритетною групи, і список поточних подій проглядається початку. Використання такої можливості буде розглянуто нижче.

Для видалення транзактов з модели служить блок TERMINATE (за вершити), має наступний формат:

имяTERMINATEA.

Значення поля A вказує, наскільки одиниць зменшується зі держимое з так званого лічильника завершень перед входом транзакта у цей блок TERMINATE. Якщо поле A не визначено, воно вважається рівним 0, і транзакты, які відбуваються через такий блок, здешевлюють хліборобські вмісту лічильника завершень.

Начальное значення лічильника завершений встановлюється управ ляющим оператором START (розпочати), призначеним для запуску про гону моделі. Поле A цього оператора містить початкова значення лічильника завершень (див. разд. 3). Прогін моделі закінчується, коли вміст лічильника завершень звертається до 0. Отже, в моделі може бути хоча б тільки блок TERMINATE з непустым полем A, інакше процес моделювання будь-коли завершиться.

Текущее значення лічильника завершений доступно програмісту чого рез системный СЧА TG1.

Ділянка блок-схемымодели, пов’язані з парою блоків GENERATE-ТERMINATE, називається сегментом. Прості моделі можуть бути вже з сегмента, у непростих моделях може бути кілька сегментів. Наприклад, найпростіший сегмент моделі, який складається лише з двох блоків GENERATE і TERMINATE й наведений на рис. 1, разом із управлящим оператором START моделює процес створення випадкового потоку транзактов, поступащих в модель із середнім інтервалом в 100 одиниць модельного часу, і знищення цих транзактов. Початкова значення лічильника завершень одно 1000. Кожен транзакт, проходить через блок TERMINATE, віднімає з лічильника одиницю, отже моделювання завершиться, коли тисячний за рахунком транзакт ввійде у блок TERMINATE. У цьому точне значення таймера в останній момент завершення прогону непередбачено. Отже, у наведеному прикладі тривалість прогону встановлюється за модельного часу, а, по кількості транзактов, минулих через модель.

GENERATE100,40.

TERMINATE 1.

START1000.

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

GENERATE100,40.

TERMINATE.

GENERATE100000.

TERMINATE 1.

START1.

Наприклад, в моделі з цих двох сегментів, наведеної на рис. 2, перший (основний) сегмент виконує самі функції, що у попередньому прикладі. Зауважимо, проте, що поле A блоку TERMINATE у першому сегменті порожньо, тобто. знищувані транзакты здешевлюють хліборобські вмісту лічильника завершень. У другому сегменті блок GENERATE створить перший транзакт в останній момент модельного часу, рівний 100 000. Але це транзакт залишиться останнім у цьому сегменті, оскільки, зайшовши у блок TERMINATE, він зверне в 0 вміст лічильника завершень, встановлений оператором START рівним 1. Отже, у цій моделі гарантується завершення прогону в момент модельного часу, а точної кількості транзактов, минулих через модель, непередбачено. У наведених прикладах транзакты, що входять до модель через блок GENERATE, той самий момент модельного часу знищувалися в блоке TERMINATE. У моделях систем масового обслуговування заявки обслуговуються приладами (каналами) СМО протягом певного проміжку часу колись, ніж залишити СМО. Для моделювання такого обслуговування, тобто. затримки транзактов визначений відрізок модельного часу, служить блок ADVANCE (затримати), має наступний формат:

имяADVANCEA, B.

Операнды в полях A і B мають хоча б сенс, що у відповідних полях блоку GENERATE. Слід зазначити, що транзакты, входять до блоку ADVANCE, переводяться зі списку поточних подій у список майбутніх подій, а, по закінченні обчисленого часу затримки повертаються у список поточних подій, та його просування по блок-схеме триває. Якщо розрахований час затримки одно 0, то транзакт той самий момент модельного часу перетворюється на наступний блок, залишаючись у списку поточних подій.

Наприклад, у сегменті, наведеному на рис. 3, транзакты, які у модель з блока GENERATE через випадкові інтервали часу, мають рівномірний розподіл на відрізку [60;140], потрапляють у блок ADVANCE. Тут визначається випадкове час затримки транзакта, має рівномірний розподіл на відрізку [30;130], і транзакт перетворюється на список майбутніх подій. Після закінчення часу затримки транзакт повертається у список поточних подій і у блок TERMINATE, де знищується. Зауважимо, що у списку майбутніх подій, отже, і в блоке ADVANCE може водночас перебувати довільне кількість транзактов.

GENERATE100,40.

ADVANCE 80,50.

TERMINATE 1 В розглянутих вище прикладах випадкові інтервали часу підпорядковувалися рівномірному закону розподілу ймовірностей. Для отримання випадкових величин коїться з іншими распределениями в GPSS/PC використовуються обчислювальні об'єкти: перемінні і функції. Як відомо, произвольная випадкова величина пов’язана з випадкової величиной R, має рівномірний розподіл на відрізку [0;1], через свою зворотний функцію розподілу. Для деяких випадкових величин рівняння зв’язку має явне рішення, і значение випадкової величини з заданим розподілом вероятностей то, можливо обчислено через R за такою формулою. Приміром, значення випадкової величины E із показовою (експонентним) розподілом з параметром d обчислюється за такою формулою:

E= -(1/d) * ln® Напомним, що параметр d можна буде величини, зворотної математичного очікуванню E, отже, 1/d — математичне очікування (середнє) випадкової величини E. Для отримання випадкової величини R з рівномірним розподілом на відрізку [0;1] в GPSS/PC є вбудовані генератори випадкових чисел. Для отримання випадкового числа шляхом звернення до такого генератору досить записати системний СЧА RN з номером генератора, наприклад RN1. Щоправда, вбудовані генератори випадкових чисел GPSS/PC дають числа не так на відрізку [0;1], а цілі випадкові числа, рівномірно розподілені від 0 до 999, та їх неважко призвести до зазначеному відтинку розподілом на 1000.

Найпростіше описані обчислення в GPSS/PC виконуються з допомогою арифметичних змінних. Вони може бути цілими і дійсними. Цілі перемінні визначаються до початку моделювання з допомогою оператора визначення VARIABLE (змінна), має наступний формат:

имяVARIABLEвыражение.

Тут ім'я — ім'я перемінної, що використовується для посилань її у, а вираз — арифметичне вираз, що б зміну. Арифметичне вираз є комбінацію операндов, як яких можуть виступати константи, СЧА і функції, знаків арифметичних операцій та круглих скобок. Слід зазначити, що знаком операції множення в GPSS/PC є символ # (номер). Результат кожної проміжної операції у цілих змінних перетвориться до цілого типу шляхом відкидання дробової частини, отже, результатом операції розподілу є ціла частину приватного.

Справжні переменные 0определяются до початку моделювання з допомогою оператора визначення FVARIABLE, має хоча б формат, як і оператор VARIABLE. Відмінність дійсних змінних аж від у тому, що у дійсних змінних все проміжні операції виконуються зі збереженням дробової частини чисел, і тільки оцінку наводиться до цілого типу відкиданням дробової частини. Арифметичні перемінні обох типів мають єдиний СЧА під назвою V, значенням якого є результат обчислення арифметичного висловлювання, визначального зміну. Обчислення висловлювання виробляється перед входом транзакта у нього, у якому посилання СЧА V безпосередньо з ім'ям перемінної. Действительные переменные можна використовувати щоб одержати випадкових інтервалів часу із показовою законом розподілу. нехай у моделі з прикладу на рис. 3 розподілу часу надходження транзактов і часу затримки повинен мати показовий закон. Це може бути зроблене оскільки показано на рис. 4.

TARRFVARIABLE -100#LOG ((1+RN1)/1000).

TSRVFVARIABLE -80#LOG ((1+RN1)/1000).

GENERATE V$TARR.

ADVANCEV$TSRV.

TERMINATE 1.

Рис. 4 Переменная безпосередньо з ім'ям TARR задає вираз для обчислення інтервалу надходження із середнім значенням 100, друга переменная безпосередньо з ім'ям TSRV — для обчислення часу затримки із середнім значенням 80. Блоки GENERATE и ADVANCE перебувають у поле A посилання відповідні перемінні, у своїй поле B немає, позаяк у полі A міститься випадкова величина, не потребує модифікації.

Більшість випадкових величин може бути отримано через випадкову величину R з допомогою арифметичного висловлювання. З іншого боку, такий спосіб є дуже трудомістким, оскільки вимагає звернення до математичним функцій, обчислення яких вимагає і десятків машинних операцій. Іншим можливим способом є використання обчислювальних об'єктів GPSS/PC типу функція. Функції йдуть на обчислення величин, заданих табличными залежностями. Кожна функція визначається до початку моделювання з допомогою оператора визначення FUNCTION (функція), має наступний формат:

имяFUNCTIONA, B Здесь ім'я — ім'я функції, що використовується для посилань її у; A — стандартний числової атрибут, є аргументом функції; B — тип функції і кількість точок таблиці, визначальною функцію.

Существует п’ять типів функцій. Розглянемо спочатку безперервні числові функції, тип яких кодується буквою C. Приміром, у визначенні безупинної числової функції, таблиця якої містить 24 точки, полі B повинен мати значення C24.

З використанням безупинної функції для генерування випадкових чисел її аргументом може бути одне із генераторів випадкових чисел RNj. Так, оператор визначення функції показового розподілу може мати такий вигляд:

EXPFUNCTIONRN1,C24 Особенностью використання вбудованих генераторів випадкових чисел RNj наводили аргументи функцій і те, що й значення цьому є інтерпретуються як дробные числа від 0 до 0,999 999.

Таблиця з координатами точок функції розташований у рядках, наступних безпосередньо за оператором FUNCTION. Ці рядки нічого не винні мати поля нумерації. Кожна точка таблиці задається парою Xi (значення аргументу) і Yi (значення функції), відокремлюваних друг від друга коми. Пари координат відокремлюються друг від друга символом «/ «і розташовуються на довільному кількості рядків. Послідовність значень аргументу Xi мусить бути суворо зростаючій.

Як зазначалося, під час використання функції в поле B блоків GENERATE і ADVANCE обчислення інтервалу надходження або часі затримки виробляється шляхом множення операнда A на розрахований значення функції. Звідси випливає, що функція, використовувана для генерування випадкових чисел із показовою розподілом, повинна описувати зависимость y=-ln (x), подану в табличном вигляді. Оператор FUNCTION з такою таблицею, що містить 24 точки задля забезпечення достатньої точності апроксимації, має такий вигляд:

EXPFUNCTIONRN1,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.85/.88,2.12/.9,2.3.

.92,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.

Обчислення безупинної функції виробляється так. Спочатку визначається інтервал (Xi;Xi+1), де міститься поточне значення СЧА-аргумента (у нашій прикладі - сгенерированное значення RN1). Потім у цьому інтервалі виконується лінійна інтерполяція з допомогою відповідних значень Yi і Yi+1. Результат інтерполяції усікається (відкиданням дробової частини) і використовують у ролі значення функції. Якщо функція служить операндом B блоків GENERATE чи ADVANCE, то усічення результату роблять лише саме його множення на значення операнда A.

Використання функцій щоб одержати випадкових чисел з заданим розподілом дає хоча й такий точний результат з допомогою похибок аппроксимации, проте з меншими обчислювальними витратами (кілька машинних операцій виконання лінійної інтерполяції). Щоб до похибки апроксимації не додавати надто велику похибка усечения, середнє під час використання показових розподілів має вистачити великим (щонайменше 50). Ця рекомендація стосується й використанню змінних.

Функції всіх типів мають єдиний СЧА під назвою FN, значенням якого є розрахований значення функції. Обчислення функції виробляється перед входом транзакта у нього, у якому посилання СЧА FN безпосередньо з ім'ям функції.

Замінимо в прикладі на рис. 4 перемінні TARR і TSRV на функцію EXP (рис. 5).

Бо у обох моделях використовується і той ж генератор RN1, інтервали надходження, і затримки, вычисляемые в блоках GENERATE і ADVANCE, повинні бути отримані близькими, і може це бути й ідентичними. При велику кількість транзактов, пропускаемых через модель (десятки і сотні тисяч), різниця у швидкості обчислень має стати помітної.

EXPFUNCTIONRN1,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.85/.88,2.12/.9,2.3.

.92,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.

GENERATE100,FN$EXP.

ADVANCE 80, FN$EXP.

TERMINATE 1.

Рис. 5.

Особливістю безперервних функцій і те, що беруть «безперервні «(але целочисленные) значення діапазоні від Y1 до Yn, де n — кількість точок таблиці. На відміну від нього дискретні числові функції, тип яких кодується буквою D в операнде B оператора визначення функції, приймають аж окремі (дискретні) значення, задані координатами Yi в рядках, наступних за оператором визначення FUNCTION. При обчисленні дискретної функції поточне значення СЧА-аргумента, вказаної у полі A оператора FUNCTION, порівнюється за умовою.

Показати весь текст
Заповнити форму поточною роботою