17 #ifndef OR_TOOLS_MATH_OPT_CPP_SOLUTION_H_
18 #define OR_TOOLS_MATH_OPT_CPP_SOLUTION_H_
22 #include "absl/status/status.h"
23 #include "absl/status/statusor.h"
24 #include "absl/types/span.h"
29 #include "ortools/math_opt/result.pb.h"
30 #include "ortools/math_opt/solution.pb.h"
68 static absl::StatusOr<PrimalSolution>
FromProto(
70 const PrimalSolutionProto& primal_solution_proto);
73 PrimalSolutionProto
Proto()
const;
106 static absl::StatusOr<PrimalRay>
FromProto(
110 PrimalRayProto
Proto()
const;
136 static absl::StatusOr<DualSolution>
FromProto(
140 DualSolutionProto
Proto()
const;
176 const DualRayProto& dual_ray_proto);
179 DualRayProto
Proto()
const;
219 const BasisProto& basis_proto);
229 BasisProto
Proto()
const;
253 static absl::StatusOr<Solution>
FromProto(
257 SolutionProto
Proto()
const;
MATH_OPT_DEFINE_ENUM(BasisStatus, BASIS_STATUS_UNSPECIFIED)
Collection of objects used to extend the Constraint Solver library.
VariableMap< BasisStatus > variable_status
LinearConstraintMap< BasisStatus > constraint_status
absl::Status CheckModelStorage(const ModelStorage *expected_storage) const
SolutionStatus basic_dual_feasibility
static absl::StatusOr< Basis > FromProto(const ModelStorage *model, const BasisProto &basis_proto)
static absl::StatusOr< DualRay > FromProto(const ModelStorage *model, const DualRayProto &dual_ray_proto)
LinearConstraintMap< double > dual_values
VariableMap< double > reduced_costs
DualRayProto Proto() const
static absl::StatusOr< DualSolution > FromProto(const ModelStorage *model, const DualSolutionProto &dual_solution_proto)
SolutionStatus feasibility_status
LinearConstraintMap< double > dual_values
VariableMap< double > reduced_costs
DualSolutionProto Proto() const
std::optional< double > objective_value
VariableMap< double > variable_values
static absl::StatusOr< PrimalRay > FromProto(const ModelStorage *model, const PrimalRayProto &primal_ray_proto)
PrimalRayProto Proto() const
static absl::StatusOr< PrimalSolution > FromProto(const ModelStorage *model, const PrimalSolutionProto &primal_solution_proto)
VariableMap< double > variable_values
SolutionStatus feasibility_status
PrimalSolutionProto Proto() const
static absl::StatusOr< Solution > FromProto(const ModelStorage *model, const SolutionProto &solution_proto)
std::optional< DualSolution > dual_solution
std::optional< PrimalSolution > primal_solution
std::optional< Basis > basis
SolutionProto Proto() const