1function W=polling_qsys_exhaustive(arvMAPs,svcMAPs,switchMAPs)
2% W=polling_qsys_exhaustive(arvMAPs,svcMAPs,switchMAPs)
4% Exact mean waiting time solution of a polling system with open arrivals.
5% All queues use exhaustive service.
7% Takagi, ACM Computing Surveys, Vol. 20, No. 1, March 1988, eq (15)
10% W=polling_qsys_exhaustive({map_exponential(1/0.6),map_exponential(1/0.2)},{map_exponential(1),map_exponential(1)},{map_exponential(1),map_exponential(1)})
13n = length(arvMAPs); % number of
classes
15 lambda(i) = map_lambda(arvMAPs{i});
16 b(i) = map_mean(svcMAPs{i});
17 b2(i) = map_moment(svcMAPs{i},2);
18 rho1(i) = lambda(i)*b(i);
19 r1(i) = map_mean(switchMAPs{i});
20 delta2(i) = map_var(switchMAPs{i});
25% station time method Ferguson and Aminetzah 1985 as reported by Takagi
26W=exhaustive(n,rho,delta2,lambda,b2,rho1,R);
29function W=exhaustive(n,rho,delta2,lambda,b2,rho1,r)
38 t1((j - 1) * n + m) = t1((j - 1) * n + m) - 1;
41 t1((j - 1) * n + m) = t1((j - 1) * n + m) - 1;
44 t1((m - 1) * n + j) = t1((m - 1) * n + j) - 1;
46 t1((i - 1) * n + j) = t1((i - 1) * n + j) + ((1 - rho1(i)) / rho1(i));
52 for m = (i + 1):(j - 1)
53 t1((j - 1) * n + m) = t1((j - 1) * n + m) - 1;
56 t1((m - 1) * n + j) = t1((m - 1) * n + j) - 1;
59 t1((m - 1) * n + j) = t1((m - 1) * n + j) - 1;
61 t1((i - 1) * n + j) = t1((i - 1) * n + j) + ((1 - rho1(i)) / rho1(i));
67 t1((i - 1) * n + i) = t1((i - 1) * n + i) + 1;
70 t1((i - 1) * n + m) = t1((i - 1) * n + m) - (rho1(i) / (1 - rho1(i)));
76 temp = temp + ((delta2(i - 1)) / (1 - rho1(i))^2);
78 temp = temp + ((delta2(n)) / (1 - rho1(i))^2);
80 temp = temp + (lambda(i) * b2(i) * r * (1 - rho1(i)) / ((1 - rho) * ((1 - rho1(i))^3)));
93 temp = temp + (lambda(i) * b2(i)) / (2 * (1 - rho1(i)));
94 temp = temp + r * (1 - rho1(i)) / (2 * (1 - rho));
98 sum = sum +
final((i - 1) * n + j);
101 sum = sum * ((1 - rho1(i)) / rho1(i));
103 sum = sum + delta2(i - 1);
105 sum = sum + delta2(n);
107 sum = sum / (r * (1 - rho1(i)) * 2 / (1 - rho));