1function [H,G] = getGraph(self)
4G = digraph(); TG = Table();
5M = self.getNumberOfNodes;
6K = self.getNumberOfClasses;
8[
P,Pnodes] = getRoutingMatrix(self);
9name = {}; sched = {}; type = {}; nservers = [];
11 name{end+1} = self.nodes{ist}.name;
12 type{end+1} =
class(self.nodes{ist});
13 if ~isa(self.nodes{ist},
'Join')
14 sched{end+1} = self.nodes{ist}.schedStrategy;
18 if isa(self.nodes{ist},
'Station')
19 nservers(end+1) = self.
nodes{ist}.getNumberOfServers;
27TG.Servers = nservers(:);
32 if Pnodes((ist-1)*K+k,(jst-1)*K+k) > 0
33 G = G.addedge(self.nodes{ist}.name,self.nodes{jst}.name, Pnodes((ist-1)*K+k,(jst-1)*K+k));
38H = digraph(); TH = Table();
39I = self.getNumberOfStations;
40name = {}; sched = {}; type = {}; jobs = zeros(I,1); nservers = [];
42 name{end+1} = self.stations{ind}.name;
43 type{end+1} =
class(self.stations{ind});
44 if ~isa(self.stations{ind},
'Join')
45 sched{end+1} = self.stations{ind}.schedStrategy;
51 jobs(ind) = jobs(ind) + sn.njobs(k);
54 if isa(self.nodes{ind},
'Station')
55 nservers(end+1) = self.
nodes{ind}.getNumberOfServers;
64TH.Servers = nservers(:);
71 if P((ind-1)*K+k,(jnd-1)*K+k) > 0
72 rate(end+1) = sn.rates(ind,k);
73 classes{end+1} = self.classes{k}.name;
74 H = H.addedge(self.stations{ind}.name, self.stations{jnd}.name,
P((ind-1)*K+k,(jnd-1)*K+k));
79H.Edges.Rate = rate(:);
81H = H.rmedge(find(isnan(H.Edges.Rate)));
82sourceObj = self.getSource;
84 % sink = self.getSink;
85 % H=H.addnode(sink.name);
86 % H.Nodes.Type{end}=
'Sink';
87 % H.Nodes.Sched{end}=
'ext';
88 %H = H.rmedge(find(isnan(H.Edges.Rate)));
89 %sourceIdx = model.getIndexSourceNode;
90 % toDel = findstring(H.Edges.EndNodes(:,2),sourceObj.name);