![]() |
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.