![]() |
Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
|
A class to express a linear objective. More...
A class to express a linear objective.
Definition at line 1020 of file linear_solver.h.
#include <linear_solver.h>
Public Member Functions | |
| MPObjective (const MPObjective &)=delete | |
| This type is neither copyable nor movable. | |
| MPObjective & | operator= (const MPObjective &)=delete |
| void | Clear () |
| void | SetCoefficient (const MPVariable *var, double coeff) |
| double | GetCoefficient (const MPVariable *var) const |
| --— MPObjective --— | |
| const absl::flat_hash_map< const MPVariable *, double > & | terms () const |
| void | SetOffset (double value) |
| Sets the constant term in the objective. | |
| double | offset () const |
| Gets the constant term in the objective. | |
| void | OptimizeLinearExpr (const LinearExpr &linear_expr, bool is_maximization) |
| void | MaximizeLinearExpr (const LinearExpr &linear_expr) |
| Resets the current objective to maximize linear_expr. | |
| void | MinimizeLinearExpr (const LinearExpr &linear_expr) |
| Resets the current objective to minimize linear_expr. | |
| void | AddLinearExpr (const LinearExpr &linear_expr) |
| Adds linear_expr to the current objective, does not change the direction. | |
| void | SetOptimizationDirection (bool maximize) |
| Sets the optimization direction (maximize: true or minimize: false). | |
| void | SetMinimization () |
| Sets the optimization direction to minimize. | |
| void | SetMaximization () |
| Sets the optimization direction to maximize. | |
| bool | maximization () const |
| Is the optimization direction set to maximize? | |
| bool | minimization () const |
| Is the optimization direction set to minimize? | |
| double | Value () const |
| double | BestBound () const |
Friends | |
| class | MPSolver |
| class | MPSolverInterface |
| class | CBCInterface |
| class | CLPInterface |
| class | GLPKInterface |
| class | SCIPInterface |
| class | SLMInterface |
| class | GurobiInterface |
| class | CplexInterface |
| class | XpressInterface |
| class | GLOPInterface |
| class | BopInterface |
| class | SatInterface |
| class | PdlpInterface |
| class | HighsInterface |
| class | KnapsackInterface |
|
delete |
This type is neither copyable nor movable.
| void operations_research::MPObjective::AddLinearExpr | ( | const LinearExpr & | linear_expr | ) |
Adds linear_expr to the current objective, does not change the direction.
Definition at line 242 of file linear_solver.cc.
| double operations_research::MPObjective::BestBound | ( | ) | const |
Returns the best objective bound.
In case of minimization, it is a lower bound on the objective value of the optimal integer solution. Only available for discrete problems.
Note(user): the best objective bound belongs to the interface for the same reasons as the objective value does.
Definition at line 279 of file linear_solver.cc.
| void operations_research::MPObjective::Clear | ( | ) |
Clears the offset, all variables and coefficients, and the optimization direction.
Definition at line 250 of file linear_solver.cc.
| double operations_research::MPObjective::GetCoefficient | ( | const MPVariable * | var | ) | const |
--— MPObjective --—
Gets the coefficient of a given variable in the objective
It returns 0 if the variable does not appear in the objective).
Definition at line 194 of file linear_solver.cc.
| bool operations_research::MPObjective::maximization | ( | ) | const |
Is the optimization direction set to maximize?
Definition at line 268 of file linear_solver.cc.
|
inline |
Resets the current objective to maximize linear_expr.
Definition at line 1071 of file linear_solver.h.
| bool operations_research::MPObjective::minimization | ( | ) | const |
Is the optimization direction set to minimize?
Definition at line 270 of file linear_solver.cc.
|
inline |
Resets the current objective to minimize linear_expr.
Definition at line 1075 of file linear_solver.h.
|
inline |
Gets the constant term in the objective.
Definition at line 1062 of file linear_solver.h.
|
delete |
| void operations_research::MPObjective::OptimizeLinearExpr | ( | const LinearExpr & | linear_expr, |
| bool | is_maximization ) |
Resets the current objective to take the value of linear_expr, and sets the objective direction to maximize if "is_maximize", otherwise minimizes.
Definition at line 230 of file linear_solver.cc.
| void operations_research::MPObjective::SetCoefficient | ( | const MPVariable * | var, |
| double | coeff ) |
Sets the coefficient of the variable in the objective.
If the variable does not belong to the solver, the function just returns, or crashes in non-opt mode.
See the discussion on MPConstraint::SetCoefficient() for 0 coefficients, the same reasoning applies here.
Definition at line 200 of file linear_solver.cc.
|
inline |
Sets the optimization direction to maximize.
Definition at line 1089 of file linear_solver.h.
|
inline |
Sets the optimization direction to minimize.
Definition at line 1086 of file linear_solver.h.
| void operations_research::MPObjective::SetOffset | ( | double | value | ) |
Sets the constant term in the objective.
Definition at line 215 of file linear_solver.cc.
| void operations_research::MPObjective::SetOptimizationDirection | ( | bool | maximize | ) |
Sets the optimization direction (maximize: true or minimize: false).
Note(user): The maximize_ bool would more naturally belong to the MPObjective, but it actually has to be a member of MPSolverInterface, because some implementations (such as GLPK) need that bool for the MPSolverInterface constructor, i.e. at a time when the MPObjective is not constructed yet (MPSolverInterface is always built before MPObjective when a new MPSolver is constructed).
Definition at line 257 of file linear_solver.cc.
|
inline |
Returns a map from variables to their coefficients in the objective.
If a variable is not present in the map, then its coefficient is zero.
Definition at line 1054 of file linear_solver.h.
| double operations_research::MPObjective::Value | ( | ) | const |
Returns the objective value of the best solution found so far.
It is the optimal objective value if the problem has been solved to optimality.
Note: the objective value may be slightly different than what you could compute yourself using MPVariable::solution_value(); please use the –verify_solution flag to gain confidence about the numerical stability of your solution.
Note(user): implementation-wise, the objective value belongs more naturally to the MPSolverInterface, since all of its implementations write to it directly.
Definition at line 272 of file linear_solver.cc.
|
friend |
Definition at line 1130 of file linear_solver.h.
|
friend |
Definition at line 1121 of file linear_solver.h.
|
friend |
Definition at line 1122 of file linear_solver.h.
|
friend |
Definition at line 1127 of file linear_solver.h.
|
friend |
Definition at line 1129 of file linear_solver.h.
|
friend |
Definition at line 1123 of file linear_solver.h.
|
friend |
Definition at line 1126 of file linear_solver.h.
|
friend |
Definition at line 1133 of file linear_solver.h.
|
friend |
Definition at line 1134 of file linear_solver.h.
|
friend |
Definition at line 1119 of file linear_solver.h.
|
friend |
Definition at line 1120 of file linear_solver.h.
|
friend |
Definition at line 1132 of file linear_solver.h.
|
friend |
Definition at line 1131 of file linear_solver.h.
|
friend |
Definition at line 1124 of file linear_solver.h.
|
friend |
Definition at line 1125 of file linear_solver.h.
|
friend |
Definition at line 1128 of file linear_solver.h.