LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
refreshScheduling.m
1function [sched, schedparam] = refreshScheduling(self)
2% [SCHED, SCHEDPARAM] = REFRESHSCHEDULING()
3%
4% Copyright (c) 2012-2026, Imperial College London
5% All rights reserved.
6
7% determine scheduling parameters
8M = getNumberOfStations(self);
9K = getNumberOfClasses(self);
10
11sched = getStationScheduling(self);
12schedparam = zeros(M,K);
13for ist=1:M
14 if isempty(self.getIndexSourceStation) || ist ~= self.getIndexSourceStation
15 switch self.stations{ist}.server.className
16 case 'ServiceTunnel'
17 % do nothing
18 otherwise
19 if ~isempty(self.stations{ist}.schedStrategyPar) & ~isnan(self.stations{ist}.schedStrategyPar) %#ok<AND2>
20 schedparam(ist,:) = self.stations{ist}.schedStrategyPar;
21 else
22 switch sched(ist)
23 case SchedStrategy.SEPT
24 servTime = zeros(1,K);
25 for k=1:K
26 servTime(k) = self.nodes{ist}.serviceProcess{k}.getMean;
27 end
28 [servTimeSorted] = sort(unique(servTime));
29 self.nodes{ist}.schedStrategyPar = zeros(1,K);
30 for k=1:K
31 self.nodes{ist}.schedStrategyPar(k) = find(servTimeSorted == servTime(k));
32 end
33 case SchedStrategy.LEPT
34 servTime = zeros(1,K);
35 for k=1:K
36 servTime(k) = self.nodes{ist}.serviceProcess{k}.getMean;
37 end
38 [servTimeSorted] = sort(unique(servTime),'descend');
39 self.nodes{ist}.schedStrategyPar = zeros(1,K);
40 for k=1:K
41 self.nodes{ist}.schedStrategyPar(k) = find(servTimeSorted == servTime(k));
42 end
43 end
44 end
45 end
46 end
47end
48
49if ~isempty(self.sn)
50 self.sn.schedparam = schedparam;
51 self.sn.sched = sched(:);
52end
53end