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