mmvu_lab_mag
.pdf31
Рис. 2.4. Библиотека блоков
Перед запуском модели необходимо проверить настройки выво# да результатов, которые находятся в меню (Edit – Settings). В этом окне находятся основные настройки программы (в том числе и но# мера генераторов случайных чисел на закладке Random Numbers). Закладку Reports необходимо настроить так, как это показано на рис. 2.5.
Рис. 2.5. Окно настройки программы
32
После необходимых настроек можно запускать модель. Для за# пуска модели необходимо зайти в меню (Command – Create Simulation). Если нет ошибок, то появится окно JOURNAL, кото# рое отражает, что модель готова для моделирования и моделирова# ние завершено, и самое важное окно REPORT (рис. 2.6), в котором выведены результаты моделирования.
Рис. 2.6. Окно REPORT. Результаты моделирования
К этому окну мы вернемся позже, а сейчас рассмотрим возмож# ность пошагового моделирования в программе. Это может приго# диться для отладки сложных моделей и просмотра на каждом этапе того, что происходит в модели. Для пошагового моделирования сле# дует закомментировать команду START 1 в модели и подготовить модель к выполнению через меню Command – Create Simulation. В окне JOURNAL должна появиться надпись:
Model Translation Begun.
Ready.
После этого необходимо зайти в меню Window – Simulation Window – Blocks Window и в открывшемся окне, нажимая кнопку Step, по шагам просмотреть процесс имитации (рис. 2.7).
33
Рис. 2.7. Окно пошаговой имитации модели
Вернемся в окно отчета результатов моделирования REPORT. В начале отчета (рис. 2.8) после указания текущей даты и времени выводится модальное время начала моделирования (START TIME), модальное время окончания моделирования (END TIME), количество блоков в модели (BLOCKS), количество устройств в модели (FACILITIES) и количество накопителей (STORAGES).
|
|
|
|
|
START TIME |
END TIME |
BLOCKS |
FACILITIES |
STORAGES |
0.000 |
480.000 |
9 |
1 |
0 |
|
|
|
|
|
Рис. 2.8. Часть окна отчета результатов
моделирования REPORT
В нашем случае начальное время равно нулю, конечное время – 480 единиц модального времени, количество блоков в модели – 9 (обратите внимание, что команда START 1 в модели не учитывает# ся в количестве блоков), количество устройств – 1, накопителей нет (используются для многоканальных устройств).
Далее указаны имена и значения объектов модели (рис. 2.9).
34
|
|
NAME |
VALUE |
QUEUE_CUST |
10000.000 |
SALES |
10001.000 |
Рис. 2.9. Часть окна отчета результатов
моделирования REPORT с именами объектов
Значение объектов (в данном случае 10 000 и 10 001) программа назначает сама, и для анализа результатов эта информация мало# интересна.
Ниже перечислены блоки модели (BLOCK TYPE) и указано количество транзактов (ENTRY COUNT), прошедших через каж# дый блок (рис. 2.10).
|
|
|
|
||
LABEL |
LOC |
BLOCK TYPE |
ENTRY COUNT CURRENT COUNT RETRY |
||
|
1 |
GENERATE |
67 |
0 |
0 |
|
2 |
QUEUE |
67 |
0 |
0 |
|
3 |
SEIZE |
67 |
0 |
0 |
|
4 |
DEPART |
67 |
0 |
0 |
|
5 |
ADVANCE |
67 |
0 |
0 |
|
6 |
RELEASE |
67 |
0 |
0 |
|
7 |
TERMINATE |
67 |
0 |
0 |
|
8 |
GENERATE |
1 |
0 |
0 |
|
9 |
TERMINATE |
1 |
0 |
0 |
Рис. 2.10. Часть окна отчета результатов моделирования REPORT
сименами блоков модели
Внашей моделируемой системе за 480 единиц модального вре# мени через все блоки первой части модели прошло 67 транзактов, то есть 67 покупателей было обслужено за один день.
Далее указана информация об устройствах и очередях. Для уст# ройств программа выводит следующие значения (рис. 2.11):
FACILITY – номер или имя устройства; ENTRIES – количество вошедших транзактов; UTIL. – коэффициент использования;
AVE. TIME – среднее время пребывания транзакта в устрой# стве;
AVAIL – состояние готовности;
35
OWNER – номер последнего транзакта, занявшего устройство; PEND – количество прерванных в устройстве транзактов; INTER – количество прерывающих устройство транзактов; RETRY – количество транзактов, ожидающих специальных ус#
ловий;
DELAY – количество транзактов, ожидающих занятия устрой# ства.
|
|
|
|
|
|
||||
FACILITY |
ENTRIES |
UTIL. |
AVE. TIME AVAIL. OWNER |
PEND |
INTER RETRY DELAY |
||||
SALES |
67 |
0.897 |
6.426 |
1 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
Рис. 2.11. Часть окна отчета результатов моделирования REPORT
со статической информацией об устройствах модели
Для оценки результатов моделирования нас интересуют первые три значения:
1)количество вошедших транзактов – 67;
2)коэффициент использования – 0,897;
3)среднее время пребывания транзакта в устройстве – 6,426. Для очереди доступны следующие значения (рис. 2.12): QUEUE – номер или имя очереди;
MAX – максимальная длина очереди; CONT. – текущая длина очереди; ENTRY – общее количество входов;
ENTRY (0) – количество «нулевых» входов; AVE. CONT. – средняя длина очереди;
AVE. TIME – среднее время пребывания транзактов в очереди; AVE.(– 0) – среднее время пребывания в очереди без учета «ну#
левых» входов;
RETRY – количество транзактов, ожидающих специальных ус# ловий.
|
|
|
|
|
|
|||
QUEUE |
MAX |
CONT. ENTRY |
ENTRY(0) AVE.CONT. AVE.TIME |
AVE.(-0) |
RETRY |
|||
QUEUE_CUST |
14 |
0 |
67 |
14 |
3.637 |
26.057 |
32.940 |
0 |
|
|
|
|
|
|
|
|
|
Рис. 2.12. Часть окна отчета результатов моделирования REPORT
со статической информацией об очередях модели
36
Для оценки результатов моделирования нам потребуются такие значения, как:
1)максимальная длина очереди – 14;
2)средняя длина очереди – 3,637;
3)среднее время пребывания транзактов в очереди – 26,057.
В результате моделирования работы магазина получены следу# ющие значения:
1)коэффициент загрузки продавца – 0,897;
2)среднее время обслуживания – 6,426 мин;
3)среднее время ожидания в очереди – 26,057 мин.
То есть в указанном магазине покупатели в среднем стоят в оче# реди 26 мин, а обслуживаются 6 мин.
При необходимости можно сохранить модель и результаты мо# делирования обычным способом сохранения в операционной систе# ме Windows.
Для данной простейшей системы, где вход заявок и их обслужи# вание подчиняются экспоненциальному закону, можно получить аналитическое решение. В частности, коэффициент использования определяется по формуле:
,
где λ – интенсивность поступления заявок; μ – интенсивность обслуживания заявок.
Получим аналитические значения для нашей системы.
|
1 |
|
|
|
|
||
7,5 |
|
6 |
0,8. |
||||
7,5 |
|||||||
|
1 |
|
|
|
|||
6 |
|
|
|
|
Среднее число заявок в системе:
L |
|
|
|
0,8 |
4. |
1– |
|
||||
сист |
|
|
1–0,8 |
37
Среднее число заявок в очереди:
2 0,82
Lоч 1 1 0,8 3,2.
Среднее время пребывания заявок в системе:
Tсист |
|
|
|
0,8 |
30. |
|
|
|
|||
(1 ) |
1 |
(1 0,8) |
|||
|
|
7,5 |
|
Среднее время пребывания заявок в очереди:
T |
|
2 |
|
|
0,82 |
24. |
(1 ) |
1 |
|
||||
оч |
|
|
(1 0,8) |
|
||
|
|
|
|
7,5 |
|
Две последние формулы называются формулами Литтла. Дан# ные формулы получены из предположения, что в предельном ста# ционарном режиме среднее число заявок, прибывающих в систему, равно среднему числу заявок, покидающих ее. То есть формулы справедливы для большого числа заявок, прошедших через систему.
Сравним данные, полученные аналитически и в процессе моде# лирования, причем среднее время нахождения заявки в системе най# дем сложением среднего времени обслуживания заявки и среднего времени пребывания в очереди. Данные сведем в табл. 2.1.
Таблица 2.1
|
|
|
|
Показатель |
Теоретические данные |
Данные моделирования |
|
|
0,8 |
0,897 |
|
|
|
|
|
Lоч |
3,2 |
3,637 |
|
|
|
|
|
Тсист |
30 |
26,057 + 6,426 |
= 32,483 |
|
|
|
|
Точ |
24 |
26,057 |
|
|
|
|
|
Как видно, есть расхождения в бо´льшую сторону в данных, по# лученных моделированием. Это объясняется малым количеством заявок, прошедших через систему (всего 67).
Попробуем увеличить количество заявок (транзактов). Для это# го необходимо несколько изменить модель. Уберем (закомментиру#
38
ем) седьмой и восьмой блоки TERMINATE и GENERATE 480, а в команде START поставим число 1000, то есть GPSS World закон# чит моделирование при прохождении через модель 1000 транзактов.
Можно сделать по#другому – закомментировать команду START, после готовности модели (выбрать меню Command – Create Simulation) зайти в меню Command, выбрать START и в открывшемся окне указать количество транзактов для модели.
Проведем несколько запусков модели при числе транзактов, равном 1000, 10 000, 100 000 и 1 000 000. Данные результатов моде# лирования занесем в табл. 2.2.
Таблица 2.2
|
|
|
|
|
|
|
|
|
Теоретиче- |
|
Данные моделирования |
|
|||
Показатель |
|
|
при числе транзактов |
|
|||
|
ские данные |
|
|
|
|
|
|
|
1000 |
|
10 000 |
100 000 |
|
1 000 000 |
|
|
|
|
|
||||
|
0,8 |
0,865 |
|
0,803 |
0,801 |
|
0,801 |
|
|
|
|
|
|
|
|
Lоч |
3,2 |
2,948 |
|
2,939 |
3,226 |
|
3,239 |
|
|
|
|
|
|
|
|
Тсист |
30 |
27,640 |
|
28,377 |
30,326 |
|
30,306 |
|
|
|
|
|
|
|
|
Точ |
24 |
21,363 |
|
22,289 |
24,294 |
|
24,298 |
Из табл. 2.2 видно, что при увеличении числа испытаний ре# зультаты моделирования сходятся к теоретическим, а количество испытаний в 100 000 и 1 000 000 не дает существенной разницы в ре# зультатах. Таким образом, проведена проверка адекватности модели.
Построим модель двухфазной одноканальной системы. Для это# го немного изменим условия предыдущей задачи. Предположим, что перед тем, как подойти к продавцу, покупателю необходимо пробить чек в кассе, где тоже может быть очередь. Время работы кассира подчиняется равномерному закону со средним значением 2 мин и отклонением ±1 мин.
Введем в модель новое устройство «касса» и обозначим его как CASH, а новую очередь – как QUEUE_CASH.
Новая модель примет вид:
GENERATE (exponential(1, 0, 7.5)) |
;приход покупателей |
QUEUE QUEUE_CASH |
;покупатели встают в очередь в кассу |
SEIZE CASH |
;покупатель подходит к кассе |
|
39 |
DEPART QUEUE_CASH |
;покупатель выходит из очереди в кассу |
ADVANCE 2, 1 |
;время обслуживания покупателя |
RELEASE CASH |
;окончание обслуживания в кассе |
QUEUE QUEUE_CUST |
;покупатели встают в очередь к продавцу |
SEIZE SALES |
;покупатель подходит к продавцу |
DEPART QUEUE_CUST |
;покупатель выходит из очереди |
ADVANCE (exponential(1,0,6)) |
;время обслуживания покупателя |
RELEASE SALES |
;окончание обслуживания |
TERMINATE |
;выход покупателя из магазина |
GENERATE 480 |
|
TERMINATE 1 |
|
START 1 |
|
Результаты моделирования представлены на рис. 2.13.
Из результата видно, что коэффициент загрузки кассира низ# кий (0,268), очереди к кассе нет (средняя длина очереди – 0,054). Вместе с тем средняя длина очереди и среднее время пребывания в очереди у продавца увеличились (4,157 и 31,673 соответственно). И немного уменьшилось количество обслуживаемых клиентов (61). Данная задача аналитического решения не имеет, результат можно получить только имитационным моделированием.
|
|
|
|
|
||||||
LABEL |
LOC |
BLOCK TYPE |
ENTRY COUNT CURRENT COUNT RETRY |
|
||||||
|
1 |
GENERATE |
|
63 |
|
0 |
|
0 |
|
|
|
2 |
QUEUE |
|
|
63 |
|
0 |
|
0 |
|
|
3 |
SEIZE |
|
|
63 |
|
0 |
|
0 |
|
|
4 |
DEPART |
|
|
63 |
|
0 |
|
0 |
|
|
5 |
ADVANCE |
|
|
63 |
|
0 |
|
0 |
|
|
6 |
RELEASE |
|
|
63 |
|
0 |
|
0 |
|
|
7 |
QUEUE |
|
|
63 |
|
1 |
|
0 |
|
|
8 |
SEIZE |
|
|
62 |
|
0 |
|
0 |
|
|
9 |
DEPART |
|
|
62 |
|
0 |
|
0 |
|
|
10 |
ADVANCE |
|
|
62 |
|
1 |
|
0 |
|
|
11 |
RELEASE |
|
|
61 |
|
0 |
|
0 |
|
|
12 |
TERMINATE |
|
61 |
|
0 |
|
0 |
|
|
|
13 |
GENERATE |
|
1 |
|
0 |
|
0 |
|
|
|
14 |
TERMINATE |
|
1 |
|
0 |
|
0 |
|
|
FACILITY |
ENTRIES |
UTIL. |
|
AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY |
||||||
CASH |
63 |
0.268 |
|
2.045 |
1 |
0 |
0 |
0 |
0 |
0 |
SALES |
62 |
0.869 |
|
6.726 |
1 |
63 |
0 |
0 |
0 |
1 |
QUEUE |
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME |
AVE.(-0) RETRY |
||||||||
QUEUE_CASH |
2 |
0 |
63 |
46 |
0.054 |
|
0.409 |
|
1.515 |
0 |
QUEUE_CUST |
12 |
1 |
63 |
10 |
4.157 |
|
31.673 |
|
37.649 |
0 |
Рис. 2.13. Окно отчета результатов моделирования REPORT
двухфазной системы массового обслуживания
40
Рассмотрим многоканальные системы массового обслуживания. Для моделирования многоканальной системы необходимо предва# рительно (перед блоком GENERATE) задать количество каналов. Это реализуется с помощью оператора STORAGE, который имеет следующий формат:
имя STORAGE A,
где имя – уникальное имя многоканальной системы, используемое для его однозначной идентификации, а также ссылок на него.
Операнд A задает емкость системы в виде целой положитель# ной константы, число каналов теоретически не ограничено.
Для занятия и освобождения каналов обслуживания использу# ется пара взаимодополняющих блоков ENTER и LEAVE, имеющих следующий формат:
ENTER A, B,
LEAVE A, B.
Вполе A в обоих блоках обязательно указывается имя многока# нальной системы, которое должно совпадать с именем, присвоен# ным в операторе STORAGE.
Операнд В задает число каналов системы, занимаемых одним транзактом при его входе в блок ENTER и освобождаемых, когда он входит в блок LEAVE. Обычно операнд B не задается и по умолча# нию его значение равно единице.
Блоки ENTER и LEAVE в процессе моделирования собирают статистику для определения характеристик функционирования многоканальной системы. Данные блоки можно использовать при построении многоканальной системы массового обслуживания, для которой пропускная способность всех каналов одинакова, и соот# ветственно блоки SEIZE и RELEASE не используются.
Рассмотрим на примере создание модели двухканальной одно# фазной системы с одинаковой пропускной способностью каналов.
Воперационном зале банка для обслуживания физических лиц одновременно работают два окна, к которым организована общая очередь. Интенсивность потока посетителей определяется экспо# ненциальным законом со средним значением 12 чел./ч. Интенсив# ность обслуживания клиентов для каждого окна одинакова и подчи#