Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ms

.pdf
Скачиваний:
310
Добавлен:
05.02.2016
Размер:
3.12 Mб
Скачать

Сьомий етап охоплює роки з 1995 по 1998роки. В цей час розроблюються засоби технологічної підтримки процесів розподіленого імітаційного моделювання на мультипроцесорних обчислювальних системах і в комп’ютерних мережах.

Інший погляд на етапи розвитку засобів моделювання представив Б. Шмідт (B. Schmidt). Він визначає п’ять поколінь програмних засобів моделювання:

І етап (50-ті роки ХХ століття)– програмування моделей мовами високого рівня без спеціальної підтримки завдань моделювання (мови

FORTRAN і ALGOL);

ІІ етап (60-ті роки ХХ століття) – спеціалізована підтримка моделювання у вигляді виразів мови, генераторів випадкових чисел, засобів по-

дання результатів (мови GPSS, SIMSCRIPT, SIMULA);

ІІІ етап (70-ті роки ХХ століття) – розвиток можливостей проведення неперевно-дискретного моделювання (мова ASCL);

ІV етап (80-ті роки ХХ століття)– орієнтація на конкретні галузі, розвиток можливостей анімації (мови SIMFACTORY, XCELL);

V етап (90-роки ХХ століття) – розробка графічного інтерфейсу, інтегрованих середовищ, призначених для створення і редагування моделей, планування і проведення експериментів, керування моделюванням та аналізу результатів моделювання (мови SIMPLEX II, SIMPLE++).

В Україні відомими розробками в галузі технологій імітаційного моделювання є наступні розробки [Томашевський, 2005].

Мова моделювання СЛЭНГ, автором якої є Л.А.Калениченко, створювалась в Інституті Кібернетики Академії наук України протягом 1966-1968 років. Мова СЛЭНГ використовувалась під час розробки компонентів обчислювальних машин і систем, призначених для виконання завдань планування виробництва, для оцінювання показників надійності складних систем.

Система АЛСИМ-БЭСМ, що була створена у 1973 році в Інституті кібернетики під керівництвом д.т.н. В.В.Литвинова. Система призначалась для моделювання обчислювальних систем і мереж і використовувалась під час виконання завдань радіолокації, протиповітряної оброни, аналізу і розподілу ресурсів.

Система НЕДИС, автором якої є В.В.Гусев, створювалась в Інституті кібернетики у 1973-1975 роки. Використовувалась система для проектування обчислювальних машин і систем, передачі даних, моделювання надзвичайних ситуацій у вугільних шахтах і процесів на залізничному транспорті, проектуванні засобів і систем космічної техніки, оптимізації технологічних процесів у суднобудуванні.

Комплекс АЛСИМ-2, що створювався під керівництвом В.В.Литвинова у 1979-1980 роках. Комплекс АЛСИМ-2 широко використовувався для дослідження процесів функціонування військово-морських баз Тихоокеанського узбережжя та під час розробки проекту їх автоматизації.

261

Система імітаційного моделювання ІСІМ, яка розроблена у 1994 році в „Національному технічному університеті „КПІ”. Основне призначення системи ІСІМ, що має генератор імітаційних GPSS програм, – моделювання дискретних систем, які можна представити засобами мереж масового обслуговування.

Системи НЕДИС-90, що створювалась протягом 1991-1993 років. Система призначалась для проектування в реальному часі проблемноорієнтованих мов. На основі НЕДИС розроблені проблемно-орієнтовані пакети моделювання СИМПО, САУККС, ПАРК, МЕРЕЖА, КОМПЛЕКС.

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

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

Більшість колективів, що займаються моделюванням систем, розробляють пакети програм, пристосовані для потреб конкретного колективу і для задач, що розв’язуються цим колективом. На кафедрі комп’ютерних технологій Черкаського державного технологічного університету розроблені система імітаційного моделювання PTRSIM, що є універсальною системою моделювання систем засобами мереж Петрі, і система моделювання транспортного руху через перехрестя міста CroossRoads, що є пробле- мно-орієнтованою системою.

8.1. Мова імітаційного моделювання GPSS

GPSS (General Purpose Simulation System) – система моделювання складних об’єктів загального призначення, що розроблена Джеффрі Гордоном приблизно у 1960 році. Спочатку розроблювалась і підтримувалась компанією IBM. Наразі існують версії різних розробників, сама сучасна з яких - GPSS World – версія GPSS для персональних ЕОМ та ОС Windows, що розроблена компанією Minuteman Software.

262

Версія GPSS World для ОС Windows має розширені можливості, такі як середовище користувача з інтегрованими функціями роботи в Інтернет.

GPSS World являється об’єктно-орієнтованою мовою. Можливості візуального представлення інформації мови GPSS World дозволяють спостерігати та фіксувати внутрішні механізми функціонування моделей. Інтерактивність мови GPSS World дозволяє одночасно досліджувати та управляти процесами моделювання. Вбудовані засоби аналізу даних дозволяють легко розрахувати довірчі інтервали і провести дисперсійний аналіз. Також є можливість автоматично створювати та виконувати складні оптимізуючи експерименти.

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

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

GPSS World має набір PLUS-процедур динамічного виклику, що дозволяють викликати функції із зовнішніх виконуваних файлів. Це забезпечує оперативний зв’язок з анімаційними пакетами інших розробників. PLUS – це невелика, але ефективна процедурна мова програмування, створена з 12 типів операторів. ЇЇ ефективність забезпечується великою бібліотекою процедур, яка містить математичні функції та функціїманіпуляції зі строками, а також великий набір імовірнісних розподілів.

Модель у GPSS World визначається як послідовність операторів. Це оператори GPSS, оператори PLUS-процедур або оператори PLUSекспериментів. За виключенням списків даних функції, всі оператори GPSS повинні складатися з одного текстового рядка довжиною до 250 символів. Довільний оператор GPSS може входити в модель і зберігатися у файлі моделі або може бути переданий процесу моделювання в інтерактивному режимі.

Мова GPSS являється мовою загального призначення для моделювання мереж масового обслуговування, що набула широкого розповсюдження завдяки книзі [Шрайбер], в якій розглядається велика кількість прикладів моделювання систем різного призначення мовою GPSS.

Вимоги, що надходять на обслуговування у мережу масового обслуговування, в мові GPSS називаються транзактами. Так, в моделі виробничої лінії транзакти – це деталі, що надійшли на обробку. Процес обслуго-

263

вування, що проходить транзакт, описується за допомогою операторів мови GPSS з моменту надходження транзакту в мережу до моменту його зникнення з мережі. Таким чином, оператори мови GPSS описують логіку проходження транзакту пристрої та черги мережі масового обслуговування. Формалізація процесів функціонування систем засобами мереж масового обслуговування розглядалась у розділі 3.1, 3.2 даного навчального підручника.

Основні правила мови GPSS

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

Кожний транзакт, присутній в моделі, може мати до 12 параметрів. Існують оператори, за допомогою яких можна змінювати значення довільних параметрів транзактів, та оператори, виконання яких залежить від значення того чи іншого параметра обслуговуваного транзакта.

Транзакт переміщується від одного пристрою до іншого у чіткій відповідності до послідовності операторів в GPSS-програмі. Для передачі транзакта до іншого, крім наступного, оператора існують спеціальні оператори передачі управління. Моделювання здійснюється мовою GPSS на основі подійного підходу з просуванням часу до найближчої події. Правильна послідовність подій у часі забезпечується інтерпретатором GPSSPC.

Структура операторів GPSS

В записі оператора виділяють три частини: мітка, назва, поле змінних.

Приклад оператора:

 

ААА

ADVANCE 20, 5

затримка транзакта на час 20±5

<мітка>

<назва> <поле змінних> <коментарі>

В полі змінних виділяють підполя, що розділяються комами. Підполя слугують для вказування стандартних числових атрибутів (СЧА), символів, що позначають мітки, ідентифікаторів, вказівників різновидів операторів и т.і. Підполя можуть бути пустими. Після останнього непустого поля через пропуск може бути розміщений коментар.

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

Приклади СЧА: V2 – змінна V2; Q4 – довжина черги з номером 4; X5 – величина з номером 5, що зберігається; FN7 – функція з номером 7; P4 – значення параметра з номером 4; *6 – те, що міститься, у параметрі з номером 6; S*3 (або FN*3) – пам’ять (або функція), визначена в параметрі з номером 3.

264

Основні оператори мови GPSS

Основні оператори мови GPSS приведені у вигляді прикладів з конкретними значеннями підполей у полі змінних.

