The class for constraints of a Mathematical Programming (MP) model.
A constraint is represented as a linear equation or inequality.
Definition at line 1122 of file linear_solver.h.
Public Member Functions | |
| const std::string & | name () const |
| Returns the name of the constraint. More... | |
| void | Clear () |
| Clears all variables and coefficients. Does not clear the bounds. More... | |
| void | SetCoefficient (const MPVariable *const var, double coeff) |
| Sets the coefficient of the variable on the constraint. More... | |
| double | GetCoefficient (const MPVariable *const var) const |
| Gets the coefficient of a given variable on the constraint (which is 0 if the variable does not appear in the constraint). More... | |
| const absl::flat_hash_map< const MPVariable *, double > & | terms () const |
| Returns a map from variables to their coefficients in the constraint. More... | |
| double | lb () const |
| Returns the lower bound. More... | |
| double | ub () const |
| Returns the upper bound. More... | |
| void | SetLB (double lb) |
| Sets the lower bound. More... | |
| void | SetUB (double ub) |
| Sets the upper bound. More... | |
| void | SetBounds (double lb, double ub) |
| Sets both the lower and upper bounds. More... | |
| bool | is_lazy () const |
| Advanced usage: returns true if the constraint is "lazy" (see below). More... | |
| void | set_is_lazy (bool laziness) |
| Advanced usage: sets the constraint "laziness". More... | |
| const MPVariable * | indicator_variable () const |
| bool | indicator_value () const |
| int | index () const |
| Returns the index of the constraint in the MPSolver::constraints_. More... | |
| double | dual_value () const |
| Advanced usage: returns the dual value of the constraint in the current solution (only available for continuous problems). More... | |
| MPSolver::BasisStatus | basis_status () const |
| Advanced usage: returns the basis status of the constraint. More... | |
Protected Member Functions | |
| MPConstraint (int index, double lb, double ub, const std::string &name, MPSolverInterface *const interface_in) | |
| void | set_dual_value (double dual_value) |
Friends | |
| class | MPSolver |
| class | MPSolverInterface |
| class | CBCInterface |
| class | CLPInterface |
| class | GLPKInterface |
| class | SCIPInterface |
| class | SLMInterface |
| class | GurobiInterface |
| class | CplexInterface |
| class | GLOPInterface |
| class | BopInterface |
| class | SatInterface |
| class | KnapsackInterface |
|
inlineprotected |
Definition at line 1230 of file linear_solver.h.
| MPSolver::BasisStatus operations_research::MPConstraint::basis_status | ( | ) | const |
Advanced usage: returns the basis status of the constraint.
It is only available for continuous problems).
Note that if a constraint "linear_expression in [lb, ub]" is transformed into "linear_expression + slack = 0" with slack in [-ub, -lb], then this status is the same as the status of the slack variable with AT_UPPER_BOUND and AT_LOWER_BOUND swapped.
| void operations_research::MPConstraint::Clear | ( | ) |
Clears all variables and coefficients. Does not clear the bounds.
| double operations_research::MPConstraint::dual_value | ( | ) | const |
Advanced usage: returns the dual value of the constraint in the current solution (only available for continuous problems).
| double operations_research::MPConstraint::GetCoefficient | ( | const MPVariable *const | var | ) | const |
Gets the coefficient of a given variable on the constraint (which is 0 if the variable does not appear in the constraint).
|
inline |
Returns the index of the constraint in the MPSolver::constraints_.
Definition at line 1190 of file linear_solver.h.
|
inline |
Definition at line 1187 of file linear_solver.h.
|
inline |
Definition at line 1186 of file linear_solver.h.
|
inline |
Advanced usage: returns true if the constraint is "lazy" (see below).
Definition at line 1169 of file linear_solver.h.
|
inline |
Returns the lower bound.
Definition at line 1154 of file linear_solver.h.
|
inline |
Returns the name of the constraint.
Definition at line 1125 of file linear_solver.h.
|
inlineprotected |
Definition at line 1242 of file linear_solver.h.
|
inline |
Advanced usage: sets the constraint "laziness".
This is only supported for SCIP and has no effect on other solvers.
When laziness is true, the constraint is only considered by the Linear Programming solver if its current solution violates the constraint. In this case, the constraint is definitively added to the problem. This may be useful in some MIP problems, and may have a dramatic impact on performance.
For more info see: http://tinyurl.com/lazy-constraints.
Definition at line 1184 of file linear_solver.h.
| void operations_research::MPConstraint::SetBounds | ( | double | lb, |
| double | ub | ||
| ) |
Sets both the lower and upper bounds.
| void operations_research::MPConstraint::SetCoefficient | ( | const MPVariable *const | var, |
| double | coeff | ||
| ) |
Sets the coefficient of the variable on the constraint.
If the variable does not belong to the solver, the function just returns, or crashes in non-opt mode.
|
inline |
Sets the lower bound.
Definition at line 1160 of file linear_solver.h.
|
inline |
Sets the upper bound.
Definition at line 1163 of file linear_solver.h.
|
inline |
Returns a map from variables to their coefficients in the constraint.
If a variable is not present in the map, then its coefficient is zero.
Definition at line 1149 of file linear_solver.h.
|
inline |
Returns the upper bound.
Definition at line 1157 of file linear_solver.h.
|
friend |
Definition at line 1223 of file linear_solver.h.
|
friend |
Definition at line 1215 of file linear_solver.h.
|
friend |
Definition at line 1216 of file linear_solver.h.
|
friend |
Definition at line 1221 of file linear_solver.h.
|
friend |
Definition at line 1222 of file linear_solver.h.
|
friend |
Definition at line 1217 of file linear_solver.h.
|
friend |
Definition at line 1220 of file linear_solver.h.
|
friend |
Definition at line 1225 of file linear_solver.h.
|
friend |
Definition at line 1213 of file linear_solver.h.
|
friend |
Definition at line 1214 of file linear_solver.h.
|
friend |
Definition at line 1224 of file linear_solver.h.
|
friend |
Definition at line 1218 of file linear_solver.h.
|
friend |
Definition at line 1219 of file linear_solver.h.