Меню
Главная
Авторизация/Регистрация
 
Главная arrow Математика, химия, физика arrow Исследование систем массового обслуживания с ожиданием

Исследование систем массового обслуживания с ожиданием


Исследование систем массового обслуживания с ожиданием

1. Краткие теоретические сведения

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

СМО с n-каналами обслуживает простейший поток требований. При занятости всех n -узлов обслуживания поступившее требование ставится в очередь и обслуживается после некоторого ожидания. Общее число требований, находящихся в системе на обслуживании и в очереди, обозначим k и назовем состояниям системы. При k= величина k характеризует число занятых каналов в системе, при k= число занятых каналов равно n, а разность k-n определяет длину очереди. Параметр интенсивности обслуживания потока определяется числом занятых узлов ().

Введем понятие загрузки системы p, равное отношению интенсивности входящего потока к интенсивности обслуживания .

Отметим, что при загрузке системы, равной или больше числа узлов обслуживания системы n, с вероятностью, равной 1, постоянно будут заняты все узлы обслуживания, и длина очереди будет бесконечной - явление "взрыва". Поэтому, чтобы система могла функционировать нормально и очередь не росла безгранично, необходимо выполнить условие p<1.

При ограниченной очереди k=, где m - заданная максимально допустимая длина очереди (емкость накопителя).

Динамика состояний системы с ограниченной длиной очереди описывается системой ОДУ Колмогорова для вероятностей состояний.

массовый обслуживание ожидание дифференциальный

при дисциплинирующем условии

и начальных условиях

Решение бесконечной системы алгебраических уравнений для стационарных вероятностей состояний СМО с ожиданием и бесконечной очередью определяется вторым распределением Эрланга

P0 =

К основным показателям качества обслуживания рассматриваемой СМО относятся:

-вероятность наличия очереди (вероятность того, что число требований в системе больше числа узлов)

-вероятность занятости всех узлов системы

-среднее число требований в системе

