Open
Graph Drawing
Framework

 v. 2022.02 (Dogwood)
 

ogdf::MinSteinerTreeDirectedCut< T >::Master Class Reference

Master problem of Steiner tree branch&cut algorithm More...

#include <ogdf/graphalg/MinSteinerTreeDirectedCut.h>

+ Inheritance diagram for ogdf::MinSteinerTreeDirectedCut< T >::Master:

Public Member Functions

 Master (const EdgeWeightedGraph< T > &wG, const List< node > &terminals, const NodeArray< bool > &isTerminal, double eps, bool relaxed=false)
 Constructor of the master problem. More...
 
virtual ~Master ()
 destructor More...
 
double * bestSolution () const
 the best found solution More...
 
bool callPrimalHeuristic () const
 parameter: call primal heuristic yes/no More...
 
int callPrimalHeuristicStrategy () const
 strategy for calling primal heuristic (PH) More...
 
const EdgeArray< double > & capacities () const
 edge costs More...
 
double capacities (edge e) const
 costs for edge e More...
 
void checkSetMaxPoolSize ()
 checks if current pool size is maximum and sets it if necessary More...
 
bool computeBackCuts () const
 parameter: back cut computation More...
 
bool computeNestedCuts () const
 parameter: nested cut computation More...
 
abacus::NonDuplPool< abacus::Constraint, abacus::Variable > * cutPool ()
 the non-duplicate cutpool for the separated Steiner cuts More...
 
edge edgeGToWgPH (edge e) const
 edge mapping m_pGraph -> m_pWeightedGraphPH More...
 
int edgeID (edge e) const
 edge -> id of lp variable More...
 
const EdgeArray< int > & edgeIDs () const
 lp variable ids of edges More...
 
edge edgeWgToGPH (edge e) const
 edge mapping m_pWeightedGraphPH -> m_pGraph More...
 
virtual abacus::SubfirstSub () override
 generates the first subproblem More...
 
edge getEdge (int i) const
 id -> edge More...
 
MaxFlowModule< double > * getMaxFlowModule ()
 Get the maximum flow module used by separation algorithm. More...
 
node getNode (int i) const
 id -> node More...
 
std::unique_ptr< MinSteinerTreeModule< double > > & getPrimalHeuristic ()
 the primal heuristic module More...
 
EdgeVariablegetVar (edge e) const
 returns the variable assigned to edge e More...
 
EdgeVariablegetVarTwin (edge e) const
 returns the variable assigned to the twin of edge e More...
 
const Graphgraph () const
 the directed graph, i.e., the bidirection of the input graph More...
 
void incNrCutsTotal ()
 increases the number of separated directed cuts by 1 More...
 
void incNrCutsTotal (int val)
 increases the number of separated directed cuts More...
 
bool isSolutionEdge (edge e) const
 returns true iff original edge is contained in optimum solution More...
 
const NodeArray< bool > isTerminal () const
 boolean array of terminal status More...
 
bool isTerminal (node n) const
 true if n is a terminal More...
 
const NodeArray< bool > & isTerminalPH () const
 terminal yes/no (in m_pWeightedGraphPH) More...
 
int maxNrAddedCuttingPlanes () const
 maximum nr of cutting planes More...
 
int maxPoolSize () const
 the maximum pool size during the algorithm More...
 
bool minCardinalityCuts () const
 parameter: compute minimum cardinality cuts More...
 
int nEdges () const
 returns the number of edges More...
 
int nEdgesU () const
 returns number of undirected edges, i.e., nEdges()/2 More...
 
int nNodes () const
 number of nodes of the graph More...
 
int nodeID (node n) const
 npde -> id of lp variable More...
 
const NodeArray< int > & nodeIDs () const
 lp variable ids of nodes More...
 
nodenodes () const
 nodes of the graph More...
 
int nrCutsTotal () const
 total number of separated directed cuts More...
 
int nTerminals () const
 number of terminals More...
 
int poolSizeInit () const
 initial pool size More...
 
StopwatchWallClockprimalHeuristicTimer ()
 timer for primal heuristics More...
 
bool relaxed () const
 solve relaxed LP or ILP More...
 
node rootNode () const
 the designated root node (special terminal) More...
 
node rootNodePH () const
 root node (in m_pWeightedGraphPH) More...
 
int saturationStrategy () const
 strategy for saturating edges during separation; Only relevant for nested cuts More...
 
int separationStrategy () const
 strategy for separating directed Steiner cuts; Only relevant for nested cuts More...
 
StopwatchWallClockseparationTimer ()
 timer for separation More...
 
void setConfigFile (const char *filename)
 Set the config file to use that overrides all other settings. More...
 
void setMaxFlowModule (MaxFlowModule< double > *module)
 Set the maximum flow module to be used for separation. More...
 
void setMaxNumberAddedCuttingPlanes (int b)
 Set maximum number of added cutting planes per iteration. More...
 
void setNIterRoot (int val)
 nr of iterations in the root node More...
 
void setPoolSizeInitFactor (int b)
 Set factor for the initial size of the cutting pool. More...
 
void setPrimalHeuristic (MinSteinerTreeModule< double > *pMinSteinerTreeModule)
 Set the module option for the primal heuristic. More...
 
void setPrimalHeuristicCallStrategy (int b)
 Set primal heuristic call strategy. More...
 
void setRelaxedSolValue (double val)
 solution value of the root More...
 
void setSaturationStrategy (int b)
 Set saturation strategy for nested cuts. More...
 
void setSeparationStrategy (int b)
 Set separation strategy for nested cuts. More...
 
bool shuffleTerminals () const
 shuffle ordering of terminals before each separation routine More...
 
double solutionValue () const
 solution value after solving the problem, i.e., returns final primal bound More...
 
node terminal (int i) const
 get terminal with index i More...
 
const List< node > & terminalListPH () const
 list of terminals (in m_pWeightedGraphPH) More...
 
const nodeterminals () const
 terminals in an array More...
 
StopwatchWallClocktimerMinSTCut ()
 timer for minimum st-cut computations. Measures updates + algorithm More...
 
edge twin (edge e) const
 the twin edge, i.e. twin[(u,v)] = (v,u) More...
 
const EdgeArray< edge > & twins () const
 
void updateBestSolution (double *values)
 updates best found solution More...
 
void updateBestSolutionByEdges (const List< edge > &sol)
 updates best found solution by list of edges More...
 
void useBackCuts (bool b)
 Switch computation of back-cuts on or off. More...
 
void useDegreeConstraints (bool b)
 Switch usage of degree constraints (like indeg <= 1) on or off. More...
 
void useFlowBalanceConstraints (bool b)
 Switch usage of flow balance constraints on or off. More...
 
void useGSEC2Constraints (bool b)
 Switch usage of constraints x_uv + x_vu <= 1 on or off. More...
 
void useIndegreeEdgeConstraints (bool b)
 Switch usage of indegree edge constraints (indeg(v) >= outgoing edge(v,x) for all x) on or off. More...
 
void useMinCardinalityCuts (bool b)
 Switch usage of the cardinality heuristic (minimum-cardinality cuts) on or off. More...
 
void useNestedCuts (bool b)
 Switch computation of nested cuts on or off. More...
 
void useTerminalShuffle (bool b)
 Switch terminal shuffling before separation on or off. More...
 
EdgeWeightedGraph< double > & weightedGraphPH ()
 
- Public Member Functions inherited from abacus::Master
 Master (const char *problemName, bool cutting, bool pricing, OptSense::SENSE optSense=OptSense::Unknown, double eps=1.0e-4, double machineEps=1.0e-7, double infinity=1.0e30, bool readParamFromFile=false)
 The constructor. More...
 
STATUS optimize ()
 Performs the optimization by branch-and-bound. More...
 
double lowerBound () const
 Returns the value of the global lower bound. More...
 
double upperBound () const
 Returns the value of the global upper bound. More...
 
double primalBound () const
 Returns the value of the primal bound. More...
 
void primalBound (double x)
 Sets the primal bound to x and makes a new entry in the solution history. More...
 
double dualBound () const
 Returns the value of the dual bound. More...
 
void dualBound (double x)
 Sets the dual bound to x and makes a new entry in the solution history. More...
 
bool betterDual (double x) const
 Returns true if x is better than the best known dual bound; false otherwise. More...
 
bool primalViolated (double x) const
 Can be used to compare a value with the one of the best known primal bound. More...
 
