LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
mqn_multiserver_ps.m
1clear node jobclass solver AvgTable
2
3
4% this is a difficult sparse LDMX model
5model = Network('model');
6
7node{1} = Queue(model, 'Queue1', SchedStrategy.PS);
8node{1}.setNumberOfServers(1);
9node{2} = Queue(model, 'Queue2', SchedStrategy.PS);
10node{2}.setNumberOfServers(2);
11node{3} = Queue(model, 'Queue3', SchedStrategy.PS);
12node{3}.setNumberOfServers(3);
13node{4} = Queue(model, 'Queue4', SchedStrategy.PS); % only closed classes
14node{4}.setNumberOfServers(4);
15node{5} = Queue(model, 'Queue5', SchedStrategy.PS); % only open classes
16node{5}.setNumberOfServers(5);
17source = Source(model,'Source');
18sink = Sink(model,'Sink');
19
20jobclass{1} = ClosedClass(model, 'ClosedClass', 3, node{1}, 0);
21jobclass{2} = OpenClass(model, 'OpenClass', 0);
22
23for i=1:5
24 node{i}.setService(jobclass{1}, Exp(i));
25 node{i}.setService(jobclass{2}, Exp(sqrt(i)));
26end
27
28source.setArrival(jobclass{2}, Exp(0.3));
29
30M = model.getNumberOfStations();
31K = model.getNumberOfClasses();
32
33P = model.initRoutingMatrix;
34P{1,1} = zeros(M+1);
35P{1,1} = Network.serialRouting(node{1},node{2},node{3},node{4});
36P{1,2} = zeros(M+1);
37P{2,1} = zeros(M+1);
38P{2,2} = Network.serialRouting(source,node{1},node{2},node{3},node{5},sink);
39
40model.link(P);
41%%
42options = Solver.defaultOptions;
43options.keep=false;
44options.verbose=1;
45options.cutoff = 3;
46options.seed = 23000;
47%options.samples=2e4;
48optionssa = options; optionssa.cutoff = Inf;
49
50mam_options = MAM.defaultOptions;
51mam_options.seed = 23000;
52mam_options.keep=false;
53mam_options.verbose=1;
54
55disp('This example shows the execution of the solver on a 2-class mixed model with 5 multi-server nodes.')
56% This part illustrates the execution of different solvers
57solver={};
58solver{end+1} = CTMC(model,options); % CTMC is infinite on this model
59solver{end+1} = JMT(model,'samples',1e5, 'seed', 23000);
60solver{end+1} = MVA(model,'exact');
61solver{end+1} = DES(model,'samples',1e5, 'seed', 23000);
62%solver{end+1} = NC(model,options);
63%solver{end+1} = MAM(model,mam_options);
64for s=1:length(solver)
65 fprintf(1,'SOLVER: %s\n',solver{s}.getName());
66 AvgTable{s} = solver{s}.getAvgTable();
67 AvgTable{s}
68end