Implements constraints stored in the class Row. More...
#include <ogdf/lib/abacus/rowcon.h>
Public Member Functions  
RowCon (Master *master, const Sub *sub, CSense::SENSE sense, int nnz, const Array< int > &support, const Array< double > &coeff, double rhs, bool dynamic, bool local, bool liftable)  
Creates a row constraint. More...  
RowCon (Master *master, const Sub *sub, CSense::SENSE sense, int nnz, int *support, double *coeff, double rhs, bool dynamic, bool local, bool liftable)  
Creates a row constraint. More...  
virtual  ~RowCon () 
The destructor. More...  
virtual double  coeff (const Variable *v) const override 
Computes the coefficient of a variable which must be of type NumVar. More...  
virtual void  print (std::ostream &out) const override 
Writes the row format of the constraint on an output stream. More...  
Row *  row () 
Returns a pointer to the object of the class Row representing the constraint. More...  
const Row *  row () const 
Returns a const pointer to the object of the class Row representing the constraint. 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...  
virtual unsigned  hashKey () const 
Should provide a key for the constraint/variable that can be used to insert it into a hash table. More...  
bool  local () const 
Returns true if the constraint/variable is only locally valid, false otherwise. More...  
virtual const char *  name () const 
Should return the name of the constraint/variable. 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...  
Protected Attributes  
Row  row_ 
The representation of the constraint. 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...  
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...  
Implements constraints stored in the class Row.
Earlier we explained that we distinguish between the constraint and the row format. We have seen already that a constraint is transformed to the row format when it is added to the linear program. However, for some constraints of certain optimization problems the row format itself is the most suitable representation. Therefore the class RowCon implements constraints stored in the class Row.

inline 
Creates a row constraint.
master  A pointer to the corresponding master of the optimization. 
sub  A pointer to the subproblem associated with the constraint. This can also be the 0pointer. 
sense  The sense of the constraint. 
nnz  The number of nonzero elements of the constraint. 
support  The array storing the variables with nonzero coefficients. 
coeff  The nonzero coefficients of the variables stored in support. 
rhs  The right hand side of the constraint. 
dynamic  If this argument is true, then the constraint can be removed from the active constraint set during the cutting plane phase of the subproblem optimization. 
local  If this argument is true, then the constraint is considered to be only locally valid. As a locally valid constraint is associated with a subproblem, sub must not be 0 if local is true. 
liftable  If this argument is true, then a lifting procedure must be available, i.e., that the coefficients of variables which have not been active at generation time of the constraint can be computed. 

inline 
Creates a row constraint.
master  A pointer to the corresponding master of the optimization. 
sub  A pointer to the subproblem associated with the constraint. This can also be the 0pointer. 
sense  The sense of the constraint. 
nnz  The number of nonzero elements of the constraint. 
support  The array storing the variables with nonzero coefficients. 
coeff  The nonzero coefficients of the variables stored in support. 
rhs  The right hand side of the constraint. 
dynamic  If this argument is true, then the constraint can be removed from the active constraint set during the cutting plane phase of the subproblem optimization. 
local  If this argument is true, then the constraint is considered to be only locally valid. As a locally valid constraint is associated with a subproblem, sub must not be 0 if local is true. 
liftable  If this argument is true, then a lifting procedure must be available, i.e., that the coefficients of variables which have not been active at generation time of the constraint can be computed. 

inlinevirtual 

inlineoverridevirtual 
Computes the coefficient of a variable which must be of type NumVar.
It redefines the virtual function coeff() of the base class Constraint.
v  The variable of which the coefficient is determined. 
Implements abacus::Constraint.

inlineoverridevirtual 
Writes the row format of the constraint on an output stream.
It redefines the virtual function print() of the base class ConVar.
out  The output stream. 
Reimplemented from abacus::ConVar.

inline 

inline 

protected 