bool betterPrimal (double x) const
 Can be used to check if a value is better than the best know primal bound. More...
 
double rootDualBound () const
 Returns the dual bound at the root node. More...
 
bool feasibleFound () const
 We use this function, e.g., to adapt the enumeration strategy in the DiveAndBest-Strategy. More...
 
ENUMSTRAT enumerationStrategy () const
 Returns the enumeration strategy. More...
 
void enumerationStrategy (ENUMSTRAT strat)
 Changes the enumeration strategy to strat. More...
 
virtual int enumerationStrategy (const Sub *s1, const Sub *s2)
 Analyzes the enumeration strategy set in the parameter file .abacus and calls the corresponding comparison function for the subproblems s1 and s2. More...
 
bool guaranteed () const
 Can be used to check if the guarantee requirements are fulfilled. More...
 
double guarantee () const
 Can be used to access the guarantee which can be given for the best known feasible solution. More...
 
void printGuarantee () const
 Writes the guarantee nicely formated on the output stream associated with this object. More...
 
bool check () const
 Can be used to control the correctness of the optimization if the value of the optimum solution has been loaded. More...
 
bool knownOptimum (double &optVal) const
 Opens the file specified with the parameter OptimumFileName in the configuration file .abacus and tries to find a line with the name of the problem instance (as specified in the constructor of Master) as first string. More...
 
virtual void output () const
 Does nothing but can be redefined in derived classes for output before the timing statistics. More...
 
bool cutting () const
 
bool pricing () const
 
const OptSenseoptSense () const
 Returns a pointer to the object holding the optimization sense of the problem. More...
 
Historyhistory () const
 Returns a pointer to the object storing the solution history of this branch and cut problem. More...
 
OpenSubopenSub () const
 Returns a pointer to the set of open subproblems. More...
 
StandardPool< Constraint, Variable > * conPool () const
 Returns a pointer to the default pool storing the constraints of the problem formulation. More...
 
StandardPool< Constraint, Variable > * cutPool () const
 Returns a pointer to the default pool for the generated cutting planes. More...
 
StandardPool< Variable, Constraint > * varPool () const
 Returns a pointer to the default pool storing the variables. More...
 
Subroot () const
 Can be used to access the root node of the branch-and-bound tree. More...
 
SubrRoot () const
 
STATUS status () const
 Returns the status of the Master. More...
 
const string & problemName () const
 Returns the name of the instance being optimized (as specified in the constructor of this class). More...
 
const ogdf::StopwatchWallClocktotalCowTime () const
 Returns a pointer to the timer measuring the total wall clock time. More...
 
bool solveApprox () const
 True, if an approximative solver should be used. More...
 
const ogdf::StopwatchCPUtotalTime () const
 returns a pointer to the timer measuring the total cpu time for the optimization. More...
 
const ogdf::StopwatchCPUlpTime () const
 Returns a pointer to the timer measuring the cpu time spent in members of the LP-interface. More...
 
const ogdf::StopwatchCPUlpSolverTime () const
 Return a pointer to the timer measuring the cpu time required by the LP solver. More...
 
const ogdf::StopwatchCPUseparationTime () const
 Returns a pointer to the timer measuring the cpu time spent in the separation of cutting planes. More...
 
const ogdf::StopwatchCPUimproveTime () const
 Returns a pointer to the timer measuring the cpu time spent in the heuristics for the computation of feasible solutions. More...
 
const ogdf::StopwatchCPUpricingTime () const
 Returns a pointer to the timer measuring the cpu time spent in pricing. More...
 
const ogdf::StopwatchCPUbranchingTime () const
 Returns a pointer to the timer measuring the cpu time spent in finding and selecting the branching rules. More...
 
int nSub () const
 returns the number of generated subproblems. More...
 
int nLp () const
 Returns the number of optimized linear programs (only LP-relaxations). More...
 
int highestLevel () const
 Returns the highest level in the tree which has been reached during the implicit enumeration. More...
 
int nNewRoot () const
 Returns the number of root changes of the remaining branch-and-cut tree. More...
 
int nSubSelected () const
 Returns the number of subproblems which have already been selected from the set of open subproblems. More...
 
void printParameters () const
 Writes all parameters of the class Master together with their values to the global output stream. More...
 
BRANCHINGSTRAT branchingStrategy () const
 Returns the branching strategy. More...
 
void branchingStrategy (BRANCHINGSTRAT strat)
 Changes the branching strategy to strat. More...
 
OSISOLVER defaultLpSolver () const
 returns the Lp Solver. More...
 
void defaultLpSolver (OSISOLVER osiSolver)
 Changes the default Lp solver to osiSolver. More...
 
LpMasterOsilpMasterOsi () const
 
int nBranchingVariableCandidates () const
 Returns the number of variables that should be tested for the selection of the branching variable. More...
 
void nBranchingVariableCandidates (int n)
 Sets the number of tested branching variable candidates to n. More...
 
int nStrongBranchingIterations () const
 The number of simplex iterations that are performed when testing candidates for branching variables within strong branching. More...
 
void nStrongBranchingIterations (int n)
 Sets the number of simplex iterations that are performed when testing candidates for branching variables within strong branching. More...
 
double requiredGuarantee () const
 The guarantee specification for the optimization. More...
 
void requiredGuarantee (double g)
 Changes the guarantee specification tp g. More...
 
int maxLevel () const
 Returns the maximal depth up to which the enumeration should be performed. More...
 
void maxLevel (int ml)
 This version of the function maxLevel() changes the maximal enumeration depth. More...
 
int maxNSub () const
 Returns the maximal number of subproblems to be processed. More...
 
void maxNSub (int ml)
 Changes the maximal number of subproblems to ml. More...
 
int64_t maxCpuTime () const
 Returns the maximal cpu time (in seconds) which can be used by the optimization. More...
 
string maxCpuTimeAsString () const
 Returns the maximal cpu time (as string hh:mm:ss) which can be used by the optimization. More...
 
void maxCpuTime (const string &t)
 Sets the maximally allowed cpu time for the optimization to t. More...
 
void maxCpuTime (int64_t seconds)
 Sets the maximally allowed cpu time to seconds. More...
 
void maxCpuTime (int hour, int min, int sec)
 Sets the maximally allowed cpu time for the optimization to hour, min, sec. More...
 
int64_t maxCowTime () const
 Returns the maximal wall-clock time (in seconds) which can be used by the optimization. More...
 
string maxCowTimeAsString () const
 Returns the maximal wall-clock time (as string hh:mm:ss) which can be used by the optimization. More...
 
void maxCowTime (int64_t seconds)
 Sets the maximally allowed wall-clock time to seconds. More...
 
void maxCowTime (const string &t)
 Sets the maximally allowed wall-clock time for the optimization to t. More...
 
bool objInteger () const
 If true then we assume that all feasible solutions have integral objective function values. More...
 
void objInteger (bool b)
 Sets the assumption that the objective function values of all feasible solutions are integer. More...
 
int tailOffNLp () const
 Returns the number of linear programs considered in the tailing off analysis. More...
 
void tailOffNLp (int n)
 Sets the number of linear programs considered in the tailing off analysis to n. More...
 
double tailOffPercent () const
 Returns the minimal change of the dual bound for the tailing off analysis in percent. More...
 
void tailOffPercent (double p)
 Sets the minimal change of the dual bound for the tailing off analysis to p. More...
 
bool delayedBranching (int nOpt) const
 Returns true if the number of optimizations nOpt of a subproblem exceeds the delayed branching threshold, false otherwise. More...
 
void dbThreshold (int threshold)
 Sets the number of optimizations of a subproblem until sons are created in Sub::branching(). More...
 
int dbThreshold () const
 Returns the number of optimizations of a subproblem until sons are created. More...
 
int minDormantRounds () const
 Returns the maximal number of rounds, i.e., number of subproblem optimizations, a subproblem is dormant. More...
 
void minDormantRounds (int nRounds)
 Sets the number of rounds a subproblem should stay dormant to nRounds. More...
 
PRIMALBOUNDMODE pbMode () const
 Returns the mode of the primal bound initialization. More...
 
void pbMode (PRIMALBOUNDMODE mode)
 Sets the mode of the primal bound initialization to mode. More...
 
int pricingFreq () const
 Returns the number of linear programs being solved between two additional pricing steps. More...
 
void pricingFreq (int f)
 Sets the number of linear programs being solved between two additional pricing steps to f. More...
 
int skipFactor () const
 Returns the frequency of subproblems in which constraints or variables should be generated. More...
 
