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 | |
double | coeff (const abacus::Variable *v) const override |
Returns the coefficient of the variable v in the constraint. | |
bool | cutedge (edge e) const |
returns true iff the edge is contained in the cut | |
bool | equal (const ConVar *cv) const override |
tests if cuts are equal; required method for nonduplpool | |
unsigned | hashKey () const override |
retuns an hashkey for the cut; required method for nonduplpool | |
bool | marked (node n) const |
returns status of node n | |
const char * | name () const override |
return the name of the cut; required method for nonduplpool | |
int | nMarkedNodes () const |
the number of marked nodes | |
Public Member Functions inherited from abacus::Constraint | |
Constraint (const Constraint &rhs) | |
Copy constructor. | |
Constraint (Master *master) | |
Initializes an empty constraint. | |
Constraint (Master *master, const Sub *sub, CSense::SENSE sense, double rhs, bool dynamic, bool local, bool liftable) | |
Initializes a constraint. | |
virtual | ~Constraint () |
ConClass * | classification (Active< Variable, Constraint > *var=nullptr) const |
Returns a pointer to the classification of the constraint. | |
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. | |
virtual int | genRow (Active< Variable, Constraint > *var, Row &row) const |
Generates the row format of the constraint associated with the variable set var. | |
bool | liftable () const |
Checks if the constraint is liftable. | |
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. | |
virtual double | rhs () const |
Returns the right hand side of the constraint. | |
CSense * | sense () |
Returns a pointer to the sense of the constraint. | |
const CSense * | sense () const |
Returns a const pointer to the sense of the constraint. | |
virtual double | slack (Active< Variable, Constraint > *variables, double *x) const |
Computes the slack of the vector x associated with the variable set variables. | |
virtual bool | valid (Sub *sub) const |
Checks if the constraint is valid for the subproblem sub. | |
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. | |
virtual bool | violated (double slack) const |
Checks if a constraint is violated given the slack of a vector. | |
Public Member Functions inherited from abacus::ConVar | |
ConVar (Master *master, const Sub *sub, bool dynamic, bool local) | |
Creates an instance of type ConVar. | |
virtual | ~ConVar () |
bool | active () const |
Checks if the constraint/variable is active in at least one active subproblem. | |
virtual bool | dynamic () const |
Return true if the constraint/variable is dynamic. | |
virtual bool | equal (const ConVar *cv) const |
Should compare if the constraint/variable is identical (in a mathematical sense) with the constraint/variable cv. | |
bool | global () const |
Returns true if the constraint/variable is globally valid, false otherwise. | |
bool | local () const |
Returns true if the constraint/variable is only locally valid, false otherwise. | |
virtual void | print (std::ostream &out) const |
Writes the constraint/variable to the output stream out. | |
virtual double | rank () const |
The function should return a rank associated with the constraint/variable. | |
const Sub * | sub () const |
Returns a const pointer to the subproblem associated with the constraint/variable. | |
void | sub (Sub *sub) |
Associates a new subproblem with the constraint/variable. | |
bool | expanded () const |
Returns true if the expanded format of a constraint/variable is available, false otherwise. | |
virtual void | expand () const |
Expands a constraint/variable. | |
virtual void | compress () const |
Compresses a constraint/variable. | |
virtual bool | deletable () const |
Returns true if the constraint/variable can be destructed. | |
Public Member Functions inherited from abacus::AbacusRoot | |
virtual | ~AbacusRoot () |
The destructor. | |
Private Attributes | |
unsigned int | m_hashKey |
hashkey of the cut; required method for nonduplpool | |
NodeArray< bool > | m_marked |
defines if a vertex is on the left side of the cut (false) or not | |
const char * | m_name |
name of the cut; required method for nonduplpool | |
int | m_nMarkedNodes |
number of marked nodes | |
const Graph * | m_pGraph |
the graph | |
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. | |
static bool | endsWith (const string &str, const string &end) |
Returns true if str ends with end, false otherwise. | |
static double | fracPart (double x) |
Returns the absolute value of the fractional part of x. | |
static const char * | onOff (bool value) |
Converts a boolean variable to the strings "on" and "off". | |
Protected Member Functions inherited from abacus::Constraint | |
virtual ConClass * | classify (Active< Variable, Constraint > *var) const |
The default implementation returns a 0 pointer. | |
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. | |
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. | |
double | rhs_ |
The right hand side of the constraint. | |
CSense | sense_ |
The sense of the constraint. | |
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. | |
bool | expanded_ |
true, if expanded version of constraint/variables available. | |
bool | local_ |
true if the constraint/variable is only locally valid | |
Master * | master_ |
A pointer to the corresponding master of the optimization. | |
int | nActive_ |
The number of active subproblems of which the constraint/variable belongs to the set of active constraints/variables. | |
int | nLocks_ |
The number of locks which have been set on the constraint/variable. | |
int | nReferences_ |
The number of references to the pool slot the constraint is stored in. | |
const Sub * | sub_ |
A pointer to the subproblem associated with the constraint/variable. | |
Class for directed cuts (i.e., separated Steiner cuts)
Definition at line 882 of file MinSteinerTreeDirectedCut.h.
|
inline |
Definition at line 884 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns true iff the node n is separated by this cut
Definition at line 932 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 2057 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns true iff the edge is contained in the cut
Definition at line 935 of file MinSteinerTreeDirectedCut.h.
|
override |
tests if cuts are equal; required method for nonduplpool
Definition at line 2040 of file MinSteinerTreeDirectedCut.h.
|
inlineoverridevirtual |
retuns an hashkey for the cut; required method for nonduplpool
Reimplemented from abacus::ConVar.
Definition at line 944 of file MinSteinerTreeDirectedCut.h.
|
inline |
returns status of node n
Definition at line 941 of file MinSteinerTreeDirectedCut.h.
|
inlineoverridevirtual |
return the name of the cut; required method for nonduplpool
Reimplemented from abacus::ConVar.
Definition at line 950 of file MinSteinerTreeDirectedCut.h.
|
inline |
the number of marked nodes
Definition at line 938 of file MinSteinerTreeDirectedCut.h.
|
private |
hashkey of the cut; required method for nonduplpool
Definition at line 967 of file MinSteinerTreeDirectedCut.h.
|
private |
defines if a vertex is on the left side of the cut (false) or not
Definition at line 961 of file MinSteinerTreeDirectedCut.h.
|
private |
name of the cut; required method for nonduplpool
Definition at line 969 of file MinSteinerTreeDirectedCut.h.
|
private |
number of marked nodes
Definition at line 964 of file MinSteinerTreeDirectedCut.h.
|
private |
the graph
Definition at line 954 of file MinSteinerTreeDirectedCut.h.