Всего на сайте:
236 тыс. 713 статей

Главная | Статистика

Пример моделирования на языке моделирования GPSS  Просмотрен 241

 

Рассмотрим принципы построения имитационных моделей на примере процесса обслуживания клиентов в парикмахерской. Данный пример является одним из демонстрационных примеров, поставляемых вместе с GPSS World.

Каждые 3±1 минуты в парикмахерскую приходит новый посетитель. Если в очереди не более трех человек, то пришедший посетитель остается ждать стрижки, в противном случае – сразу уходит. Парикмахер стрижет одного клиента за 6±2 минуты. После стрижки посетитель покидает парикмахерскую. Нужно определить, распределение времени ожидания посетителя парикмахерской в очереди.

Данный процесс обслуживания клиентов в парикмахерской описывается следующей программой на GPSS:

; GPSS World Sample File - BARBER.GPS.

************************************************************************

* Моделирование парикмахерской *
* *  
*   *

 

Waittime QTABLE Barber,0,2,15 ;Объявление таблицы для гистограммы
      ;распределения времен ожидания
  GENERATE 3,1 ;клиентов в очереди
  ;Создание новых посетителей   
  TEST LE Q$Barber,3,Finis ;Если в очереди больше 3 человек,
  SAVEVALUE Custnum+,1 ;то клиент покидает парикмахерскую
  ;Общее число оставшихся клиентов   
  ASSIGN Custnum,X$Custnum ;Присвоение клиенту номерка
  QUEUE Barber ;Начало ожидания в очереди
  SEIZE Barber ;Ожидание парикмахера или; начало стрижки
  DEPART Barber  
  ;Конец ожидания в очереди   
  ADVANCE 6,2 ;Стрижка занимает несколько минут
Finis RELEASE Barber ;Стрижка завершена
  TERMINATE ;Посетитель уходит

 

Строка, начинающаяся со звездочки, или окончание строки после точки с запятой являются комментариями.

Здесь присутствуют следующие блоки языка GPSS:

Waittime QTABLE Barber, 0, 2, 15 – описание таблицы Waittime для сбора данных о распределении времени ожидания транзактов в очереди Barber;

GENERATE 3, 1 – данный блок моделирует ввод транзактов в модель, что соответствует приходу нового посетителя в парикмахерскую;

TEST LE Q$Barber, 3, Finis – проверка пришедшим посетителем числа человек в очереди, если она больше трех, то транзакт переходит на метку Finis;

SAVEVALUE Custnum+, 1 – сохранение порядкового номера обслуживаемого клиента;

QUEUE Barber, DEPART Barber – данные блоки моделируют вход транзакта в очередь и выход транзакта из очереди (где Barber – имя очереди), что соответствует ожиданию клиентом начала стрижки;

SEIZE Barber, RELEAZE Barber – данные блоки моделируют вход транзакта в устройство и выход транзакта из устройства, что соответствует началу и концу стрижки;

ADVANCE 9, 2 – данный блок моделирует задержку транзакта в устройстве на время стрижки;

TERMINATE 1 – вывод транзакта из модели.

 

Предыдущая статья:Моделирования GPSS Следующая статья:Стандартный отчет о моделировании
page speed (0.0159 sec, direct)