Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

mmvu_lab_mag

.pdf
Скачиваний:
33
Добавлен:
24.03.2016
Размер:
1.43 Mб
Скачать

51

зывает транзакту во входе), то в блок, указанный в поле операнда C. Если и эта попытка неудачна, то транзакт остается в блоке TRANSFER до наступления в модели момента, делающего возмож# ным вход транзакта в один из блоков, указанных в операндах B или C, причем при одновременно возникшей возможности транзакт войдет в блок, указанный в операнде В.

Работу блока TRANSFER с ключевым словом ALL рассмотрим ниже.

Для начала на примере последней задачи рассмотрим модель случайного перераспределения заявок. Предположим, что не все клиенты операционного зала в банке осуществляют кассовые опе# рации, а только в среднем 70% клиентов. То есть после обслужива# ния в операционном окне клиент с вероятностью 0,7 пойдет в кассу и с вероятностью 0,3 выйдет из зала. Построим модель данной сис# темы:

BANK STORAGE 3

;указание числа окон

GENERATE (exponential(1,0,5))

;поступление посетителей

QUEUE QUEUE_BANK

;очередь посетителей в окно

ENTER BANK

;посетитель подходит к окну

DEPART QUEUE_BANK

;посетитель выходит из очереди

ADVANCE (exponential(1,0,12))

;время обслуживания в окне

LEAVE BANK

;окончание обслуживания в окне

TRANSFER 0.3,,EXT

;выбор кассовых операций

QUEUE QUEUE_CASH

;очередь в кассу

SEIZE CASH

;вход в кассу

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE 4,2

;время обслуживания в кассе

RELEASE CASH

;окончание обслуживания в кассе

EXT TERMINATE

;выход посетителя из банка

GENERATE 480

 

TERMINATE 1

 

START 1

 

Построение самой модели было подробно рассмотрено выше, поэтому здесь рассмотрим только отличие ее от предыдущей модели (хотя, наверняка, все и так понятно). После блока LEAVE BANK вставлен блок TRANSFER 0.3,,EXT, работающий в режиме случай# ной передачи. Программа сама определит этот режим по числу

52

воперанде А, который с вероятностью 0,7 (1 – 0,3 = 0,7) направит пришедший транзакт в следующий блок QUEUE QUEUE_CASH,

вочередь в кассу, так как операнд В в блоке TRANSFER не задан, а с вероятностью 0,3 направит пришедший транзакт в блок с мет# кой EXT (блок TERMINATE), на выход посетителя из зала.

После процесса моделирования получим следующий отчет (рис. 2.17).

Рис. 2.17. Окно отчета результатов моделирования с использованием

блока случайной передачи транзактов

