Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МКС.(Касап)Лекції.doc
Скачиваний:
21
Добавлен:
05.11.2018
Размер:
1.4 Mб
Скачать
  1. Алгоритм моделювання смо.

Опишемо алгоритм роботи СМО (магазин з одним продавцем-касиром), розглядаючи «життєвий цикл» покупця, тобто з моменту його приходу в магазин і до моменту виходу з магазину. Покупці приходять у магазин безперервним потоком протягом деякого періоду спостереження за системою (час, протягом якого моделюється система). Для моделювання потоку покупців використовується спеціальна підпрограма генерування (у мові GPSS цій підпрограмі відповідає блок GENERATE).

Приведемо алгоритм її роботи:

1. Створити динамічний об’єкт «покупець». Такий об’єкт – це структура даних, що містить у собі такі поля: номер покупця – , момент його приходу – , а також, якщо необхідно, властивості покупця або його атрибути (наприклад, пріоритет покупця). Потрібно також запланувати подію приходу покупця на момент часу , тобто записати повідомлення про подію в список майбутніх подій (СМП).

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

Наступна підпрограма – це підпрограма запиту й призначення ресурсу вимозі (у мові GPSS цій підпрограмі відповідає блок SEIZE). Алгоритм її роботи такий:

а) Якщо ресурс (продавець) може бути відразу призначений вимозі (покупцеві) , то змінити стан ресурсу на «зайнятий». Запам'ятати момент початку обслуговування вимоги й передати керування підпрограмі обслуговування вимоги

б) Якщо ресурс зайнятий, то поставити вимогу в чергу до ресурсу .

Третя підпрограма – підпрограма обслуговування вимоги (у мові GPSS цій підпрограмі відповідає блок ADVANCE). Алгоритм її роботи дуже простий. Вона повинна визначити подію, що наступає після закінчення обслуговування вимоги як:

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

Четверта підпрограма – це підпрограма звільнення ресурсу вимогою (у мові GPSS цій підпрограмі відповідає блок RELEASE). Алгоритм її роботи такий:

а) Змінити стан ресурсу на «вільний». Передати керування підпрограмі знищення вимоги.

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

Підпрограма знищення вимоги (у мові GPSS цій підпрограмі відповідає блок TERMINATE) потрібна для знищення структури даних, що створюється для кожної вимоги.

Крім вищенаведених підпрограм потрібна підпрограма керування всім процесом моделювання (ПУМ), що запускає процес моделювання й контролює переміщення кожної вимоги («життєвий цикл») під час моделювання шляхом виклику зазначених підпрограм обробки окремих подій. Інше призначення цієї програми - вести список упорядкованих у часі подій - СМП і просувати годинник модельного часу від події до події. У мові GPSS функцію ПУМ виконує програма інтерпретатор.

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

де поточне значення часу моделювання; моменти часу настання подій.

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

Структуру імітаційної моделі можна представити у вигляді (мал. 2.7):

Мал. 2.7

Закінчення процесу моделювання може бути встановлено одним із трьох способів:

1. Моделювання закінчити після того, як через модель пройдуть всі покупці, що генеровані підпрограмою генерування об’єктів (наприклад, 100 покупців).

2. Якщо потік покупців від генератора необмежений, то моделювання можна закінчити після проходження через модель досить великої кількості покупців (наприклад, 1000). Для цього в підпрограмі знищення ставиться лічильник покупців і коли він нарахує потрібну кількість покупців, моделювання припиняється. У мові GPSS такий лічильник організується за допомогою команди START.

3. Задається певний час моделювання, наприклад 480 хв. У цьому випадку поточний модельний час зрівнюється із зазначеним (480 хв.) і як тільки вони стануть рівними, моделювання припиняється.

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