Моделирование системы массового обслуживания средствами GPSS World
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
кет занимает 53 секунды.
Требуется определить время, необходимое для того, чтобы через турникет прошло 300 человек.
Листинг
GENERATE 7, 7 // Прибытие людей
QUEUE TURNIKET// Вход в очередь
SEIZE TURNIKET// Занятие турникета
DEPART TURNIKET// Выход из очереди
ADVANCE 5, 3// Использование турникета
RELEASE TURNIKET// Освобождение турникета
TERMINATE 1// Один зритель вошел
Построчное описание функционирования модели
GENERATE - блок GENERATE генерирует транзакты, которые представляют собой людей, пребывающих к турникету каждые 77 секунд.
QUEUE - блок QUEUE вместе с блоком DEPART собирают статистику о людях, ожидающих в очереди и еще не прошедших турникет. Очередь имеет имя TURNIKET.
SEIZE - как только турникет освобождается, в блок SEIZE входит один ожидающий транзакт. В результате турникет становиться занятым, что предотвращает вход других транзактов в блок SEIZE.
DEPART - транзакт, занявший устройство, представляющее собой турникет, входит в блок DEPART, чтобы получить статистику о времени ожидания в очереди TURNIKET. Время ожидания не включает в себя время перехода через турникет.
ADVANCE - блок ADVANCE управляет продолжительностью модельного времени, в течение которого турникет используется занявшим его транзактом. В нашем случае человек занимает турникет на 53 секунды. В качестве операндов мы использовали именованные значения, чтобы облегчить их изменение.
RELEASE - блок RELEASE освобождает турникет, поэтому новый транзакт может занять его, войдя в блок SEIZE.
TERMINATE - блок TERMINATE удаляет транзакты из процесса моделирования после того, как транзакты пройдут через турникет.
После того, как программа написана, необходимо создать процесс моделирования. Затем выбрать Command/Start и в диалоговом окне заменить единицу на 300. Процесс моделирования закончиться, когда 300 транзактов войдут в блок TERMINATE. Они представляют собой 300 человек, прошедших через турникет.
При завершении процесса моделирования GPSS World выводит отчет:
GPSS World Simulation Report - Turniket.4.1
, June 09, 2009 19:42:20
TIME END TIME BLOCKS FACILITIES STORAGES
.000 2134.023 7 1 0
VALUE10000.000
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
GENERATE 300 0 0
QUEUE 300 0 0
SEIZE 300 0 0
DEPART 300 0 0
ADVANCE 300 0 0
RELEASE 300 0 0
TERMINATE 300 0 0
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY300 0.690 4.906 1 0 0 0 0 0
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY3 0 300 150 0.319 2.270 4.540 0
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
301 0 2135.381 301 0 1
Обсуждение результатов
Из значения End Time стандартного отчета мы видим, что к моменту, когда турникет прошли 300 зрителей, истекли 2134,023 секунды. Повторное моделирование случайных чисел даст немного другие значения.
Отметим, что блоки QUEUE и DEPART не заключают между собой блок ADVANCE. Это означает, что транзакты регистрируют время ожидания в очереди с именем TURNIKET, а не время пребывания в турникете. Теперь посмотрим раздел стандартного отчета, описывающий состояние очереди. Он озаглавлен QUEUE TURNIKET. Мы видим, что максимальное количество ожидающих зрителей составило 3. Это не очень плохо. Однако у нас могли бы возникнуть неприятности с более медленным турникетом.
Внутри процесса моделирования
Теперь исследуем конечное состояние процесса моделирования, сгенерировавшего стандартный отчет.
При помощи Command/Show в окне диалога набрать:
AC1 (в строке состояния главного окна появиться модельное время, равное 2134,023);
FR$TURNIKET (в строке состояния главного окна появиться коэффициент использования выражения в долях от тысячи, равное 689,67);
N1 (в строке состояния главного окна появиться число зрителей, равное 300).
В окне устройств мы видим, что турникет был занят на 69% времени и что в момент завершения процесса моделирования турникет был свободен, т.к. устройство не занято.
В окне блоки мы видим, что сейчас нет активных транзактов, т.к. 301 транзакт еще только должен войти в процесс моделирования, а 300 транзакт только что был удален.
Теперь посмотрим, что случится, если на обслуживание зрителя будет уходить 74 секунды вместо 53. Для изменения этой величины нужно поменять команду ADVANCE 5, 3 на команду ADVANCE 7, 4.
При проведении процесса моделирования мы получаем следующие данные:
GPSS World Simulation Report - Untitled Model 1.3.1
, June 09, 2009 11:32:44
TIME END TIME BLOCKS FACILITIES STORAGES
.000 2169.933 7 1 0
VALUE10000.000
LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
GENERATE 315 0 0
QUEUE 315 14 0
SEIZE 301 1 0
DEPART 300 0 0
ADVANCE 300 0 0
RELEASE 300 0 0
TERMINATE 300 0 0
ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY301 0.972 7.005 1 301 0 0 0 14
MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY19 15 315 21 4.372 30.115 32.266 0
XN PRI M1 ASSEM CURRENT NEXT PARAMETER VALUE
0 2045.757 301 3 4
XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE
316 0 2177.471 316 0 1
Максимальная длина очереди немного выше, чем при первом прогоне процесса моделирования. Среднее время пребывания в очереди также выше. Это говорит о том, что еще более медленный турникет не допустим, даже если в среднем он обслужит всех зрителей.
Заключение
В данной курсовой работе было проведено исследование и анализ задачи по прохождению турникета на стадион, посредством языка имитационного моделирования GPSS, который показал, как при увеличении времени на прохождение турникета замедляется пропускная способность. Это нам и позволило убедиться в эффективности данной программы, ее целесообразном использование на различных предприятия, с помощью которой можно сэкономить время и силы на изучение влияния различных факторов и, конечно, найти оптимальное решение поставленной задачи.
Список литературы:
1.Бражник А.Н., Имитационное моделирование: в?/p>