1function W=polling_qsys_decrementing(arvMAPs,svcMAPs,switchMAPs)
2% W=polling_qsys_decrementing(arvMAPs,svcMAPs,switchMAPs)
4% Exact mean waiting time solution of a symmetric polling system with open
5% (Poisson) arrivals and decrementing (semiexhaustive) service. The server
6% serves a queue until
the number of jobs present drops to one less than
the
7% number found at
the polling instant.
9% Pittel (1973); Takagi (1984). See Takagi, ACM Computing Surveys, Vol. 20,
10% No. 1, March 1988, eq (28). No exact closed form
for the individual E[W_i]
11%
is known
for asymmetric decrementing systems, so
this analysis
is restricted
12% to
the symmetric
case.
15% W=polling_qsys_decrementing({map_exponential(1/0.4),map_exponential(1/0.4)},{map_exponential(1),map_exponential(1)},{map_exponential(0.1),map_exponential(0.1)})
17n = length(arvMAPs); % number of classes
18lambda = zeros(1,n); b = zeros(1,n); b2 = zeros(1,n);
19r1 = zeros(1,n); delta2 = zeros(1,n);
21 lambda(i) = map_lambda(arvMAPs{i});
22 b(i) = map_mean(svcMAPs{i});
23 b2(i) = map_moment(svcMAPs{i},2);
24 r1(i) = map_mean(switchMAPs{i});
25 delta2(i) = map_var(switchMAPs{i});
28% The exact result of Takagi (1984)
requires a symmetric system.
31 if reldiff(lambda(i),lambda(1)) > tol || reldiff(b(i),b(1)) > tol || ...
32 reldiff(b2(i),b2(1)) > tol || reldiff(r1(i),r1(1)) > tol || ...
33 reldiff(delta2(i),delta2(1)) > tol
34 line_error(mfilename,['MVA analysis for decrementing polling
is only ' ...
35 'available for symmetric systems (identical arrival, service and ' ...
36 'switchover parameters across all queues).']);
47denom = 2*(1 - rho - lam*r*(N - rho));
49 line_error(mfilename,'Decrementing polling system
is unstable: rho + lambda*r*(N-rho) >= 1.');
53 residualSwitchover = d2/(2*r);
55 residualSwitchover = 0;
58Wval = residualSwitchover + ...
59 (N*lam*b2s*(1 - lam*r) + (r + lam*d2)*(N - rho)) / denom;
64function d=reldiff(a,b)
65scale = max(abs(a),abs(b));