Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 941 Практична робота №13 на тему Розробка дискретних імітаційних моделей засобами системи імітаційного моделювання AnyLogic, НУДПСУ

Практична робота №13 на тему Розробка дискретних імітаційних моделей засобами системи імітаційного моделювання AnyLogic, НУДПСУ

« Назад

ПРАКТИЧНА РОБОТА №13
Тема: „Розробка дискретних імітаційних моделей  засобами системи імітаційного моделювання AnyLogic”

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

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

ХІД РОБОТИ

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

ІМІТАЦІЙНЕ МОДЕЛЮВАННЯ В ANYLOGIC

За допомогою бібліотеки Enterprise Library пакету AnyLogic можна швидко створювати складні дискретно-подієві моделі, такі як:

- моделі виробничих процесів;

- моделі систем обслуговування (банки, аеропорти, і т.д.);

- моделі бізнес-процесів з оцінкою витрат операцій;

- моделі логістики і ланцюжків доставки.

Бібліотека об’єктів Enterprise Library дозволяє створювати гнучкі моделі з наочною візуалізацією модельованого процесу і можливістю збору необхідної статистики.

Для активізації AnyLogic потрібно виконати: Меню Пуск ®Программы ® AnyLogic® AnyLogic. 

Вікно програми AnyLogic має вигляд, наведений на Рис.  13.1.

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

У лівій панелі вікна програми AnyLogic відображається вікно браузера проекту з деревом об’єктів моделі. В ньому експерименти знаходяться під об’єктом Эксперименты. При цьому один експеримент з ім’ям  Simulation  створюється автоматично. Якщо у дереві моделі виділити цей об’єкт, то у вікні Свойства можна змінити налаштування моделі (див. Рис. 13.1 та Рис. 13.2).

У режимі реального часу задають зв’язок між модельним часом і часом фізичним, тобто задають кількість одиниць модельного часу, які виконуються за одну секунду. У режимі віртуального часу модель виконується безвідносно до фізичного часу так швидко, як це дозволяє процесор і відповідні методи, які застосовуються у моделі. Режим віртуального часу добре підходить до випадку роботи моделі системи на великому  проміжку фізичного часу.

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

Потрібно вибрати клас, який буде активізований при запуску моделі. За замовчуванням у якості кореневого об’єкта активізовано клас Main, який автоматично створюється у кожній моделі (див.Рис. 13.1 та Рис. 13.3).

Користувач має право перейменувати класи моделі. Для цього потрібно виділити клас у вікні браузера проекту і далі у вікні властивостей класу дати інше ім’я.

На вкладці Дополнительные можна задати додаткові властивості екперименту, які дозволяють керувати виконанням моделі (див. Рис. 4). Можна запустити модель так, щоб вона працювала нескінченно, але можна і зупинити її в заданий момент часу. Також можна зупинити модель по досягненню змінної заданого значення або по виконанню якої-небудь певної умови. Якщо в моделі використовуються випадкові числа, то можна вибрати, чи потрібно генерувати унікальні випадкові числа (це потрібно при зборі порівняльної статистики по декількох запусках) або генерувати однакові числа і добиватися багатократного запуску однієї і тієї ж моделі (це потрібно для вивчення поведінки моделі при декількох запусках). Можна встановлювати крок у часі та точність експерименту.

Для побудови моделі в Enterprise Library потрібно перетягнути об’єкти з вкладки Enterprise Library вікна Бібліотеки (див. Рис. 13.5) у вікно моделі, а потім задати необхідні властивості об’єктів і з’єднати їх один з одним.

Всі об’єкти бібліотеки відображаються на вкладці Enterprise Library вікна Бібліотеки.

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

У вікні Свойства виділеного у вікні моделі об’єкта (Рис. 13.5) можна  змінювати його властивості відповідно до вимог вашої моделі.

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

Для з’єднання двох сусідніх об’єктів користуйтеся методом перетягування.

Щоб накреслити з’єднувачі складної форми, клацніть мишею по кнопці панелі інструментів Соединитель (З’єднувач) , клацніть по першому порту, а потім клацніть по другому порту.

Щоб створити анімацію моделі з метою спостереження за поведінкою модельованої системи, потрібно клацнути на кнопці Новая анимация (Нова анімація)  панелі інструментів вікна програми AnyLogic.

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

Завдання 1. Розробка моделі банківського відділення

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

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

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

1. Створіть нову модель, як описано в розділі 1. Перейменуйте клас Main в Model. У властивостях експерименту Simulation задайте виконання моделі в режимі реального часу з виконанням однієї одиниці модельного часу в одну секунду. В цій моделі під одиницею модельного часу ми розумітимемо одну хвилину роботи банківського відділення.

2. З бібліотеки Enterprise Library додайте у вікно моделі такі об’єкти : 1)Sourse; 2)Queue;3)Delay; 4) Sink і з’єднайте  їх між собою так як на Рис. 13.6, утворюючи структурну схему моделі.

Об’єкт Source генерує заявки (entities) певного типу через заданий часовий інтервал. Заявки є об’єктами, які проводяться, обробляються, обслуговуються, або ще яким-небудь чином піддаються дії модельованого процесу: це можуть бути клієнти в системі обслуговування, деталі в моделі виробництва, документи в моделі документообігу і т.д.

В даному прикладі заявками будуть клієнти банку, а об’єкт Source моделюватиме їх прихід в банківське відділення.

Об’єкт Queue моделює чергу клієнтів, які очікують  обслуговування.

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

