Constraints using row with static variable set. More...
#include <ogdf/lib/abacus/srowcon.h>
Public Member Functions | |
SRowCon (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. | |
SRowCon (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. | |
virtual | ~SRowCon () |
The destructor. | |
virtual int | genRow (Active< Variable, Constraint > *var, Row &row) const override |
Generates the row format of the constraint associated with the variable set var. | |
virtual double | slack (Active< Variable, Constraint > *variables, double *x) const override |
Computes the slack of a vector associated with the variable set variables. | |
Public Member Functions inherited from abacus::RowCon | |
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. | |
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. | |
virtual | ~RowCon () |
The destructor. | |
virtual double | coeff (const Variable *v) const override |
Computes the coefficient of a variable which must be of type NumVar. | |
virtual void | print (std::ostream &out) const override |
Writes the row format of the constraint on an output stream. | |
Row * | row () |
Returns a pointer to the object of the class Row representing the constraint. | |
const Row * | row () const |
Returns a const pointer to the object of the class Row representing the constraint. | |
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. | |
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 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. | |
virtual unsigned | hashKey () const |
Should provide a key for the constraint/variable that can be used to insert it into a hash table. | |
bool | local () const |
Returns true if the constraint/variable is only locally valid, false otherwise. | |
virtual const char * | name () const |
Should return the name of the constraint/variable. | |
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. | |
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::RowCon | |
Row | row_ |
The representation of the constraint. | |
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. | |
Constraints using row with static variable set.
The member functions genRow() and slack() of the class RowCon can be significantly improved if the variable set is static, i.e., no variables are added or removed during the optimization. Therefore we implement the class SRowCon.
|
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 be also the 0-pointer. |
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 be also the 0-pointer. |
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 |
Generates the row format of the constraint associated with the variable set var.
This function redefines a virtual function of the base class RowCon.
var | The variable set for which the row format is generated is only a dummy since the the variable set is assumed to be fixed for this constraint class. |
row | Holds the row format of the constraint after the execution of this function. |
Reimplemented from abacus::Constraint.
|
overridevirtual |
Computes the slack of a vector associated with the variable set variables.
This function redefines a virtual function of the base class RowCon.
variables | The variable set for which the row format is generated is only a dummy since the the variable set is assumed to be fixed for this constraint class. |
x | An array of length equal to the number of variables. |
Reimplemented from abacus::Constraint.