Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
|
Bounds on the optimal objective value. More...
#include <solve_result.h>
Public Member Functions | |
ObjectiveBoundsProto | Proto () const |
std::string | ToString () const |
Static Public Member Functions | |
static ObjectiveBounds | MakeTrivial (bool is_maximize) |
static ObjectiveBounds | MaximizeMakeTrivial () |
static ObjectiveBounds | MinimizeMakeTrivial () |
static ObjectiveBounds | MakeUnbounded (bool is_maximize) |
static ObjectiveBounds | MinimizeMakeUnbounded () |
static ObjectiveBounds | MaximizeMakeUnbounded () |
static ObjectiveBounds | MakeOptimal (double objective_value) |
Sets both bounds to objective_value. | |
static ObjectiveBounds | FromProto (const ObjectiveBoundsProto &objective_bounds_proto) |
Public Attributes | |
double | primal_bound = 0.0 |
double | dual_bound = 0.0 |
Bounds on the optimal objective value.
Definition at line 229 of file solve_result.h.
|
static |
Definition at line 58 of file solve_result.cc.
|
static |
Sets both bounds to objective_value.
Definition at line 110 of file solve_result.cc.
|
static |
Returns trivial bounds.
Trivial bounds are:
Definition at line 82 of file solve_result.cc.
|
static |
Returns unbounded bounds.
Unbounded bounds are:
Definition at line 95 of file solve_result.cc.
|
static |
Definition at line 88 of file solve_result.cc.
|
static |
Definition at line 106 of file solve_result.cc.
|
static |
Definition at line 91 of file solve_result.cc.
|
static |
Definition at line 102 of file solve_result.cc.
ObjectiveBoundsProto operations_research::math_opt::ObjectiveBounds::Proto | ( | ) | const |
Definition at line 51 of file solve_result.cc.
std::string operations_research::math_opt::ObjectiveBounds::ToString | ( | ) | const |
Definition at line 76 of file solve_result.cc.
double operations_research::math_opt::ObjectiveBounds::dual_bound = 0.0 |
Solver claims there exists a dual solution that is numerically feasible (i.e. feasible up to the solvers tolerance), and whose objective value is dual_bound.
For MIP solvers, the associated dual problem may be some continuous relaxation (e.g. LP relaxation), but it is often an implicitly defined problem that is a complex consequence of the solvers execution. For both continuous and MIP solvers, the optimal value is equal or worse (larger for min objective and smaller for max objectives) than dual_bound, but only up to solver-tolerances. Some continuous solvers provide a numerically safer dual bound through solver's specific output (e.g. for PDLP, pdlp_output.convergence_information.corrected_dual_objective).
Definition at line 250 of file solve_result.h.
double operations_research::math_opt::ObjectiveBounds::primal_bound = 0.0 |
Solver claims there exists a primal solution that is numerically feasible (i.e. feasible up to the solvers tolerance), and whose objective value is primal_bound.
The optimal value is equal or better (smaller for min objectives and larger for max objectives) than primal_bound, but only up to solver-tolerances.
Definition at line 236 of file solve_result.h.