3%model = JMT2LINE(
'example_openModel_3.jsimg');
4model = Network(
'myModel');
7node{1} = Source(model,
'Source 1');
8node{2} = Queue(model,
'Queue 1', SchedStrategy.PS);
9node{3} = ClassSwitch(model,
'ClassSwitch 1'); % Class switching
is embedded in the routing matrix
P
10node{4} = Sink(model,
'Sink 1');
11node{5} = Queue(model,
'Queue 2', SchedStrategy.PS);
14jobclass{1} = OpenClass(model,
'Class A', 0);
15jobclass{2} = OpenClass(model,
'Class B', 0);
16jobclass{3} = OpenClass(model,
'Class C', 0);
18node{1}.setArrival(
jobclass{1}, Exp.fitMean(0.500000)); % (Source 1,Class A)
19node{1}.setArrival(
jobclass{2}, Exp.fitMean(1.000000)); % (Source 1,Class B)
20node{1}.setArrival(
jobclass{3}, Disabled.getInstance()); % (Source 1,Class C)
21node{2}.setService(
jobclass{1}, Exp.fitMean(0.200000)); % (Queue 1,Class A)
22node{2}.setService(
jobclass{2}, Exp.fitMean(0.300000)); % (Queue 1,Class B)
23node{2}.setService(
jobclass{3}, Exp.fitMean(0.333333)); % (Queue 1,Class C)
24node{5}.setService(
jobclass{1}, Exp.fitMean(1.000000)); % (Queue 2,Class A)
25node{5}.setService(
jobclass{2}, Exp.fitMean(1.000000)); % (Queue 2,Class B)
26node{5}.setService(
jobclass{3}, Exp.fitMean(0.150000)); % (Queue 2,Class C)
29C = node{3}.initClassSwitchMatrix();
31node{3}.setClassSwitchingMatrix(C);
33P = model.initRoutingMatrix(); % initialize routing matrix
34P{1,1}(1,2) = 1; % (Source 1,Class A) -> (Queue 1,Class A)
35P{1,1}(2,3) = 1; % (Queue 1,Class A) -> (ClassSwitch 1,Class A)
36P{1,1}(5,4) = 1; % (Queue 2,Class A) -> (Sink 1,Class A)
37P{1,3}(3,5) = 1; % (ClassSwitch 1,Class A) -> (Queue 2,Class C)
38P{2,2}(1,2) = 1; % (Source 1,Class B) -> (Queue 1,Class B)
39P{2,2}(2,3) = 1; % (Queue 1,Class B) -> (ClassSwitch 1,Class B)
40P{2,2}(5,4) = 1; % (Queue 2,Class B) -> (Sink 1,Class B)
41P{2,3}(3,5) = 1; % (ClassSwitch 1,Class B) -> (Queue 2,Class C)
42P{3,3}(1,2) = 1; % (Source 1,Class C) -> (Queue 1,Class C)
43P{3,3}(2,3) = 1; % (Queue 1,Class C) -> (ClassSwitch 1,Class C)
44P{3,3}(3,5) = 1; % (ClassSwitch 1,Class C) -> (Queue 2,Class C)
45P{3,3}(5,4) = 1; % (Queue 2,Class C) -> (Sink 1,Class C)
48options = Solver.defaultOptions;
51options.cutoff = [1,1,0;3,3,0;0,0,3]; % works well with 7
55%disp(
'This example shows the execution of the solver on a 1-class 2-node open model.')
56% This part illustrates the execution of different solvers
58solver{end+1} = CTMC(model,options); % CTMC
is infinite on
this model
59solver{end+1} = FLD(model,options);
60solver{end+1} = MVA(model,options);
61solver{end+1} = MAM(model,options);
62solver{end+1} = NC(model,options);
63solver{end+1} = JMT(model,options);
64solver{end+1} = SSA(model,options);
65solver{end+1} = DES(model,options);
67 fprintf(1,
'SOLVER: %s\n',solver{s}.getName());
68 AvgTable{s} = solver{s}.getAvgTable()