LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
infer_quick_model_rnn.m
1function model = infer_quick_model_rnn(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 1
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 end
26
27 for i=2:numStations
28 node{i}.setState(randsample(1:max(jobs), 1));
29 end
30
31 P = model.initRoutingMatrix;
32 for c=1:numClasses
33 if ~open
34 jobclass{c} = ClosedClass(model, strcat('Class', num2str(c)), jobs(c), node{1});
35
36 if ~exist('routing','var')
37 simpleRoutes = eye(numStations);
38 P{jobclass{c}} = simpleRoutes([setdiff(1:size(simpleRoutes,1), [1]), [1]], :);
39 else
40 P{jobclass{c}} = routing{c};
41 end
42 else
43 jobclass{c} = OpenClass(model, strcat('Class', num2str(c)));
44 end
45
46 for i=1:numStations
47 node{i}.setService(jobclass{c}, Exp.fitMean(classes(c,i)));
48 end
49 end
50
51 if open
52 P{c} = Network.serialRouting(node);
53 end
54
55 model.link(P);
56end
57