1% Pass-and-swap (PAS) station as a multiserver order-independent (M/M/K) queue.
2% The M/M/K queue satisfies the order-independence conditions (Dorsman &
3% Gardner 2024, Sect. 2.2): with K unit-rate servers the total service rate in
4% state c
is mu(c) = min(n, K), where n
is the number of jobs. With an empty
5% swapping graph the PAS station reduces to a plain order-independent queue.
8K = 2; % number of servers
9muFun = @(c) min(numel(c(c>0)), K);
11model = Network(
'PASmmk');
12source = Source(model,
'Source');
13queue = Queue(model,
'PASQueue', SchedStrategy.PAS);
14sink = Sink(model,
'Sink');
19 jobclass{r} = OpenClass(model, sprintf(
'Class%d', r));
20 source.setArrival(
jobclass{r}, Exp(lambda(r)));
23queue.setService(muFun);
24queue.setSwapGraph(zeros(2)); % empty graph: plain order-independent queue
25queue.setNumberOfServers(K); % K servers (used
for utilization reporting)
28P = model.initRoutingMatrix;
30 P{
jobclass{r}} = Network.serialRouting(source, queue, sink);
34AvgTable = CTMC(model,
'cutoff', 4).getAvgTable