This class implements an interface for the GLPK LP solver.
#include <lemon/glpk.h>
Public Member Functions | |
GlpkLp () | |
| |
GlpkLp (const GlpkLp &) | |
| |
virtual GlpkLp * | cloneSolver () const |
| |
virtual GlpkLp * | newSolver () const |
| |
SolveExitStatus | solvePrimal () |
Solve with primal simplex. | |
SolveExitStatus | solveDual () |
Solve with dual simplex. | |
void | presolver (bool presolve) |
Turns on or off the presolver. | |
Public Member Functions inherited from LpSolver | |
SolveExitStatus | solve () |
ProblemType | primalType () const |
The type of the primal problem. | |
ProblemType | dualType () const |
The type of the dual problem. | |
Value | primal (Col c) const |
Return the primal value of the column. | |
Value | primal (const Expr &e) const |
Return the primal value of the expression. | |
Value | primalRay (Col c) const |
Returns a component of the primal ray. | |
Value | dual (Row r) const |
Return the dual value of the row. | |
Value | dual (const DualExpr &e) const |
Return the dual value of the dual expression. | |
Value | dualRay (Row r) const |
Returns a component of the dual ray. | |
VarStatus | colStatus (Col c) const |
Return the basis status of the column. | |
VarStatus | rowStatus (Row r) const |
Return the basis status of the row. | |
Value | primal () const |
The value of the objective function. | |
Public Member Functions inherited from LpBase | |
virtual | ~LpBase () |
Virtual destructor. | |
const char * | solverName () const |
Gives back the name of the solver. | |
Col | addCol () |
Add a new empty column (i.e a new variable) to the LP. | |
template<class T > | |
int | addColSet (T &t) |
Adds several new columns (i.e variables) at once. | |
void | col (Col c, const DualExpr &e) |
Set a column (i.e a dual constraint) of the LP. | |
DualExpr | col (Col c) const |
Get a column (i.e a dual constraint) of the LP. | |
Col | addCol (const DualExpr &e, Value o=0) |
Add a new column to the LP. | |
Row | addRow () |
Add a new empty row (i.e a new constraint) to the LP. | |
template<class T > | |
int | addRowSet (T &t) |
Add several new rows (i.e constraints) at once. | |
void | row (Row r, Value l, const Expr &e, Value u) |
Set a row (i.e a constraint) of the LP. | |
void | row (Row r, const Constr &c) |
Set a row (i.e a constraint) of the LP. | |
Expr | row (Row r) const |
Get a row (i.e a constraint) of the LP. | |
Row | addRow (Value l, const Expr &e, Value u) |
Add a new row (i.e a new constraint) to the LP. | |
Row | addRow (const Constr &c) |
Add a new row (i.e a new constraint) to the LP. | |
void | erase (Col c) |
Erase a column (i.e a variable) from the LP. | |
void | erase (Row r) |
Erase a row (i.e a constraint) from the LP. | |
std::string | colName (Col c) const |
Get the name of a column. | |
void | colName (Col c, const std::string &name) |
Set the name of a column. | |
Col | colByName (const std::string &name) const |
Get the column by its name. | |
std::string | rowName (Row r) const |
Get the name of a row. | |
void | rowName (Row r, const std::string &name) |
Set the name of a row. | |
Row | rowByName (const std::string &name) const |
Get the row by its name. | |
void | coeff (Row r, Col c, Value val) |
Set an element of the coefficient matrix of the LP. | |
Value | coeff (Row r, Col c) const |
Get an element of the coefficient matrix of the LP. | |
void | colLowerBound (Col c, Value value) |
Set the lower bound of a column (i.e a variable) | |
Value | colLowerBound (Col c) const |
Get the lower bound of a column (i.e a variable) | |
template<class T > | |
void | colLowerBound (T &t, Value value) |
Set the lower bound of several columns (i.e variables) at once. | |
void | colUpperBound (Col c, Value value) |
Set the upper bound of a column (i.e a variable) | |
Value | colUpperBound (Col c) const |
Get the upper bound of a column (i.e a variable) | |
template<class T > | |
void | colUpperBound (T &t, Value value) |
Set the upper bound of several columns (i.e variables) at once. | |
void | colBounds (Col c, Value lower, Value upper) |
Set the lower and the upper bounds of a column (i.e a variable) | |
template<class T > | |
void | colBounds (T &t, Value lower, Value upper) |
Set the lower and the upper bound of several columns (i.e variables) at once. | |
void | rowLowerBound (Row r, Value value) |
Set the lower bound of a row (i.e a constraint) | |
Value | rowLowerBound (Row r) const |
Get the lower bound of a row (i.e a constraint) | |
void | rowUpperBound (Row r, Value value) |
Set the upper bound of a row (i.e a constraint) | |
Value | rowUpperBound (Row r) const |
Get the upper bound of a row (i.e a constraint) | |
void | objCoeff (Col c, Value v) |
Set an element of the objective function. | |
Value | objCoeff (Col c) const |
Get an element of the objective function. | |
void | obj (const Expr &e) |
Set the objective function. | |
Expr | obj () const |
Get the objective function. | |
void | sense (Sense sense) |
Set the direction of optimization. | |
Sense | sense () const |
Query the direction of the optimization. | |
void | max () |
Set the sense to maximization. | |
void | min () |
Set the sense to maximization. | |
void | clear () |
Clears the problem. | |
void | messageLevel (MessageLevel level) |
Sets the message level of the solver. | |
Public Member Functions inherited from GlpkBase | |
_solver_bits::VoidPtr | lpx () |
Pointer to the underlying GLPK data structure. | |
_solver_bits::VoidPtr | lpx () const |
Const pointer to the underlying GLPK data structure. | |
int | lpxRow (Row r) const |
Returns the constraint identifier understood by GLPK. | |
int | lpxCol (Col c) const |
Returns the variable identifier understood by GLPK. | |
Additional Inherited Members | |
Public Types inherited from LpSolver | |
enum | ProblemType { UNDEFINED = 0, INFEASIBLE = 1, FEASIBLE = 2, OPTIMAL = 3, UNBOUNDED = 4 } |
The problem types for primal and dual problems. More... | |
enum | VarStatus { BASIC, FREE, LOWER, UPPER, FIXED } |
The basis status of variables. More... | |
Public Types inherited from LpBase | |
enum | SolveExitStatus { SOLVED = 0, UNSOLVED = 1 } |
Possible outcomes of an LP solving procedure. More... | |
enum | Sense { MIN, MAX } |
Direction of the optimization. More... | |
enum | MessageLevel { MESSAGE_NOTHING, MESSAGE_ERROR, MESSAGE_WARNING, MESSAGE_NORMAL, MESSAGE_VERBOSE } |
Enum for messageLevel() parameter. More... | |
typedef double | Value |
The floating point type used by the solver. | |
Static Public Member Functions inherited from LpBase | |
static int | id (const Col &col) |
Returns the ID of the column. | |
static Col | colFromId (int id) |
Returns the column with the given ID. | |
static int | id (const Row &row) |
Returns the ID of the row. | |
static Row | rowFromId (int id) |
Returns the row with the given ID. | |
Static Public Attributes inherited from LpBase | |
static const Value | INF |
The infinity constant. | |
static const Value | NaN |
The not a number constant. | |
void presolver | ( | bool | presolve | ) |
Turns on (b
is true
) or off (b
is false
) the presolver
The presolver is off by default.