3model = Network(
'model');
5delay = Delay(model,
'Delay');
6fork1 = Fork(model,
'Fork1');
7fork1.setTasksPerLink(1);
8fork11 = Fork(model,
'Fork1_1');
9fork11.setTasksPerLink(2);
10join1 = Join(model,
'Join1',fork1);
11join11 = Join(model,
'Join1_1',fork11);
12queue1 = Queue(model,
'Queue1',SchedStrategy.PS);
13queue2 = Queue(model,
'Queue2',SchedStrategy.PS);
15jobclass1 = ClosedClass(model,
'class1', 5, delay);
16jobclass2 = ClosedClass(model,
'class2', 2, delay);
18delay.setService(jobclass1, Exp(0.25));
19queue1.setService(jobclass1, Exp(1.0));
20queue2.setService(jobclass1, Exp(0.75));
22delay.setService(jobclass2, Exp(0.25));
23queue1.setService(jobclass2, Exp(2.0));
24queue2.setService(jobclass2, Exp(2.0));
26M = model.getNumberOfNodes;
27R = model.getNumberOfClasses;
30P{jobclass1,jobclass1}(delay,fork1) = 1.0;
31P{jobclass1,jobclass1}(fork1,queue1) = 1.0;
32P{jobclass1,jobclass1}(fork1,queue2) = 1.0;
33P{jobclass1,jobclass1}(queue1,join1) = 1.0;
34P{jobclass1,jobclass1}(queue2,join1) = 1.0;
35P{jobclass1,jobclass1}(join1,delay) = 1.0;
37P{jobclass2,jobclass2}(delay,fork11) = 1.0;
38P{jobclass2,jobclass2}(fork11,fork1) = 1.0;
39P{jobclass2,jobclass2}(fork1,queue1) = 1.0;
40P{jobclass2,jobclass2}(fork1,queue2) = 1.0;
41P{jobclass2,jobclass2}(queue1,join1) = 1.0;
42P{jobclass2,jobclass2}(queue2,join1) = 1.0;
43P{jobclass2,jobclass2}(join1,join11) = 1.0;
44P{jobclass2,jobclass2}(join11,delay) = 1.0;
50solver{end+1} = JMT(model,
'seed',23000);
51solver{end+1} = MVA(model);
52%solver{end+1} = DES(model,
'seed',23000);
56 AvgTable{end+1} = solver{s}.getAvgTable;
60%% Corresponding open model
61% model = Network(
'model');
63% source = Source(model,
'Source');
64% queue1 = Queue(model,
'Queue1',SchedStrategy.PS);
65% queue2 = Queue(model,
'Queue2',SchedStrategy.PS);
66% fork1 = Fork(model,
'Fork1');
67% fork1.setTasksPerLink(1);
68% fork11 = Fork(model,
'Fork1_1');
69% fork11.setTasksPerLink(2);
70% join1 = Join(model,
'Join1');
71% join11 = Join(model,
'Join1_1');
72% sink = Sink(model,
'Sink');
74% jobclass1 = OpenClass(model,
'class1');
75% jobclass2 = OpenClass(model,
'class2');
77% source.setArrival(jobclass1, Exp(0.25));
78% queue1.setService(jobclass1, Exp(1.0));
79% queue2.setService(jobclass1, Exp(0.75));
81% source.setArrival(jobclass2, Exp(0.25));
82% queue1.setService(jobclass2, Exp(2.0));
83% queue2.setService(jobclass2, Exp(2.0));
85% M = model.getNumberOfNodes;
86% R = model.getNumberOfClasses;
88%
P{jobclass1,jobclass1}(source,fork1) = 1;
89%
P{jobclass1,jobclass1}(fork1,queue1) = 1.0;
90%
P{jobclass1,jobclass1}(fork1,queue2) = 1.0;
91%
P{jobclass1,jobclass1}(queue1,join1) = 1.0;
92%
P{jobclass1,jobclass1}(queue2,join1) = 1.0;
93%
P{jobclass1,jobclass1}(join1,sink) = 1.0;
95%
P{jobclass2,jobclass2}(source,fork11) = 1;
96%
P{jobclass2,jobclass2}(fork11,fork1) = 1.0;
97%
P{jobclass2,jobclass2}(fork1,queue1) = 1.0;
98%
P{jobclass2,jobclass2}(fork1,queue2) = 1.0;
99%
P{jobclass2,jobclass2}(queue1,join1) = 1.0;
100%
P{jobclass2,jobclass2}(queue2,join1) = 1.0;
101%
P{jobclass2,jobclass2}(join1,join11) = 1.0;
102%
P{jobclass2,jobclass2}(join11,sink) = 1.0;
105% JMT(model,
'keep',
true).getAvgNodeTable