Укажем отдельно основные результаты моделирования (соот# ветствующие результаты моделирования предыдущей задачи ука# жем в скобках):

•число обслуженных клиентов за рабочий день – 69 (88) чел.; •среднее время ожидания к окнам – 2,7 (5,4) мин; •средняя длина очереди к окнам – 0,4 (1) чел.; •средняя загрузка сотрудников – 0,63 (0,68);

53

•среднее время ожидания в кассе – 1,2 (6,2) мин; •средняя длина очереди к кассе – 0,1 (1,1) чел.; •средняя загрузка кассира – 0,46 (0,71); •среднее время обслуживания в кассе – 4,3 (3,8) мин.

Составим теперь модель двухканальной системы с разным вре# менем обслуживания требований в каждом канале. Например, на вокзале для продажи билетов работает два окна. Обращение поку# пателей за билетами имеет экспоненциальный характер распреде# ления с интенсивностью 10 чел./ч.

Впервом окне работает кассир, имеющий большой опыт рабо# ты, который затрачивает на обслуживание покупателя в среднем 5 мин. Во втором окне работает кассир с небольшим стажем работы, который затрачивает на обслуживание покупателя 10 мин.

Определить коэффициент загрузки каждого кассира, среднее время обслуживания одного покупателя каждым кассиром, среднее время ожидания в очереди за билетом и среднюю длину очереди. За единицу времени принять минуту, общее время моделирования – 12 часов.

Вначало модели традиционно поместим блок GENERATE (exponential(1,0,6)) со средним значением времени поступления, равным 60/10 = 6 мин. Далее поместим блок QUEUE, моделирую# щий очередь, с именем очереди в кассу QUEUE_CASH. Воспользо# ваться блоками ENTER и LEAVE не представляется возможным, потому что необходимо указывать каждый канал отдельно. Поэтому применяем блоки SEIZE и RELEASE, моделирующие отдельные устройства, с именем устройства CASH_1 для первого и CASH_2 для второго кассира. Задержку времени обслуживания клиента смо# делируем с помощью блока ADVANCE (exponential(1,0,5)) для пер# вого кассира и блока ADVANCE (exponential(1,0,10)) для второго кассира.

После блока QUEUE QUEUE_CASH надо распределить поку# пателей по свободным кассам. Это можно реализовать посредством блока TRANSFER в виде:

TRANSFER BOTH,,CASH2.

Указанное в первом операнде ключевое слова BOTH показыва# ет, что блок работает в логическом режиме. В этом случае блок

54

TRANSFER будет направлять транзакты либо в следующий блок (так как он не задан), либо в блок с меткой (именем) CASH2, ука# занный в третьем операнде. Если оба блока заняты, то транзакт ос# танется в блоке TRANSFER, то есть в очереди.

Естественно, метка CASH2 блока должна указывать на блок SEIZE CASH_2. Но это еще не все. По модели видно, что если тран# закт попал в первую кассу, то ничто не препятствует ему после об# служивания в первой кассе пойти на обслуживание во вторую кассу. Поэтому после блока RELEASE CASH_1 необходимо поставить блок TRANSFER,EXT, работающий в режиме безусловной переда# чи и направляющий все транзакты на выход из модели в блок TERMINATE с именем EXT. И последнее, не задан блок выхода из очереди DEPART. Очевидно, что его надо поставить после каждого блока входа в устройство SEIZE CASH_1 и SEIZE CASH_2 с име# нем очереди QUEUE_CASH.

В итоге модель примет вид:

GENERATE (exponential(1,0,6))

;поступление покупателей

QUEUE QUEUE_CASH

;очередь в кассу

TRANSFER BOTH,,CASH2

;выбор кассы покупателем

SEIZE CASH_1

;поступление покупателя к кассе 1

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE (exponential(1,0,5))

;время обслуживания в кассе 1

RELEASE CASH_1

;окончание обслуживания в кассе 1

TRANSFER,EXT

;направление покупателя к выходу

CASH2 SEIZE CASH_2

;поступление покупателя к кассе 2

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE (exponential(1,0,10))

;время обслуживания в кассе 2

RELEASE CASH_2

;окончание обслуживания в кассе 2

EXT TERMINATE

;выход из кассового зала

GENERATE 720

TERMINATE 1

START 1

Во второй части программы установлено ограничение на время моделирования – 12 часов, или 720 мин.

Запустим процесс моделирования и получим следующие ре# зультаты (рис. 2.18):

55

•коэффициент загрузки первого кассира – 0,71; •коэффициент загрузки второго кассира – 0,61; •среднее время обслуживания покупателя первым кассиром –

5,5 мин; •среднее время обслуживания покупателя вторым кассиром –

11,8 мин; •средняя длина очереди – 1,8 чел.;

•среднее время ожидания в очереди – 9,9 мин.

Рис. 2.18. Окно отчета результатов моделирования двухканальной

системы с разным временем обслуживания в канале

Для построения следующей модели изменим условия предыду# щей задачи. Предположим, что в билетной кассе работают три касси# ра и время обслуживания каждым соответственно равно 5, 7 и 13 мин. Интенсивность поступления покупателей составляет 20 чел./ч.

Проведем моделирование данной системы и найдем те же пара# метры системы, что и в предыдущей задаче.

В данной системе три канала обслуживания, поэтому необходи# мо использовать блок TRANSFER с ключевым словом ALL вместо

56

BOTH в первом операнде блока. В этом случае блок имеет следую# щий формат:

TRANSFER ALL, В, С, D.

Добавляется еще один необязательный операнд D. В режиме логической передачи с ключевым словом ALL пришедший в блок TRANSFER транзакт сначала направляется в блок, указанный в операнде В. Если блок занят, то транзакт направляется в следую# щий блок, расположенный от блока В ниже, через количество бло# ков, указанное в операнде D. Если и он занят, то программа отсчи# тывает то количество блоков вниз, которое указано в операнде D, и пытается направить транзакт в этот блок, и так далее до блока, указанного в операнде C, или до первой удачной попытки входа.

Если операнд D не указан, то транзакт направляется последова# тельно во все блоки между блоками B и C до первой удачной попыт# ки. Если все блоки для входа заняты, то программа проверяет зано# во все блоки по циклу до удачной попытки входа. То есть таким об# разом можно моделировать систему с любым количеством каналов при условии, что количество блоков, моделирующих каждый канал, должно быть одинаковым.

Составим модель данной системы, взяв за основу модель из пре# дыдущей задачи:

GENERATE (exponential(1,0,3 ))

;поступление покупателей

QUEUE QUEUE_CASH

;очередь в кассу

TRANSFER ALL,CASH1,CASH3,5

;выбор кассы покупателем

CASH1 SEIZE CASH_1

;поступление покупателя к кассе 1

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE (exponential(1,0,5))

;время обслуживания в кассе 1

RELEASE CASH_1

;окончание обслуживания в кассе 1

TRANSFER,EXT

;направление покупателя к выходу

SEIZE CASH_2

;поступление покупателя к кассе 2

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE (exponential(1,0,7))

;время обслуживания в кассе 2

RELEASE CASH_2

;окончание обслуживания в кассе 2

TRANSFER,EXT

;направление покупателя к выходу

CASH3 SEIZE CASH_3

;поступление покупателя к кассе 3

DEPART QUEUE_CASH

;выход из очереди в кассу

ADVANCE (exponential(1,0,13))

;время обслуживания в кассе 3

RELEASE CASH_3

;окончание обслуживания в кассе 3

EXT TERMINATE

;выход из кассового зала

57

GENERATE 720

TERMINATE 1

START 1

В модели после блока QUEUE стоит блок TRANSFER ALL,CASH1,CASH3,5, который направляет транзакт в блок с име# нем CASH1. Если он занят, то программа отсчитывает от него пять блоков вниз и направляет транзакт туда, и так далее до блока CASH3. В остальном логика построения модели не отличается от исходной.

После моделирования получим результат (рис. 2.19): •коэффициент загрузки первого кассира – 0,77; •коэффициент загрузки второго кассира – 0,72; •коэффициент загрузки третьего кассира – 0,71; •среднее время обслуживания покупателя первым кассиром –

4,9 мин; •среднее время обслуживания покупателя вторым кассиром –

7,3 мин; •среднее время обслуживания покупателя третьим кассиром –

10,9 мин; •средняя длина очереди – 1,1 чел.;

•среднее время ожидания в очереди – 3,4 мин.

58

Рис. 2.19. Окно отчета результатов моделирования трехканальной

системы с разным временем обслуживания в каждом канале

Выше было рассмотрено несколько примеров моделирования

впрограмме GPSS World несложных систем массового обслужива# ния. В примерах не использовалось обращение к текущим парамет# рам блоков и транзактов (в программе они называются СЧА). Используя некоторые параметры, можно усложнять модели, на# пример, увеличивать время задержки какого#либо транзакта (одна заявка оказалась сложнее остальных) или изменять приоритеты обслуживания (для СМО с приоритетным обслуживанием). Воз# можно моделирование автоматического изменения числа каналов

вмодели для подбора оптимального решения. Результаты модели# рования можно выводить в виде таблиц и гистограмм. То есть воз# можности программы GPSS World достаточно широки, что и обус# ловливает ее долголетие.

59

Задание для самостоятельной работы и самопроверки

На автомобильной мойке работает два бокса для мойки автома# шин. Время мойки составляет в среднем 15 мин с отклонением ±4 мин и подчиняется нормальному закону распределения. Приезд ав# томашин на мойку является простейшим законом распределения со средним значением 15 автомобилей за два часа. Если все боксы заня# ты, то автомашины встают в общую очередь.

Составить модель системы. Определить среднюю длину очере# ди, время ожидания автомобилей в очереди, число обслуженных ав# томобилей и коэффициент загрузки моечных боксов за 12#часовой рабочий день. За единицу измерения времени принять минуту.

Ответ.

Модель данной системы будет следующей:

BOX STORAGE 2

;указание числа боксов

GENERATE (exponential(1,0,8))

;поступление автомашин

QUEUE QUEUE_BOX

;очередь автомашин к боксу

ENTER BOX

;въезд автомашины в бокс

DEPART QUEUE_BOX

;выход автомашины из очереди

ADVANCE (normal(1,15,4))

;время мойки в боксе

LEAVE BOX

;окончание мойки в боксе

TERMINATE

;выезд автомашины с мойки

GENERATE 720

 

TERMINATE 1

 

START 1

 

Результаты моделирования показаны на рис. 2.20. Поскольку сам процесс вероятностный, то следует иметь в виду, что последую# щие результаты моделирования могут незначительно отличаться от приведенных на рисунке.

60

LABEL

QUEUE

RETRY QUEUE_BOX

STORAGE

BOX

LOC

BLOCK TYPE

ENTRY COUNT CURRENT COUNT RETRY

1

GENERATE

85

0

0

2

QUEUE

85

0

0

3

ENTER

85

0

0

4

DEPART

85

0

0

5

ADVANCE

85

1

0

6

LEAVE

84

0

0

7

TERMINATE

84

0

0

8

GENERATE

1

0

0

9

TERMINATE

1

0

0

MAX CONT.

ENTRY ENTRY(0) AVE.CONT.

AVE.TIME

AVE.(-0)

 

8

0

 

85

21

1.708

14.469

 

19.217

0

CAP. REM.

MIN. MAX.

ENTRIES AVL.

AVE.C. UTIL.

RETRY DELAY

2

1

0

2

85

1

1.757

0.878

0

0

Рис. 2.20. Результаты моделирования задачи об автомойке

Из результатов моделирования можно получить: •среднее время ожидания в очереди – 14,5 мин; •среднюю длину очереди – 1,7 автомобилей; •число обслуженных автомобилей – 84; •коэффициент загрузки моечных боксов – 0,878.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]