LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
lqn_workflows.m
1clear P T E A C solver AvgTable
2
3fprintf(1,'This example illustrates a layered network with a loop.\n')
4
5model = LayeredNetwork('myLayeredModel');
6%%
7P{1} = Processor(model, 'P1', Inf, SchedStrategy.INF);
8T{1} = Task(model, 'T1', 1, SchedStrategy.REF).on(P{1});
9T{1}.setThinkTime(Immediate());
10E{1} = Entry(model, 'Entry').on(T{1});
11%%
12P{2} = Processor(model, 'P2', Inf, SchedStrategy.INF);
13T{2} = Task(model, 'T2', 1, SchedStrategy.INF).on(P{2}).setThinkTime(Immediate());
14E{2} = Entry(model, 'E2').on(T{2});
15%%
16P{3} = Processor(model, 'P3', 5, SchedStrategy.PS);
17T{3} = Task(model, 'T3', 20, SchedStrategy.INF).on(P{3});
18T{3}.setThinkTime(Exp.fitMean(10));
19E{3} = Entry(model, 'E1').on(T{3});
20%%
21A{1} = Activity(model, 'A1', Exp.fitMean(1)).on(T{1}).boundTo(E{1});
22A{2} = Activity(model, 'A2', Exp.fitMean(2)).on(T{1});
23A{3} = Activity(model, 'A3', Exp.fitMean(3)).on(T{1}).synchCall(E{2});
24%%
25B{1} = Activity(model, 'B1', Exp.fitMean(0.1)).on(T{2}).boundTo(E{2});
26B{2} = Activity(model, 'B2', Exp.fitMean(0.2)).on(T{2});
27B{3} = Activity(model, 'B3', Exp.fitMean(0.3)).on(T{2});
28B{4} = Activity(model, 'B4', Exp.fitMean(0.4)).on(T{2});
29B{5} = Activity(model, 'B5', Exp.fitMean(0.5)).on(T{2});
30B{6} = Activity(model, 'B6', Exp.fitMean(0.6)).on(T{2}).synchCall(E{3}).repliesTo(E{2});
31%%
32C{1} = Activity(model, 'C1', Exp.fitMean(0.1)).on(T{3}).boundTo(E{3});
33C{2} = Activity(model, 'C2', Exp.fitMean(0.2)).on(T{3});
34C{3} = Activity(model, 'C3', Exp.fitMean(0.3)).on(T{3});
35C{4} = Activity(model, 'C4', Exp.fitMean(0.4)).on(T{3});
36C{5} = Activity(model, 'C5', Exp.fitMean(0.5)).on(T{3}).repliesTo(E{3});
37%%
38T{1}.addPrecedence(ActivityPrecedence.Loop(A{1}, {A{2}, A{3}}, 3));
39T{2}.addPrecedence(ActivityPrecedence.Serial(B{4}, B{5}));
40T{2}.addPrecedence(ActivityPrecedence.AndFork(B{1},{B{2}, B{3}, B{4}}));
41T{2}.addPrecedence(ActivityPrecedence.AndJoin({B{2}, B{3}, B{5}}, B{6}));
42T{3}.addPrecedence(ActivityPrecedence.OrFork(C{1},{C{2}, C{3}, C{4}},[0.3,0.3,0.4]));
43T{3}.addPrecedence(ActivityPrecedence.OrJoin({C{2}, C{3}, C{4}}, C{5}));
44%%
45solver{1} = LQNS(model);
46AvgTable{1} = solver{1}.getAvgTable();
47AvgTable{1}
48
49solver{2} = LN(model);
50AvgTable{2} = solver{2}.getAvgTable();
51AvgTable{2}