LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
tut02_mg1_multiclass_solvers.m
1% Example 2: A multiclass M/G/1 queue
2GlobalConstants.setVerbose(VerboseLevel.STD);
3cwd = fileparts(mfilename('fullpath'));
4
5model = Network('M/G/1');
6source = Source(model,'Source');
7queue = Queue(model, 'Queue', SchedStrategy.FCFS);
8sink = Sink(model,'Sink');
9
10jobclass1 = OpenClass(model, 'Class1');
11jobclass2 = OpenClass(model, 'Class2');
12
13source.setArrival(jobclass1, Exp(0.5));
14source.setArrival(jobclass2, Exp(0.5));
15
16queue.setService(jobclass1, Erlang.fitMeanAndSCV(1,1/3));
17tracePath = fullfile(cwd,'example_trace.txt');
18queue.setService(jobclass2, Replayer(tracePath));
19
20% Use direct serial routing for multiclass model
21% model.link(Network.serialRouting(source,queue,sink));
22P = model.initRoutingMatrix();
23P.set(jobclass1, Network.serialRouting(source,queue,sink));
24P.set(jobclass2, Network.serialRouting(source,queue,sink));
25model.link(P);
26
27jmtAvgTable = JMT(model,'seed',23000).avgTable()
28
29queue.setService(jobclass2, Replayer(tracePath).fitAPH());
30
31% Use options struct to set nested config fields
32ctmcOptions = CTMC.defaultOptions;
33ctmcOptions.cutoff = 2;
34ctmcOptions.verbose = true;
35ctmcOptions.config.nonmkv = 'none'; % Disable automatic non-Markovian conversion
36ctmcAvgTable2 = CTMC(model, ctmcOptions).avgTable()
37
38ctmcOptions.cutoff = 4;
39ctmcAvgTable4 = CTMC(model, ctmcOptions).avgTable()
40
41mamOptions = MAM.defaultOptions;
42mamOptions.config.nonmkv = 'none';
43mamAvgTable = MAM(model, mamOptions).avgTable()