Повна версія

Головна arrow Інформатика arrow ІМІТАЦІЙНЕ МОДЕЛЮВАННЯ СИСТЕМ В СЕРЕДОВИЩІ EXTENDSIM

  • Увеличить шрифт
  • Уменьшить шрифт


<<   ЗМІСТ   >>

ІНСТРУМЕНТИ І СПОСОБИ ГЕНЕРАЦІЇ ПОТОКІВ НАДХОДЖЕННЯ І ОБСЛУГОВУВАННЯ ЗАЯВОК

При імітаційному моделюванні необхідний облік випадкових факторів і впливів на систему, які представляються випадковими послідовностями чисел. Математично випадкові послідовності описуються у вигляді випадкових подій, значень дискретних і безперервних випадкових величин, значень випадкових векторів і процесів [2,3,6,7-9]. Для опису випадкових послідовностей використовується апарат теорії ймовірностей і мате- м ати Ческо й статист і до і.

Програмна імітація випадкової послідовності будь-якого типу заснована на генерації базової послідовності випадкових чисел (СЧ)

{Xj} = представляють собою вибірку з рівномірно розподіленим на інтервалі [0,1] генеральної сукупності значень величини?,.

При розробці дискретно-подієвих моделей один з ключових моментів полягає в математичному описі випадкових послідовностей (потоків) надходження і обслуговування заявок. Наприклад, потік завдань на обробку в обчислювальній системі; потік викликів на телефонній станції; потік відмов (збоїв) комп'ютера в ході його роботи і т.д. Математично потік являє собою в загальному випадку просто послідовність випадкових точок 0j, 02, ..., 0 П , ... на осі часу 0t з розділяють їх випадковими інтервалами т ь т 2 , Т ", ..., Так ЩО Tj = 02- 0i, т 2 = 0.г-02, ..., т "= 0n + i-0n, ...

Для математичного завдання потоку необхідно описати закон розподілу інтервалів між надходженням заявок та їх обслуговуванням.

У середовищі реалізовані різні способи завдання потоків за допомогою блоків Create і Activity.

У блоці Create може бути описано надходження заявок:

  • - через випадковий інтервал на основі завдання його закону розподілу (опція Create items randomly в діалоговому вікні настройки блоку), за все реалізовано 37 базових законів розподілу;
  • - через інтервал, визначений за допомогою розкладу (опція Create items by schedule );
  • - «плавно», заявки надходять на вимогу (опція Create items infinitely ); в цьому випадку блок Create зв'язується з блоком Gate який відкриває або закриває потік заявок.

У блоці Activity, що описує тривалість обробки заявок, доступні наступні опції завдання інтервалу обслуговування:

  • - випадковий інтервал на основі завдання його закону розподілу (опція specified by a distribution );
  • - постійний інтервал (опція constant );
  • - інтервал задається (надходить) через вхідний коннектор D (опція from the «О» connector );
  • - інтервал здасться з таблиці (опція from a lookup table) ',

інтервал визначається атрибутом (параметром) заявки (опція an items attribute values).

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

Приклад 3. У систему надходить потік заявок за експоненціальним законом розподілу. Інтенсивність надходження заявок залежить від часу доби: з Про до 6 годин заявки надходять в середньому через 8 хв; з 6 до 12 годин - через 6 хв; з 12 до 18 годин - через 7 хв; з 18 до 24 годин - через 6 хв. Заявки обробляються одним з двох однакових пристроїв. Час обробки залежить від типу заявки: 20% заявок обробляються за 0,1 години, 80% заявок обробляються за 0.12 години. Необхідно промоделювати роботу системи протягом 1000 днів.

Кінчений вид моделі наведено на рис. 20. Модель включає наступні блоки з бібліотеки Item.Іх: Create, Exit, Queue, Executive, Activity, Set Attributes ', з бібліотеки Value.Іх блоки: Lookup table і Random Number ; з бібліотеки Plotter.Іх блок Plotter Discrete Event. Зупинимося детальніше на налаштуваннях кожного з блоків.

Модель системи (приклад 3)

Мал. 20. Модель системи (приклад 3)

Час моделювання {End time = 1000) і глобальні одиниці часу (Global time units = hours) задаються в діалоговому вікні Simulation Setup (пункт меню Run -> Simulation Setup). У діалоговому вікні блоку Executive, вкладка Control встановлюється закінчення часу моделювання за часом: Stop simulation: at end time.

Вхідний потік заявок і його параметри описуються блоками Create і Lookup table. У блоці Lookup table задається зміна інтенсивності вхідного потоку заявок з плином часу. У вкладці Table діалогового вікна блоку встановлюються опції: Lookup the: time; Output is: stepped; Time units: hours (глобальні одиниці часу - годинник). Зміна середнього інтервалу між надходженням заявок протягом часу описується таблицею (див. Рис. 21).

Завдання параметрів блоку Lookup table

Мал. 21. Завдання параметрів блоку Lookup table

