C++ Reference
C++ Reference: Linear solver
Detailed Description
LinearExpr models a quantity that is linear in the decision variables (MPVariable) of an optimization problem, i.e.
offset + sum_{i in S} a_i*x_i,
where the a_i and offset are constants and the x_i are MPVariables. You can use a LinearExpr "linear_expr" with an MPSolver "solver" to:
Set as the objective of your optimization problem, e.g.
solver.MutableObjective()->MaximizeLinearExpr(linear_expr);
Create a constraint in your optimization, e.g.
solver.MakeRowConstraint(linear_expr1 <= linear_expr2);
Get the value of the quantity after solving, e.g.
solver.Solve(); linear_expr.SolutionValue();
LinearExpr is allowed to delete variables with coefficient zero from the map, but is not obligated to do so.
Definition at line 114 of file linear_expr.h.
Public Member Functions | |
LinearExpr () | |
LinearExpr (double constant) | |
Possible implicit conversions are intentional. More... | |
LinearExpr (const MPVariable *var) | |
LinearExpr & | operator+= (const LinearExpr &rhs) |
LinearExpr & | operator-= (const LinearExpr &rhs) |
LinearExpr & | operator*= (double rhs) |
LinearExpr & | operator/= (double rhs) |
LinearExpr | operator- () const |
double | offset () const |
const absl::flat_hash_map< const MPVariable *, double > & | terms () const |
double | SolutionValue () const |
Evaluates the value of this expression at the solution found. More... | |
std::string | ToString () const |
A human readable representation of this. More... | |
Static Public Member Functions | |
static LinearExpr | NotVar (LinearExpr var) |
Returns 1-var. More... | |
Constructor & Destructor Documentation
◆ LinearExpr() [1/3]
LinearExpr | ( | ) |
◆ LinearExpr() [2/3]
LinearExpr | ( | double | constant | ) |
Possible implicit conversions are intentional.
◆ LinearExpr() [3/3]
LinearExpr | ( | const MPVariable * | var | ) |
Member Function Documentation
◆ NotVar()
|
static |
Returns 1-var.
NOTE(user): if var is binary variable, this corresponds to the logical negation of var. Passing by value is intentional, see the discussion on binary ops.
◆ offset()
|
inline |
Definition at line 142 of file linear_expr.h.
◆ operator*=()
LinearExpr& operator*= | ( | double | rhs | ) |
◆ operator+=()
LinearExpr& operator+= | ( | const LinearExpr & | rhs | ) |
◆ operator-()
LinearExpr operator- | ( | ) | const |
◆ operator-=()
LinearExpr& operator-= | ( | const LinearExpr & | rhs | ) |
◆ operator/=()
LinearExpr& operator/= | ( | double | rhs | ) |
◆ SolutionValue()
double SolutionValue | ( | ) | const |
Evaluates the value of this expression at the solution found.
It must be called only after calling MPSolver::Solve.
◆ terms()
|
inline |
Definition at line 143 of file linear_expr.h.
◆ ToString()
std::string ToString | ( | ) | const |
A human readable representation of this.
Variables will be printed in order of lowest index first.
The documentation for this class was generated from the following file: