Граф состояния системы с ограниченным временем ожидания
Из графа состояния составляем уравнения Колмогорова:
Средняя длина очереди определяется по формуле:
,
где - среднее число заявок, поступающих в систему за время обслуживания одной заявки;
- максимальная длина очереди.
Среднее время ожидания в очереди со средней длиной очереди:
.
Среднее число заявок в системе:
.
Среднее число пребывания в системе:
.
Прибыль в зависимости от числа каналов выражается в следующем виде:
,
где - число заявок в n – канальной системе за все время работы;
- среднее время пребывания в системе.
Алгоритм решения системы в MATLAB:
L=65/3600; to=0.72*60; % приведение к масштабу в секундах
M=1/to; dt=5e0; t=[0:dt:5000*dt]';
u=1e-12+1e-12*sin(t/5);
m=2.6*365*12*3600; %[c]– планируемый срок эксплуатации системы
w=121; %[руб/заявка] – прибыль от обслуженной заявки
A=155000; %[руб/ канал] – инвестиции в 1 канал
a=5500; %[руб/день?канал] – экспл.затраты на 1 канал в день
b=102; %[руб/заявка] – текущие экспл.расходы на 1 заявк
C=7200; %[руб/место] - инвестиции в 1 место очереди
|
|
X=2500; %[руб/час/место] – экспл.затраты на поддерж.1 места в очереди
r=5; %максимальное число заявок в очереди
n=1; %количество каналов системы
p=L*to; %приведенная интенсивность потока заявок
while n<6
sm=1+p^n/factorial(n)*(1-(p/n)^(r+1))/(1-p/n);
for i=1:n-1 sm=sm+p^i/factorial(i); end
p0(n)=1/sm;
for i=1:n P(i,n)=p0(n)*p^i/factorial(i); end
for i=n+1:n+r P(i,n)=p0(n)*p^(i)/factorial(n)/n^(i-n); end
zo(n)=p0(n)*p^(n+1)/n/factorial(n)/(1-p/n)^2*(1-(r+1)*(p/n)^r+r*(p/n)^(r+1));
ver(n)=p0(n);
for i=1:n+r ver(n)=ver(n)+P(i,n); end
Potk=p0(n)*p^(n+r)/n^r/factorial(n);
zob(n)=p0(n)*(p^n/factorial(n-1)*(1-(p/n)^(r-1))/(1-(p/n)));
for i=1:n-1 zob(n)=zob(n)+p0(n)*p^(i)/factorial(i-1); end
wob(n)=zob(n)/L;
wo(n)=zo(n)/L; wc(n)=wob(n)+wo(n);
N(n)=m/wc(n);
Pr(n)=N(n)*(w-b)-(A+a*m/3600/24)*n-X*zo(n)*m/3600-C*r;
n=n+1;
end
t1=[1:1:6];
figure(1); plot(t1,Pr,'b','LineWidth',3),grid;
figure(2); plot(t1,wc,'b','LineWidth',3),grid;
nm=1;Prmax=Pr(1);for i=1:n-1 if Pr(i)>Prmax Prmax=Pr(i);nm=i;end;end
Wmin=((A+a*m/3600/12)*nm+X*zo(nm)*m/3600+C*r+N(nm)*b)/N(nm) %миним стоим обслуж заявки
%расчет параметров оптимальной системы
n=nm;
sm=1+p^n/factorial(n)*(1-(p/n)^(r+1))/(1-p/n);
for i=1:n-1 sm=sm+p^i/factorial(i); end
p0(n)=1/sm
for i=1:n P(i,n)=p0(n)*p^i/factorial(i); end
for i=n+1:n+r P(i,n)=p0(n)*p^(i)/factorial(n)/n^(i-n);
end
zo(n)=p0(n)*p^(n+1)/n/factorial(n)/(1-p/n)^2*(1-(r+1)*(p/n)^r+r*(p/n)^(r+1))
ver(n)=p0(n);
for i=1:n+r ver(n)=ver(n)+P(i,n); end
ver(n)
Potk=p0(n)*p^(n+r)/n^r/factorial(n)
zob(n)=p0(n)*(p^n/factorial(n-1)*(1-(p/n)^(r-1))/(1-(p/n)));
for i=1:n-1 zob(n)=zob(n)+p0(n)*p^(i)/factorial(i-1); end
zob(n)
wob(n)=zob(n)/L
wo(n)=zo(n)/L; wc(n)=wob(n)+wo(n)
zc=zob(n)+zo(n)
N(n)=m/wc(n);
Pr(n)=N(n)*(w-b)-(A+a*m/3600/24)*n-X*zo(n)*m/3600-C*r
A=[-L M 0 0 0 0;L -(M+L) 2*M 0 0 0;0 L -(2*M+L) 3*M 0 0;0 0 L -(3*M+L) 3*M 0;0 0 0 L -(3*M+L) 3*M;0 0 0 0 0 L 3*M];
po=[1;0;0;0;0;0]; B=[0;0;0;0;0;0];
C=[1 0 0 0 0 0;
0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 1 0 0;
0 0 0 0 1 0;
0 0 0 0 0 1];
n1=6; for i=1:n1
for j=1:n1 if i==j C(i,j)=1;
else C(i,j)=0;end
end;end
plant=ss(A,B,C,0);
[y,x]=lsim(plant,u,t,po);
Poo=y(:,3);
Pnr=y(:,6);
h1=1-Pnr;
figure(3); plot(t/60,Poo,'b','LineWidth',3),grid;
figure(4); plot(t/60,Pnr,'b','LineWidth',3),grid;
figure(5); plot(t/60,h1,'b','LineWidth',3),grid;
Wmin = 119.9077
p0 = 0.2669 0.4392 0.4564 0.4582 0.4584 0.4584
zo = 1.3207 0.1349 0.0170 0.0021 0.0002 0.0000
ans = 1
Potk = 4.2889e-005
ans = 0.7793
wob = 33.0074 42.6720 43.1636 43.1972 43.1998 43.2000
|
|
wc = 106.1559 50.1440 44.1076 43.3148 43.2132 43.2013
zc = 0.7964
Pr = 1.0e+007 *
-3.3064 0.6128 0.8845 0.6828 0.4159 0.1405
A =
-0.0181 0.0231 0 0 0 0
0.0181 -0.0412 0.0463 0 0 0
0 0.0181 -0.0644 0.0694 0 0
0 0 0.0181 -0.0875 0.0694 0
0 0 0 0.0181 -0.0875 0.0694
0 0 0 0 0.0181 -0.0875
График среднего времени пребывания заявки в системе
График вероятности простоя
График готовности
График вероятности отказа в обслуживании