Forms the virtual base class for all possible variables given in pool format. More...
#include <ogdf/lib/abacus/variable.h>
Public Member Functions | |
Variable (Master *master, const Sub *sub, bool dynamic, bool local, double obj, double lBound, double uBound, VarType::TYPE type) | |
Initializes a variable. | |
virtual | ~Variable () |
bool | binary () const |
Returns true If the type of the variable is Binary, false otherwise. | |
virtual double | coeff (const Constraint *con) const |
Computes the coefficient of the variable in the constraint con. | |
bool | discrete () const |
Returns true if the type of the variable is Integer or Binary, false otherwise. | |
FSVarStat * | fsVarStat () |
const FSVarStat * | fsVarStat () const |
virtual int | genColumn (Active< Constraint, Variable > *actCon, Column &col) const |
Computes the column col of the variable associated with the active constraints *actCon. | |
bool | integer () const |
Returns true If the type of the variable is Integer, false otherwise. | |
double | lBound () const |
Returns the lower bound of the variable. | |
void | lBound (double newBound) |
Sets the lower bound of the variable to newBound. | |
virtual double | obj () const |
Returns the objective function coefficient. | |
void | printCol (std::ostream &out, Active< Constraint, Variable > *constraints) const |
Writes the column of the variable corresponding to the constraints to output stream out. | |
virtual double | redCost (Active< Constraint, Variable > *actCon, double *y) const |
Computes the reduced cost of the variable corresponding the constraint set actCon and the dual variables y. | |
double | uBound () const |
Returns the upper bound of the variable. | |
void | uBound (double newBound) |
Sets the upper bound of the variable to newBound. | |
virtual bool | useful (Active< Constraint, Variable > *actCon, double *y, double lpVal) const |
Returns whether an (inactive) discrete variable is useful. | |
virtual bool | valid (const Sub *sub) const |
Returns true if the variable is valid, false otherwise. | |
VarType::TYPE | varType () const |
Returns the type of the variable. | |
virtual bool | violated (Active< Constraint, Variable > *constraints, double *y, double *slack=nullptr) const |
Checks, if a variable does not price out correctly. | |
virtual bool | violated (double rc) const |
Checks, if a variable does not price out correctly. | |
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 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. | |
Protected Attributes | |
FSVarStat | fsVarStat_ |
The global status of fixing and setting of the variable. | |
double | lBound_ |
The lower bound of the variable. | |
double | obj_ |
The objective function coefficient of the variable. | |
VarType | type_ |
The type of the variable. | |
double | uBound_ |
The upper bound of the variable. | |
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. | |
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". | |
Forms the virtual base class for all possible variables given in pool format.
Variables are one of the central items in a linear-programming based branch-and-bound algorithm. This class forms the virtual base class for all possible variables given in pool format and is derived from the common base class ConVar of all constraints and variables.
Definition at line 59 of file variable.h.
|
inline |
Initializes a variable.
master | A pointer to the corresponding master of the optimization. |
sub | A pointer to the subproblem associated with the variable. This can also be the 0-pointer. |
dynamic | If this argument is true, then the variable can also be removed again from the set of active variables after it is added once. |
local | If this argument is true, then the variable is only locally valid, otherwise it is globally valid. As a locally valid variable is always associated with a subproblem, the argument sub must not be 0 if local is true. |
obj | The objective function coefficient. |
lBound | The lower bound of the variable. |
uBound | The upper bound of the variable. |
type | The type of the variable. |
Definition at line 78 of file variable.h.
|
inlinevirtual |
Definition at line 92 of file variable.h.
|
inline |
Returns true If the type of the variable is Binary, false otherwise.
Definition at line 104 of file variable.h.
|
inlinevirtual |
Computes the coefficient of the variable in the constraint con.
Per default the coefficient of a variable iscomputed indirectly via the coefficient of a constraint. Problem specific redefinitions might be required.
con | The constraint of which the coefficient should be computed. |
Reimplemented in abacus::ColVar.
Definition at line 188 of file variable.h.
|
inline |
Returns true if the type of the variable is Integer or Binary, false otherwise.
Definition at line 100 of file variable.h.
|
inline |
Definition at line 144 of file variable.h.
Definition at line 153 of file variable.h.
|
virtual |
Computes the column col of the variable associated with the active constraints *actCon.
actCon | The constraints for which the column of the variable should be computed. |
col | Stores the column when the function terminates. |
|
inline |
Returns true If the type of the variable is Integer, false otherwise.
Definition at line 108 of file variable.h.
|
inline |
Returns the lower bound of the variable.
Definition at line 127 of file variable.h.
Sets the lower bound of the variable to newBound.
newBound | The new value of the lower bound. |
Definition at line 134 of file variable.h.
Returns the objective function coefficient.
Definition at line 112 of file variable.h.
void abacus::Variable::printCol | ( | std::ostream & | out, |
Active< Constraint, Variable > * | constraints | ||
) | const |
Writes the column of the variable corresponding to the constraints to output stream out.
out | The output stream. |
constraints | The constraints for which the column should be written. |
|
virtual |
Computes the reduced cost of the variable corresponding the constraint set actCon and the dual variables y.
Given the dual variables \(y\), then the reduced cost of a variable with objective function coefficient \(c_e\), column \(a_{.e}\) are defined as \(c_e - y^{\mathrm{T}} a_{.e}\).
actCon | The constraints associated with the dual variables y. |
y | The dual variables of the constraint. |
|
inline |
Returns the upper bound of the variable.
Definition at line 116 of file variable.h.
Sets the upper bound of the variable to newBound.
newBound | The new value of the upper bound. |
Definition at line 123 of file variable.h.
|
virtual |
Returns whether an (inactive) discrete variable is useful.
An (inactive) discrete variable is considered as useful() if its activation might not produce only solutions worse than the best known feasible solution.
This is the same criterion for fixing inactive variables by reduced cost criteria.
actCon | The active constraints. |
y | The dual variables of these constraints. |
lpVal | The value of the linear program. |
Returns true if the variable is valid, false otherwise.
sub | The subproblem for which validity of the variable is checked. |
Definition at line 270 of file variable.h.
|
inline |
Returns the type of the variable.
Definition at line 96 of file variable.h.
|
virtual |
Checks, if a variable does not price out correctly.
I.e., if the reduced cost of the variable associated with the constraint set constraints and the dual variables y are positive for a maximization problem and negative for a minimization problem, respectively.
constraints | The constraints associated with the dual variables y. |
y | The dual variables of the constraint. |
slack | If r is not the 0-pointer, it will store the reduced cost after the function call. Per default r is 0. |
Checks, if a variable does not price out correctly.
I.e., if the reduced cost rc is positive fora maximization problem and negative for a minimization problem, respectively.
rc | The reduced cost of the variable. |
|
protected |
The global status of fixing and setting of the variable.
Definition at line 263 of file variable.h.
|
protected |
The lower bound of the variable.
Definition at line 265 of file variable.h.
|
protected |
The objective function coefficient of the variable.
Definition at line 264 of file variable.h.
|
protected |
The type of the variable.
Definition at line 267 of file variable.h.
|
protected |
The upper bound of the variable.
Definition at line 266 of file variable.h.