![]() |
OR-Tools
8.2
|
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... | |
| LinearExpr | ( | ) |
Definition at line 26 of file linear_expr.cc.
| LinearExpr | ( | double | constant | ) |
Possible implicit conversions are intentional.
Definition at line 24 of file linear_expr.cc.
| LinearExpr | ( | const MPVariable * | var | ) |
Definition at line 28 of file linear_expr.cc.
|
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.
Definition at line 69 of file linear_expr.cc.
|
inline |
Definition at line 142 of file linear_expr.h.
| LinearExpr & operator*= | ( | double | rhs | ) |
Definition at line 48 of file linear_expr.cc.
| LinearExpr & operator+= | ( | const LinearExpr & | rhs | ) |
Definition at line 32 of file linear_expr.cc.
| LinearExpr operator- | ( | ) | const |
Definition at line 66 of file linear_expr.cc.
| LinearExpr & operator-= | ( | const LinearExpr & | rhs | ) |
Definition at line 40 of file linear_expr.cc.
| LinearExpr & operator/= | ( | double | rhs | ) |
Definition at line 61 of file linear_expr.cc.
| double SolutionValue | ( | ) | const |
Evaluates the value of this expression at the solution found.
It must be called only after calling MPSolver::Solve.
Definition at line 75 of file linear_expr.cc.
|
inline |
Definition at line 143 of file linear_expr.h.
| std::string ToString | ( | ) | const |
A human readable representation of this.
Variables will be printed in order of lowest index first.
Definition at line 119 of file linear_expr.cc.