void skipFactor (int f)
 Sets the frequency for constraint and variable generation to f. More...
 
void skippingMode (SKIPPINGMODE mode)
 Sets the skipping strategy to mode. More...
 
SKIPPINGMODE skippingMode () const
 Returns the skipping strategy. More...
 
CONELIMMODE conElimMode () const
 Returns the mode for the elimination of constraints. More...
 
void conElimMode (CONELIMMODE mode)
 Changes the constraint elimination mode to mode. More...
 
VARELIMMODE varElimMode () const
 Returns the mode for the elimination of variables. More...
 
void varElimMode (VARELIMMODE mode)
 Changes the variable elimination mode to mode. More...
 
double conElimEps () const
 Returns the zero tolerance for the elimination of constraints by the slack criterion. More...
 
void conElimEps (double eps)
 Changes the tolerance for the elimination of constraints by the slack criterion to eps. More...
 
double varElimEps () const
 Returns the zero tolerance for the elimination of variables by the reduced cost criterion. More...
 
void varElimEps (double eps)
 Changes the tolerance for the elimination of variables by the reduced cost criterion to eps. More...
 
int varElimAge () const
 Returns the age for the elimination of variables by the reduced cost criterion. More...
 
void varElimAge (int age)
 Changes the age for the elimination of variables by the reduced cost criterion to age. More...
 
int conElimAge () const
 Returns the age for the elimination of constraints. More...
 
void conElimAge (int age)
 Changes the age for the elimination of constraints to age. More...
 
bool fixSetByRedCost () const
 
void fixSetByRedCost (bool on)
 Turns fixing and setting variables by reduced cost on or off. More...
 
bool printLP () const
 
void printLP (bool on)
 Turns the output of the linear program in every iteration on or off. More...
 
int maxConAdd () const
 Returns the maximal number of constraints which should be added in every iteration of the cutting plane algorithm. More...
 
void maxConAdd (int max)
 Sets the maximal number of constraints that are added in an iteration of the cutting plane algorithm. More...
 
int maxConBuffered () const
 Returns the size of the buffer for generated constraints in the cutting plane algorithm. More...
 
void maxConBuffered (int max)
 Changes the maximal number of constraints that are buffered in an iteration of the cutting plane algorithm. More...
 
int maxVarAdd () const
 Returns the maximal number of variables which should be added in the column generation algorithm. More...
 
void maxVarAdd (int max)
 Changes the maximal number of variables that are added in an iteration of the subproblem optimization. More...
 
int maxVarBuffered () const
 Returns the size of the buffer for the variables generated in the column generation algorithm. More...
 
void maxVarBuffered (int max)
 Changes the maximal number of variables that are buffered in an iteration of the subproblem optimization. More...
 
int maxIterations () const
 Returns the maximal number of iterations per subproblem optimization (-1 means no iteration limit). More...
 
void maxIterations (int max)
 Changes the default value for the maximal number of iterations of the optimization of a subproblem. More...
 
bool eliminateFixedSet () const
 
void eliminateFixedSet (bool turnOn)
 Turns the elimination of fixed and set variables on or off. More...
 
bool newRootReOptimize () const
 
void newRootReOptimize (bool on)
 Turns the reoptimization of new root nodes of the remaining branch and bound tree on or off. More...
 
const string & optimumFileName () const
 Returns the name of the file that stores the optimum solutions. More...
 
void optimumFileName (const char *name)
 Changes the name of the file in which the value of the optimum solution is searched. More...
 
bool showAverageCutDistance () const
 
void showAverageCutDistance (bool on)
 Turns the output of the average distance of the added cuts from the fractional solution on or off. More...
 
VBCMODE vbcLog () const
 Returns the mode of output for the Vbc-Tool. More...
 
void vbcLog (VBCMODE mode)
 Changes the mode of output for the Vbc-Tool to mode. More...
 
virtual bool setSolverParameters (OsiSolverInterface *interface, bool solverIsApprox)
 Sets solver specific parameters. More...
 
- Public Member Functions inherited from abacus::AbacusGlobal
 AbacusGlobal (double eps=1.0e-4, double machineEps=1.0e-7, double infinity=1.0e32)
 The constructor. More...
 
virtual ~AbacusGlobal ()
 The destructor. More...
 
