LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
lqn_multi_solvers.m
1clear solver AvgTable
2
3model = LayeredNetwork('LQN1');
4
5% definition of processors, tasks and entries
6P1 = Processor(model, 'P1', Inf, SchedStrategy.INF);
7T1 = Task(model, 'T1', 1, SchedStrategy.REF).on(P1);
8E1 = Entry(model, 'E1').on(T1);
9
10P2 = Processor(model, 'P2', Inf, SchedStrategy.INF);
11T2 = Task(model, 'T2', Inf, SchedStrategy.INF).on(P2);
12E2 = Entry(model, 'E2').on(T2);
13
14% definition of activities
15T1.setThinkTime(Erlang.fitMeanAndOrder(0.0001,2));
16
17A1 = Activity(model, 'A1', Exp(1.0)).on(T1).boundTo(E1).synchCall(E2,3);
18A2 = Activity(model, 'A2', APH.fitMeanAndSCV(1,10)).on(T2).boundTo(E2).repliesTo(E2);
19
20%%
21% instantiate solvers
22options = LQNS.defaultOptions;
23options.keep = true;
24options.verbose = 1;
25%options.method = 'lqsim';
26%options.samples = 1e4;
27lqnssolver = LQNS(model, options);
28AvgTableLQNS = lqnssolver.getAvgTable;
29fprintf(1, '\nLQNS Results:\n');
30disp(AvgTableLQNS);
31
32% this method runs the MVA solver in each layer
33lnoptions = LN.defaultOptions;
34lnoptions.verbose = 0;
35lnoptions.seed = 2300;
36options = MVA.defaultOptions;
37options.verbose = 0;
38solver{1} = LN(model, @(model) MVA(model, options), lnoptions);
39AvgTable{1} = solver{1}.getAvgTable;
40fprintf(1, '\nLN(MVA) Results:\n');
41disp(AvgTable{1});
42
43% this method runs the NC solver in each layer
44lnoptions = LN.defaultOptions;
45lnoptions.verbose = 0;
46lnoptions.seed = 2300;
47options = NC.defaultOptions;
48options.verbose = 0;
49solver{2} = LN(model, @(model) NC(model, options), lnoptions);
50AvgTable{2} = solver{2}.getAvgTable;
51fprintf(1, '\nLN(NC) Results:\n');
52disp(AvgTable{2});
53
54% this method adapts with the features of each layer
55%solver{2} = LN(model, @(model) LINE(model, LINE.defaultOptions), lnoptions);
56%AvgTable{2} = solver{2}.getAvgTable
57%AvgTable{2}