3clearvars -except exampleName;
4model = Network(
'model');
6node{1} = Delay(model,
'Delay');
7node{2} = Queue(model,
'Queue1', SchedStrategy.FCFS);
8node{3} = Source(model,
'Source');
9node{4} = Sink(model,
'Sink');
11jobclass{1} = OpenClass(model,
'Class1', 0);
12jobclass{2} = OpenClass(model,
'Class2', 0);
14node{1}.setService(
jobclass{1}, HyperExp(0.5, 3.0, 10.0));
15node{1}.setService(
jobclass{2}, HyperExp(0.5, 2.0, 8.0));
16node{2}.setService(
jobclass{1}, Exp(NaN)); % NaN = to be estimated
17node{2}.setService(
jobclass{2}, Exp(NaN)); % NaN = to be estimated
18node{3}.setArrival(
jobclass{1}, Exp(0.1));
19node{3}.setArrival(
jobclass{2}, Exp(0.05));
21P = model.initRoutingMatrix;
22P{1,1} = [0,1,0,0; 0,0,0,1; 1,0,0,0; 0,0,0,0];
23P{2,2} = [0,1,0,0; 0,0,0,1; 1,0,0,0; 0,0,0,0];
26%% Generate random dataset
for utilization, arrival rate, and response time
29arvr1_samples = 2*ones(n,1) - rand(n,1)*0.15;
30arvr2_samples = ones(n,1) - rand(n,1)*0.10;
31util_samples = 0.1*arvr1_samples + 0.3*arvr2_samples;
32respt1_samples = 0.1./(1 - util_samples);
33respt2_samples = 0.3./(1 - util_samples);
36estoptions = ParamEstimator.defaultOptions;
37estoptions.method =
'ubo';
38se = ParamEstimator(model, estoptions);
40lambda1 = SampledMetric(MetricType.ArvR, ts, arvr1_samples, node{2},
jobclass{1});
41lambda2 = SampledMetric(MetricType.ArvR, ts, arvr2_samples, node{2},
jobclass{2});
42respT1 = SampledMetric(MetricType.RespT, ts, respt1_samples, node{2},
jobclass{1});
43respT2 = SampledMetric(MetricType.RespT, ts, respt2_samples, node{2},
jobclass{2});
44util = SampledMetric(MetricType.Util, ts, util_samples, node{2});
46se.addSamples(lambda1);
47se.addSamples(lambda2);
52estVal = se.estimateAt(node{2})
56solver{end+1} = SolverMVA(model);
58AvgTable = cell(1,length(solver));
60 fprintf(1,
'SOLVER: %s\n',solver{s}.getName());
61 AvgTable{s} = solver{s}.getAvgTable();