Задача. На частном узле телефонной связи имеются 200 параллельных телефонов, 30 внутренних линий, 30 внешних линий, 8 сигнализаторов и 1 оператор. В среднем телефонные звонки длятся 150 секунд и распределены по нормальному закону со стандартным отклонением в 30 секунд. Время между поступлением внешних звонков обратно пропорционально количеству параллельных телефонов (2500 разделить на количество параллельных телефонов) и распределено по экспоненциальному закону. Время между поступлением внутренних звонков обратно пропорционально количеству свободных параллельных телефонов (1260 разделить на количество свободных параллельных телефонов плюс 1). Направление этих звонков может быть внутренним (66.6%) и внешним (33.3%). Для звонков, поступающих с внутренних телефонов, оператор не нужен. Для внутренних звонков требуется сигнализатор и внутренняя линия, для внешних звонков - внешняя линия.
При звонке 15% параллельных телефонов занято, 20% - не отвечают.
Время, требуемое для сигнализации, равно 7±2 секунд, для звонка через параллельный телефон - 6±2 секунд. Звонящий слушает сигнал "занято" 4±1 секунду. Работа оператора занимает 9±3 секунды.
Необходимо смоделировать работу частного узла телефонной связи в течение 1 часа, а также:
1. Определить коэффициент использования оператора, сигнализаторов, внутренних и внешних линий, параллельных телефонов.
2. Определить количество внутренних и внешних звонков, обрабатываемых каждую минуту.
3. Определить, достаточно ли внутренних и внешних линий, сигнализаторов?
Решение.
Transit TABLE M1,20,20,20
*****************************************************************************
Extensions STORAGE 200
Extlines STORAGE 30
Intlines STORAGE 30
Signals STORAGE 8
Operator STORAGE 1
*****************************************************************************
* Определение переменных
Internal VARIABLE 1260/(1+R$Extensions)
External VARIABLE 2500/(R$Extensions+S$Extensions)
*
* Таблицы количества звонков
Callsint TABLE S$Intlines,2,2,20
Callsext TABLE S$Extlines,2,2,20
*****************************************************************************
* Генерируются звонки, поступающие с внутренних телефонов.
GENERATE (Exponential(1,0,V$Internal)),0,20 ;Внутренние звонки.
ENTER Extensions ;Снята трубка телефона.
QUEUE Inside ;Очередь на сигнализатор.
ENTER Signals ;Занимается сигнализатор.
DEPART Inside ;Выход из очереди.
ADVANCE 7,2 ;Время для сигнализации.
LEAVE Signals ;Сигнализатор освобождается.
TRANSFER .333,,Intout ;33% звонков направлены на внешние
;линии.
Intint TEST GE R$Intlines,1,Breakoff ;Проверка внутренней линии.
;на доступность.
ENTER Intlines ;Занимается внутренняя линия.
ADVANCE 4,1 ;Проводится проверка, занята ли телефон.
TRANSFER .15,,Busy ;Некоторые параллельные телефоны заняты.
Aline ENTER Extensions ;Другие параллельные телефоны не заняты.
ADVANCE 6,2 ;Время для звонка по параллельному
;телефону.
TRANSFER .2,,Nogood ;20% не отвечают.
ADVANCE (Normal(2,150,30)) ;Продолжительность звонка.
Nogood LEAVE Extensions ;Параллельный телефон освобождается.
Busy LEAVE Intlines ;Внутренняя линия освобождается.
TRANSFER ,Breakoff
* Модель звонков с внутренних телефонов на внешние линии.
Intout TEST GE R$Extlines,1,Breakoff ;Доступна ли внешняя линия?
ENTER Extlines ;Занимается внешняя линия.
ADVANCE 4,1 ;Время для проверки, если она занята.
TRANSFER .200,,Nobody ;20% заняты.
ADVANCE 6,2 ;Время для ответа.
TRANSFER .200,,Nobody ;20% не отвечают.
ADVANCE (Normal(2,150,30)) ;Продолжительность звонка.
TABULATE Transit ;Запись транзитного времени.
Nobody LEAVE Extlines ;Внешняя линия освобождается.
Breakoff LEAVE Extensions ;Параллельный телефон свободен.
TERMINATE
*****************************************************************************
* Обработка внешних звонков.
GENERATE (Exponential(1,0,V$External)) ;Внешние звонки.
TEST GE R$Extlines,1,Nonefree ;Доступна ли внешняя линия?
ENTER Extlines ;Занимается внешняя линия.
QUEUE Outsider ;Очередь к оператору.
ENTER Operator ;Занимается оператор.
DEPART Outsider ;Выход из очереди.
ADVANCE 9,3 ;Оператор обслуживает звонок.
LEAVE Operator ;Оператор освобождается.
ADVANCE 4,1 ;Заняты ли телефоны?
TRANSFER .15,,Engaged ;Некоторые параллельные телефоны заняты.
ENTER Extensions ;Занимается параллельный телефон.
ADVANCE 6,2 ;Время для звонка.
TRANSFER .200,,Noperson ;20% не отвечают.
ADVANCE (Normal(2,150,30)) ;Время звонка.
TABULATE Transit ;Запись транзитного времени.
Noperson LEAVE Extensions ;Параллельный телефон освобождается.
Engaged LEAVE Extlines ;Внешняя линия освобождается.
Nonefree TERMINATE
*****************************************************************************
GENERATE 3600 ;Транзакт каждый час.
TERMINATE 1 ;Счетчик завершения.
GENERATE 60 ;Транзакт каждую минуту.
TABULATE Callsint ;Количество внутренних звонков.
TABULATE Callsext ;Количество внешних звонков.
TERMINATE
START 1
Результаты моделирования.