Моделирование СМО по событиям

Компьютерное моделирование СМО на основе Марковского процесса возможно, если потоки заявок и потоки обслуживания распределены по экспоненциальному закону. В общем случае для произвольных распределений этот метод не применим.

Для моделирования СМО с произвольными распределениями потоков заявок и потоков обслуживания применяется метод имитационного моделирования по событиям. Событиями в СМО называются моменты времени, когда очередная заявка приходит в систему и когда обслуженная заявка покидает систему. Другими словами, это моменты изменения состояния системы. Эти моменты образуют список событий, в котором можно выделить текущее событие и списки прошедших и будущих событий. Метод имитационного моделирования включает последовательное формирование списка событий и продвижение процесса моделирования от одного события к другому. Модельное время при имитационном моделировании является зависимой переменной и изменяется скачками, равными интервалам времени между последовательными событиями.

Схема алгоритма имитационного моделирования по событиям приведена на рисунке 6.

Принятые обозначения:

Входные параметры:

N — максимальное число входящих заявок (условие окончания моделирования).

NK — количество каналов.

LMAX — максимально допустимая длина очереди.

Накапливаемая статистика:

T — текущее модельное время, изменяющееся скачком между моментами возникновения событий в системе.

TA — момент прихода очередной заявки (время, прошедшее с начала моделирования).

K — счетчик пришедших заявок.

KS — счетчик обслуженных заявок.

L — текущая длина очереди.

LOS — счетчик отказов (заявок, поучивших отказ в обслуживании).

Массивы:

OCP[i] — признак занятости i-го канала (0 — канал свободен, 1 — канал занят).

TD[i] — ожидаемый момент выхода заявки из i-го канала (время, прошедшее с начала моделирования).

TOS[i] — счетчик суммарного времени занятости i-го канала — сколько единиц модельного времени в течение всего процесса моделирования канал был занят.

TL[M] — суммарное время пребывания системы в состоянии, когда в ней ровно M заявок.

Вспомогательные величины:

MIN — ближайший момент выхода обслуженной заявки из канала, считая от текущего модельного времени.

S — номер канала, который в текущем состоянии системы освободится первым (в момент времени MIN).

DTA — время между приходами заявок (генерируемая в процессе моделирования случайная величина).

DTS — время обслуживания заявки в канале (генерируемая в процессе моделирования случайная величина).

Для рассматриваемой СМО

Моделирование СМО по событиям - student2.ru ,

Моделирование СМО по событиям - student2.ru

где u1, u2 — равномерно распределенные на интервале [0, 1) случайные величины (рекомендуется использовать для их генерации два независимых датчика ррсч[0,1) ).

В процессе моделирования в любой момент времени известны моменты наступления событий для всех возможных источников (момент прихода очередной заявки и моменты освобождения каждого из каналов). Если канал свободен, то считается (с целью упрощения алгоритма), что ожидаемое время его освобождения бесконечно велико; в предлагаемой схеме алгоритма в качестве заведомо большого значения взято число 999999.

Установка начальных значений (блок 2) состоит в заполнении массива TD большими числами (999999), а всех переменных и других массивов — нулевыми значениями. Это соответствует ситуации, когда все каналы свободны и модельное время равно 0.

Блок 3 определяет момент прихода очередной заявки, при этом увеличивается счетчик пришедших заявок K, модельное время не изменяется.

Блок 4 — проверка условия окончания моделирования.

Блоки 7-11 реализуют определение номера канала, который освобождается первым, и момента его освобождения. При начальном запуске системы все каналы свободны, поэтому номер канала S не важен (вообще-то это будет последний канал), а в качестве момента его освобождения MIN будет обнаружено заведомо большое число.

Далее происходит проверка: какое из событий наступит раньше, приход заявки в момент времени TA или освобождение канала в момент времени MIN (блок 12)? При начальном запуске ближайшим событием окажется приход заявки (так как все каналы свободны) и произойдет переход на блок 19.

Блок 19 осуществляет накопление статистики по пребыванию системы в состоянии с M заявками. Очевидно, что M равно сумме количества занятых каналов (суммы всех элементов массива OCP[i]) и количества заявок в очереди L. Если текущее модельное время T, а переход в новое состояние произойдет в момент времени TA по приходу заявки, то в состоянии М система пробудет (TAT) единиц модельного времени.

Блок 20 изменяет модельное время. Теперь состояние системы можно сформулировать как "очередная заявка только что пришла в систему".

Блоки 21-24 организуют цикл поиска свободного канала. Если свободный канал найден, то происходит переход на блок 25 и досрочный выход из цикла поиска.

Блоки 25-26 реализуют действия алгоритма моделирования в случае, когда в системе есть свободный канал. В этом случае канал объявляется занятым (блок 25) и сразу же разыгрывается время обслуживания заявки в канале DTS и момент его освобождения TD[i], равный текущему модельному времени T плюс DTS. Сразу же в массиве TOS[i] учитывается и время, которое занимаемый канал потратит на обслуживание заявки.

Если в системе нет свободных каналов, то заявка помещается либо в очередь, либо, если очередь уже имеет максимально допустимую длину, получает отказ. Эта логика реализуется блоками 27-29.

После обработки прихода очередной заявки в блоках 19-29 происходит переход на блок 3, где происходит определение момента прихода очередной заявки.

Моделирование СМО по событиям - student2.ru

Рис. 6. Схема алгоритма моделирования многоканальной СМО по событиям

Рассмотрим теперь вариант, когда текущее состояние системы таково, что приход очередной заявки случится позже, чем освобождение одного из каналов. При этом в результате выполнения поиска первого освобождающегося канала в блоках 7-11 будет определен номер S канала, освобождающегося первым, и момент его освобождения MIN. Переход из блока 12 произойдет на блок 13.

Блок 13 идентичен блоку 19 и осуществляет накопление статистики по пребыванию системы в состоянии с M заявками.

Блок 14 имитирует окончание обслуживания заявки в канале S. Счетчик обслуженных заявок увеличивается на единицу, а модельное время становится равным времени MIN выхода заявки из канала S.

В блоке 15 осуществляется проверка наличия заявок, ожидающих в очереди.

Если заявки в очереди есть, то ожидающая заявка сразу направляется в только что освободившийся канал S, генерируется время ее обслуживания DTS и определяется момент окончания обслуживания TD[S]. Сгенерированное время DTS учитывается также в статистике времени занятости канала TOS[S] (блоки 16-17).

Если очередь пуста, то канал S объявляется свободным и в качестве момента его освобождения TD[S] устанавливается заведомо большое число.

Для систем с бесконечной этот алгоритм обычно тоже применим, при этом в LMAX должно быть установлено достаточно большое число (например 100).

Вычисление характеристик СМО. По окончании моделирования основные характеристики СМО могут быть получены следующим образом:

1. Вероятности пребывания в состоянии, когда в системе ровно i заявок, определяется как доля времени, в течение которого в системе было i заявок, в общем времени моделирования:

Моделирование СМО по событиям - student2.ru

Моделирование СМО по событиям - student2.ru 2. Вероятность отказа — доля заявок, получивших отказ, в общем количестве заявок:

Моделирование СМО по событиям - student2.ru 3. Пропускная способность — количество обслуживаемых в единицу времени заявок:

4. Среднее количество занятых каналов можно определить как отношения суммарного времени занятости всех каналов к общему времени моделирования:

Моделирование СМО по событиям - student2.ru

5. Среднее время ожидания в очереди можно определить как суммарное время ожидания заявок в очереди, отнесенное к количеству входящих заявок. Если B — это время, проведенное всеми заявками в системе, и C — время, проведенное всеми заявками в каналах, то их разность — время, проведенное всеми заявками в очереди. Тогда

 
  Моделирование СМО по событиям - student2.ru
Моделирование СМО по событиям - student2.ru Моделирование СМО по событиям - student2.ru

, , ;

6. Средняя длина очереди может быть вычислена как математическое ожидание количества заявок в очереди в процессе моделирования:

 
  Моделирование СМО по событиям - student2.ru

Полученные по этим формулам характеристики СМО необходимо сравнить с характеристиками, полученными в результате аналитического расчета.

3. ПОРЯДОК ВЫПОЛНЕНИЯ ЛАБОРАТОРНЫХ РАБОТ 3 И 4

При подготовке к лабораторной работе в соответствии с вариантом индивидуального задания необходимо :

· Составить список состояний СМО;

· Нарисовать граф состояний СМО;

· Составить и решить систему уравнений Колмогорова;

· Рассчитать основные характеристики СМО:

1. Вероятность отказа;

2. Коэффициент загрузки;

3. Пропускная способность;

4. Среднее число заявок, обслуживаемое в СМО

5. Среднее количество занятых каналов и т.д.

· Во время лабораторной работы провести численное моделирование этого же варианта СМО по методу, указанному в задании.

· Сравнить основные характеристики СМО, полученные в результате аналитического и численного расчета.

Отчет должен содержать:

1. Исходные данные для моделирования СМО в соответствии с вариантом задания;

2. Список состояний СМО;

3. Граф состояний СМО;

4. Уравнения Колмогорова;

5. Вероятности нахождения СМО в каждом состоянии;

6. Основные характеристики СМО, полученные аналитически,

7. Основные характеристики СМО, полученные численно,

8. Анализ полученных результатов.

ЗАДАНИЯ

к лабораторной работе №3 «Моделирование СМО»

