Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 943 Практична робота №15 на тему Моделювання ресурсів у дискретно-подієвих моделях системи імітаційного моделювання AnyLogic, організація їх відображення на анімаційній діаграмі та аналіз результатів роботи моделі, НУДПСУ

Практична робота №15 на тему Моделювання ресурсів у дискретно-подієвих моделях системи імітаційного моделювання AnyLogic, організація їх відображення на анімаційній діаграмі та аналіз результатів роботи моделі, НУДПСУ

« Назад

ПРАКТИЧНА РОБОТА №15
Тема: „Моделювання ресурсів  у дискретно-подієвих моделях системи імітаційного моделювання AnyLogic,  організація їх відображення на анімаційній діаграмі та аналіз результатів роботи моделі”

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

Час виконання роботи – 2 години

ХІД РОБОТИ

Теоретичні відомості

ВНЕСЕННЯ ЗМІН У МОДЕЛЬ БАНКІВСЬКОГО ВІДДІЛЕННЯ ТА МОДЕЛЮВАННЯ СЛУЖБОВЦІВ- МЕНЕДЖЕРІВ

Бібліотека Enterprise Library містить об’єкти, які можна використовувати для моделювання ресурсів і прийняття рішень.

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

Об’єкт ProcessQ моделює заняття заявкою ресурсу на певний час. Цей об’єкт буде моделювати у нашій моделі обслуговування клієнта менеджером.

Для моделювання менеджерів у моделі банківського відділення використаємо об’єкт Resource (ресурс) бібліотеки Enterprise Library.

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

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

Об’єкт Resource – моделює певного типу ресурси. Він має бути під’єднаний до об’єктів, що моделюють зайняття і звільнення ресурсу. Таким об’єктом у нашій моделі є об’єкт ProcessQ.

Завдання 1. Внесення змін у модель банківського відділення шляхом додавання нових об’єктів: Select Output, Process Q та Resource.

Алгоритм виконання

1. Відкрийте розроблену у попередній роботі модель банківського відділення.

2. Додайте до вікна моделі такі об’єкти бібліотеки Enterprise Library:

  • Об’єкт  SelectOutput. Задайте такі властивості об’єкта SelectOutput як на Рис. 15.1. Залиште умову uniform()<0.5. Ця умова означає, що до менеджерів- службовців і до банкомату будуть надходити клієнти у приблизно однаковій кількості.
  • Об’єкт ProcessQ. Задайте такі властивості об’єкта ProcessQ: дайте об’єкту  ім’я tellerLines; вкажіть, що в черзі до менеджерів може знаходитись не більше 20 клієнтів (задається як значення  властивості QueueCapacity); задайте час обслуговування як трикутниковий розподіл з мінімальним значенням рівним 2,5 хвилини, середнім – 6 хвилин та максимальним – 11 хвилин, у властивості DelayTime (Рис. 15.2).
  • Об’єкт Resource.  Задайте такі властивості цього об’єкта: дайте об’єкту  ім’я  tellers; задайте кількість менеджерів у властивості capacity– 4 (Рис. 3).

3. З’єднайте об’єкти між собою як показано на Рис.15. 4. Збільшіть масштаб перегляду цього тексту, щоб не помилитись при з’єднанні об’єктів. Ретельно перевірте структурну схему моделі. Збережіть зміни у моделі.

4. Запустіть модель на виконання. Візуально спробуйте проаналізувати поведінку системи.

5. Зупиніть роботу моделі.

Завдання 2. Відображення менеджерів та  процесу обслуговування ними клієнтів банківського відділення на анімаційній діаграмі

1. Активізуйте анімаційну діаграму. Скопіюйте у свою папку на сервері папку Image з папки викладача.

2. Внесіть зміни на анімаційній діаграмі:

  • накресліть чергу клієнтів до менеджерів як ламану за допомогою інструменту Ломаная;

  • накресліть столи менеджерів за допомогою інструменту Скругленный прямоугольник , задайте колір зафарбування прямокутника, створіть текстову мітку teller Lines;

  • задайте місце менеджера за допомогою інструменту Ломаная, точки, що є кінцями відрізків ламаної будуть місцями розташування менеджерів (Рис. 15.5), назвіть ламану tellerLocations ікні властивостей цієї ламаної (Рис. 15.6);

  • накресліть менеджера.

Щоб накреслити менеджера, клацніть на кнопці Изображениепанелі інструментів вікна програми а потім на анімаційній діаграмі. Менеджерів потрібно зобразити всередині прямокутника за допомогою двох фігур – обслуговуючого клієнта менеджера та відпочиваючого. Створіть менеджера за допомогою динамічно групи фігур: створіть зображення і додайте працюючого і відпочиваючого менеджера , а потім створіть групу фігур, клацнувши на кнопці Группа фигур, назвіть зображення Image. Зображення має містити фігури працюючого і відпочиваючого менеджера (Рис. 15.7). За допомогою кнопки Добавить вікна властивостей зображення Image додайте вказані на Рис. 15.7 графічні файли Teller Idle.png та Teller Busy.png. Встановіть прапорець у віконці індикаторного перемикача Исходный размер. Переконайтесь, що індекс зображення не задано (індекс зображення визначає, який із списку рисунків відображати).

