Google OR-Tools: operations_research::LinearExpr Class Reference
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.
#include <linear_expr.h>
Public Member Functions | |
| LinearExpr () | |
| LinearExpr (double constant) | |
| Possible implicit conversions are intentional. | |
| 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 |
| std::string | ToString () const |
Static Public Member Functions | |
| static LinearExpr | NotVar (LinearExpr var) |
| operations_research::LinearExpr::LinearExpr | ( | ) |
◆ LinearExpr() [2/3]
| operations_research::LinearExpr::LinearExpr | ( | double | constant | ) |
Possible implicit conversions are intentional.
Definition at line 30 of file linear_expr.cc.
◆ LinearExpr() [3/3]
| operations_research::LinearExpr::LinearExpr | ( | const MPVariable * | var | ) |
◆ 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.
Definition at line 75 of file linear_expr.cc.
◆ offset()
|
inline |
◆ operator*=()
| LinearExpr & operations_research::LinearExpr::operator*= | ( | double | rhs | ) |
◆ operator+=()
| LinearExpr & operations_research::LinearExpr::operator+= | ( | const LinearExpr & | rhs | ) |
◆ operator-()
| LinearExpr operations_research::LinearExpr::operator- | ( | ) | const |
◆ operator-=()
| LinearExpr & operations_research::LinearExpr::operator-= | ( | const LinearExpr & | rhs | ) |
◆ operator/=()
| LinearExpr & operations_research::LinearExpr::operator/= | ( | double | rhs | ) |
◆ SolutionValue()
| double operations_research::LinearExpr::SolutionValue | ( | ) | const |
Evaluates the value of this expression at the solution found.
It must be called only after calling MPSolver::Solve.
Definition at line 81 of file linear_expr.cc.
◆ terms()
|
inline |
◆ ToString()
| std::string operations_research::LinearExpr::ToString | ( | ) | const |
A human readable representation of this. Variables will be printed in order of lowest index first.
Definition at line 125 of file linear_expr.cc.
The documentation for this class was generated from the following files:
- ortools/linear_solver/linear_expr.h
- ortools/linear_solver/linear_expr.cc