Мтр =P0 (

-средняя длина очереди

Mоч =

-среднее число свободных узлов

Мсв =

- среднее число занятых узлов

-среднее время ожидания начала обслуживания

T ож =

-общее время, которое проводят в очереди все требования, поступившие в систему за единицу времени

Tож =

-среднее время, которое требование проводит в системе обслуживания

Ттр = Тож +

-среднее время, которое в среднем проводят в системе все требования, поступившие за единицу времени

Тстр = Тожид +

2. Порядок выполнения работы

Построить размеченный граф состояний СМО с ограниченной длиной очереди.

Записать систему обыкновенных дифференциальных уравнений (ОДУ) Колмогорова для вероятностей состояний системы.

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

Провести вычислительный эксперимент, в котором:

- исследовать динамику вероятностей состояния и показателей качества СМО;

- оценить время переходных процессов в системе;

- вычислить вероятности состояний и показатели качества функционирования системы в установившемся режиме

Сформулировать выводы по работе.

Текст задания

На железнодорожной станции имеются 5 путей для обслуживания прибывающих железнодорожных составов . Интенсивность прибытия железнодорожных составов равна 15 составов час.Среднее время обслуживая одного состава 20 мин.

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

m=4;

µ=3

н=5*3=15

с=л/н =5

0

1

2

3

4

5

6

7

8

Pэр

0.2953

0,3691

0,2307

0,0769

0,0769

0,0154

0,0031

0,0031

0,0031

P

0,0100

0,8500

0,1500

0

0

0

0

0

0

вероятность наличия очереди 0.3076062640

вероятность занятости всех узлов системы 0.6152125280

среднее число требований в системе 2.1667016219

средняя длина очереди 0.8202833706

среднее число свободных узлов 1.2919463087

среднее число занятых узлов 0.7080536913

среднее время ожидания начала обслуживания 0.1367138951

program Lab1;

{$APPTYPE CONSOLE}

Type

vector=array[1..11] of real;

massiv=array[1..11] of vector;

fft=string[20];

ffs=TextFile;

ft=array[1..7] of ffs;

const m=4;

Var

p,p1:vector;

t,lam,mu,Po,Ps,suma:real;

qq:real;

kkk,xx,xx1:integer;

yy,yy1:array[1..7] of integer;

r,Reg,Grm,j,i,n,k,l,lll:integer;

Kbp1,ush,pot,rr,Kbp,Kbg,Kbg1,Kbgg,Kbpp,s,h,a,b:real;

y,y1,y2:vector;

Trem,Tpodg,Tpol,Nar,Npvo,LamV,Prem,Pbp:real;

Toj:real;

//AA,lam:massiv;

st:string[2];

stt:string[6];

stt1:string[6];

f,f1,f2,f3:textFile;

fn2,fn1,fn,fn3:string[20];

ff1,ff2,ff3,ff4,ff5,ff6,ff7:text;

ffn:array[1..7] of fft;

procedure lv(x: real; n: integer; a: vector; var b: vector);

var i: integer;

begin

for i:=1 to N do b[i]:=0.0; for i:=1 to n do b[i]:=x*a[i];

end;

procedure sv(n:integer; a,b: vector; var c: vector);

var i,j: integer;

begin

for i:=1 to n do c[i]:=0.0; for i:=1 to n do c[i]:=a[i]+b[i];

end;

procedure tm(n,m: integer; a:massiv; var b:massiv);

var i,j: integer;

begin

for i:=1 to n do for j:=1 to m do b[i,j]:=0.0;

for i:=1 to n do for j:=1 to n do b[i,j]:=a[j,i];

end;

procedure pmv(n,k: integer; a: massiv; b: vector; var c: vector);

var i,j: integer;

begin

for i:=1 to n do c[i]:=0.0;

for i:=1 to n do for j:=1 to n do c[i]:=c[i] +a[i,j]*b[j];

end;

procedure fpr1(n: integer; p: vector; var pp: vector); //n=2; m=4; k=3,6/ begin number with 1;7

begin

//pmv(n,n,lam,p,pp);

pp[1]:=-lam * P[1] + mu* P[2];

pp[2]:= lam * P[1] - (lam + mu)*P[2] + 2* mu* P[3];

pp[3]:= lam * P[2] - (lam + 2* mu) * P[3] + 2* mu* P[4];

pp[4]:= lam * P[3] - (lam + 2* mu) * P[4] + 2* mu*P[5];

pp[5]:= lam * P[4] - (lam + 2* mu) * P[5] + 2* mu*P[6];

pp[6]:= lam * P[5] - (lam + 2* mu) * P[6] + 2* mu*P[7];

pp[7]:= lam * P[6] - (lam + 2* mu) * P[7] + 2* mu*P[8];

pp[8]:= lam * P[7] - 2*mu*P[8];

end;

procedure euler(n: integer; h: real; p:vector; var p1: vector);

var k,k1,k2,k3,k4,pp: vector;

i,j: integer; s: real;

begin

fpr1(n,p,pp);

for i:=1 to 8 do

begin

p1[i]:=p[i]+pp[i]*h;

end;

end;

function step(a:Real;k:Integer):Real;

var i:Integer;

begin

if k=0 then step:=1;

if k=1 then step:=a;

if k>1 then for i:=1 to k-1 do step:=a*a;

end;

function fact(a:Integer):Integer;

var i,t:Integer;

begin

t:=1;

if a>0 then for i:=1 to a do t:= i*t;

fact:=t;

end;

function sum(a:Real;k:Integer):Real;

var i:Integer; s:Real;

begin

for i:=0 to k do

s:=s+step(a,i)/fact(i);

sum:=s;

end;

{********************************************************************************************************}

begin {main}

fn1:='rezult.txt';

assignFile(ff1,fn1); rewrite(ff1);

n:=4;

Lam:=15;

mu:=3;

p[1]:=1.0;

for i:=2 to 7 do

p[i]:=0.0;

//eioaa?e?iaaiea

t:=0.0;

h:=0.01;

Writeln(ff1,'__________________________________________');

for i:=1 to 1000 do

begin

t:=t+h;

euler(n+m+1,h,p,p1);

p:=p1;

//if (t>0.9) then

writeln(ff1,t:10:8,' ',p1[1]:10:8,' ',p1[2]:10:8,' ',p1[3]:10:8,' ',p1[4]:10:8,' ',p1[5]:10:8,' ',

p1[6]:10:8,' ',p1[7]:10:8,' ',p1[8]:10:8);

//readln;

end;

Writeln(ff1,'__________________________________________');

Writeln(ff1,'Aa?iyoiinoe ninoiyiee');

//Po:=1/(sum(lam/mu,n-1)+(step(lam/mu,n-1)/fact(n-1))*((lam/mu/(n-1)-step(lam/mu/(n-1),m+1))/(1-lam/mu/(n-1))));

Po:=1/(sum(lam/(n*mu),n-1)+(step(lam/(n*mu),n)/fact(n-1)/(n-lam/(n*mu))));

//Writeln(ff1,Po:20:10);

for i:=0 to n-1 do

begin

Ps:=(step(lam/(n*mu),i)/fact(i))*Po;

Writeln(ff1,i,Ps:20:10);

end;

for i:=n to n+m do

begin

Ps:=(step(lam/(n*mu),i)/fact(n-1)/step(5,i-n))*Po;

Writeln(ff1,i,Ps:20:10);

end;

Writeln(ff1,'aa?iyoiinou iaee?ey i?a?aae '); Writeln(ff1,( step(lam/(n*mu),3)/fact(2)/(2-lam/(n*mu))*Po ):20:10);

Writeln(ff1,'aa?iyoiinou caiyoinoe anao oceia nenoaiu '); Writeln(ff1,( step(lam/(n*mu),2)/fact(1)/(2-lam/(n*mu))*Po ):20:10);

Writeln(ff1,'n?aaiaa ?enei o?aaiaaiee a nenoaia '); Writeln(ff1,Po*(lam/(n*mu)* sum(lam/(n*mu),5)+step(lam/(n*mu),3)*(2+1-lam/(2*mu))/fact(1)/step(2-lam/(2*mu),2) ):20:10);

Writeln(ff1,'n?aaiyy aeeia i?a?aae '); Writeln(ff1,( Po*step(lam/(n*mu),3)/fact(1)/step(2-lam/(n*mu),2)):20:10);

suma:=0;

for k:=1 to 2 do suma:=suma+k*(step(lam/(n*mu),k)/fact(2-k));

Writeln(ff1,'n?aaiaa ?enei naiaiaiuo oceia'); Writeln(ff1,( suma*Po ):20:10);

Writeln(ff1,'n?aaiaa ?enei caiyouo oceia'); Writeln(ff1,( 2-suma*Po ):20:10);

Writeln(ff1,'n?aaiaa a?aiy i?eaaiey ia?aea ianeo?eaaiey'); Writeln(ff1,( step(lam/(n*mu),2)/(k*mu*fact(1)*step(2-lam/(n*mu),2))*Po ):20:10);

CloseFile(FF1);

end.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
 
Предметы
Банковское дело
Бухучет и аудит
География
Журналистика
Информатика
История
Культурология
Литература
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Охрана труда
Педагогика
Политология
Право
Психология
Религиоведение
Сельское хозяйство
Социология
Спорт
Техника
Товароведение
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее