17 #ifndef OR_TOOLS_MATH_OPT_CPP_SOLVE_RESULT_H_
18 #define OR_TOOLS_MATH_OPT_CPP_SOLVE_RESULT_H_
26 #include "absl/status/statusor.h"
27 #include "absl/time/time.h"
28 #include "absl/types/span.h"
30 #include "ortools/gscip/gscip.pb.h"
35 #include "ortools/math_opt/result.pb.h"
89 const ProblemStatusProto& problem_status_proto);
91 ProblemStatusProto
Proto()
const;
146 static absl::StatusOr<SolveStats>
FromProto(
147 const SolveStatsProto& solve_stats_proto);
150 absl::StatusOr<SolveStatsProto>
Proto()
const;
159 kOptimal = TERMINATION_REASON_OPTIMAL,
295 static absl::StatusOr<Termination>
FromProto(
296 const TerminationProto& termination_proto);
297 TerminationProto
Proto()
const;
301 std::ostream&
operator<<(std::ostream& ostr,
const Termination& termination);
364 static absl::StatusOr<SolveResult>
FromProto(
373 absl::StatusOr<SolveResultProto>
Proto()
const;
461 std::ostream&
operator<<(std::ostream& out,
const SolveResult& result);
std::ostream & operator<<(std::ostream &ostr, const IndicatorConstraint &constraint)
MATH_OPT_DEFINE_ENUM(BasisStatus, BASIS_STATUS_UNSPECIFIED)
Collection of objects used to extend the Constraint Solver library.
std::string ToString() const
ProblemStatusProto Proto() const
FeasibilityStatus dual_status
static absl::StatusOr< ProblemStatus > FromProto(const ProblemStatusProto &problem_status_proto)
FeasibilityStatus primal_status
bool primal_or_dual_infeasible
double best_objective_bound() const
const VariableMap< double > & ray_variable_values() const
const LinearConstraintMap< double > & dual_values() const
const VariableMap< BasisStatus > & variable_status() const
bool has_dual_ray() const
absl::Duration solve_time() const
static absl::StatusOr< SolveResult > FromProto(const ModelStorage *model, const SolveResultProto &solve_result_proto)
bool has_dual_feasible_solution() const
const LinearConstraintMap< double > & ray_dual_values() const
std::vector< PrimalRay > primal_rays
double objective_value() const
absl::StatusOr< SolveResultProto > Proto() const
SolveResult(Termination termination)
const VariableMap< double > & ray_reduced_costs() const
const LinearConstraintMap< BasisStatus > & constraint_status() const
std::vector< Solution > solutions
const VariableMap< double > & variable_values() const
const VariableMap< double > & reduced_costs() const
GScipOutput gscip_solver_specific_output
bool has_primal_feasible_solution() const
std::vector< DualRay > dual_rays
std::string ToString() const
ProblemStatus problem_status
absl::StatusOr< SolveStatsProto > Proto() const
static absl::StatusOr< SolveStats > FromProto(const SolveStatsProto &solve_stats_proto)
absl::Duration solve_time
int first_order_iterations
std::string ToString() const
Termination(TerminationReason reason, std::string detail={})
bool limit_reached() const
std::optional< Limit > limit
static absl::StatusOr< Termination > FromProto(const TerminationProto &termination_proto)
static Termination Feasible(Limit limit, std::string detail={})
static Termination NoSolutionFound(Limit limit, std::string detail={})
TerminationProto Proto() const