
% Einlesen der Problemdaten
Daten_Oelraffinerie;

% Darstellung des Graphen
nodeLabels = arrayfun(@(x) num2str(x), (1:m)', 'UniformOutput', false);
nodeLabels{1} = 's = 1';
nodeLabels{m} = sprintf('t = %d',m);
edgeLabels = arrayfun(@(x) num2str(x), u,  'UniformOutput', false);
h = Graph(A,[],nodeLabels,edgeLabels);
h = Graph(A,h,nodeLabels,edgeLabels,'-layout',Radiallayout);
XY = h.getNodePositions;

% Darstellung der Graphen ohne Rueckfuehrungskante
% Die Knotenpositionen werden dabei vom Graphen mit Rueckfuehrungskante kopiert.
h = Graph(A(:,1:end-1),h,nodeLabels,[],'-layout',Radiallayout);
h.setNodePositions(XY);

% Setzen der Optionen fuer das Optimierungsverfahren
options = optimset('Algorithm','simplex','Diagnostics','on','Display','iter');

% Aufruf des Optimierungsverfahrens
[xstar,fstar,exitflag,output,lambda] = linprog(c,[],[],A,b,l,u,[],options);

% Darstellung der Loesung
edgeLabels = arrayfun(@(x,y) ['[ ' num2str(x) ' / ' num2str(y) ' ]'], xstar, u,  'UniformOutput', false);
h = Graph(A,h,nodeLabels,edgeLabels,'-layout',Radiallayout);


