14#ifndef OR_TOOLS_MATH_OPT_CPP_SOLVE_RESULT_H_
15#define OR_TOOLS_MATH_OPT_CPP_SOLVE_RESULT_H_
22#include "absl/time/time.h"
23#include "absl/types/span.h"
25#include "ortools/gscip/gscip.pb.h"
31#include "ortools/math_opt/result.pb.h"
83 const ProblemStatusProto& problem_status_proto);
143 SolveStatsProto
ToProto()
const;
152 kOptimal = TERMINATION_REASON_OPTIMAL,
288 TerminationProto
ToProto()
const;
292std::ostream&
operator<<(std::ostream& ostr,
const Termination& termination);
336 const SolveResultProto& solve_result_proto);
std::ostream & operator<<(std::ostream &out, const E value)
MATH_OPT_DEFINE_ENUM(CallbackEvent, CALLBACK_EVENT_UNSPECIFIED)
Collection of objects used to extend the Constraint Solver library.
std::string ToString() const
FeasibilityStatus dual_status
ProblemStatusProto ToProto() const
FeasibilityStatus primal_status
bool primal_or_dual_infeasible
static ProblemStatus FromProto(const ProblemStatusProto &problem_status_proto)
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
bool has_dual_feasible_solution() const
const LinearConstraintMap< double > & ray_dual_values() const
std::vector< PrimalRay > primal_rays
double objective_value() const
static SolveResult FromProto(const ModelStorage *model, const SolveResultProto &solve_result_proto)
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
static SolveStats FromProto(const SolveStatsProto &solve_stats_proto)
SolveStatsProto ToProto() const
absl::Duration solve_time
int first_order_iterations
std::string ToString() const
TerminationProto ToProto() const
Termination(TerminationReason reason, std::string detail={})
bool limit_reached() const
std::optional< Limit > limit
static Termination FromProto(const TerminationProto &termination_proto)
static Termination Feasible(Limit limit, std::string detail={})
static Termination NoSolutionFound(Limit limit, std::string detail={})