Группа А4-

Число каналов Длина очереди Интенсивность потока событий λ Среднее время обслужи-вания 1/μ Метод численного моделирования
≤ 3 По событиям
  ≤ 2 2.5 По событиям
  1.2 По событиям
По событиям
0.8 По событиям
1.5 1.6 По событиям
≤ 3 1.5 1.5 По событиям
≤ 2 1.5 По событиям
1.5 По событиям
4.5 По событиям
1.2 1.4 По событиям
0.7 По событиям
≤ 3 2.5 1.5 По событиям
≤ 2 1.5 По событиям
2.3 1.5 По событиям
2.4 По событиям
2.5 0.6 По событиям
1.8 1.3 По событиям
≤ 4 1.8 1.4 По событиям
≤ 3 2.5 1.25 По событиям
2.4 1.5 По событиям
1.8 2.4 По событиям
1.25 1.2 По событиям
2.25 1.1 По событиям

ЗАДАНИЯ

к лабораторной работе №4 «Моделирование СМО»

Группа А4-

Число каналов Длина очереди Интенсивность потока событий λ Среднее время обслужи-вания 1/μ Метод численного моделирования
≤ 3 1.2 1.2 Цепь Маркова
≤ 2 1.8 Цепь Маркова
1.2 Цепь Маркова
2.2 Цепь Маркова
2.5 0.6 Цепь Маркова
1.8 1.25 Цепь Маркова
≤ 3 1.75 1.45 Цепь Маркова
≤ 2 2.3 1.4 Цепь Маркова
2.25 1.4 Цепь Маркова
1.6 3.2 Цепь Маркова
1.25 1.25 Цепь Маркова
2.5 Цепь Маркова
≤ 3 2.6 1.2 Цепь Маркова
≤ 2 1.25 3.2 Цепь Маркова
2.8 1.3 Цепь Маркова
2.8 2.25 Цепь Маркова
2.8 0.6 Цепь Маркова
1.5 1.1 Цепь Маркова
≤ 4 1.85 1.5 Цепь Маркова
≤ 3 2.6 1.35 Цепь Маркова
2.5 1.5 Цепь Маркова
1.85 2.5 Цепь Маркова
1.5 1.1 Цепь Маркова
2.5 Цепь Маркова

ЗАДАНИЯ

к лабораторной работе №3 «Моделирование СМО»

Группа А12-

Число каналов Длина очереди Интенсивность потока событий λ Среднее время обслужи-вания 1/μ Метод численного моделирования
≤ 3 2.25 По событиям
≤ 2 1.5 2.5 По событиям
3.2 1.1 По событиям
2.5 1.6 По событиям
2.2 0.7 По событиям
2.4 1.1 По событиям
≤ 3 1.25 1.8 По событиям
≤ 2 2.3 1.4 По событиям
2.5 1.25 По событиям
1.4 По событиям
1.25 1.1 По событиям
2.6 0.8 По событиям
≤ 3 2.85 1.4 По событиям
≤ 2 1.85 2.3 По событиям
2.35 1.4 По событиям
2.2 1.8 По событиям
2.85 0.5 По событиям
1.85 1.3 По событиям
≤ 4 1.85 1.4 По событиям
≤ 3 2.55 1.5 По событиям
2.5 1.6 По событиям
1.9 2.3 По событиям
1.45 1.1 По событиям
2.05 1.2 По событиям

ЗАДАНИЯ

к лабораторной работе №4 «Моделирование СМО»

Группа А12-

Число каналов Длина очереди Интенсивность потока событий λ Среднее время обслужи-вания 1/μ Метод численного моделирования
≤ 3 1.25 1.25 Цепь Маркова
≤ 2 1.85 Цепь Маркова
3.5 1.05 Цепь Маркова
2.25 Цепь Маркова
2.55 0.6 Цепь Маркова
1.7 1.5 Цепь Маркова
≤ 3 1.5 1.8 Цепь Маркова
≤ 2 2.5 1.5 Цепь Маркова
2.5 1.3 Цепь Маркова
1.8 Цепь Маркова
1.55 1.15 Цепь Маркова
2.55 1.05 Цепь Маркова
≤ 3 2.65 1.2 Цепь Маркова
≤ 2 1.2 3.2 Цепь Маркова
2.5 1.5 Цепь Маркова
2.5 2.5 Цепь Маркова
2.7 0.6 Цепь Маркова
1.5 1.7 Цепь Маркова
≤ 4 1.8 1.5 Цепь Маркова
≤ 3 2.7 1.35 Цепь Маркова
2.6 1.5 Цепь Маркова
1.9 2.5 Цепь Маркова
1.6 1.1 Цепь Маркова
2.4 1.1 Цепь Маркова

Наши рекомендации