GENERATE 15,6,120,50,1 – генерація транзактів, інтервали часу між надходженнями транзактів розподілені рівномірно в діапазоні (15-6, 15+6), перший транзакт з’явиться із затримкою в 120 одиниць модельного часу, всього буде створено 50 транзактів, пріоритет транзактів рівний одиниці.

GENERATE

15,6,120,,1 – те ж, але кількість генерованих транза-

ктів необмежена.

 

GENERATE

6, FN$FFF,120,50,1 – те ж, але інтервал часу між по-

явами транзактів є ціла частина добутку числа 6 та значення функції FFF.

FTIM FUNCTION RN1,C4 0,0/0.1,0.8/0.5,1.6/1.0,1.9

-опис функції FTIM, її аргументом являється випадкова величина (на це указує значення RN1), рівномірно розподілена в діапазоні (0,1), функція являється неперервною числовою (вказівник С), заданою чотирма точками: (0;0), (0.1; 0.8), (0.5, 1.6), (1.0; 1.9).

FTIM FUNCTION *2,D4 0,12/1,9/2,8/3,6

-те ж, але аргументом являється значення другого параметру транзакта, для якого розраховується значення дискретної величини (D) числової функції FTIM, заданої чотирма вузловими точками. Це поточне значення округляється до найближчого значення аргументу у вузловій точці.

QUEUE QAA – оператор реєстрації черги, довжина черги QAA збільшується на одиницю.

QUEUE QAA,2 – те ж , але довжина черги QAA збільшується на 2 одиниці.

DEPART QAA – оператор реєстрації черги, довжина черги QAA зменшується на одиницю.

DEPART QAA,4 – те ж, але довжина черги QAA зменшується на 4 одиниці.

SEIZE

DEV – зайняття пристрою DEV транзактом; якщо при-

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

ADVANCE A,B – затримка транзакта на час, визначений вмістом

полів A та B, зміст величин, які записані в цих підполях, такий же, як і в

блоці GENERATE.

RELEASE DEV – звільнення пристрою DEV транзактом.

ENTER

MEM,12 – зайняття транзактом 12 одиниць ємності в на-

копичувачі MEM.

LEAVE

MEM,*2 – звільнення k одиниць пам’яті в накопичувачі

MEM, де k - значення 2-го параметра транзакта.

265

WORK STORAGE 40 – опис блоку пристроїв WORK ємністю 40 одиниць.

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

PRIORITY 3 – транзакту присвоюється пріоритет 3.

SPLIT 3,LLL,6 – копіювання транзактів, в даному випадку створюються три копії вихідного транзакта, вихідний транзакт направляється до наступного по порядку блоку, а створені копії - до блоку з міткою LLL, номери копій транзактів записуються у параметр 6.

ASSEMBLE – знищує транзакти копії та залишає тільки тран-

закт оригінал.

 

 

ASSIGN

2,APP – змінювання параметрів транзактів, в даному ви-

падку другий параметр транзакта отримає значення APP.

ASSIGN

3+,V4 – змінювання значення третього параметра тран-

закту - до нього додається значення V4.

TRANSFER

,MIT – безумовна передача управління оператору з

міткою (номером) MIT.

TRANSFER

BOTH,LAB1,ONE – перехід до оператора з міткою

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

TRANSFER

.4,AAA,END – транзакт з ймовірністю 0,4 переходить

до оператору з міткою END та з ймовірністю 0,6 до оператору з міткою

AAA.

 

TRANSFER

PICK,FIN7,FIN21 – перехід із рівною ймовірністю

до операторів з номерами FIN7, FIN 7+1, FIN 7+2, . . . , FIN 21.

TRANSFER

FN,AAA,2 – перехід до оператору, мітка якого рівна

сумі значень функції AAA і числа 2.

TRANSFER

P,4,41 – перехід до оператору, мітка якого рівна сумі

значень параметра з номером 4 транзакта і числа 41.

TRANSFER

SBR,PRC,7 – перехід до оператора PRC із записом в

параметр з номером 7 транзакта мітки даного оператора.

LOOP

6,MIT – організація циклу – кожний раз при вході в

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

TEST E V7,K256,END – перехід за умовою (умовна передача управління): в позиціях 13-18 записується знак відношення, в перших двох підполях поля змінних записуються величини, що порівнюються. Якщо умо-

266

