1function W=polling_qsys_gated(arvMAPs,svcMAPs,switchMAPs)
2% W=polling_qsys_gated(arvMAPs,svcMAPs,switchMAPs)
4% Exact mean waiting time solution of a polling system with open arrivals.
5% All queues use gated service.
7% Takagi, ACM Computing Surveys, Vol. 20, No. 1, March 1988, eq (20)
10% W=polling_qsys_gated({map_exponential(1/0.6),map_exponential(1/0.2)},{map_exponential(1),map_exponential(1)},{map_exponential(1),map_exponential(1)})
12n = length(arvMAPs); % number of
classes
14 lambda(i) = map_lambda(arvMAPs{i});
15 b(i) = map_mean(svcMAPs{i});
16 b2(i) = map_moment(svcMAPs{i},2);
17 rho1(i) = lambda(i)*b(i);
18 r1(i) = map_mean(switchMAPs{i});
19 delta2(i) = map_var(switchMAPs{i});
23% station time method Ferguson and Aminetzah 1985 as reported by Takagi
24W=gated(n,rho,delta2,lambda,b2,rho1,r);
27function W=gated(n,rho,delta2,lambda,b2,rho1,r)
44 t1((i-1)*n + j) = 1 / rho1(i);
58 t1((i-1)*n + j) = 1 / rho1(i);
63 t1((i-1)*n + i) = t1((i-1)*n + i) + 1;
66 t1((i-1)*n + m) = -rho1(i);
70 t1((m-1)*n + i) = t1((m-1)*n + i)-(rho1(i)^2);
73 temp = delta2(i) + lambda(i) * b2(i) * r / (1 - rho);
78final = linsolve(lst1, lst2);
82 temp = (1 + rho1(i)) * r / (2 * (1 - rho));
86 sum = sum +
final((i-1)*n + j);
89 sum = sum * (1 / rho1(i));
91 sum = sum +
final((j-1)*n + i);
93 temp = temp + (1 - rho) * (1 + rho1(i)) * sum / (2 * r);