1clear
P T R solver AvgTable
3model = Network(
'model');
6source = Source(model,
'Source');
7sink = Sink(model,
'Sink');
9P{1} = Place(model,
'P1');
10P{2} = Place(model,
'P2');
11P{3} = Place(model,
'P3');
12P{4} = Place(model,
'P4');
13P{5} = Place(model,
'P5');
14P{6} = Place(model,
'P6');
15P{7} = Place(model,
'P7');
17T{1} = Transition(model,
'T1');
18T{2} = Transition(model,
'T2');
19T{3} = Transition(model,
'T3');
20T{4} = Transition(model,
'T4');
21T{5} = Transition(model,
'T5');
22T{6} = Transition(model,
'T6');
23T{7} = Transition(model,
'T7');
24T{8} = Transition(model,
'T8');
27jobclass{1} = OpenClass(model,
'Class1', 0);
28source.setArrival(
jobclass{1}, Exp.fitMean(1));
34mode = T{1}.addMode(
'Mode1');
35T{1}.setNumberOfServers(mode,Inf);
36T{1}.setDistribution(1,Exp(4));
37T{1}.setEnablingConditions(1,
jobclass{1},
P{1},1);
38T{1}.setFiringOutcome(1,
jobclass{1},
P{2},1);
41mode = T{2}.addMode(
'Mode1');
42T{2}.setNumberOfServers(mode,Inf);
43T{2}.setEnablingConditions(1,
jobclass{1},
P{2},1);
44T{2}.setFiringOutcome(1,
jobclass{1},
P{3},1);
45T{2}.setTimingStrategy(1,TimingStrategy.IMMEDIATE);
46T{2}.setFiringPriorities(1,1);
47T{2}.setFiringWeights(1,1);
50mode = T{3}.addMode(
'Mode1');
51T{3}.setNumberOfServers(mode,Inf);
52T{3}.setEnablingConditions(1,
jobclass{1},
P{2},1);
53T{3}.setFiringOutcome(1,
jobclass{1},
P{4},1);
54T{3}.setTimingStrategy(1,TimingStrategy.IMMEDIATE);
55T{3}.setFiringPriorities(1,1);
56% T{3}.setFiringWeights(1,0.6);
57T{3}.setFiringPriorities(1,1);
60mode = T{4}.addMode(
'Mode1');
61T{4}.setNumberOfServers(mode,Inf);
62T{4}.setEnablingConditions(1,
jobclass{1},
P{3},1);
63T{4}.setEnablingConditions(1,
jobclass{1},
P{5},1);
64T{4}.setFiringOutcome(1,
jobclass{1},
P{5},1);
65T{4}.setFiringOutcome(1,
jobclass{1},
P{6},1);
66T{4}.setTimingStrategy(1,TimingStrategy.IMMEDIATE);
67T{4}.setFiringPriorities(1,1);
70mode = T{5}.addMode(
'Mode1');
71T{5}.setNumberOfServers(mode,Inf);
72T{5}.setEnablingConditions(1,
jobclass{1},
P{4},1);
73T{5}.setEnablingConditions(1,
jobclass{1},
P{5},1);
74T{5}.setFiringOutcome(1,
jobclass{1},
P{7},1);
75T{5}.setInhibitingConditions(1,
jobclass{1},
P{6},1);
76T{5}.setTimingStrategy(1,TimingStrategy.IMMEDIATE);
77T{5}.setFiringPriorities(1,1);
80mode = T{6}.addMode(
'Mode1');
81T{6}.setNumberOfServers(mode,Inf);
82T{6}.setDistribution(1,Erlang(2,2));
83T{6}.setEnablingConditions(1,
jobclass{1},
P{6},1);
84T{6}.setFiringOutcome(1,
jobclass{1},
P{1},1);
87mode = T{7}.addMode(
'Mode1');
88T{7}.setNumberOfServers(mode,Inf);
89T{7}.setDistribution(1,Exp(2));
90T{7}.setEnablingConditions(1,
jobclass{1},
P{7},1);
91T{7}.setFiringOutcome(1,
jobclass{1},
P{1},1);
92T{7}.setFiringOutcome(1,
jobclass{1},
P{5},1);
95mode = T{8}.addMode(
'Mode1');
96T{8}.setNumberOfServers(mode,Inf);
97T{8}.setDistribution(1,Exp(2));
98T{8}.setEnablingConditions(1,
jobclass{1},
P{4},1);
99T{8}.setFiringOutcome(1,
jobclass{1},sink,1);
102M = model.getNumberOfStations();
103K = model.getNumberOfClasses();
105R = model.initRoutingMatrix(); % initialize routing matrix
107R{1,1}(source,
P{1}) = 1; % (Source,Class1) -> (P1,Class1)
109R{1,1}(
P{1},T{1}) = 1; % (P1,Class1) -> (T1,Class1)
110R{1,1}(
P{2},T{2}) = 1; % (P2,Class1) -> (T2,Class1)
111R{1,1}(
P{2},T{3}) = 1; % (P2,Class1) -> (T3,Class1)
112R{1,1}(
P{3},T{4}) = 1; % (P3,Class1) -> (T4,Class1)
113R{1,1}(
P{4},T{5}) = 1; % (P4,Class1) -> (T5,Class1)
114R{1,1}(
P{5},T{4}) = 1; % (P5,Class1) -> (T4,Class1)
115R{1,1}(
P{5},T{5}) = 1; % (P5,Class1) -> (T5,Class1)
116R{1,1}(
P{6},T{5}) = 1; % (P6,Class1) -> (T5,Class1)
117R{1,1}(
P{6},T{6}) = 1; % (P6,Class1) -> (T6,Class1)
118R{1,1}(
P{7},T{7}) = 1; % (P7,Class1) -> (T7,Class1)
120R{1,1}(T{1},
P{2}) = 1; % (T1,Class1) -> (P2,Class1)
121R{1,1}(T{2},
P{3}) = 1; % (T2,Class1) -> (P3,Class1)
122R{1,1}(T{3},
P{4}) = 1; % (T3,Class1) -> (P4,Class1)
123R{1,1}(T{4},
P{5}) = 1; % (T4,Class1) -> (P5,Class1)
124R{1,1}(T{4},
P{6}) = 1; % (T4,Class1) -> (P6,Class1)
125R{1,1}(T{5},
P{7}) = 1; % (T5,Class1) -> (P7,Class1)
126R{1,1}(T{6},
P{1}) = 1; % (T6,Class1) -> (P1,Class1)
127R{1,1}(T{7},sink) = 1; % (T7,Class1) -> (Sink,Class1)
128R{1,1}(T{7},
P{1}) = 1; % (T7,Class1) -> (P1,Class1)
129R{1,1}(T{7},
P{5}) = 1; % (T7,Class1) -> (P5,Class1)
131R{1,1}(
P{4},T{8}) = 1; % (P4,Class1) -> (T5,Class1)
132R{1,1}(T{8},sink) = 1; % (T8,Class1) -> (Sink,Class1)
148state = model.getState;
151options = Solver.defaultOptions;
156%options.samples = 100;
158% options.hide_immediate=1;
160% options.samples=2e4;
162% All stations must be initialised.
163% initial_state = [0;2;0;0;0;1;0;0];
165% solver = CTMC(model, options);
166% solver.getAvgTable();
169solver{1} = JMT(model,options);
170AvgTable{1} = solver{1}.getAvgTable();