3 % @file pfqn_sens_ldmx_ec.m
4 % @brief Effective capacity terms of
the mixed load-dependent MVA together
5 % with their exact derivatives with respect to
the open-
class load.
11 % @brief Computes
the effective capacity terms EC, E and Eprime of
the mixed
12 % load-dependent MVA of Bruell-Balbo-Afshari, exactly as pfqn_ldmx_ec
13 % does, and additionally their exact analytic derivatives with respect
14 % to
the open-
class load Lo(i) of each station.
16 % Lo(i) = sum_r lambda(r)*D(i,r)
is the only channel through which a
17 % service demand enters E, Eprime and EC:
the load-dependent rates mu
18 % are independent of
the demands.
Station i
's terms depend on Lo(i)
19 % alone, so a single derivative per station is enough, and the chain
20 % rule then yields the derivative with respect to any demand-scaling
21 % parameter. This is the factorization behind equations (19), (21) and
22 % (24)-(31) of the reference, which are reproduced here term by term.
24 % Reference: I. F. Akyildiz and J. C. Strelen, "Moment Analysis for
25 % Load-Dependent Mixed Product Form Queueing Networks", IEEE Trans.
26 % Communications 39(6):828-832, 1991.
28 % @fn pfqn_sens_ldmx_ec(lambda, D, mu)
29 % @param lambda Arrival rate vector (1 x R). Zero for closed classes.
30 % @param D Service demand matrix (M x R).
31 % @param mu Load-dependent rate matrix (M x Nt), limited load dependence.
32 % @return EC Effective capacity matrix (M x Nt).
33 % @return E E-function values (M x 1+Nt).
34 % @return Eprime E-prime function values (M x 1+Nt).
35 % @return Lo Open class load vector (M x 1).
36 % @return dEC dEC(i,n)/dLo(i), same shape as EC.
37 % @return dE dE(i,1+n)/dLo(i), same shape as E.
38 % @return dEprime dEprime(i,1+n)/dLo(i), same shape as Eprime.
41function [EC,E,Eprime,Lo,dEC,dE,dEprime] = pfqn_sens_ldmx_ec(lambda,D,mu)
42% [EC,E,EPRIME,LO,DEC,DE,DEPRIME] = PFQN_SENS_LDMX_EC(LAMBDA,D,MU)
46 Lo(ist) = lambda*D(ist,:)';
49b = zeros(M,1); % limited load dependence level
51 b(ist) = find(mu(ist,:)==mu(ist,end), 1 );
54mu(:,end+1:end+1+max(b)) = repmat(mu(:,end),1,1+max(b));
59Eprime = zeros(M,1+Nt);
62dEprime = zeros(M,1+Nt);
68 den = 1 - Lo_i*Cb; % geometric tail
factor of
the limited load dependence
70 E1 = zeros(1,1+Nt); dE1 = zeros(1,1+Nt);
71 E2 = zeros(1,1+Nt); dE2 = zeros(1,1+Nt);
72 E3 = zeros(1,1+Nt); dE3 = zeros(1,1+Nt);
73 E2prime = zeros(1,1+Nt); dE2prime = zeros(1,1+Nt);
74 F2 = zeros(1+Nt,1+max(0,bi-2)); dF2 = zeros(1+Nt,1+max(0,bi-2));
75 F3 = zeros(1+Nt,1+max(0,bi-2)); dF3 = zeros(1+Nt,1+max(0,bi-2));
76 F2prime = zeros(1+Nt,1+max(0,bi-2)); dF2prime = zeros(1+Nt,1+max(0,bi-2));
80 % E(n) = 1/den^(n+1) => dE/dLo = (n+1)*Cb/den^(n+2)
81 E(ist,1+n) = 1 / den^(n+1);
82 dE(ist,1+n) = (n+1)*Cb / den^(n+2);
83 Eprime(ist,1+n) = Cb*E(ist,1+n);
84 dEprime(ist,1+n) = Cb*dE(ist,1+n);
86 %% E1 and its derivative, eq. (25)-(26)
89 dE1(1+n) = Cb / den^2;
91 E1(1+n) = E1(1+n) * C(ist,j) / Cb;
92 dE1(1+n) = dE1(1+n) * C(ist,j) / Cb;
96 E1(1+n) = (1/den) * fac * E1(1+(n-1));
97 dE1(1+n) = (Cb/den^2) * fac * E1(1+(n-1)) + (1/den) * fac * dE1(1+(n-1));
100 %% F2 and its derivative, eq. (27)-(28)
106 coef = (n+n0)/n0 * C(ist,n+n0);
107 F2(1+n,1+n0) = coef * Lo_i * F2(1+n,1+(n0-1));
108 dF2(1+n,1+n0) = coef * (F2(1+n,1+(n0-1)) + Lo_i*dF2(1+n,1+(n0-1)));
111 E2(1+n) = sum(F2(1+n,1+(0:bi-2)));
112 dE2(1+n) = sum(dF2(1+n,1+(0:bi-2)));
114 %% F3 and its derivative, eq. (29)-(30)
119 F3(1+n,1+n0) = F3(1+n,1+n0) * C(ist,j) / Cb;
122 elseif n > 0 && n0 == 0
124 F3(1+n,1+n0) = fac * F3(1+(n-1),1+0);
125 dF3(1+n,1+n0) = fac * dF3(1+(n-1),1+0);
127 coef = (n+n0)/n0 * Cb;
128 F3(1+n,1+n0) = coef * Lo_i * F3(1+n,1+(n0-1));
129 dF3(1+n,1+n0) = coef * (F3(1+n,1+(n0-1)) + Lo_i*dF3(1+n,1+(n0-1)));
132 E3(1+n) = sum(F3(1+n,1+(0:bi-2)));
133 dE3(1+n) = sum(dF3(1+n,1+(0:bi-2)));
135 %% F2prime and its derivative
138 F2prime(1+n,1+n0) = C(ist,n+1);
139 dF2prime(1+n,1+n0) = 0;
141 coef = (n+n0)/n0 * C(ist,n+n0+1);
142 F2prime(1+n,1+n0) = coef * Lo_i * F2prime(1+n,1+(n0-1));
143 dF2prime(1+n,1+n0) = coef * (F2prime(1+n,1+(n0-1)) + Lo_i*dF2prime(1+n,1+(n0-1)));
146 E2prime(1+n) = sum(F2prime(1+n,1+(0:(bi-2))));
147 dE2prime(1+n) = sum(dF2prime(1+n,1+(0:(bi-2))));
149 % E = E1 + E2 - E3, eq. (23)-(24)
150 E(ist,1+n) = E1(1+n) + E2(1+n) - E3(1+n);
151 dE(ist,1+n) = dE1(1+n) + dE2(1+n) - dE3(1+n);
153 Eprime(ist,1+n) = Cb * E1(1+n) + E2prime(1+n) - Cb * E3(1+n);
154 dEprime(ist,1+n) = Cb * dE1(1+n) + dE2prime(1+n) - Cb * dE3(1+n);
156 Eprime(ist,1+n) = Cb * E(ist,1+n);
157 dEprime(ist,1+n) = Cb * dE(ist,1+n);
162 % EC(n) = C(n)*E(n)/E(n-1), eq. (19); quotient rule
for the derivative
164 EC(ist,n) = C(ist,n) * E(ist,1+n) / E(ist,1+(n-1));
165 dEC(ist,n) = C(ist,n) * (dE(ist,1+n)*E(ist,1+(n-1)) - E(ist,1+n)*dE(ist,1+(n-1))) ...