This class is an abstract base class for LP solvers. This class provides a full interface for set and modify an LP problem, solve it and retrieve the solution. You can use one of the descendants as a concrete implementation, or the Lp
default LP solver. However, if you would like to handle LP solvers as reference or pointer in a generic way, you can use this class directly.
#include <lemon/lp_base.h>
Public Types | |
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 Member Functions | |
virtual LpSolver * | newSolver () const =0 |
Allocate a new LP problem instance. | |
virtual LpSolver * | cloneSolver () const =0 |
Make a copy of the LP problem. | |
Solve the LP | |
SolveExitStatus | solve () |
Obtain the Solution | |
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. |
enum ProblemType |
enum VarStatus |
SolveExitStatus solve | ( | ) | [inline] |
Solve the LP problem at hand
Return the primal value of the column.
Return the primal value of the expression, i.e. the dot product of the primal solution and the expression.
The primal ray is solution of the modified primal problem, where we change each finite bound to 0, and we looking for a negative objective value in case of minimization, and positive objective value for maximization. If there is such solution, that proofs the unsolvability of the dual problem, and if a feasible primal solution exists, then the unboundness of primal problem.
Return the dual value of the row.
Return the dual value of the dual expression, i.e. the dot product of the dual solution and the dual expression.
The dual ray is solution of the modified primal problem, where we change each finite bound to 0 (i.e. the objective function coefficients in the primal problem), and we looking for a ositive objective value. If there is such solution, that proofs the unsolvability of the primal problem, and if a feasible dual solution exists, then the unboundness of dual problem.