LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
fj_tiny_closed.m
1% Minimal closed fork-join model solved exactly by the native CTMC
2% fork-join implementation (tag-augmented state space) and validated
3% against the closed form for N=1:
4% X = 1/(Z + E[max(S1,S2)]), E[max] = 1/mu1 + 1/mu2 - 1/(mu1+mu2)
5clear solver AvgTable;
6model = Network('model');
7
8delay = Delay(model,'Delay1');
9queue1 = Queue(model,'Queue1',SchedStrategy.FCFS);
10queue2 = Queue(model,'Queue2',SchedStrategy.FCFS);
11fork = Fork(model,'Fork1');
12join = Join(model,'Join1',fork);
13
14jobclass1 = ClosedClass(model,'Class1',1,delay);
15
16delay.setService(jobclass1, Exp(1.0));
17queue1.setService(jobclass1, Exp(2.0));
18queue2.setService(jobclass1, Exp(3.0));
19
20P = zeros(5);
21P(delay,fork) = 1;
22P(fork,queue1) = 1.0;
23P(fork,queue2) = 1.0;
24P(queue1,join) = 1.0;
25P(queue2,join) = 1.0;
26P(join,delay) = 1.0;
27
28model.link(P);
29
30solver = {};
31solver{end+1} = CTMC(model);
32solver{end+1} = SSA(model,'seed',23000,'samples',5e4);
33solver{end+1} = JMT(model,'seed',23000);
34
35AvgTable = {};
36for s=1:length(solver)
37 AvgTable{end+1} = solver{s}.getAvgTable;
38 AvgTable{s}
39end
40
41% closed-form check (N=1): X = 1/(1 + 1/2 + 1/3 - 1/5) = 0.612244...
Definition Station.m:245