3%%clearvars -except exampleName;
4model = Network(
'model');
6node{1} = Delay(model,
'Delay');
7node{2} = Queue(model,
'Queue1', SchedStrategy.PS);
8node{3} = Queue(model,
'Queue2', SchedStrategy.PS);
10jobclass{1} = ClosedClass(model,
'Class1', 1, node{1}, 0);
11jobclass{2} = ClosedClass(model,
'Class2', 1, node{1}, 0);
13node{1}.setService(
jobclass{1}, Erlang(3,2));
14node{1}.setService(
jobclass{2}, HyperExp(0.5,3.0,10.0));
16node{2}.setService(
jobclass{1}, HyperExp(0.1,1.0,10.0));
17node{2}.setService(
jobclass{2}, MMPP2(1,2,3,4));
19node{3}.setService(
jobclass{1}, HyperExp(0.1,1.0,10.0));
20node{3}.setService(
jobclass{2}, Erlang(1,2));
22model.addLink(node{1}, node{1});
23model.addLink(node{1}, node{2});
24model.addLink(node{1}, node{3});
25model.addLink(node{2}, node{1});
26model.addLink(node{3}, node{1});
28node{1}.setProbRouting(
jobclass{1}, node{1}, 0.0)
29node{1}.setProbRouting(
jobclass{1}, node{2}, 0.3)
30node{1}.setProbRouting(
jobclass{1}, node{3}, 0.7)
31node{2}.setProbRouting(
jobclass{1}, node{1}, 1.0)
32node{3}.setProbRouting(
jobclass{1}, node{1}, 1.0)
34node{1}.setRouting(
jobclass{2},RoutingStrategy.RAND);
35node{2}.setRouting(
jobclass{2},RoutingStrategy.RAND);
36node{3}.setRouting(
jobclass{2},RoutingStrategy.RAND);
39options = Solver.defaultOptions;
41%solver{end+1} = CTMC(model,options);
42solver{end+1} = JMT(model,options);
43% Solver.defaultOptions carries
the GENERIC samples budget (1e4), which
44% overrides SolverLDES
's own default (2e5) and leaves the simulation 20x
45% shorter than the solver asks for. Restore the solver's own
default.
47ldesOptions.samples = SolverLDES.defaultOptions.samples;
48solver{end+1} = LDES(model,ldesOptions);
49%solver{end+1} = SSA(model,options);
50%solver{end+1} = FLD(model,options);
51% If
this call
is re-enabled, keep SolverMVA
's own iter_tol (1e-6): the generic
52% Solver.defaultOptions value (1e-4) stops the AMVA fixed point early.
53%mvaOptions = options; mvaOptions.iter_tol = SolverMVA.defaultOptions.iter_tol;
54%solver{end+1} = MVA(model,mvaOptions);
55%solver{end+1} = NC(model,options);
56%solver{end+1} = MAM(model,options);
59 fprintf(1,'SOLVER: %s\n
',strrep(solver{s}.getName(),'Solver
',''));
60 AvgTable{s} = solver{s}.getAvgTable();