1%{ @file qbd_setupdelayoff.m
2 % @brief Queue-length analysis
for system with setup delay and turn-off
4 % @author LINE Development Team
8 % @brief Analyzes queue length
for system with setup and turn-off phases
11 % This function performs queue-length analysis
for a queueing system with
12 % setup delay and turn-off periods
using QBD methods.
16 % QN = qbd_setupdelayoff(lambda, mu, alpharate, alphascv, betarate, betascv)
21 % <tr><th>Name<th>Description
22 % <tr><td>lambda<td>Arrival rate
23 % <tr><td>mu<td>Service rate
24 % <tr><td>alpharate<td>Rate of setup delay phase
25 % <tr><td>alphascv<td>Squared coefficient of variation
for setup delay
26 % <tr><td>betarate<td>Rate of turn-off phase
27 % <tr><td>betascv<td>Squared coefficient of variation for turn-off period
32 % <tr><th>Name<th>Description
33 % <tr><td>QN<td>Average queue length
36function QN = qbd_setupdelayoff(lambda, mu, alpharate, alphascv, betarate, betascv)
38alpha = APH.fitMeanAndSCV(1/alpharate, alphascv).getProcess;
41beta = APH.fitMeanAndSCV(1/betarate, betascv).getProcess;
45F = zeros(n); % forward transitions
46B = zeros(n); % backward transitions
51 F(na+i,na+1) = lambda;
56L = zeros(n); % local transitions
58 L(i,i) = alpha{1}(i,i) -lambda;
60 L(i,(i+1):na) = alpha{1}(i,(i+1):na);
62 L(na,na+1) = -alpha{1}(end,end);
65L(na+1,na+1) = -mu -lambda;
67 L(na+i,na+i) = -lambda;
71L0 = zeros(2); % initial block
72L0(2,1) = beta{2}(1,1);
74L0(2,2) = -beta{2}(1,1) -lambda;
76L0 = zeros(na+nb); % local transitions
81 L0(na+i,na+i) = beta{1}(i,i) - lambda;
83 L0(na+i,1) = -beta{1}(i,i);
85 L0(na+i,na+i+1) = -beta{1}(i,i);
90[~,R,~] = QBD_CR(B,L,F);
93QN = 0; % queue-lengths
98 QN = QN + ni*sum(pn(j:(j+n)));