void assignParameter (bool &param, const char *name) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (bool &param, const char *name, bool defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (char &param, const char *name, const char *feasible, char defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (char &param, const char *name, const char *feasible=nullptr) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (double &param, const char *name, double minVal, double maxVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (double &param, const char *name, double minVal, double maxVal, double defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (int &param, const char *name, int minVal, int maxVal) const
 Searches for parameter name in the parameter table and returns its value in param. More...
 
void assignParameter (int &param, const char *name, int minVal, int maxVal, int defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (string &param, const char *name, unsigned nFeasible, const char *feasible[], const char *defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (string &param, const char *name, unsigned nFeasible=0, const char *feasible[]=nullptr) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (unsigned &param, const char *name, unsigned minVal, unsigned maxVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
void assignParameter (unsigned &param, const char *name, unsigned minVal, unsigned maxVal, unsigned defVal) const
 See AbacusGlobal::assignParameter(int&,const char*,int,int) for a description. More...
 
double eps () const
 Returns the zero tolerance. More...
 
void eps (double e)
 Sets the zero tolerance to e. More...
 
bool equal (double x, double y) const
 Returns whether the absolute difference between x and y is less than the machine dependent zero tolerance. More...
 
int findParameter (const char *name, const char *feasible) const
 See AbacusGlobal::findParameter(const char *name, unsigned nFeasible, const int *feasible) for description. More...
 
int findParameter (const char *name, unsigned nFeasible, const char *feasible[]) const
 See AbacusGlobal::findParameter(const char *name, unsigned nFeasible, const int *feasible) for description. More...
 
int findParameter (const char *name, unsigned nFeasible, const int *feasible) const
 Searches for parameter name in the parameter table. More...
 
int getParameter (const char *name, bool &param) const
 
int getParameter (const char *name, char &param) const
 
int getParameter (const char *name, double &param) const
 
int getParameter (const char *name, int &param) const
 Searches for parameter name in the parameter table and returns its value in param. More...
 
int getParameter (const char *name, string &param) const
 
int getParameter (const char *name, unsigned int &param) const
 
double infinity () const
 Provides a floating point value of "infinite" size. More...
 
void infinity (double x)
 Sets the "infinite value" to x. More...
 
void insertParameter (const char *name, const char *value)
 Inserts parameter name with value value into the parameter table. More...
 
bool isInfinity (double x) const
 Returns true if x is regarded as "infinite" large, false otherwise. More...
 
bool isInteger (double x) const
 Returns whether the value x differs at most by the machine dependent zero tolerance from an integer value. More...
 
bool isInteger (double x, double eps) const
 Returns whether the value x differs at most by eps from an integer value. More...
 
bool isMinusInfinity (double x) const
 Returns true if x is regarded as infinite small, false otherwise. More...
 
double machineEps () const
 Provides a machine dependent zero tolerance. More...
 
void machineEps (double e)
 Sets the machine dependent zero tolerance to e. More...
 
void readParameters (const string &fileName)
 Opens the parameter file fileName, reads all parameters, and inserts them in the parameter table. More...
 
- Public Member Functions inherited from abacus::AbacusRoot
virtual ~AbacusRoot ()
 The destructor. More...
 
- Public Member Functions inherited from ogdf::Logger
 Logger ()
 creates a new Logger-object with LogMode::Global and local log-level equal globalLogLevel More...
 
 Logger (Level level)
 creates a new Logger-object with LogMode::Global and given local log-level More...
 
 Logger (LogMode m)
 creates a new Logger-object with given log-mode and local log-level equal globalLogLevel More...
 
 Logger (LogMode m, Level level)
 creates a new Logger-object with given log-mode and given local log-level More...
 
bool is_lout (Level level=Level::Default) const
 returns true if such an lout command will result in text being printed More...
 
std::ostream & lout (Level level=Level::Default) const
 stream for logging-output (local) More...
 
std::ostream & sout () const
 stream for statistic-output (local) More...
 
std::ostream & fout () const
 stream for forced output (local) More...
 
Level localLogLevel () const
 gives the local log-level More...
 
void localLogLevel (Level level)
 sets the local log-level More...
 
LogMode localLogMode () const
 gives the local log-mode More...
 
void localLogMode (LogMode m)
 sets the local log-mode More...
 
Level effectiveLogLevel () const
 obtain the effective log-level for the Logger-object (i.e., resolve the dependencies on the global settings) More...
 
bool effectiveStatisticMode () const
 returns true if the Logger-object is effectively in statistic-mode (as this might be depending on the global settings) More...
 

Protected Member Functions

virtual void initializeOptimization () override
 insert variables and base constraints More...
 
virtual void initializeParameters () override
 read/set parameters from file More...
 
virtual void terminateOptimization () override
 store solution in EdgeArray More...
 
- Protected Member Functions inherited from abacus::Master
virtual void initializePools (ArrayBuffer< Constraint * > &constraints, ArrayBuffer< Variable * > &variables, int varPoolSize, int cutPoolSize, bool dynamicCutPool=false)
 Sets up the default pools for variables, constraints, and cutting planes. More...
 
virtual void initializePools (ArrayBuffer< Constraint * > &constraints, ArrayBuffer< Constraint * > &cuts, ArrayBuffer< Variable * > &variables, int varPoolSize, int cutPoolSize, bool dynamicCutPool=false)
 Is overloaded such that also a first set of cutting planes can be inserted into the cutting plane pool. More...
 
void initializeOptSense (OptSense::SENSE sense)
 Can be used to initialize the sense of the optimization in derived classes, if this has not been already performed when the constructor of Master has been called. More...
 
int bestFirstSearch (const Sub *s1, const Sub *s2) const
 Implements the best first search enumeration. More...
 
virtual int equalSubCompare (const Sub *s1, const Sub *s2) const
 Is called from the function bestFirstSearch() and from the function depthFirstSearch() if the subproblems s1 and s2 have the same priority. More...
 
int depthFirstSearch (const Sub *s1, const Sub *s2) const
 Implements the depth first search enumeration strategy, i.e., the subproblem with maximum level is selected. More...
 
int breadthFirstSearch (const Sub *s1, const Sub *s2) const
 Implements the breadth first search enumeration strategy, i.e., the subproblem with minimum level is selected. More...
 
int diveAndBestFirstSearch (const Sub *s1, const Sub *s2) const
 Performs depth-first search until a feasible solution is found, then the search process is continued with best-first search. More...
 
virtual void assignParameters ()
 Assigns the parameters that were read from a file to the member variables of the master. More...
 

Private Member Functions

 Master (const Master &rhs)
 
const Masteroperator= (const Master &rhs)
 

Private Attributes

bool m_addDegreeConstraints
 parameter: add constraints concerning the indegree of a node, like: indeg <= 1 for all vertices More...
 
bool m_addFlowBalanceConstraints
 parameter: add flow balance constraints for Steiner nodes n: outdeg(n) >= indeg(n) More...
 
bool m_addGSEC2Constraints
 parameter: add GSEC2 constraints yes/no, i.e. x_uv + x_vu <= 1 More...
 
bool m_addIndegreeEdgeConstraints
 add constraints concerning the indegree of a node w.r.t. one outgoing edge: indeg(v) >= outgoing edge(v,x) for all x More...
 
bool m_backCutComputation
 parameter: compute back cuts yes/no i.e., outgoing edges of the root-set More...
 
double * m_bestSolution
 best found solution More...
 
int m_callPrimalHeuristic
 parameter: primal heuristic (PH) call strategy More...
 
EdgeArray< double > m_capacities
 edge costs More...
 
const char * m_configfile
 problem dependent config file More...
 
EdgeArray< int > m_edgeIDs
 edge -> id More...
 
edgem_edges
 id -> edge More...
 
EdgeArray< edgem_edgesGToWgPH
 edge mapping m_pGraph -> m_pWeightedGraphPH More...
 
EdgeArray< edgem_edgesWgToGPH
 edge mapping m_pWeightedGraphPH -> m_pGraph More...
 
EdgeArray< EdgeVariable * > m_edgeToVar
 edge -> lp variable More...
 
EdgeArray< bool > m_isSolutionEdge
 
NodeArray< bool > m_isTerminal
 node is terminal yes/no More...
 
NodeArray< bool > m_isTerminalPH
 is terminal yes/no (in m_pWeightedGraphPH) More...
 
EdgeArray< edgem_mapToBidirectedGraph1
 the first directed arc in m_pGraph for an original edge More...
 
EdgeArray< edgem_mapToBidirectedGraph2
 the second directed arc in m_pGraph for an original edge More...
 
EdgeArray< edgem_mapToOrigGraph
 the undirected edge in the original graph for each arc in m_pGraph More...
 
MaxFlowModule< double > * m_maxFlowModule
 
int m_maxNrAddedCuttingPlanes
 parameter: maximum nr of cutting planes per iteration More...
 
int m_maxPoolSize
 statistic number of cuts in pool More...
 
bool m_minCardinalityCuts
 parameter: compute minimum cardinality cuts More...
 
int m_nEdgesU
 number of undirected edges More...
 
bool m_nestedCutComputation
 parameter: compute nested cuts yes/no i.e., saturate all cut edges and recompute the mincut More...
 
int m_nIterRoot
 statistics: nr of iterations in the root node of the b&b tree More...
 
NodeArray< int > m_nodeIDs
 node -> id More...
 
nodem_nodes
 id -> node More...
 
NodeArray< nodem_nodesGToWgPH
 node mapping m_pGraph -> m_pWeightedGraphPH More...
 
int m_nrCutsTotal
 total number of separated directed cuts More...
 
int m_nTerminals
 nr of terminals More...
 
abacus::NonDuplPool< abacus::Constraint, abacus::Variable > * m_pCutPool
 the non-duplicate cut pool for the directed Steiner cuts More...
 
Graphm_pGraph
 the bidirected graph More...
 
int m_poolSizeInit
 size of initial pool More...
 
int m_poolSizeInitFactor
 parameter: factor for the initial size of the cutting pool More...
 
int m_poolSizeMax
 maximal size of the pool More...
 
std::unique_ptr< MinSteinerTreeModule< double > > m_primalHeuristic
 Algorithm used for the primal heuristic. More...
 
StopwatchWallClock m_primalHeuristicTimer
 timer for primal heuristics More...
 
EdgeWeightedGraph< double > * m_pWeightedGraphPH
 edge weighted bidirected graph; used and modified for primal heuristics More...
 
bool m_relaxed
 parameter: indicates whether we solve the relaxed problem (LP) or the ILP More...
 
double m_relaxedSolValue
 statistics: solution value of the relaxed master problem More...
 
node m_root
 the virtual root of our graph. This node is a terminal. More...
 
node m_rootPH
 root node in m_pWeightedGraphPH More...
 
int m_saturationStrategy
 parameter: saturation strategy, only important if nested cuts are computed More...
 
int m_separationStrategy
 parameter: separation strategy, only important if nested cuts are computed More...
 
StopwatchWallClock m_separationTimer
 timer for separation More...
 
bool m_shuffleTerminals
 parameter: shuffle the list of terminals right before separation More...
 
List< nodem_terminalListPH
 list of terminal nodes (in m_pWeightedGraphPH) More...
 
nodem_terminals
 terminal index -> terminal node More...
 
StopwatchWallClock m_timerMinSTCut
 timer for minimum st-cut computations. Measures updates + algorithm More...
 
EdgeArray< edgem_twin
 the twin edges (u,v) <-> (v,u) More...
 
const EdgeWeightedGraph< T > & m_wG
 the original weighted graph More...
 

Additional Inherited Members

- Public Types inherited from abacus::Master
enum  BRANCHINGSTRAT { CloseHalf, CloseHalfExpensive }
 This enumeration defines the two currently implemented branching variable selection strategies. More...
 
enum  CONELIMMODE { NoConElim, NonBinding, Basic }
 This enumeration defines the ways for automatic constraint elimination during the cutting plane phase. More...
 
enum  ENUMSTRAT { BestFirst, BreadthFirst, DepthFirst, DiveAndBest }
 The enumeration defining the different enumeration strategies for the branch and bound algorithm. More...
 
enum  OSISOLVER { Cbc, Clp, CPLEX, DyLP, FortMP, GLPK, MOSEK, OSL, SoPlex, SYMPHONY, XPRESS_MP, Gurobi, Csdp }
 This enumeration defines which solvers can be used to solve the LP-relaxations. More...
 
enum  PRIMALBOUNDMODE { NoPrimalBound, Optimum, OptimumOne }
 This enumeration provides various methods for the initialization of the primal bound. More...
 
enum  SKIPPINGMODE { SkipByNode, SkipByLevel }
 The way nodes are skipped for the generation of cuts. More...
 
enum  STATUS { Optimal, Error, OutOfMemory, Unprocessed, Processing, Guaranteed, MaxLevel, MaxCpuTime, MaxNSub, MaxCowTime, ExceptionFathom }
 The various statuses of the optimization process. More...
 
enum  VARELIMMODE { NoVarElim, ReducedCost }
 This enumeration defines the ways for automatic variable elimination during the column generation algorithm. More...
 
enum  VBCMODE { NoVbc, File, Pipe }
 This enumeration defines what kind of output can be generated for the VBCTOOL. More...
 
- Public Types inherited from ogdf::Logger
enum  Level { Level::Minor, Level::Medium, Level::Default, Level::High, Level::Alarm, Level::Force }
 supported log-levels from lowest to highest importance More...
 
enum  LogMode { LogMode::Global, LogMode::GlobalLog, LogMode::Log, LogMode::Statistic }
 Local log-modes. More...
 
- Static Public Member Functions inherited from abacus::AbacusRoot
static bool ascii2bool (const string &str)
 Converts the string str to a boolean value. More...
 
static bool endsWith (const string &str, const string &end)
 Returns true if str ends with end, false otherwise. More...
 
static double fracPart (double x)
 Returns the absolute value of the fractional part of x. More...
 
static const char * onOff (bool value)
 Converts a boolean variable to the strings "on" and "off". More...
 
- Static Public Member Functions inherited from ogdf::Logger
static bool is_slout (Level level=Level::Default)
 returns true if such an slout command will result in text being printed More...
 
static std::ostream & slout (Level level=Level::Default)
 stream for logging-output (global) More...
 
static std::ostream & ssout ()
 stream for statistic-output (global) More...
 
static std::ostream & sfout ()
 stream for forced output (global) More...
 
static bool is_ilout (Level level=Level::Default)
 stream for logging-output (global; used by internal libraries, e.g. Abacus) returns true if such an ilout command will result in text being printed More...
 
static std::ostream & ilout (Level level=Level::Default)
 
static std::ostream & ifout ()
 stream for forced output (global; used by internal libraries, e.g. Abacus) More...
 
static Level globalLogLevel ()
 gives the global log-level More...
 
static void globalLogLevel (Level level)
 sets the global log-level More...
 
static Level globalInternalLibraryLogLevel ()
 gives the internal-library log-level More...
 
static void globalInternalLibraryLogLevel (Level level)
 sets the internal-library log-level More...
 
static Level globalMinimumLogLevel ()
 gives the globally minimally required log-level More...
 
static void globalMinimumLogLevel (Level level)
 sets the globally minimally required log-level More...
 
static bool globalStatisticMode ()
 returns true if we are globally in statistic mode More...
 
static void globalStatisticMode (bool s)
 sets whether we are globally in statistic mode More...
 
static void setWorldStream (std::ostream &o)
 change the stream to which allowed output is written (by default: std::cout) More...
 
- Static Public Attributes inherited from abacus::Master
static const char * BRANCHINGSTRAT_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * CONELIMMODE_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * ENUMSTRAT_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * OSISOLVER_ []
 Array for the literal values for possible Osi solvers. More...
 
static const char * PRIMALBOUNDMODE_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * SKIPPINGMODE_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * STATUS_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * VARELIMMODE_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 
static const char * VBCMODE_ []
 Literal values for the enumerators of the corresponding enumeration type. More...
 

Detailed Description

template<typename T>
class ogdf::MinSteinerTreeDirectedCut< T >::Master

Master problem of Steiner tree branch&cut algorithm

Definition at line 230 of file MinSteinerTreeDirectedCut.h.

Constructor & Destructor Documentation

◆ Master() [1/2]

template<typename T >
ogdf::MinSteinerTreeDirectedCut< T >::Master::Master ( const EdgeWeightedGraph< T > &  wG,
const List< node > &  terminals,
const NodeArray< bool > &  isTerminal,
double  eps,
bool  relaxed = false 
)

Constructor of the master problem.

Parameters
wGthe underlying undirected edge weighted graph. Since we work on the bidirection we construct a new graph.
terminalslist of terminals
isTerminalboolean array indicating whether a node is a terminal
epsepsilon precision
relaxedtrue if the relaxed problem should be solved

Definition at line 1038 of file MinSteinerTreeDirectedCut.h.

◆ ~Master()

template<typename T >
virtual ogdf::MinSteinerTreeDirectedCut< T >::Master::~Master ( )
inlinevirtual

destructor

Reimplemented from abacus::Master.

Definition at line 249 of file MinSteinerTreeDirectedCut.h.

◆ Master() [2/2]

template<typename T >
ogdf::MinSteinerTreeDirectedCut< T >::Master::Master ( const Master rhs)
private

Member Function Documentation

◆ bestSolution()

template<typename T >
double* ogdf::MinSteinerTreeDirectedCut< T >::Master::bestSolution ( ) const
inline

the best found solution

Definition at line 447 of file MinSteinerTreeDirectedCut.h.

◆ callPrimalHeuristic()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::callPrimalHeuristic ( ) const
inline

parameter: call primal heuristic yes/no

Definition at line 467 of file MinSteinerTreeDirectedCut.h.

◆ callPrimalHeuristicStrategy()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::callPrimalHeuristicStrategy ( ) const
inline

strategy for calling primal heuristic (PH)

Definition at line 469 of file MinSteinerTreeDirectedCut.h.

◆ capacities() [1/2]

template<typename T >
const EdgeArray<double>& ogdf::MinSteinerTreeDirectedCut< T >::Master::capacities ( ) const
inline

edge costs

Definition at line 427 of file MinSteinerTreeDirectedCut.h.

◆ capacities() [2/2]

template<typename T >
double ogdf::MinSteinerTreeDirectedCut< T >::Master::capacities ( edge  e) const
inline

costs for edge e

Definition at line 429 of file MinSteinerTreeDirectedCut.h.

◆ checkSetMaxPoolSize()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::checkSetMaxPoolSize ( )
inline

checks if current pool size is maximum and sets it if necessary

Definition at line 481 of file MinSteinerTreeDirectedCut.h.

◆ computeBackCuts()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::computeBackCuts ( ) const
inline

parameter: back cut computation

Definition at line 463 of file MinSteinerTreeDirectedCut.h.

◆ computeNestedCuts()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::computeNestedCuts ( ) const
inline

parameter: nested cut computation

Definition at line 461 of file MinSteinerTreeDirectedCut.h.

◆ cutPool()

template<typename T >
abacus::NonDuplPool<abacus::Constraint, abacus::Variable>* ogdf::MinSteinerTreeDirectedCut< T >::Master::cutPool ( )
inline

the non-duplicate cutpool for the separated Steiner cuts

Definition at line 371 of file MinSteinerTreeDirectedCut.h.

◆ edgeGToWgPH()

template<typename T >
edge ogdf::MinSteinerTreeDirectedCut< T >::Master::edgeGToWgPH ( edge  e) const
inline

edge mapping m_pGraph -> m_pWeightedGraphPH

Definition at line 512 of file MinSteinerTreeDirectedCut.h.

◆ edgeID()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::edgeID ( edge  e) const
inline

edge -> id of lp variable

Definition at line 410 of file MinSteinerTreeDirectedCut.h.

◆ edgeIDs()

template<typename T >
const EdgeArray<int>& ogdf::MinSteinerTreeDirectedCut< T >::Master::edgeIDs ( ) const
inline

lp variable ids of edges

Definition at line 419 of file MinSteinerTreeDirectedCut.h.

◆ edgeWgToGPH()

template<typename T >
edge ogdf::MinSteinerTreeDirectedCut< T >::Master::edgeWgToGPH ( edge  e) const
inline

edge mapping m_pWeightedGraphPH -> m_pGraph

Definition at line 514 of file MinSteinerTreeDirectedCut.h.

◆ firstSub()

template<typename T >
virtual abacus::Sub* ogdf::MinSteinerTreeDirectedCut< T >::Master::firstSub ( )
inlineoverridevirtual

generates the first subproblem

Implements abacus::Master.

Definition at line 374 of file MinSteinerTreeDirectedCut.h.

◆ getEdge()

template<typename T >
edge ogdf::MinSteinerTreeDirectedCut< T >::Master::getEdge ( int  i) const
inline

id -> edge

Definition at line 422 of file MinSteinerTreeDirectedCut.h.

◆ getMaxFlowModule()

template<typename T >
MaxFlowModule<double>* ogdf::MinSteinerTreeDirectedCut< T >::Master::getMaxFlowModule ( )
inline

Get the maximum flow module used by separation algorithm.

Definition at line 284 of file MinSteinerTreeDirectedCut.h.

◆ getNode()

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::getNode ( int  i) const
inline

id -> node

Definition at line 424 of file MinSteinerTreeDirectedCut.h.

◆ getPrimalHeuristic()

template<typename T >
std::unique_ptr<MinSteinerTreeModule<double> >& ogdf::MinSteinerTreeDirectedCut< T >::Master::getPrimalHeuristic ( )
inline

the primal heuristic module

Definition at line 368 of file MinSteinerTreeDirectedCut.h.

◆ getVar()

template<typename T >
EdgeVariable* ogdf::MinSteinerTreeDirectedCut< T >::Master::getVar ( edge  e) const
inline

returns the variable assigned to edge e

Definition at line 437 of file MinSteinerTreeDirectedCut.h.

◆ getVarTwin()

template<typename T >
EdgeVariable* ogdf::MinSteinerTreeDirectedCut< T >::Master::getVarTwin ( edge  e) const
inline

returns the variable assigned to the twin of edge e

Definition at line 439 of file MinSteinerTreeDirectedCut.h.

◆ graph()

template<typename T >
const Graph& ogdf::MinSteinerTreeDirectedCut< T >::Master::graph ( ) const
inline

the directed graph, i.e., the bidirection of the input graph

Definition at line 387 of file MinSteinerTreeDirectedCut.h.

◆ incNrCutsTotal() [1/2]

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::incNrCutsTotal ( )
inline

increases the number of separated directed cuts by 1

Definition at line 492 of file MinSteinerTreeDirectedCut.h.

◆ incNrCutsTotal() [2/2]

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::incNrCutsTotal ( int  val)
inline

increases the number of separated directed cuts

Definition at line 490 of file MinSteinerTreeDirectedCut.h.

◆ initializeOptimization()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::initializeOptimization
overrideprotectedvirtual

insert variables and base constraints

Reimplemented from abacus::Master.

Definition at line 1266 of file MinSteinerTreeDirectedCut.h.

◆ initializeParameters()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::initializeParameters
overrideprotectedvirtual

read/set parameters from file

Reimplemented from abacus::Master.

Definition at line 1198 of file MinSteinerTreeDirectedCut.h.

◆ isSolutionEdge()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::isSolutionEdge ( edge  e) const
inline

returns true iff original edge is contained in optimum solution

Definition at line 380 of file MinSteinerTreeDirectedCut.h.

◆ isTerminal() [1/2]

template<typename T >
const NodeArray<bool> ogdf::MinSteinerTreeDirectedCut< T >::Master::isTerminal ( ) const
inline

boolean array of terminal status

Definition at line 407 of file MinSteinerTreeDirectedCut.h.

◆ isTerminal() [2/2]

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::isTerminal ( node  n) const
inline

true if n is a terminal

Definition at line 405 of file MinSteinerTreeDirectedCut.h.

◆ isTerminalPH()

template<typename T >
const NodeArray<bool>& ogdf::MinSteinerTreeDirectedCut< T >::Master::isTerminalPH ( ) const
inline

terminal yes/no (in m_pWeightedGraphPH)

Definition at line 508 of file MinSteinerTreeDirectedCut.h.

◆ maxNrAddedCuttingPlanes()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::maxNrAddedCuttingPlanes ( ) const
inline

maximum nr of cutting planes

Definition at line 459 of file MinSteinerTreeDirectedCut.h.

◆ maxPoolSize()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::maxPoolSize ( ) const
inline

the maximum pool size during the algorithm

Definition at line 479 of file MinSteinerTreeDirectedCut.h.

◆ minCardinalityCuts()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::minCardinalityCuts ( ) const
inline

parameter: compute minimum cardinality cuts

Definition at line 465 of file MinSteinerTreeDirectedCut.h.

◆ nEdges()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nEdges ( ) const
inline

returns the number of edges

Definition at line 392 of file MinSteinerTreeDirectedCut.h.

◆ nEdgesU()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nEdgesU ( ) const
inline

returns number of undirected edges, i.e., nEdges()/2

Definition at line 394 of file MinSteinerTreeDirectedCut.h.

◆ nNodes()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nNodes ( ) const
inline

number of nodes of the graph

Definition at line 390 of file MinSteinerTreeDirectedCut.h.

◆ nodeID()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nodeID ( node  n) const
inline

npde -> id of lp variable

Definition at line 412 of file MinSteinerTreeDirectedCut.h.

◆ nodeIDs()

template<typename T >
const NodeArray<int>& ogdf::MinSteinerTreeDirectedCut< T >::Master::nodeIDs ( ) const
inline

lp variable ids of nodes

Definition at line 417 of file MinSteinerTreeDirectedCut.h.

◆ nodes()

template<typename T >
node* ogdf::MinSteinerTreeDirectedCut< T >::Master::nodes ( ) const
inline

nodes of the graph

Definition at line 415 of file MinSteinerTreeDirectedCut.h.

◆ nrCutsTotal()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nrCutsTotal ( ) const
inline

total number of separated directed cuts

Definition at line 494 of file MinSteinerTreeDirectedCut.h.

◆ nTerminals()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::nTerminals ( ) const
inline

number of terminals

Definition at line 399 of file MinSteinerTreeDirectedCut.h.

◆ operator=()

template<typename T >
const Master& ogdf::MinSteinerTreeDirectedCut< T >::Master::operator= ( const Master rhs)
private

◆ poolSizeInit()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::poolSizeInit ( ) const
inline

initial pool size

Definition at line 487 of file MinSteinerTreeDirectedCut.h.

◆ primalHeuristicTimer()

template<typename T >
StopwatchWallClock* ogdf::MinSteinerTreeDirectedCut< T >::Master::primalHeuristicTimer ( )
inline

timer for primal heuristics

Definition at line 524 of file MinSteinerTreeDirectedCut.h.

◆ relaxed()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::relaxed ( ) const
inline

solve relaxed LP or ILP

Definition at line 442 of file MinSteinerTreeDirectedCut.h.

◆ rootNode()

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::rootNode ( ) const
inline

the designated root node (special terminal)

Definition at line 396 of file MinSteinerTreeDirectedCut.h.

◆ rootNodePH()

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::rootNodePH ( ) const
inline

root node (in m_pWeightedGraphPH)

Definition at line 510 of file MinSteinerTreeDirectedCut.h.

◆ saturationStrategy()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::saturationStrategy ( ) const
inline

strategy for saturating edges during separation; Only relevant for nested cuts

Definition at line 473 of file MinSteinerTreeDirectedCut.h.

◆ separationStrategy()

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::separationStrategy ( ) const
inline

strategy for separating directed Steiner cuts; Only relevant for nested cuts

Definition at line 471 of file MinSteinerTreeDirectedCut.h.

◆ separationTimer()

template<typename T >
StopwatchWallClock* ogdf::MinSteinerTreeDirectedCut< T >::Master::separationTimer ( )
inline

timer for separation

Definition at line 520 of file MinSteinerTreeDirectedCut.h.

◆ setConfigFile()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setConfigFile ( const char *  filename)
inline

Set the config file to use that overrides all other settings.

Definition at line 261 of file MinSteinerTreeDirectedCut.h.

◆ setMaxFlowModule()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setMaxFlowModule ( MaxFlowModule< double > *  module)
inline

Set the maximum flow module to be used for separation.

Definition at line 279 of file MinSteinerTreeDirectedCut.h.

◆ setMaxNumberAddedCuttingPlanes()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setMaxNumberAddedCuttingPlanes ( int  b)
inline

Set maximum number of added cutting planes per iteration.

Definition at line 310 of file MinSteinerTreeDirectedCut.h.

◆ setNIterRoot()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setNIterRoot ( int  val)
inline

nr of iterations in the root node

Definition at line 456 of file MinSteinerTreeDirectedCut.h.

◆ setPoolSizeInitFactor()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setPoolSizeInitFactor ( int  b)
inline

Set factor for the initial size of the cutting pool.

Definition at line 358 of file MinSteinerTreeDirectedCut.h.

◆ setPrimalHeuristic()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setPrimalHeuristic ( MinSteinerTreeModule< double > *  pMinSteinerTreeModule)
inline

Set the module option for the primal heuristic.

Definition at line 364 of file MinSteinerTreeDirectedCut.h.

◆ setPrimalHeuristicCallStrategy()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setPrimalHeuristicCallStrategy ( int  b)
inline

Set primal heuristic call strategy.

Definition at line 351 of file MinSteinerTreeDirectedCut.h.

◆ setRelaxedSolValue()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setRelaxedSolValue ( double  val)
inline

solution value of the root

Definition at line 454 of file MinSteinerTreeDirectedCut.h.

◆ setSaturationStrategy()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setSaturationStrategy ( int  b)
inline

Set saturation strategy for nested cuts.

Definition at line 339 of file MinSteinerTreeDirectedCut.h.

◆ setSeparationStrategy()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::setSeparationStrategy ( int  b)
inline

Set separation strategy for nested cuts.

Definition at line 332 of file MinSteinerTreeDirectedCut.h.

◆ shuffleTerminals()

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::shuffleTerminals ( ) const
inline

shuffle ordering of terminals before each separation routine

Definition at line 476 of file MinSteinerTreeDirectedCut.h.

◆ solutionValue()

template<typename T >
double ogdf::MinSteinerTreeDirectedCut< T >::Master::solutionValue ( ) const
inline

solution value after solving the problem, i.e., returns final primal bound

Definition at line 445 of file MinSteinerTreeDirectedCut.h.

◆ terminal()

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::terminal ( int  i) const
inline

get terminal with index i

Definition at line 403 of file MinSteinerTreeDirectedCut.h.

◆ terminalListPH()

template<typename T >
const List<node>& ogdf::MinSteinerTreeDirectedCut< T >::Master::terminalListPH ( ) const
inline

list of terminals (in m_pWeightedGraphPH)

Definition at line 506 of file MinSteinerTreeDirectedCut.h.

◆ terminals()

template<typename T >
const node* ogdf::MinSteinerTreeDirectedCut< T >::Master::terminals ( ) const
inline

terminals in an array

Definition at line 401 of file MinSteinerTreeDirectedCut.h.

◆ terminateOptimization()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::terminateOptimization
overrideprotectedvirtual

store solution in EdgeArray

Reimplemented from abacus::Master.

Definition at line 1422 of file MinSteinerTreeDirectedCut.h.

◆ timerMinSTCut()

template<typename T >
StopwatchWallClock* ogdf::MinSteinerTreeDirectedCut< T >::Master::timerMinSTCut ( )
inline

timer for minimum st-cut computations. Measures updates + algorithm

Definition at line 522 of file MinSteinerTreeDirectedCut.h.

◆ twin()

template<typename T >
edge ogdf::MinSteinerTreeDirectedCut< T >::Master::twin ( edge  e) const
inline

the twin edge, i.e. twin[(u,v)] = (v,u)

Definition at line 432 of file MinSteinerTreeDirectedCut.h.

◆ twins()

template<typename T >
const EdgeArray<edge>& ogdf::MinSteinerTreeDirectedCut< T >::Master::twins ( ) const
inline

Definition at line 434 of file MinSteinerTreeDirectedCut.h.

◆ updateBestSolution()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::updateBestSolution ( double *  values)

updates best found solution

Definition at line 1489 of file MinSteinerTreeDirectedCut.h.

◆ updateBestSolutionByEdges()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::updateBestSolutionByEdges ( const List< edge > &  sol)

updates best found solution by list of edges

Definition at line 1506 of file MinSteinerTreeDirectedCut.h.

◆ useBackCuts()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useBackCuts ( bool  b)
inline

Switch computation of back-cuts on or off.

Definition at line 322 of file MinSteinerTreeDirectedCut.h.

◆ useDegreeConstraints()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useDegreeConstraints ( bool  b)
inline

Switch usage of degree constraints (like indeg <= 1) on or off.

Definition at line 290 of file MinSteinerTreeDirectedCut.h.

◆ useFlowBalanceConstraints()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useFlowBalanceConstraints ( bool  b)
inline

Switch usage of flow balance constraints on or off.

Definition at line 305 of file MinSteinerTreeDirectedCut.h.

◆ useGSEC2Constraints()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useGSEC2Constraints ( bool  b)
inline

Switch usage of constraints x_uv + x_vu <= 1 on or off.

Definition at line 300 of file MinSteinerTreeDirectedCut.h.

◆ useIndegreeEdgeConstraints()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useIndegreeEdgeConstraints ( bool  b)
inline

Switch usage of indegree edge constraints (indeg(v) >= outgoing edge(v,x) for all x) on or off.

Definition at line 295 of file MinSteinerTreeDirectedCut.h.

◆ useMinCardinalityCuts()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useMinCardinalityCuts ( bool  b)
inline

Switch usage of the cardinality heuristic (minimum-cardinality cuts) on or off.

Definition at line 346 of file MinSteinerTreeDirectedCut.h.

◆ useNestedCuts()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useNestedCuts ( bool  b)
inline

Switch computation of nested cuts on or off.

Definition at line 327 of file MinSteinerTreeDirectedCut.h.

◆ useTerminalShuffle()

template<typename T >
void ogdf::MinSteinerTreeDirectedCut< T >::Master::useTerminalShuffle ( bool  b)
inline

Switch terminal shuffling before separation on or off.

Definition at line 317 of file MinSteinerTreeDirectedCut.h.

◆ weightedGraphPH()

template<typename T >
EdgeWeightedGraph<double>& ogdf::MinSteinerTreeDirectedCut< T >::Master::weightedGraphPH ( )
inline

Definition at line 504 of file MinSteinerTreeDirectedCut.h.

Member Data Documentation

◆ m_addDegreeConstraints

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_addDegreeConstraints
private

parameter: add constraints concerning the indegree of a node, like: indeg <= 1 for all vertices

Definition at line 631 of file MinSteinerTreeDirectedCut.h.

◆ m_addFlowBalanceConstraints

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_addFlowBalanceConstraints
private

parameter: add flow balance constraints for Steiner nodes n: outdeg(n) >= indeg(n)

Definition at line 635 of file MinSteinerTreeDirectedCut.h.

◆ m_addGSEC2Constraints

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_addGSEC2Constraints
private

parameter: add GSEC2 constraints yes/no, i.e. x_uv + x_vu <= 1

Definition at line 629 of file MinSteinerTreeDirectedCut.h.

◆ m_addIndegreeEdgeConstraints

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_addIndegreeEdgeConstraints
private

add constraints concerning the indegree of a node w.r.t. one outgoing edge: indeg(v) >= outgoing edge(v,x) for all x

Definition at line 633 of file MinSteinerTreeDirectedCut.h.

◆ m_backCutComputation

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_backCutComputation
private

parameter: compute back cuts yes/no i.e., outgoing edges of the root-set

Definition at line 642 of file MinSteinerTreeDirectedCut.h.

◆ m_bestSolution

template<typename T >
double* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_bestSolution
private

best found solution

Definition at line 594 of file MinSteinerTreeDirectedCut.h.

◆ m_callPrimalHeuristic

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_callPrimalHeuristic
private

parameter: primal heuristic (PH) call strategy

Definition at line 674 of file MinSteinerTreeDirectedCut.h.

◆ m_capacities

template<typename T >
EdgeArray<double> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_capacities
private

edge costs

Definition at line 568 of file MinSteinerTreeDirectedCut.h.

◆ m_configfile

template<typename T >
const char* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_configfile
private

problem dependent config file

Definition at line 538 of file MinSteinerTreeDirectedCut.h.

◆ m_edgeIDs

template<typename T >
EdgeArray<int> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_edgeIDs
private

edge -> id

Definition at line 563 of file MinSteinerTreeDirectedCut.h.

◆ m_edges

template<typename T >
edge* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_edges
private

id -> edge

Definition at line 561 of file MinSteinerTreeDirectedCut.h.

◆ m_edgesGToWgPH

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_edgesGToWgPH
private

edge mapping m_pGraph -> m_pWeightedGraphPH

Definition at line 609 of file MinSteinerTreeDirectedCut.h.

◆ m_edgesWgToGPH

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_edgesWgToGPH
private

edge mapping m_pWeightedGraphPH -> m_pGraph

Definition at line 611 of file MinSteinerTreeDirectedCut.h.

◆ m_edgeToVar

template<typename T >
EdgeArray<EdgeVariable*> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_edgeToVar
private

edge -> lp variable

Definition at line 570 of file MinSteinerTreeDirectedCut.h.

◆ m_isSolutionEdge

template<typename T >
EdgeArray<bool> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_isSolutionEdge
private

Definition at line 595 of file MinSteinerTreeDirectedCut.h.

◆ m_isTerminal

template<typename T >
NodeArray<bool> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_isTerminal
private

node is terminal yes/no

Definition at line 584 of file MinSteinerTreeDirectedCut.h.

◆ m_isTerminalPH

template<typename T >
NodeArray<bool> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_isTerminalPH
private

is terminal yes/no (in m_pWeightedGraphPH)

Definition at line 605 of file MinSteinerTreeDirectedCut.h.

◆ m_mapToBidirectedGraph1

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_mapToBidirectedGraph1
private

the first directed arc in m_pGraph for an original edge

Definition at line 575 of file MinSteinerTreeDirectedCut.h.

◆ m_mapToBidirectedGraph2

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_mapToBidirectedGraph2
private

the second directed arc in m_pGraph for an original edge

Definition at line 577 of file MinSteinerTreeDirectedCut.h.

◆ m_mapToOrigGraph

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_mapToOrigGraph
private

the undirected edge in the original graph for each arc in m_pGraph

Definition at line 573 of file MinSteinerTreeDirectedCut.h.

◆ m_maxFlowModule

template<typename T >
MaxFlowModule<double>* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_maxFlowModule
private

Definition at line 535 of file MinSteinerTreeDirectedCut.h.

◆ m_maxNrAddedCuttingPlanes

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_maxNrAddedCuttingPlanes
private

parameter: maximum nr of cutting planes per iteration

Definition at line 638 of file MinSteinerTreeDirectedCut.h.

◆ m_maxPoolSize

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_maxPoolSize
private

statistic number of cuts in pool

Definition at line 624 of file MinSteinerTreeDirectedCut.h.

◆ m_minCardinalityCuts

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_minCardinalityCuts
private

parameter: compute minimum cardinality cuts

Definition at line 666 of file MinSteinerTreeDirectedCut.h.

◆ m_nEdgesU

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nEdgesU
private

number of undirected edges

Definition at line 559 of file MinSteinerTreeDirectedCut.h.

◆ m_nestedCutComputation

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nestedCutComputation
private

parameter: compute nested cuts yes/no i.e., saturate all cut edges and recompute the mincut

Definition at line 644 of file MinSteinerTreeDirectedCut.h.

◆ m_nIterRoot

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nIterRoot
private

statistics: nr of iterations in the root node of the b&b tree

Definition at line 550 of file MinSteinerTreeDirectedCut.h.

◆ m_nodeIDs

template<typename T >
NodeArray<int> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nodeIDs
private

node -> id

Definition at line 582 of file MinSteinerTreeDirectedCut.h.

◆ m_nodes

template<typename T >
node* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nodes
private

id -> node

Definition at line 580 of file MinSteinerTreeDirectedCut.h.

◆ m_nodesGToWgPH

template<typename T >
NodeArray<node> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nodesGToWgPH
private

node mapping m_pGraph -> m_pWeightedGraphPH

Definition at line 607 of file MinSteinerTreeDirectedCut.h.

◆ m_nrCutsTotal

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nrCutsTotal
private

total number of separated directed cuts

Definition at line 626 of file MinSteinerTreeDirectedCut.h.

◆ m_nTerminals

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_nTerminals
private

nr of terminals

Definition at line 586 of file MinSteinerTreeDirectedCut.h.

◆ m_pCutPool

template<typename T >
abacus::NonDuplPool<abacus::Constraint, abacus::Variable>* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_pCutPool
private

the non-duplicate cut pool for the directed Steiner cuts

Definition at line 616 of file MinSteinerTreeDirectedCut.h.

◆ m_pGraph

template<typename T >
Graph* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_pGraph
private

the bidirected graph

Definition at line 556 of file MinSteinerTreeDirectedCut.h.

◆ m_poolSizeInit

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_poolSizeInit
private

size of initial pool

Definition at line 620 of file MinSteinerTreeDirectedCut.h.

◆ m_poolSizeInitFactor

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_poolSizeInitFactor
private

parameter: factor for the initial size of the cutting pool

Definition at line 618 of file MinSteinerTreeDirectedCut.h.

◆ m_poolSizeMax

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_poolSizeMax
private

maximal size of the pool

Definition at line 622 of file MinSteinerTreeDirectedCut.h.

◆ m_primalHeuristic

template<typename T >
std::unique_ptr<MinSteinerTreeModule<double> > ogdf::MinSteinerTreeDirectedCut< T >::Master::m_primalHeuristic
private

Algorithm used for the primal heuristic.

Definition at line 541 of file MinSteinerTreeDirectedCut.h.

◆ m_primalHeuristicTimer

template<typename T >
StopwatchWallClock ogdf::MinSteinerTreeDirectedCut< T >::Master::m_primalHeuristicTimer
private

timer for primal heuristics

Definition at line 681 of file MinSteinerTreeDirectedCut.h.

◆ m_pWeightedGraphPH

template<typename T >
EdgeWeightedGraph<double>* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_pWeightedGraphPH
private

edge weighted bidirected graph; used and modified for primal heuristics

Definition at line 601 of file MinSteinerTreeDirectedCut.h.

◆ m_relaxed

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_relaxed
private

parameter: indicates whether we solve the relaxed problem (LP) or the ILP

Definition at line 544 of file MinSteinerTreeDirectedCut.h.

◆ m_relaxedSolValue

template<typename T >
double ogdf::MinSteinerTreeDirectedCut< T >::Master::m_relaxedSolValue
private

statistics: solution value of the relaxed master problem

Definition at line 547 of file MinSteinerTreeDirectedCut.h.

◆ m_root

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::m_root
private

the virtual root of our graph. This node is a terminal.

Definition at line 591 of file MinSteinerTreeDirectedCut.h.

◆ m_rootPH

template<typename T >
node ogdf::MinSteinerTreeDirectedCut< T >::Master::m_rootPH
private

root node in m_pWeightedGraphPH

Definition at line 613 of file MinSteinerTreeDirectedCut.h.

◆ m_saturationStrategy

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_saturationStrategy
private

parameter: saturation strategy, only important if nested cuts are computed

Definition at line 660 of file MinSteinerTreeDirectedCut.h.

◆ m_separationStrategy

template<typename T >
int ogdf::MinSteinerTreeDirectedCut< T >::Master::m_separationStrategy
private

parameter: separation strategy, only important if nested cuts are computed

Definition at line 653 of file MinSteinerTreeDirectedCut.h.

◆ m_separationTimer

template<typename T >
StopwatchWallClock ogdf::MinSteinerTreeDirectedCut< T >::Master::m_separationTimer
private

timer for separation

Definition at line 677 of file MinSteinerTreeDirectedCut.h.

◆ m_shuffleTerminals

template<typename T >
bool ogdf::MinSteinerTreeDirectedCut< T >::Master::m_shuffleTerminals
private

parameter: shuffle the list of terminals right before separation

Definition at line 640 of file MinSteinerTreeDirectedCut.h.

◆ m_terminalListPH

template<typename T >
List<node> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_terminalListPH
private

list of terminal nodes (in m_pWeightedGraphPH)

Definition at line 603 of file MinSteinerTreeDirectedCut.h.

◆ m_terminals

template<typename T >
node* ogdf::MinSteinerTreeDirectedCut< T >::Master::m_terminals
private

terminal index -> terminal node

Definition at line 588 of file MinSteinerTreeDirectedCut.h.

◆ m_timerMinSTCut

template<typename T >
StopwatchWallClock ogdf::MinSteinerTreeDirectedCut< T >::Master::m_timerMinSTCut
private

timer for minimum st-cut computations. Measures updates + algorithm

Definition at line 679 of file MinSteinerTreeDirectedCut.h.

◆ m_twin

template<typename T >
EdgeArray<edge> ogdf::MinSteinerTreeDirectedCut< T >::Master::m_twin
private

the twin edges (u,v) <-> (v,u)

Definition at line 565 of file MinSteinerTreeDirectedCut.h.

◆ m_wG

template<typename T >
const EdgeWeightedGraph<T>& ogdf::MinSteinerTreeDirectedCut< T >::Master::m_wG
private

the original weighted graph

Definition at line 553 of file MinSteinerTreeDirectedCut.h.


The documentation for this class was generated from the following file: