LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
gallery_lqn_workflows.m
1function model = gallery_lqn_workflows()
2% GALLERY_LQN_WORKFLOWS Layered network with loop, and-fork/join and or-fork/join
3model = LayeredNetwork('LQN-Workflows');
4%% Processors and tasks
5P1 = Processor(model, 'P1', Inf, SchedStrategy.INF);
6T1 = Task(model, 'T1', 1, SchedStrategy.REF).on(P1);
7T1.setThinkTime(Immediate());
8E1 = Entry(model, 'Entry').on(T1);
9
10P2 = Processor(model, 'P2', Inf, SchedStrategy.INF);
11T2 = Task(model, 'T2', Inf, SchedStrategy.INF).on(P2).setThinkTime(Immediate());
12E2 = Entry(model, 'E2').on(T2);
13
14P3 = Processor(model, 'P3', 5, SchedStrategy.PS);
15T3 = Task(model, 'T3', Inf, SchedStrategy.INF).on(P3);
16T3.setThinkTime(Exp.fitMean(10));
17E3 = Entry(model, 'E3').on(T3);
18%% Activities
19A1 = Activity(model, 'A1', Exp.fitMean(1)).on(T1).boundTo(E1);
20A2 = Activity(model, 'A2', Exp.fitMean(2)).on(T1);
21A3 = Activity(model, 'A3', Exp.fitMean(3)).on(T1).synchCall(E2);
22
23B1 = Activity(model, 'B1', Exp.fitMean(0.1)).on(T2).boundTo(E2);
24B2 = Activity(model, 'B2', Exp.fitMean(0.2)).on(T2);
25B3 = Activity(model, 'B3', Exp.fitMean(0.3)).on(T2);
26B4 = Activity(model, 'B4', Exp.fitMean(0.4)).on(T2);
27B5 = Activity(model, 'B5', Exp.fitMean(0.5)).on(T2);
28B6 = Activity(model, 'B6', Exp.fitMean(0.6)).on(T2).synchCall(E3).repliesTo(E2);
29
30C1 = Activity(model, 'C1', Exp.fitMean(0.1)).on(T3).boundTo(E3);
31C2 = Activity(model, 'C2', Exp.fitMean(0.2)).on(T3);
32C3 = Activity(model, 'C3', Exp.fitMean(0.3)).on(T3);
33C4 = Activity(model, 'C4', Exp.fitMean(0.4)).on(T3);
34C5 = Activity(model, 'C5', Exp.fitMean(0.5)).on(T3).repliesTo(E3);
35%% Precedences
36T1.addPrecedence(ActivityPrecedence.Loop(A1, {A2, A3}, 3));
37T2.addPrecedence(ActivityPrecedence.Serial(B4, B5));
38T2.addPrecedence(ActivityPrecedence.AndFork(B1, {B2, B3, B4}));
39T2.addPrecedence(ActivityPrecedence.AndJoin({B2, B3, B5}, B6));
40T3.addPrecedence(ActivityPrecedence.OrFork(C1, {C2, C3, C4}, [0.3, 0.3, 0.4]));
41T3.addPrecedence(ActivityPrecedence.OrJoin({C2, C3, C4}, C5));
42end