Примем следующие обозначения: И – источник, Н – накопитель, К – канал обслуживания заявок.
Рассмотрим систему массового обслуживания, представленную Q-схемой вида:
Переменные и формулы:
-эндогенная переменная P (вероятность потери заявки);
-экзогенные переменные:
tm – время появления очередной заявки из источника i;
tkj – время окончания обслуживания каналом Kkj очередной заявки, , .
-вспомогательные переменные:
zi и zkj – состояние накопителя Нi и каналов Кkj , , , .
-параметры
Li – емкость i-ого накопителя Нi
LKk – число каналов в k-ой фазе.
-переменные состояния
N1 – число потерянных заявок в Н1,
N3 – число обслуженных системой заявок (после 3 фазы).
-уравнение модели
При имитационном моделировании Q-схем важно гарантировать системе рекуррентное правило: событие, происходящее в момент времени tk, может смоделироваться только после того, как промоделируются все события произошедшие в момент времени tk-1<tk.
Появление одной заявки входного потока в момент tk может изменить состояние не более одного элемента Q-схемы. А окончание обслуживания заявки может привести к последующему изменению нескольких состояний накопителей и каналов, т.е. имеет место процесс «обратного» распространения смежных состояний в направлении, противоположном движению заявок в Q-схеме моделируемой системы.
Классификация возможных способов построения моделирующих алгоритмов:
1. детерминированные (используется принцип ) или стохастические моделирующие алгоритмы (используется принцип );
2. синхронные и асинхронные моделирующие алгоритмы. При синхронном способе один из элементов Q-схемы (И, Н, К) выбирается в качестве ведущего и по нему синхронизируется весь процесс моделирования. При асинхронном способе ведущий элемент не используется, а очередному шагу моделирования может соответствовать любое особое состояние множества элементов Q-схемы (И, Н, К).
3. циклические и спорадические моделирующие алгоритмы. При циклическом способе просмотр элементов Q-схемы осуществляется подряд циклически, при спорадическом способе осуществляется просмотр с прогнозированием (элементов, которые изменили свое состояние).
Введем массив состояний:
-подмассив К для запоминания текущих значений zkj состояний каналов Kkj и времён окончания обслуживания очередной заявки tkj, .
-подмассив Н для записи текущего значения состояния zi накопителя Нi, (в нашем примере)
-подмассив И, в который записывается время поступления очередной заявки из i-ого источника.
Процедура моделирования сводится к следующему: обращение к генератору случайных чисел с заданным законом распределения времени обслуживания для любого канала Kkj. Получаем длительность времени обслуживания, вычисляем время окончания обслуживания tkj. Затем фиксируем состояние канала:
, если канал занят,
при освобождении канала,
в случае блокировки канала.
При поступлении заявки в Нi к его содержимому добавляется единица, так, что zi= zi+1, а при уходе заявки из накопителя zi= zi-1, .
Можно построить два алгоритма:
Детерминированный алгоритм: постоянный шаг позволяет моделировать системное время с помощью автономных часов, вычисляя - счетчик системного времени. С помощью этого счетчика можем проверять условия остановки.
Алгоритм со случайным шагом : выбирается синхронный или асинхронный способ реализации.
1) Синхронный способ – для определенности в качестве ведущего синхронного элемента выберем источник заявок И. tn=tm – поступление заявки.
Из источника поступает заявка. Канал с минимальным временем окончания обслуживания - это тот канал, для которого .
2) В асинхронных алгоритмах проверка производится только в моменты особых состояний. Отсчеты системного времени берутся следующим образом: