Смекни!
smekni.com

Имитационное моделирование системы массового обслуживания (стр. 5 из 7)

где

– случайное число. В программе время обслуживания определяется с помощью функции
.

function tok: real;

var r:real;

t_ob: real;

begin

r:= Random(1000)/1000;

t_ob:= -1/r_Mu*ln(1-r);

tok:= t_ob;

end;

Алгоритм метода имитационного моделирования можно сформулировать следующим образом. Время работы СМО (Т) разбивается на шаги по времени dt, на каждом из них выполняется ряд действий. Вначале определяются состояния системы (занятость каналов, длина очереди), затем, с помощью функции

, определяется, поступила ли на данном шаге заявка или нет.

Если поступила, и, при этом имеются свободные каналы, то с помощью функции

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

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

3.2 Блок-схема программы

Блок-схема программы, реализующей описанный алгоритм, приведена на рис.5. Распишем некоторые блоки более подробно.

Блок 1. Задание начальных значений параметров. Пользователем задаются значения: Time – время работы системы,

r_la – интенсивность потока поступления заявок (

),

r_mu – интенсивность потока обслуживания заявок (

).

Значения, задаваемые программой:

i_deltaT:=0.001 – шаг по времени;

i_post:=0;

i_otk:= 0;

i_obsl:=0;

i_och:=0;

i_tobs:=0;

t:=0 – параметр, следящий, сколько времени проработала система;

i_obsl:=0 – число обслуженных заявок;

i_tobs:=0 – общее время обслуживания заявок в системе;

i_post:=0 – число поступивших в СМО заявок;

i_otk:=0 – число заявок, которым было отказано в обслуживании;

i_obsl:=0 – число обслуженных заявок;

sost:='s1' – состояние системы (изначально устанавливаем СМО в состояние s1, т.е. все каналы свободны);

for i :=1 to 3 do

begin

t_och[i] := 0;- обнуляем время пребывания СМО в состояниях с длиной очереди 1, 2.

t_okonch[i] := 0; – время окончания обслуживания заявки во всех 3 каналах устанавливаем в 0, т.к. каналы пусты;

end;

Рис.5.


Блок 3. Задание состояний системы. Выделим у данной 3-х канальной системы 9 различных состояний: s1, s2,.. s9. СМО находится в состоянии s1, когда система свободна; s2..s7 – хотя бы один канал свободен; в состоянии s8, когда все каналы заняты, и есть место в очереди; в состоянии s9 - все каналы заняты, и очередь достигла максимальной длины (och=2).

Задаем состояния системы:

_sost:=1;

for i:=0 to 3 do

begin

if t_okonch[i+1]>0 then i_temp:= 1

else i_temp:= 0;

_sost:=_sost + i_temp* round(Exp(i*ln(2)));

end;

if _sost<7 then begin Sost:= _sost; exit; end;

if (_sost= 7) and (i_och< 2) then Sost:= _sost

else

Sost := _sost+ 1;

Блок 4. Изменение времени пребывания СМО в состояниях с длиной очереди 1, 2. Это реализуется следующим программным кодом:

ifi_och > 0 thent_och[i_och]:= t_och[i_och]+i_deltaT;

В блоках 9 и 16 присутствует такая операция, как помещение заявки на обслуживание в свободный канал. Просматриваются, начиная с первого, все каналы, когда выполняется условие

(канал свободен), в него подается заявка, т.е. генерируется время окончания обслуживания заявки.

for i:=1 to 2 do

begin

if t_okonch[i]>0 then t_okonch[i]:= t_okonch[i] - i_deltaT

else

if i_och >0 then

begin

Dec(i_och);

t_okonch[i]:=tok;

i_tobs:=i_tobs + t_okonch[i];

end;

end;

Блок 17 реализуется следующим программным кодом:

for i:=1 to 2 do

if t_okonch[i]>0 then

t_okonch[i]:= t_okonch[i] - i_deltaT;

Алгоритм метода имитационного моделирования реализован на языке программирования C#.

3.3 Расчет показателей эффективности СМО на основерезультатов ее имитационного моделирования

Наиболее важными являются такие показатели, как:

1) Вероятность отказа в обслуживании заявки, т.е. вероятность того, что заявка покидает систему не обслуженной. В нашем случае заявке отказывается в обслуживании, если все 3 канала заняты, и очередь максимально заполнена (т.е. 2 человека в очереди). Для нахождения вероятности отказа разделим время пребывания СМО в состоянии с очередью 4 на общее время работы системы.

2) Относительная пропускная способность – это средняя доля поступивших заявок, обслуживаемых системой.


3) Абсолютная пропускная способность – это среднее число заявок, обслуживаемых в единицу времени.

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

5) Среднее время пребывания заявки в очереди определяется формулой Литтла

6) Среднее число занятых каналов определяется следующим образом:

7) Процент заявок, которым было отказано в обслуживании, находится по формуле


8) Процент обслуженных заявок находится по формуле

3.4 Статистическая обработка результатови их сравнение с результатами аналитического моделирования

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

Величина

попадает в доверительный интервал, если выполняется неравенство

, где

математическое ожидание (среднее значение), находится по формуле

,

исправленная дисперсия,

,

N=20 – число прогонов,

– надежность. При
и N=20
.

Результат работы программы представлен на рис.6.

Рис.6.

Для удобства сравнения результатов, полученных различными методами моделирования, представим их в виде таблицы.


Таблица 2.

Показатели эффективности СМО Результаты аналитического моделирования Результаты имитационного моделирования
Нижняя граница доверительного интервала Верхняя граница доверительного интервала
Вероятность отказа 0,33355 0,238 0,35979
Относительная пропускная способность 0,66645 0,64 0,761
Абсолютная пропускная способность 2.66579 2,56 3,048
Средняя длина очереди 0,917264 0,696 0,9566
Среднее время пребывания заявки в очереди 0,229316 0,1739 0,2394
Среднее число занятыхканалов 2,665798 2,561 3,048

Из табл. 2 видно, что результаты, полученные при аналитическом моделировании СМО, попадают в доверительный интервал, полученный по результатам имитационного моделирования. Т.е., результаты, полученные разными методами, согласуются.


Заключение

В данной работе рассмотрены основные методы моделирования СМО и расчета показателей их эффективности.

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

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

Полученные при имитационном моделировании результаты согласуются с результатами аналитического моделирования.