3 % @file pfqn_mvaldmx_ec.m
4 % @brief Compute effective capacity terms
for MVALDMX solver.
10 % @brief Compute effective capacity terms
for MVALDMX solver.
11 % @fn pfqn_mvaldmx_ec(lambda, D, mu)
12 % @param lambda Arrival rate vector.
13 % @param D Service demand matrix.
14 % @param mu Load-dependent rate matrix.
15 % @
return EC Effective capacity matrix.
16 % @
return E E-function values.
17 % @
return Eprime E-prime function values.
18 % @
return Lo Open
class load vector.
21function [EC,E,Eprime,Lo] = pfqn_mvaldmx_ec(lambda,D,mu)
22% [EC,E,EPRIME,LO] = PFQN_MVALDMX_EC(LAMBDA,D,MU)
23% Compute the effective capacity terms in MVALDMX
24% Think times are not handled since
this assumes limited load-dependence
26%Nt = sum(N(isfinite(N)));
29 Lo(ist) = lambda*D(ist,:)
';
32b = zeros(M,1); % limited load dependence level
34 b(ist) = find(mu(ist,:)==mu(ist,end), 1 );
36Nt = size(mu,2); % compute extra elements if present
37mu(:,end+1:end+1+max(b)) = repmat(mu(:,end),1,1+max(b));
43Eprime = zeros(M,1+Nt);
48 F2 = zeros(1+Nt,1+b(ist)-2);
49 F3 = zeros(1+Nt,1+b(ist)-2);
51 E2prime = zeros(1+Nt);
52 F2prime = zeros(1+Nt,1+b(ist)-2);
55 E(ist,1+n) = 1 / (1-Lo(ist)*C(ist,b(ist)))^(n+1);
56 % Ever(i,1+n) = 1 / (1-Lo(i)*C(i,b(i)))^(n+1);
57 Eprime(ist,1+n) = C(ist,b(ist))*E(ist,1+n);
61 E1(1+n) = 1 / (1-Lo(ist)*C(ist,b(ist)));
63 E1(1+n) = E1(1+n) * C(ist,j) / C(ist,b(ist));
66 E1(1+n) = 1 / (1-Lo(ist)*C(ist,b(ist))) * C(ist,b(ist)) / C(ist,n) * E1(1+(n-1));
74 F2(1+n,1+n0) = (n+n0)/n0 * Lo(ist) * C(ist,n+n0) * F2(1+n,1+(n0-1));
79 E2(1+n) = sum(F2(1+n,1+(0:b(ist)-2)));
86 F3(1+n,1+n0) = F3(1+n,1+n0) * C(ist,j) / C(ist,b(ist));
88 elseif n > 0 && n0 == 0
89 F3(1+n,1+n0) = C(ist,b(ist)) / C(ist,n) * F3(1+(n-1),1+0);
91 F3(1+n,1+n0) = (n+n0)/n0 * Lo(ist) * C(ist,b(ist)) * F3(1+n,1+(n0-1));
96 E3(1+n) = sum(F3(1+n,1+(0:b(ist)-2)));
101 F2prime(1+n,1+n0) = C(ist,n+1);
103 F2prime(1+n,1+n0) = (n+n0)/n0 * Lo(ist) * C(ist,n+n0+1) * F2prime(1+n,1+(n0-1));
108 E2prime(1+n) = sum(F2prime(1+n,1+(0:(b(ist)-2))));
110 % finally, compute E, Eprime, and EC
111 E(ist,1+n) = E1(1+n) + E2(1+n) - E3(1+n);
113 Eprime(ist,1+n) = C(ist,b(ist)) * E1(1+n) + E2prime(1+n) - C(ist,b(ist)) * E3(1+n);
115 Eprime(ist,1+n) = C(ist,b(ist)) * E(ist,1+n);
118 % Ever(i,1+n) = C(i,b(i))^(n+1-b(i)) / (1-Lo(i)*C(i,b(i)))^(n+1) * prod(C(i,(n+1):(b(i)-1)));
119 % for n0 = 0:(b(i)-2)
120 % Ever(i,1+n) = Ever(i,1+n) + nchoosek(n+n0,n0) * Lo(i)^n0 * (prod(C(i,(n+1):(n+n0)))-C(i,b(i))^(n0+n+1-b(i))*prod(C(i,(n+1):(b(i)-1))));
123 % %% verification2 of E
127 % C(i,n+n0+1) = 1/mu(i,b(i));
129 % Ever(i,1+n) = Ever(i,1+n) +nchoosek(n+n0,n0) * Lo(i)^n0 * prod(C(i,(n+1):(n+n0)));
131 % %% verification of Eprime
132 % Eprimever(i,1+n) = 0;
135 % C(i,n+n0+1) = 1/mu(i,b(i));
137 % Eprimever(i,1+n) = Eprimever(i,1+n) +nchoosek(n+n0,n0) * Lo(i)^n0 * prod(C(i,(n+1):(n+n0+1)));
140 % Eprime = Eprimever;
141 % EC not defined for n=0
144 % EC(i,n) = C(i,b(i)) / (1-Lo(i)*C(i,b(i)));
146 EC(ist,n) = C(ist,n) * E(ist,1+n) / E(ist,1+(n-1));