(In)equality for LPs. More...
#include <lprowbase.h>
Public Types | |
Types | |
enum | Type { LESS_EQUAL , EQUAL , GREATER_EQUAL , RANGE } |
(In)Equality type of an LP row. More... | |
Public Member Functions | |
Construction / destruction | |
LPRowBase (int defDim=0) | |
Constructs LPRowBase with a vector ready to hold defDim nonzeros. More... | |
LPRowBase< R > & | operator= (const LPRowBase< R > &row) |
Assignment operator. More... | |
LPRowBase (const LPRowBase< R > &row) | |
Copy constructor. More... | |
template<class S > | |
LPRowBase (const LPRowBase< S > &row) | |
Copy constructor. More... | |
LPRowBase (const R &p_lhs, const SVectorBase< R > &p_rowVector, const R &p_rhs, const R &p_obj=0) | |
Constructs LPRowBase with the given left-hand side, right-hand side and rowVector. More... | |
LPRowBase (const SVectorBase< R > &p_rowVector, Type p_type, const R &p_value, const R &p_obj=0) | |
Constructs LPRowBase from passed rowVector , type and value . More... | |
~LPRowBase () | |
Destructor. More... | |
Access / modification | |
Type | type () const |
Gets type of row. More... | |
void | setType (Type p_type) |
Sets type of (in)equality. More... | |
R | value () const |
Right hand side value of (in)equality. More... | |
R | lhs () const |
Left-hand side value. More... | |
void | setLhs (const R &p_left) |
Sets left-hand side value. More... | |
R | rhs () const |
Right-hand side value. More... | |
void | setRhs (const R &p_right) |
Sets right-hand side value. More... | |
R | obj () const |
Objective coefficient value. More... | |
void | setObj (const R &p_obj) |
Sets objective coefficient value. More... | |
const SVectorBase< R > & | rowVector () const |
Constraint row vector. More... | |
void | setRowVector (const DSVectorBase< R > &p_vec) |
access constraint row vector. More... | |
Consistency check | |
bool | isConsistent () const |
Checks consistency. More... | |
Private Attributes | |
Data | |
R | left |
left-hand side of the constraint More... | |
R | right |
right-hand side of the constraint More... | |
R | object |
objective coefficient of corresponding slack variable s = vec times primal More... | |
DSVectorBase< R > | vec |
the row vector More... | |
Friends | |
template<class S > | |
class | LPRowBase |
(In)equality for LPs.
Class LPRowBase provides constraints for linear programs in the form
\[ l \le a^Tx \le r, \]
where a is a DSVector. l is referred to as left hand side, r as right hand side and a as row vector or the constraint vector. l and r may also take values \(\pm\) R(infinity). This static member is predefined, but may be overridden to meet the needs of the LP solver to be used.
LPRowBases allow to specify regular inequalities of the form
\[ a^Tx \sim \alpha, \]
where \(\sim\) can take any value of \(\le, =, \ge\), by setting rhs and lhs to the same value or setting one of them to \(\infty\).
Since constraints in the regular form occur often, LPRowBases offers methods type() and value() for retreiving \(\sim\) and \(\alpha\) of an LPRowBase in this form, respectively. Also, a constructor for LPRowBases given in regular form is provided.
Definition at line 54 of file lprowbase.h.
enum Type |
(In)Equality type of an LP row.
LPRowBases may be of one of the following Types. This datatype may be used for constructing new LPRowBases in the regular form.
Enumerator | |
---|---|
LESS_EQUAL | \(a^Tx \le \alpha\). |
EQUAL | \(a^Tx = \alpha\). |
GREATER_EQUAL | \(a^Tx \ge \alpha\). |
RANGE | \(\lambda \le a^Tx \le \rho\). |
Definition at line 81 of file lprowbase.h.
|
explicit |
Constructs LPRowBase with a vector ready to hold defDim
nonzeros.
Definition at line 96 of file lprowbase.h.
References LPRowBase< R >::isConsistent().
Copy constructor.
Definition at line 117 of file lprowbase.h.
References LPRowBase< R >::isConsistent().
Copy constructor.
Definition at line 125 of file lprowbase.h.
References LPRowBase< R >::isConsistent().
LPRowBase | ( | const R & | p_lhs, |
const SVectorBase< R > & | p_rowVector, | ||
const R & | p_rhs, | ||
const R & | p_obj = 0 |
||
) |
Constructs LPRowBase with the given left-hand side, right-hand side and rowVector.
Definition at line 132 of file lprowbase.h.
References LPRowBase< R >::isConsistent().
LPRowBase | ( | const SVectorBase< R > & | p_rowVector, |
Type | p_type, | ||
const R & | p_value, | ||
const R & | p_obj = 0 |
||
) |
Constructs LPRowBase from passed rowVector
, type
and value
.
Definition at line 139 of file lprowbase.h.
References LPRowBase< R >::EQUAL, LPRowBase< R >::GREATER_EQUAL, soplex::infinity, LPRowBase< R >::isConsistent(), LPRowBase< R >::left, LPRowBase< R >::LESS_EQUAL, and LPRowBase< R >::right.
~LPRowBase | ( | ) |
Destructor.
Definition at line 167 of file lprowbase.h.
bool isConsistent | ( | ) | const |
Checks consistency.
Definition at line 288 of file lprowbase.h.
References LPRowBase< R >::vec.
Referenced by LPRowBase< R >::LPRowBase(), and LPRowBase< R >::operator=().
R lhs | ( | ) | const |
Left-hand side value.
Definition at line 234 of file lprowbase.h.
References LPRowBase< R >::left.
Referenced by LPRowSetBase< R >::add(), SPxLPBase< R >::changeRow(), LPRowBase< R >::setType(), LPRowBase< R >::type(), and LPRowBase< R >::value().
R obj | ( | ) | const |
Objective coefficient value.
Definition at line 258 of file lprowbase.h.
References LPRowBase< R >::object.
Referenced by LPRowSetBase< R >::add(), and SPxLPBase< R >::changeRow().
Assignment operator.
Definition at line 103 of file lprowbase.h.
References LPRowBase< R >::isConsistent(), LPRowBase< R >::left, LPRowBase< R >::object, LPRowBase< R >::right, and LPRowBase< R >::vec.
R rhs | ( | ) | const |
Right-hand side value.
Definition at line 246 of file lprowbase.h.
References LPRowBase< R >::right.
Referenced by LPRowSetBase< R >::add(), SPxLPBase< R >::changeRow(), LPRowBase< R >::setType(), LPRowBase< R >::type(), and LPRowBase< R >::value().
const SVectorBase< R > & rowVector | ( | ) | const |
Constraint row vector.
Definition at line 270 of file lprowbase.h.
References LPRowBase< R >::vec.
Referenced by LPRowSetBase< R >::add(), SPxLPBase< R >::changeRow(), and SoPlex_getRowVectorRational().
void setLhs | ( | const R & | p_left | ) |
Sets left-hand side value.
Definition at line 240 of file lprowbase.h.
References LPRowBase< R >::left.
Referenced by SPxLPBase< R >::getRow().
void setObj | ( | const R & | p_obj | ) |
Sets objective coefficient value.
Definition at line 264 of file lprowbase.h.
Referenced by SPxLPBase< R >::getRow().
void setRhs | ( | const R & | p_right | ) |
Sets right-hand side value.
Definition at line 252 of file lprowbase.h.
References LPRowBase< R >::right.
Referenced by SPxLPBase< R >::getRow().
void setRowVector | ( | const DSVectorBase< R > & | p_vec | ) |
access constraint row vector.
Definition at line 276 of file lprowbase.h.
References LPRowBase< R >::vec.
Referenced by SPxLPBase< R >::getRow().
void setType | ( | Type | p_type | ) |
Sets type of (in)equality.
Definition at line 192 of file lprowbase.h.
References LPRowBase< R >::EQUAL, LPRowBase< R >::GREATER_EQUAL, soplex::infinity, LPRowBase< R >::left, LPRowBase< R >::LESS_EQUAL, LPRowBase< R >::lhs(), LPRowBase< R >::RANGE, LPRowBase< R >::rhs(), LPRowBase< R >::right, and SPX_MSG_ERROR.
Type type | ( | ) | const |
Gets type of row.
Definition at line 177 of file lprowbase.h.
References LPRowBase< R >::EQUAL, LPRowBase< R >::GREATER_EQUAL, soplex::infinity, LPRowBase< R >::LESS_EQUAL, LPRowBase< R >::lhs(), LPRowBase< R >::RANGE, and LPRowBase< R >::rhs().
Referenced by LPRowBase< R >::value().
R value | ( | ) | const |
Right hand side value of (in)equality.
This method returns \(\alpha\) for a LPRowBase in regular form. However, value() may only be called for LPRowBases with type() != RANGE
.
Definition at line 226 of file lprowbase.h.
References soplex::infinity, LPRowBase< R >::lhs(), LPRowBase< R >::RANGE, LPRowBase< R >::rhs(), and LPRowBase< R >::type().
|
friend |
Definition at line 56 of file lprowbase.h.
|
private |
left-hand side of the constraint
Definition at line 64 of file lprowbase.h.
Referenced by LPRowBase< R >::lhs(), LPRowBase< R >::LPRowBase(), LPRowBase< R >::operator=(), LPRowBase< R >::setLhs(), and LPRowBase< R >::setType().
|
private |
objective coefficient of corresponding slack variable s = vec times primal
Definition at line 66 of file lprowbase.h.
Referenced by LPRowBase< R >::obj(), and LPRowBase< R >::operator=().
|
private |
right-hand side of the constraint
Definition at line 65 of file lprowbase.h.
Referenced by LPRowBase< R >::LPRowBase(), LPRowBase< R >::operator=(), LPRowBase< R >::rhs(), LPRowBase< R >::setRhs(), and LPRowBase< R >::setType().
|
private |
the row vector
Definition at line 67 of file lprowbase.h.
Referenced by LPRowBase< R >::isConsistent(), LPRowBase< R >::operator=(), LPRowBase< R >::rowVector(), and LPRowBase< R >::setRowVector().