LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
infer_quick_model.m
1function model = infer_quick_model(open, stations, classes, servers, jobs, routing)
2%QUICKMODEL Generate simple closed queueing network based on given parameters
3 numStations = size(stations,2);
4 numClasses = size(classes, 1);
5
6 if ~exist('servers','var')
7 % servers parameter does not exist, so default it to no concurrency
8 servers = ones(numStations);
9 end
10
11 if ~exist('jobs','var')
12 % jobs parameter does not exist, so default it to one
13 jobs = ones(numClasses);
14 end
15
16 model = Network('quickModel');
17 if open
18 node{1} = Source(model, 'mySource');
19 node{numStations+2} = Sink(model, 'mySink');
20 end
21
22 for i=1:numStations
23 node{i} = Queue(model, strcat('QueueStation',num2str(i)), stations{i});
24 node{i}.setNumberOfServers(servers(i));
25 node{i}.setCapacity(Inf);
26 end
27
28 P = model.initRoutingMatrix;
29 for c=1:numClasses
30 if ~open
31 jobclass{c} = ClosedClass(model, strcat('Class', num2str(c)), jobs(c), node{1});
32
33 if ~exist('routing','var')
34 simpleRoutes = eye(numStations);
35 P{c} = simpleRoutes([setdiff(1:size(simpleRoutes,1), [1]), [1]], :);
36 else
37 P{c} = routing(c, :);
38 end
39 else
40 jobclass{c} = OpenClass(model, strcat('Class', num2str(c)));
41 end
42
43 for i=1:numStations
44 node{i}.setService(jobclass{c}, Exp.fitMean(classes(c,i)));
45 end
46 end
47
48 if open
49 for c=1:numClasses
50 P{c} = Network.serialRouting(node);
51 end
52 end
53
54 model.link(P);
55 model.sn.classcap = inf;
56end
57