LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
opt_service_rate.m
1% opt_service_rate Cheapest continuous service rate meeting a response-time
2% SLA on an M/M/1 (theory rate 5.0). Mirrors opt_service_rate.py.
3
4model = Network('MM1');
5source = Source(model, 'Arrivals');
6queue = Queue(model, 'Server', SchedStrategy.FCFS);
7sink = Sink(model, 'Departures');
8jobs = OpenClass(model, 'Jobs');
9source.setArrival(jobs, Exp(3.0));
10queue.setService(jobs, Exp(4.0));
11model.link(Network.serialRouting(source, queue, sink));
12
13problem = opt.OptimizationProblem(model);
14problem.addVariable(opt.ServiceRate(queue, jobs, [3.5 8.0]));
15rateCost = containers.Map('KeyType','char','ValueType','double');
16rateCost('Server') = 20.0;
17problem.setObjective(opt.MinimizeCost([], rateCost, [], {}));
18problem.addConstraint(opt.ResponseTimeConstraint(queue, jobs, 0.5));
19
20options = opt.LineOptSolverOptions(); options.setSeed(42); options.setMaxIterations(60);
21result = problem.solve(options);
22
23fprintf('Optimal rate : %.3f (theory: 5.0)\n', result.getVariableValue('Server_Jobs_rate'));
24fprintf('Cost : %.1f\n', result.objectiveValue);
25fprintf('Feasible : %d\n', result.feasible);