У першому стовпці задається момент часу в годинах, в який змінюється інтенсивність вхідного потоку, у другому стовпці - середній інтервал між заявками в мінах. Одиниці виміру часу в першому стовпці визначаються заданими глобальними одиницями часу, а в другому - визначаються настройками блоку, пов'язаного з Lookup table , в цьому випадку блоком Create. Дані таблиці повторюються кожні 24 години, режим: Repeat table every 24 hours.

У блоці Create встановлюються настройки: Create items randomly , Disribution exponential з параметрами mean = 1, location = 0 і Time unit: minutes. В поле mean можна задати будь-яке значення, так як це значення буде переопределно в процесі моделювання відповідно до таблиці блоку Lookup table.

Далі заявка направляється в блок Set Attributes , де визначається її тип. В налаштуваннях блоку в поле Property Name вибирається зі списку New Value Attributes і вводь гея ім'я а грібута {type). У блоці Random Number , пов'язаному з блоком Set Attributes , задається емпірична таблиця ймовірностей, яка визначає час обробки заявки в залежності від її типу (див. Рис. 22).

Налаштування блоку Random Number

Мал. 22. Налаштування блоку Random Number

У блоці Queue використовуються настройки але замовчуванням.

У блоці Activity, що описує процес обробки, встановлюються настройки: Maximum items in activity = 2 (число пристроїв). Delay is: an item's attribute value (час обробки визначається типом заявки). Attribute: type (ім'я атрибута заявки); Delay D: 0,1 hours (проміжок часу обробки).

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

У ExtendSim реалізована можливість винести настройки моделі, вхідні змінні, параметри і результати моделювання в область модельного вікна.

Для моделі прикладу 3 (див. Рис. 20) в модель винесені вхідні настройки моделі: mean; Delay is: an item's attribute value; Attribute: type і результати моделювання: Length (середня довжина черги), Utilization (коефіцієнт завантаження пристрою).

Для копіювання елементів в область вікна моделі в діалоговому вікні блоку треба натиснути правою кнопкою миші на будь-якому елементі вікна і в випадаючому списку вибрати Clone tool. В результаті всі елементи діалогового вікна виділяються і їх можна перетягнути в область моделі за допомогою миші.

Після запуску моделі на виконання відображається графік зміни середньої довжини черги в часі (рис. 23) і виводяться у відповідних полях в моделі (див. Рис. 20) середня довжина черги (Length = 0.24) і коефіцієнт завантаження пристрою (Utilization = 0,55 ).

Графік зміни довжини черги (приклад 3)

Мал. 23. Графік зміни довжини черги (приклад 3)

В цілому, досліджувана система справляється з потоком заявок, завантажена приблизно на 50%, час очікування заявок в черзі в порівнянні з інтервалом обслуговування - незначно.

У наведеному вище прикладі потік заявок описувався стандартним експоненціальним законом розподілу, моделювання послідовності значень якого реалізовані в ExtendSim. Може також виникнути ситуація, коли потік надходження або обслуговування заявок описується законом, не реалізованим в середовищі пакета. В цьому випадку реалізують моделювання на базі використання одного з методів імітації послідовності значень випадкових величин із заданим законом розподілу (метод зворотної функції, метод Неймана, метод кусочной апроксимації функції щільності розподілу ймовірностей і інші) [6-7]. Наведемо приклад моделювання потоку заявок з використанням методу зворотного функції.

Приклад 4. У систему надходить потік заявок, інтервали між якими описуються СВ Y, розподіленої за законом, заданому функцією щільності розподілу ймовірності: Ду) = 2-у, .У6 [0,1]. далі заявки

обслуговуються одним каналом протягом 1 одиниці часу. Змоделювати обробку заявок протягом 100 одиниць часу.

Згідно з методом зворотної функції знайдемо вираз для функції розподілу ймовірностей СВ Y і прирівняємо до випадкового числа, розподіленого рівномірно на [0,1]:

З (1) знайдемо вираз для :

Обрано позитивний корінь, враховуючи діапазон зміни СВ Y.

Кінчений вид моделі наведено на рис. 24.

Модель системи (приклад 4)

Мал. 24. Модель системи (приклад 4)

У блоці Random Number генерується випадкове число, рівномірно розподілене ( Uniform, Real) в діапазоні від 0 до 1. Потім в блоці Equation ( Value.Іх) відбувається обчислення значення СВ Y відповідно до формули (2). У діалоговому вікні блоку в поле формул задається вираз: outConO = sqrt (inConO). У блоці Create встановлюються настройки: Create items randomly , Disribution Constant. В поле constant можна задати будь-яке значення, так як це значення буде переопределно в процесі моделювання відповідно до значення, лічених з вихідного коннектора блоку Equation.

В результаті моделювання обслужено 100 заявок, середня довжина черги заявок дорівнює 25,7; коефіцієнт використання пристрою: 1. Система з потоком заявок не справляється, так як інтервал надходження заявок менше або дорівнює інтервалу обслуговування заявки і в системі накопичуються заявки в черзі на обслуговування в процесі моделювання.

 
<<   ЗМІСТ   >>