Об’єкт Sink позначає кінець структурної схеми.

3. Змініть властивості об’єкта Source: для цього виділіть його у структурній схемі, далі у вікні Свойства на вкладці Общие для властивості interarrivalTime задайте закон, який відображає розподіл інтенсивності приходу клієнтів. Припустимо, що інтервал між приходом клієнтів експоненціально розподілений з середнім значенням рівним  1,5 одиницям модельного часу. Тоді інтенсивність приходу клієнтів становитиме приблизно 0,67. Отже, для властивості  interarrivalTime потрібно задати значення  exponential(0,67), як на Рис. 13.7.

4. Змініть властивості об’єкта Queue.Задайте для властивості capacity (максимальна довжина черги) значення 15 (див.Рис.13. 8).

5. Для об’єкта Delay задайте ім’я АТМ і час затримки. Задайте час обслуговування, розподілений за трикутниковим розподілом із середнім рівним 1 хвилині, мінімальним рівним 0,8 хвилини та максимальним рівним 1,3 хвилини, як значення властивості delayTime (див.Рис. 13.9).

6. Запустіть модель на виконання, клацнувши на кнопці Старт  панелі інструментів вікна програми  AnyLogic.

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

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

Клацніть на кнопці Новая анимация (Нова анімація)  панелі інструментів вікна програми AnyLogic.

8.1. Накресліть ламану лінію у вікні анімаційної діаграми за допомогою інструменту :

- клацніть по кнопці Ламана і помістіть першу точку клацанням миші по діаграмі;

- клацніть в інших місцях діаграми, щоб додати проміжні точки;

- останню точку додайте подвійним клацанням.

Отримаєте ламану, схожу на наведену на Рис. 13.10.

!!! Дуже важливо, яку точку ламаної ви створюєте першою. За замовчуванням, заявки (у даному прикладі – клієнти) рухатимуться від точки, яку ви намалюєте першою, до точки, яку ви намалюєте останньою.

Задайте властивості ламаної як на Рис. 13.11, зверніть увагу на ім’я ламаної.

8.2. Побудуйте у вікні анімаційної діаграми прямокутник: клацніть по кнопці Прямоугольник  панелі інструментів, а потім по анімаційній діаграмі. Отримаєте прямокутник, схожий на наведений на Рис. 13.12.

Задайте властивості прямокутника як на Рис. 13.13. Зверніть увагу на ім’я прямокутника та колір його зафарбування під час роботи моделі.

Введіть Java-вираз, який задає колір прямокутника під час роботи моделі:

ATM.size() > 0 ? Color.green : Color.white

Тут ATM - це ім’я створеного нами об’єкту Delay. Функція size() повертає число клієнтів, обслуговуваних в даний момент часу. Якщо банкомат зайнятий, то колір прямокутника буде зеленим, інакше - білим.  Color - це клас Java, що дозволяє використовувати стандартні кольори (чорний, синій, червоний, блакитний, жовтий і т.д.), і створювати будь-які інші кольори.

8.3. Задайте анімаційні властивості об’єктів моделі. Для цього у браузері проекту клацніть у дереві об’єктів на об’єкті Model. Буде відображена структурна схема моделі.

8.4. Виділіть об’єкт Queue і задайте анімаційну фігуру об’єкта і анімаційний стиль  як на Рис. 13.14.

Об’єкти Enterprise Library підтримують декілька анімаційних стилів. Наприклад, черга може відображатися у вигляді лінії, впорядкованого або неврегульованого набору елементів. Стиль AUTO визначає стиль автоматично залежно від заданої для об’єкту анімаційної фігури. В нашому випадку черга відображатиметься лінією.

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

8.6. Проаналізуйте роботу моделі і зробіть висновки.

8.7. Щоб зупинити роботу моделі, потрібно клацнути на кнопці Остановить  панелі інструментів вікна програми.

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

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

  1. Які різновиди імітаційних моделей можна розробляти в AnyLogic?

  2. Для розробки яких моделей призначена бібліотека об’єктів Enterprise Library?

  3. Як додати об’єкт бібліотеки до структурної схеми моделі?

  4. Як відображаються зв’язки між об’єктами моделі?

  5. Для моделювання яких реальних об’єктів використовують об’єкт Source бібліотеки об’єктів Enterprise Library?

  6. Для моделювання яких реальних об’єктів використовують об’єкт Delay бібліотеки об’єктів Enterprise Library?

  7. Для моделювання яких реальних об’єктів об’єкт Queue бібліотеки об’єктів Enterprise Library?

  8. Для моделювання яких реальних об’єктів чи подій використовують об’єкт Sink  бібліотеки об’єктів Enterprise Library?

  9. Яким об’єкту системи імітаційного моделювання Extend відповідають об’єкти Source,  Queue, Delay, Sink бібліотеки об’єктів Enterprise Library?

  10. Що можна задати у властивості interarrivalTime об’єкта Source?

  11. Що можна задати у властивості  capacity  об’єкта Queue?

  12. Як змінити ім’я проекту?

  13. Як змінити ім’я експерименту?

  14. Що розуміють під віртуальним часовим режимом?

  15. Що розуміють під реальним часовим режимом?

  16. В якому співвідношенні знаходяться фізичний час і реальний часовий та віртуальний часовий режими?

  17. Як побудувати анімаційну діаграму?

  18. Як задати анімаційні властивості об’єктів?

  19. Як активізувати анімаційну діаграму?

  20. Анімаційні властивості яких об’єктів задавались у моделі банківської діяльності?

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