Клацніть на кнопці Группа фигур, а потім на анімаційній діаграмі. У вікні Свойства на вкладці Общие (Рис. 15.8) задайте ім’я групи ShapeTeller, виберіть колір лінії, зробіть групу динамічною, встановивши прапорець у віконці індикаторного перемикача Шаблон. Динамічні фігури створюються і додаються на анімаційну діаграму під час роботи моделі.

Зауваження. Щоб додати (чи вилучити) фігуру у групу фігур, клацніть правою кнопкою миші на значку групи фігур та з контекстного меню оберіть Добавить/ удалить. Потім клацнути на зображенні. Щоб вийти з режиму Добавить/ удалить клацніть на анімаційній діаграмі.

  • додайте стовпчиковий індикатор для відображення зайнятості менеджера.

Встановіть такі властивості для індикатора, як на Рис. 15.9. Колір індикації оберіть на свій смак. Встановіть прапорець у віконці Отображать значение.

Для вимірювання зайнятості ресурсу (менеджера) у властивості Отображает застосовуємо функцію getStatsUtilization() об’єкта Resource. Потім обчислюємо середнє значення за допомогою функції mean().

На даний час анімаційна діаграма має вигляд, подібний до зображеного на Рис. 15.10.

3. Створимо клас повідомлень з ім’ям. Щоб це зробити, клацніть на кнопці Новый класс сообщений, введіть ім’я класу Teller (Рис. 11) у вікні властивостей та ім’я базового класу Entity. Повідомлення цього класу будуть представляти менеджерів.

  • Щоб додати створену групу фігур на анімаційну діаграму, ввведіть такий код у поле Код инициализации (див.Рис. 11):

shape.setup();

setAnimation( shape );

  • Запишіть код анімації у полі Дополнительный код класса (див.Рис. 15.11):

Model._Group.ShapeTeller shape =

((Model)Engine.getRoot()).animation.new

ShapeTeller();

  • Щоб змінити зовнішній вигляд анімації під час роботи моделі, запишіть таку функцію (див.Рис. 11):

void setBusy( boolean b ) {

shape.image.setIndex( b ? 1 : 0 );

}

4. Тепер встановимо анімаційні властивості для об’єктів структурної схеми моделі.

  • Задайте для об’єкта tellerLines такі властивості як на Рис. 15.12.
  • Задайте для об’єкта tellers такі властивості як на Рис. 15.13.
5. Запустіть модель на виконання, натиснувши кнопку Запустить.  За допомогою кнопок   панелі інструментів вікна програми  можна зменшувати та збільшувати швидкість роботи моделі. Проаналізуйте зайнятість менеджерів візуально. На Рис. 15.14 показана робота моделі у певний фіксований момент часу.

Завдання 3. Зміна кількості менеджерів у моделі  

Алгоритм виконання

1. Додайте до моделі параметр, який буде задавати кількість менеджерів у моделі. Для цього у вікні властивостей моделі на вкладці Общие у списку параметрів задайте параметр класу Model з ім’ям numberOfTellers типу integer (Рис. 15.15).

2. У властивості capacity об’єкта tellers моделі задайте значення numberOfTellers (Рис. 15.16).

3. Для зміни кількості менеджерів створимо на анімаційній діаграмі елемент управління Бігунок, для чого клацнемо на кнопці  панелі інструментів, а потім у вікні анімаційної діаграми під прямокутником (Рис. 15.17).

  • У діалоговому вікні Свойства бігунка вкажіть ім’я параметра numberOfTellers та мінімальне і максимальне значення кількості менеджерів.

  • Створіть на кінцях бігунка на анімаційній діаграмі текстові мітки 1 та 4, які відповідають мінімальному і максимальне значення кількості менеджерів.

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

Завдання 3. Захистіть виконану практичну роботу.

Питання до захисту практичної роботи

  1. Який об’єкт  бібліотеки Enterprise Library використовується для моделювання ресурсів?

  2. Які ресурси моделювались у моделі банківського відділення?

  3. Який об’єкт  бібліотеки Enterprise Library використовується для моделювання блоку прийняття рішень?

  4. Який об’єкт  бібліотеки Enterprise Library використовується для моделювання факту зайняття заявкою певного ресурсу?

  5. Якій зміст має загальне поняття „зайняття заявкою ресурсу” у даній моделі банківського відділення?

  6. Яким розподілом задавався час обслуговування заявки?

  7. Який об’єкт використовувався для відображення ресурсів (менеджерів) на анімаційній діаграмі?

  8. Який об’єкт використовувався на анімаційній діаграмі для відображення черги до нових ресурсів і яке його ім’я у цій моделі?

  9. Яка технологія створення групи фігур і яке призначення цього об’єкта?

  10. Який об’єкт на анімаційній діаграмі відображає зайнятість менеджерів?

  11. З якою метою створювався клас повідомлень у цій моделі?

  12. Що задавалось у коді ініціалізації моделі і з якою метою?

  13. Що задавалось у додатковому коді і з якою метою?

  14. У властивостях якого об’єкта моделі було задано зміну зображення зайнятого і відпочиваючого менеджера?

  15. За допомогою якого об’єкта анімаційної діаграми можна змінювати кількість менеджерів і з яким параметром моделі пов’язаний елемент управління бігунок?

З повагою ІЦ “KURSOVIKS”!