ва виконується, то перехід не виконується, інакше – перехід здійснюється до оператору з міткою LAB. Символи відношень: G - більше, L - менше, E - дорівнює, NE – не дорівнює, LE - менше або дорівнює, GE - більше або дорівнює. В даному прикладі перехід не виконується, якщо V7 = 256, інакше перехід виконується до оператору з номером END.

START 100,,25 – занесення значення 100 в ітоговий лічильник, вивід накоплених статистичних даних виконується з інтервалом змінювання вмісту ітогового лічильника в 25 одиниць.

TABULATE MAT7 – у відповідний інтервал гістограми з іменем MAT7 добавляється одиниця.

MAT7 TABLE P3,8,1,5 – опис таблиці (гістограми) MAT7, призначеної для табулювання величини, значення якої знаходяться у третьому параметрі транзакта, який входить до оператора TABULATE MAT7, верхня границя лівого інтервалу гістограми рівна 8, ширина кожного наступного інтервалу рівна 1, всього інтервалів 5.

5 VARIABLE X2 - K25 – розрахунковий оператор, в даному випадку з величини за номером 2, що зберігається, віднімається число 25 і результат присвоюється змінній за номером 5.

SAVEVALUE 5+,*3 – величина за номером 5, що зберігається, збільшується на значення третього параметра транзакта.

Більшість інформації, що обробляється інтерепретатором мови GPSS, недоступна користувачу, проте до деякої інформації доступ забезпечений за допомогою стандартних числових атрибутів. Стандартні числові атрибути поділяють на системні та атрибути транзактів. До системних атрибутів відносяться такі величини як поточний модельний час, поточна довжина черги і т.і. До атрибутів транзактів відносяться, наприклад, величини пріоритету транзакту, загальний час його обробки та інші. Звернення до атрибуту має вигляд «ім’я атрибуту_номер атрибуту» або «ім’я атрибуту_$_ім’я пристрою», де під ім’ям пристрою мається на увазі ім’я черги або пристрою, або блоку пристроїв. Наведемо найважливіші стандартні числові атрибути. Позначення «*» означає номер або ім’я пристрою, до якого відноситься значення атрибуту.

С1 – поточне значення відносного модельного часу, М1 –час перебування в моделі транзакта, що в даний момент оброб-

ляється інтерпретатором GPSS,

TG1 – поточне значення лічильника завершення,

PR – пріоритет транзакта, що в даний момент обробляється інтерпретатором GPSS,

F* – ідентифікатор зайнятості пристрою в даний момент модельного

часу,

FC* – кількість зайнять пристрою,

FR* – коефіцієнт завантаження пристрою, виражений в частках тисячі,

267

FT* – ціла частина значення середнього час у затримки транзакту у пристрої,

R* – місткість незаповненої частини блоку пристроїв,

S* – місткість заповненої частини блоку пристроїв,

SC* – лічильник кількості входів до блоку пристроїв,

SM* – максимальна спостережувана зайнята місткість блоку пристроїв,

SR* – коефіцієнт завантаження блоку пристроїв, виражений в частках тисячі,

ST* – ціла частина середнього часу перебування транзакта в блоці пристроїв,

Q* – поточне значення довжини черги, QC* – кількість входів до черги,

QM* – максимальне спостережуване значення довжини черги, QT* – ціла частина середнього перебування в черзі транзактів.

Більш детальну інформацію щодо моделювання систем мовою GPSS можна отримати в [Томашевський, 2001].

8.2. Система імітаційного моделювання PTRSIM

Система імітаційного моделювання PTRSIM створена на кафедрі комп’ютерних технологій Черкаського державного технологічного університету у 2006 році [Стеценко, Бойко 2006]. Основною ідеєю системи є автоматизація імітаційного моделювання систем, представлених мережами Петрі. Мережі Петрі являються універсальним засобом формалізації дис- кретно-подійних процесів. Насамперед важливо, що мережами Петрі можуть бути представлені процеси управління, які іншими системами імітації (GPSS, Arena) не представляються.

Технологія імітаційного моделювання PTRSIM складається з таких етапів:

1)побудова формалізованої моделі засобами мереж Петрі;

2)введення моделі в імітаційну систему PTRSIM;

3)перевірка моделі на відповідність задуму моделювання;

4)виконання імітації при заданих значеннях параметрів;

5)виведення результатів імітації;

