Пример 4. 49 assign 1,7; Задать МАХ номер очереди

Рассмотрим приход клиентов в банк и, их обслуживание касси­рами. Время прихода клиентов задается функцией распределения ARRIVE. Для обслуживания открыто семь окошек кассиров, к каждому из них может образовываться очередь. Во время прихода клиента в банк, если хотя бы один кассир свободен, клиент сразу же подходит к этому кассиру. В противном случае он присоединяется к любой кратчайшей очереди на текущий момент. Порядок обслужи­вания клиентов из очереди - FIFO.

Обслуживание в кассе разделяется на пять видов операций, частота появления которых и среднее время обслуживания задают­ся функцией MEAN.

В модели с несколькими очередями могут возникнуть одно­временные события прихода клиента и конца обслуживания касси­ром. Если событие «приход» будет рассмотрено ранее события «ко­нец обслуживания», то устройство в момент проверки будет счи­таться занятым и вновь прибывший клиент не сможет занять касси­ра. Поэтому необходимо обеспечить приоритетность в обработке события «освобождения кассира».

Это можно сделать с помощью задания уровня приоритета (блок PRIORITY 1) между блоками GENERATE и ADVANCE.

Для реализации поиска свободного кассира используется блок TEST E, помеченный меткой NEXT, который проверяет, свободен ли кассир. Максимальный номер кассира запоминается в параметре транзакта Р5. По этому же параметру образуется цикл для проверки всех устройств (блок LOOP). Номер первого свободного кассира запоминается в параметре транзакта Р3, и транзакт передается на обслуживание. Если все устройства заняты, то транзакт переходит к следующему блоку после LOOP, т.е. к блоку TEST, помеченному меткой SIT. Этот блок сравнивает длины очередей для всех уст­ройств. Первоначально для сравнения в параметр Р2 транзакта по­мещается число 1000. Аналогично организуется цикл по всем оче­редям с помощью параметра Р1 транзакта. Первоначально туда по­мещается максимальный номер очереди. Если длина следующей просматриваемой очереди меньше предыдущей, то запоминается номер очереди в параметре Р3 и ее длина в параметре Р2 транзакта. После просмотра всех очередей (перехода к следующему блоку по­сле LOOP) в этих параметрах окажется номер минимальной очере­ди и ее длина, соответственно.

Приведем текст соответствующей программы.

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

MEAN FUNCTION RN1,D5

1.450/.29,750/.61,1000/.85,1500/1.0,3000

* Функция времени прихода

ARRIVEL FUNCTION RN1,D6

0.0,50/.25,100/.60,150/.80,200/.90,250/1.0,300

*

T_l TABLE Ml,200,600,10; Сбор данных о времени

; пребывания

050 *****************************************************************

GENERATE FNSARRIVEL; Приход клиентов

ASSIGN 1,7; Задать МАХ номер очереди


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: