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