Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

Моделювання на GPSS

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

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

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

смотреть на реферати схожі на «Моделювання на GPSS «.

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

ЗАПРОВАДЖЕННЯ … 1.

1. СПІЛЬНІ ДАНІ Про GPSS/PC … 2.

2. ОСНОВНІ БЛОКИ GPSS/PC І ПОВ’ЯЗАНІ З НИМИ ОБ'ЄКТИ … 6.

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

2.2. Блоки, пов’язані з апаратними об'єктами … 13.

2.3. Блоки для збору статистичних даних … 15.

2.4. Блоки, які змінюють маршрути транзактов … 18.

2.5. Блоки, хто з пам’яттю … 21.

2.6. Блоки до роботи зі списками користувача … 23.

3. УПРАВЛЯЮШИЕ ОПЕРАТОРИ GPSS/PC … 25.

4. ДЕЯКІ ПРИЙОМИ КОНСТРУЮВАННЯ GPSS-МОДЕЛЕЙ … 42.

4.1. Непряма адресація … 42.

4.2. Обробка одночасних подій … 44.

5. КОМАНДИ GPSS/PC І ТЕХНОЛОГІЯ РОБОТИ З ПАКЕТОМ … 47.

5.1. Завантаження інтегрованої середовища … 47.

5.2. Введення нової моделі … 47.

5.3. Редагування тексту моделі … 48.

5.4. Запис і зчитування моделі з диска … 49.

5.5. Прогін моделі та нагляд за моделюванням … 49.

5.6. Набуття та інтерпретація стандартного звіту … 53.

СПИСОК ЛІТЕРАТУРИ … 58.

Процеси функціонування різних систем та мереж зв’язку можуть бути тій чи іншій сукупністю систем масового обслуговування (СМО) — стохастичних, динамічних, дискретно-непрерывных математичних моделей. Дослідження характеристик таких моделей можна проводити або аналітичними методами, або шляхом імітаційного моделювання [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 (генерувати), має наступний формат:

ім'я GENERATE A, B, C, D, E.

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

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

Наприклад, блок.

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

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

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

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

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

Транзакты випливає низка стандартних числових атрибутів. Например,.

СЧА під назвою PR дозволяє посилатися на пріоритет транзакта. СЧА під назвою M1 містить зване резидентное час транзакта,.

тобто. час, що минув від моменту входу транзакта в модель через блок.

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

транзактов не містять посилання ім'я чи номер транзакта. Посилання на СЧА транзакта завжди належить до активної транзакту, тобто. транзакту, обрабатываемому в момент симулятором.

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

занесено якесь значение.

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

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

Наприклад, блок.

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

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

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

ім'я MARK A.

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

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

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

MARKER блоком MARK.

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

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

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

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

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

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

A, інакше процес моделювання будь-коли завершится.

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

Ділянка блок-схемы моделі, пов’язані з парою блоков.

GENERATE-ТERMINATE, називається сегментом. Прості моделі можуть бути вже з сегмента, у непростих моделях може бути кілька сегментов.

Наприклад, найпростіший сегмент моделі, який складається лише з двох блоків GENERATE і TERMINATE й наведений на рис. 1, разом із управлящим оператором START моделює процес створення випадкового потоку транзактов, поступащих в модель із середнім інтервалом в.

100 одиниць модельного часу, і знищення цих транзактов. Начальное значення лічильника завершень одно 1000. Кожен транзакт, проходить через блок TERMINATE, віднімає з лічильника одиницю, отже моделювання завершиться, коли тисячний за рахунком транзакт ввійде у блок TERMINATE. У цьому точне значення таймера в останній момент завершення прогону непередбачено. Отже, в приведенном прикладі тривалість прогону встановлюється за моділовому часу, а, по кількості транзактов, минулих через модель.

GENERATE 100,40.

TERMINATE 1.

START 1000.

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

GENERATE 100,40.

TERMINATE.

GENERATE 100 000.

TERMINATE 1.

START 1.

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

У наведених прикладах транзакты, що входять до модель через блок.

GENERATE, той самий момент модельного часу знищувалися в блоке.

TERMINATE. У моделях систем масового обслуговування заявки обслуживаются приладами (каналами) СМО протягом певного проміжку часу колись, ніж залишити СМО. Для моделювання такого обслуживания, тобто. затримки транзактов визначений відрізок модельного часу, служить блок ADVANCE (затримати), має наступний формат: ім'я ADVANCE A, B.

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

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

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

GENERATE 100,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.

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

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

GENERATE V$TARR.

ADVANCE V$TSRV.

TERMINATE 1.

Рис. 4.

Змінна безпосередньо з ім'ям TARR задає вираз для обчислення інтервала надходження із середнім значенням 100, друга змінна безпосередньо з ім'ям TSRV — для обчислення часу затримки із середнім значением.

80. Блоки GENERATE і ADVANCE перебувають у полі A посилання соответствующие перемінні, у своїй полі B немає, позаяк у полі A міститься випадкова величина, не потребує модификации.

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

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

Функції йдуть на обчислення величин, заданих табличными залежностями. Кожна функція визначається до початку моділирования з допомогою оператора визначення FUNCTION (функція), мающего наступний формат: ім'я FUNCTION A, B.

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

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

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

EXP FUNCTION RN1, C24.

Особливістю використання вбудованих генераторів випадкових чисел.

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

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

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

Як зазначалося, під час використання функції на полі B блоков.

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

Оператор FUNCTION з такою таблицею, що містить 24 точки для обеспечения достатньої точності апроксимації, має наступний вид:

EXP 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.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, повинні бути отримані близькими, і може б бути набагато ідентичними. При велику кількість транзактов, пропускаемых чогорез модель (десятки і сотні тисяч), різниця у швидкості обчислень має стати заметной.

EXP 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.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.

GENERATE 100, FN$EXP.

ADVANCE 80, FN$EXP.

TERMINATE 1.

Рис. 5.

Особливістю безперервних функцій і те, що вони принимают «безперервні «(але целочисленные) значення діапазоні от.

Y1 до Yn, де n — кількість точок таблиці. На відміну від нього дискретные числові функції, тип яких кодується буквою D в операнде.

B оператора визначення функції, приймають аж отдельные.

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

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