Модель турникета на футбольном стадионе |
Постановка задачи |
Зрители подходят к турникету футбольного стадиона каждые 7±7 секунд и встают в очередь, в которой находятся до тех пор, пока не пройдут на стадион. Проход через турникет занимает 5±3 секунды. Требуется определить время, необходимое для того, чтобы через турникет прошло 300 че-ловек. |
Листинг |
***************************************************************************** * Модель турникета * Время в секундах ***************************************************************************** In_use EQU 5;Среднее время. Range EQU 3;Полуинтервал. GENERATE 7,7;Прибытие людей. QUEUE Turn;Вход в очередь. SEIZE Turn;Занятие турникета. DEPART Turn;Выход из очереди. ADVANCE In_use,Range;Использование турникета. RELEASE Turn;Освобождение турникета. TERMINATE 1;Один зритель вошел. ***************************************************************************** |
Объяснение работы модели:
Операторы описания переменной EQU задают среднее время прихода зрителей и допуск.
Блок GENERATE генерирует транзакты, которые имитируют приход к турникету зри-телей каждые 7+(-)7 сек.
Блок QUEUE вместе с блоком DEPART собирает статистику по ожиданию в очереди людей, которые еще не пользовались турникетом. Связанная с этим ожиданием очередь но-сит имя TURN.
|
|
В блок SEIZE входит один ожидающий транзакт, как только турникет становится доступным. Это приводит к тому, что турникет становится занятым, предотвращая тем самым попадание большего числа транзактов в блок SEIZE. Коль скоро транзакт вошел в блок SEIZE и занял устройство, имитирующее турникет, то он входит в блок DEPART для того, чтобы собрать статистику о времени ожидания в очереди TURN. Время ожидания не включает в себя время нахождения в турникете.
Блок ADVANCE задерживает транзакт на имитационное время, в течениe которого турни-кет занят одним зрителем, который только что занял его. Турникету требуется 5 +(-) 3 сек. для пропускания одного зрителя.
Блок RELEASE освобождает турникет, так что новый транзакт может завладеть им при входе в блок SEIZE.
Блок TERMINATE удаляет транзакт из модели после того, как зритель прошел через турникет.
Проведение моделирования:
Войдите в интерфейс среды GPSS World 2000 с файлом TURNSTIL. Cкопируйте его под своим именем и загрузите в систему GPSS World 2000 командой меню Command \ Create Simulation. По этой команде система создает окно JOURNAL, в котором фиксируются все выполняемые команды, ответные действия системы, сообщения об ошибках.
Подготовьте окно Expression для просмотра абсолютного системного времени, использования турникета (дробное время занятости в частях от тысячи) и числа зрителей, прибывающих к турникету. (СЧА GPSS - AC1, FR$TURN, N1соответственно), для чего наберите команду из меню Window \ Simulation Window \ Expression Window.
В окнo Edit Expression \ Label внесите TURN, в окно Edit Expression \ Expression внесите FR$TURN, нажмите кнопки View и Memorise.
|
|
Очистите окна Label и Expression и аналогично внесите для просмотра следующие СЧА (AC1 и N1). Нажмите кнопку «ОК».
Примечание: для просмотра этих СЧА при неоднократном запуске моделирования активизируйте вывод данных кнопкой View окна Memorised.
Начните моделирование командой меню Command \ Start - 300
Моделирование остановится, когда 300 транзактов пройдут через блок TERMINATE. Это имитирует 300 зрителей, прошедших через турникет. В окне Expression просмотрите затребованные данные.
Набирая из меню команды Window \ Simulation Window \ Blocks Window
........... \ Facilities Window
........... \ Queues Window,
проанализируйте информацию по состоянию блоков модели.
В конце моделирования автоматически создается окно отчета Report, включающее в себя все данные о работе блоков модели.