Class for directed cuts (i.e., separated Steiner cuts) More...
#include <ogdf/graphalg/MinSteinerTreeDirectedCut.h>
Public Member Functions | |
DirectedCutConstraint (abacus::Master *master, const Graph &g, const MinSTCutMaxFlow< double > *minSTCut, MinSTCutMaxFlow< double >::cutType _cutType) | |
bool | active (node n) const |
returns true iff the node n is separated by this cut More... | |
double | coeff (const abacus::Variable *v) const override |
Returns the coefficient of the variable v in the constraint. More... | |
bool | cutedge (edge e) const |
returns true iff the edge is contained in the cut More... | |
bool | equal (const ConVar *cv) const override |
tests if cuts are equal; required method for nonduplpool More... | |
unsigned | hashKey () const override |
retuns an hashkey for the cut; required method for nonduplpool More... | |
bool | marked (node n) const |
returns status of node n More... | |
const char * | name () const override |
return the name of the cut; required method for nonduplpool More... | |
int | nMarkedNodes () const |
the number of marked nodes More... | |
Public Member Functions inherited from abacus::Constraint | |
Constraint (const Constraint &rhs) | |
Copy constructor. More... | |
Constraint (Master *master) | |
Initializes an empty constraint. More... | |
Constraint (Master *master, const Sub *sub, CSense::SENSE sense, double rhs, bool dynamic, bool local, bool liftable) | |
Initializes a constraint. More... | |
virtual | ~Constraint () |
ConClass * | classification (Active< Variable, Constraint > *var=nullptr) const |
Returns a pointer to the classification of the constraint. More... | |
virtual double | distance (double *x, Active< Variable, Constraint > *actVar) const |
Returns the Euclidean distance of x associated with variable set actVar to the hyperplane induced by the constraint. More... | |
virtual int | genRow (Active< Variable, Constraint > *var, Row &row) const |
Generates the row format of the constraint associated with the variable set var. More... | |
bool | liftable () const |
Checks if the constraint is liftable. More... | |
void | printRow (std::ostream &out, Active< Variable, Constraint > *var) const |
Writes the row format of the constraint associated with the variable set var to output stream out. More... | |
virtual double | rhs () const |
Returns the right hand side of the constraint. More... | |
CSense * | sense () |
Returns a pointer to the sense of the constraint. More... | |
const CSense * | sense () const |
Returns a const pointer to the sense of the constraint. More... | |
virtual double | slack (Active< Variable, Constraint > *variables, double *x) const |
Computes the slack of the vector x associated with the variable set variables. More... | |
virtual bool | valid (Sub *sub) const |
Checks if the constraint is valid for the subproblem sub. More... | |
virtual bool | violated (Active< Variable, Constraint > *variables, double *x, double *sl=nullptr) const |
Checks if a constraint is violated by a vector x associated with a variable set. More... | |
virtual bool | violated (double slack) const |
Checks if a constraint is violated given the slack of a vector. More... | |
Public Member Functions inherited from abacus::ConVar | |
ConVar (Master *master, const Sub *sub, bool dynamic, bool local) | |
Creates an instance of type ConVar. More... | |
virtual | ~ConVar () |
bool | active () const |
Checks if the constraint/variable is active in at least one active subproblem. More... | |
virtual bool | dynamic () const |
Return true if the constraint/variable is dynamic. More... | |
virtual bool | equal (const ConVar *cv) const |
Should compare if the constraint/variable is identical (in a mathematical sense) with the constraint/variable cv. More... | |
bool | global () const |
Returns true if the constraint/variable is globally valid, false otherwise. More... | |
bool | local () const |
Returns true if the constraint/variable is only locally valid, false otherwise. More... | |
virtual void | print (std::ostream &out) const |
Writes the constraint/variable to the output stream out. More... | |
virtual double | rank () const |
The function should return a rank associated with the constraint/variable. More... | |
const Sub * | sub () const |
Returns a const pointer to the subproblem associated with the constraint/variable. More... | |
void | sub (Sub *sub) |
Associates a new subproblem with the constraint/variable. More... | |
bool | expanded () const |
Returns true if the expanded format of a constraint/variable is available, false otherwise. More... | |
virtual void | expand () const |
Expands a constraint/variable. More... | |
virtual void | compress () const |
Compresses a constraint/variable. More... | |
virtual bool | deletable () const |
Returns true if the constraint/variable can be destructed. More... | |
Public Member Functions inherited from abacus::AbacusRoot | |
virtual | ~AbacusRoot () |
The destructor. More... | |
Private Attributes | |
unsigned int | m_hashKey |
hashkey of the cut; required method for nonduplpool More... | |
NodeArray< bool > | m_marked |
defines if a vertex is on the left side of the cut (false) or not More... | |
const char * | m_name |
name of the cut; required method for nonduplpool More... | |
int | m_nMarkedNodes |
number of marked nodes More... | |
const Graph * | m_pGraph |
the graph More... | |
Additional Inherited Members | |
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... | |
Protected Member Functions inherited from abacus::Constraint | |
virtual ConClass * | classify (Active< Variable, Constraint > *var) const |
The default implementation returns a 0 pointer. More... | |
virtual InfeasCon::INFEAS | voidLhsViolated (double newRhs) const |
Can be called if after variable elimination the left hand side of the constraint has become void and the right hand side has been adapted to newRhs. More... | |
Protected Attributes inherited from abacus::Constraint | |
ConClass * | conClass_ |
bool | liftable_ |
This member is true if also coefficients of variables which have been inactive at generation time can be computed, false otherwise. More... | |
double | rhs_ |
The right hand side of the constraint. More... | |
CSense | sense_ |
The sense of the constraint. More... | |
Protected Attributes inherited from abacus::ConVar | |
bool | dynamic_ |
If this member is true then the constraint/variable can be also removed from the active formulation after it is added the first time. More... | |
bool | expanded_ |
true, if expanded version of constraint/variables available. More... | |
bool | local_ |
true if the constraint/variable is only locally valid More... | |
Master * | master_ |
A pointer to the corresponding master of the optimization. More... | |
int | nActive_ |
The number of active subproblems of which the constraint/variable belongs to the set of active constraints/variables. More... | |
int | nLocks_ |
The number of locks which have been set on the constraint/variable. More... | |
int | nReferences_ |
The number of references to the pool slot the constraint is stored in. More... | |
const Sub * | sub_ |
A pointer to the subproblem associated with the constraint/variable. More... | |
Class for directed cuts (i.e., separated Steiner cuts)
Definition at line 895 of file MinSteinerTreeDirectedCut.h.
|
inline |
Definition at line 897 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns true iff the node n is separated by this cut
Definition at line 945 of file MinSteinerTreeDirectedCut.h.
|
overridevirtual |
Returns the coefficient of the variable v in the constraint.
v | A pointer to a variable. |
Implements abacus::Constraint.
Definition at line 2070 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns true iff the edge is contained in the cut
Definition at line 948 of file MinSteinerTreeDirectedCut.h.
|
override |
tests if cuts are equal; required method for nonduplpool
Definition at line 2053 of file MinSteinerTreeDirectedCut.h.
|
inlineoverridevirtual |
retuns an hashkey for the cut; required method for nonduplpool
Reimplemented from abacus::ConVar.
Definition at line 957 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns status of node n
Definition at line 954 of file MinSteinerTreeDirectedCut.h.
|
inlineoverridevirtual |
return the name of the cut; required method for nonduplpool
Reimplemented from abacus::ConVar.
Definition at line 963 of file MinSteinerTreeDirectedCut.h.
|
inline |
the number of marked nodes
Definition at line 951 of file MinSteinerTreeDirectedCut.h.
|
private |
hashkey of the cut; required method for nonduplpool
Definition at line 980 of file MinSteinerTreeDirectedCut.h.
|
private |
defines if a vertex is on the left side of the cut (false) or not
Definition at line 974 of file MinSteinerTreeDirectedCut.h.
|
private |
name of the cut; required method for nonduplpool
Definition at line 982 of file MinSteinerTreeDirectedCut.h.
|
private |
number of marked nodes
Definition at line 977 of file MinSteinerTreeDirectedCut.h.
|
private |
the graph
Definition at line 967 of file MinSteinerTreeDirectedCut.h.