LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
getCdfRespT.m
1function [RD,logData] = getCdfRespT(self, R)
2% RD = GETCDFRESPT(R)
3
4sn = self.getStruct;
5if GlobalConstants.DummyMode
6 RD = cell(sn.nstations,sn.nclasses);
7 logData = NaN;
8 return
9end
10
11if nargin<2 %~exist('R','var')
12 R = getAvgRespTHandles(self);
13end
14RD = cell(sn.nstations, sn.nclasses);
15QN = getAvgQLen(self); % steady-state qlen
16n = QN;
17for r=1:sn.nclasses
18 if isinf(sn.njobs(r))
19 n(:,r) = floor(QN(:,r));
20 else
21 n(:,r) = floor(QN(:,r));
22 if sum(n(:,r)) < sn.njobs(r)
23 imax = maxpos(n(:,r)); % put jobs on the bottleneck
24 n(imax,r) = n(imax,r) + sn.njobs(r) - sum(n(:,r));
25 end
26 end
27end
28cdfmodel = self.model.copy;
29cdfmodel.resetNetwork;
30cdfmodel.reset;
31isNodeClassLogged = false(cdfmodel.getNumberOfNodes, cdfmodel.getNumberOfClasses);
32for i= 1:cdfmodel.getNumberOfStations
33 for r=1:cdfmodel.getNumberOfClasses
34 if ~R{i,r}.disabled
35 ni = self.model.getNodeIndex(cdfmodel.getStationNames{i});
36 isNodeClassLogged(ni,r) = true;
37 end
38 end
39end
40Plinked = sn.rtorig;
41isNodeLogged = max(isNodeClassLogged,[],2);
42logpath = lineTempDir;
43cdfmodel.linkAndLog(Plinked, isNodeLogged, logpath);
44cdfmodel.initFromMarginal(n);
45SolverJMT(cdfmodel, self.getOptions).getAvg(); % log data
46logData = SolverJMT.parseLogs(cdfmodel, isNodeLogged, MetricType.toText(MetricType.RespT));
47% from here convert from nodes in logData to stations
48for i= 1:cdfmodel.getNumberOfStations
49 ni = cdfmodel.getNodeIndex(cdfmodel.getStationNames{i});
50 for r=1:cdfmodel.getNumberOfClasses
51 if isNodeClassLogged(ni,r)
52 if ~isempty(logData{ni,r}) && ~isempty(logData{ni,r}.RespT)
53 [F,X] = ecdf(logData{ni,r}.RespT);
54 RD{i,r} = [F,X];
55 end
56 end
57 end
58end
59end
Definition mmt.m:92