LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
test_etaqa_vs_ldes_ps.m
1% Test ETAQA PS departure process: SolverMAM dec.mmap vs SolverLDES
2%
3% Erl(3)/M/1-PS -> M/1-PS tandem
4% Compares MAM (dec.mmap with ETAQA PS departures) against LDES simulation
5
6model = Network('ETAQA-PS-Tandem');
7
8source = Source(model, 'Source');
9queue1 = Queue(model, 'Queue1', SchedStrategy.PS);
10queue2 = Queue(model, 'Queue2', SchedStrategy.PS);
11sink = Sink(model, 'Sink');
12
13oclass = OpenClass(model, 'Class1');
14source.setArrival(oclass, Erlang.fitMeanAndOrder(2, 3)); % mean=2, SCV=1/3
15queue1.setService(oclass, Exp(2)); % rho1=0.5
16queue2.setService(oclass, Exp(1.5)); % rho2=0.667
17
18model.link(Network.serialRouting(source, queue1, queue2, sink));
19
20%% Solve
21solverMMAP = SolverMAM(model, 'method', 'dec.mmap');
22T_mmap = solverMMAP.getAvgTable();
23
24solverMVA = SolverMVA(model);
25T_mva = solverMVA.getAvgTable();
26
27solverLDES = SolverLDES(model, 'seed', 23000, 'samples', 5e5);
28T_ldes = solverLDES.getAvgTable();
29
30%% Display
31fprintf('\n=== ETAQA PS: MAM vs LDES ===\n');
32fprintf('%-10s %10s %10s %10s\n', 'Station', 'LDES', 'MVA', 'dec.mmap');
33
34fprintf('--- Queue Lengths ---\n');
35for i = 1:height(T_mva)
36 stn = string(T_mva.Station(i));
37 if contains(stn, 'Queue')
38 fprintf('%-10s %10.4f %10.4f %10.4f\n', stn, ...
39 T_ldes.QLen(i), T_mva.QLen(i), T_mmap.QLen(i));
40 end
41end
42
43fprintf('--- Response Times ---\n');
44for i = 1:height(T_mva)
45 stn = string(T_mva.Station(i));
46 if contains(stn, 'Queue')
47 fprintf('%-10s %10.4f %10.4f %10.4f\n', stn, ...
48 T_ldes.RespT(i), T_mva.RespT(i), T_mmap.RespT(i));
49 end
50end
51
52fprintf('--- Utilizations ---\n');
53for i = 1:height(T_mva)
54 stn = string(T_mva.Station(i));
55 if contains(stn, 'Queue')
56 fprintf('%-10s %10.4f %10.4f %10.4f\n', stn, ...
57 T_ldes.Util(i), T_mva.Util(i), T_mmap.Util(i));
58 end
59end