3model = Network(
'model');
5node{1} = Delay(model,
'Delay');
6node{2} = Queue(model,
'Queue1', SchedStrategy.FCFS);
7jobclass{1} = ClosedClass(model,
'Class1', 5, node{2}, 0);
9node{1}.setService(
jobclass{1}, Exp(1));
10node{2}.setService(
jobclass{1}, Exp(0.7));
12M = model.getNumberOfStations();
13K = model.getNumberOfClasses();
19[Qt,Ut,Tt] = model.getTranHandles();
20options = Solver.defaultOptions;
24options.timespan = [0,40];
26%% This part illustrates the execution of different solvers
28solver{end+1} = CTMC(model,options);
29%solver{end+1} = JMT(model,options);
30%solver{end+1} = SSA(model,options);
31solver{end+1} = FLD(model,options);
32%solver{end+1} = MVA(model,options);
37disp(
'Prior 1: prior all on default initialization')
38disp('Initial state
is:')
39state=model.getState();
40[state{1}(1,:),state{2}(1,:)]
42 fprintf(1,
'SOLVER: %s\n',strrep(solver{s}.getName(),
'Solver',
''));
43 [QNt,UNt,TNt] = solver{s}.getTranAvg(Qt,Ut,Tt);
44 fprintf(
'SteadyStateQLen[%s/Prior1]: %.6f\n', strrep(solver{s}.getName(),
'Solver',
''), QNt{2,1}.metric(end));
46 plot(QNt{2,1}.t,QNt{2,1}.metric,dashing{s}); hold on
49title(
'Prior on default state');
50ylabel(
'Queue length - station 2, class 1');
54legend('ctmc','fluid','Location','SouthEast')
57model.initFromMarginal([2;3]);
58disp('Prior 2: prior all on first found state with given marginal')
59disp('Initial state
is:')
60state=model.getState();
61[state{1}(1,:),state{2}(1,:)]
64 fprintf(1,
'SOLVER: %s\n',strrep(solver{s}.getName(),
'Solver',
''));
65 [QNt_marg,UNt_marg,TNt_marg] = solver{s}.getTranAvg(Qt,Ut,Tt);
66 fprintf(
'SteadyStateQLen[%s/Prior2]: %.6f\n', strrep(solver{s}.getName(),
'Solver',
''), QNt_marg{2,1}.metric(end));
68 plot(QNt_marg{2,1}.t,QNt_marg{2,1}.metric,dashing{s}); hold on
71title(
'Prior on state with 3 jobs in station 2');
72ylabel(
'Queue length - station 2, class 1');
76%legend('ctmc','fluid')