6)формулювання висновків і пропозицій.

Етапи 2-5 виконуються у тісній взаємодії розробника моделі з імітаційною системою PTRSIM

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

268

представленні мережі Петрі подіям відповідають переходи, умовам – позиції. Корисно позначати позиції та переходи не літерами, а іменами «пристрій», «датчик», «надходження даних», «виконання завдання» і ті., які підказують зв’язок того чи іншого фрагменту мережі Петрі з реальною системою.

Вімітаційній системі PTRSIM реалізуються мережі Петрі:

1)з часовими затримками, які можуть бути задані детермінованим або випадковим числом;

2)з інформаційними зв’язками;

3)з розгалуженнями маршрутів;

4)зі зв’язками, кількість яких визначена цілим числом:

5)зі зв’язками, кількість яких залежить від поточного маркірування мережі Петрі.

Відмітимо декілька моментів, важливих для коректного представлення моделей в системі PTRSIM.

1. Запуск переходів здійснюється у два етапи. Спочатку за умови виконання умови запуску переходу маркери із усіх вхідних позицій переходу віднімаються і запам’ятовується момент виходу маркерів як поточний час моделювання плюс час затримки переходу. У момент виходу маркерів здійснюється додавання маркерів в усі вихідні позиції переходу. Фрагмент мережі Петрі, що представляє процес обслуговування об’єктів двома пристроями, має вигляд як на рисунку 8.1. Перехід «обслуговування» захоплює маркер з черги об’єктів за наявності маркеру в позиції «вільні пристрої». Максимальна кількість маркерів, що обслуговуються, дорівнює двом. Зауважимо, що такий підхід дозволяє моделювати обслуговування об’єктів паралельно багатьма пристроями лише одним переходом мережі Петрі.

Вільні пристрої

2

Черга об’єктів 9 Обслуговані об’єкти

Обслуговування

Рисунок 8.1 Фрагмент мережі Петрі, що моделює обслуговування об’єктів двома пристроями

2. Наявність інформаційних зв’язків дозволяє моделювати події, які виконуються за умови наявності дозволу. Наприклад, переїзд перехрестя автомобілі здійснюють при наявності зеленого світла (рисунок 8.2). Інформаційний зв’язок означає, що наявність маркерів у вхідній позиції є обов’язковою для виконання умови запуску переходу, але при запуску переходу маркери з такої вхідної позиції не віднімаються.

269

Дозвіл

1

 

 

Обслуговування

Черга об’єктів

1

Обслуговані

 

 

об’єкти

 

 

1

Вільний пристрій

Рисунок 8.2. Фрагмент мережі Петрі, що моделює обслуговування об’єктів при наявності дозволу

3. Розгалуження маршрутів маркерів здійснюється указуванням таких параметрів переходів як пріоритет та вага. Якщо перехід 1 має пріоритет більший ніж перехід 2, то першим запускається перехід 1. Наприклад, фрагмент мережі Петрі, що реалізує обслуговування об’єктів двома пристроями – основним та резервним, має вигляд, представлений на рисунку 8.3. Подія „пріоритет 2” моделює обслуговування основним пристроєм, а подія „пріоритет 1” – обслуговування резервним пристроєм.

 

Випадок 1

 

 

 

 

 

 

 

Об’єкти, які

 

 

 

 

 

слідують за

1

 

 

 

 

маршрутом 1

 

 

 

 

 

Черга

 

 

 

Об’єкти, які

 

 

 

 

 

 

слідують за

 

Випадок 2

маршрутом 2

 

 

Рисунок 8.3. Фрагмент мережі Петрі, що моделює обслуговування об’єктів двома пристроями, один з яких основний, а другий - резервний

Якщо перехід 1 має вагу а, а перехід 2 має вагу b, то перехід 1 запус-

a b

кається з ймовірністю a + b , а перехід 2 – з ймовірністю a + b . На рисунку

8.4 представлений фрагмент мережі Петрі, в якому переходи „випадок 1” та „випадок 2” запускаються випадково з ймовірностями, що розраховуються за заданими у параметрах переходів вагами. Наприклад, якщо для події „випадок 1” указана вага, що дорівнює 9, а для переходу „випадок 2” указана вага, що дорівнює 1, то перехід „випадок 1” матиме ймовірність запуску 0,9, а перехід „випадок 2” – ймовірність 0,1.

270

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]