3%
this is a difficult sparse LDMX model
4model = Network(
'model');
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');
19jobclass{1} = ClosedClass(model,
'ClosedClass', 3, node{1}, 0);
20jobclass{2} = OpenClass(model,
'OpenClass', 0);
23 node{i}.setService(
jobclass{1}, Exp(i));
24 node{i}.setService(
jobclass{2}, Exp(sqrt(i)));
27source.setArrival(
jobclass{2}, Exp(0.3));
29M = model.getNumberOfStations();
30K = model.getNumberOfClasses();
32P = model.initRoutingMatrix;
34P{1,1} = Network.serialRouting(node{1},node{2},node{3},node{4});
37P{2,2} = Network.serialRouting(source,node{1},node{2},node{3},node{5},sink);
41options = Solver.defaultOptions;
47optionssa = options; optionssa.cutoff = Inf;
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
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);
61 fprintf(1,
'SOLVER: %s\n',solver{s}.getName());
62 AvgTable{s} = solver{s}.getAvgTable();