14 #ifndef OR_TOOLS_MATH_OPT_SOLVERS_CP_SAT_SOLVER_H_
15 #define OR_TOOLS_MATH_OPT_SOLVERS_CP_SAT_SOLVER_H_
23 #include "absl/status/status.h"
24 #include "absl/status/statusor.h"
26 #include "ortools/math_opt/callback.pb.h"
27 #include "ortools/math_opt/model.pb.h"
28 #include "ortools/math_opt/model_parameters.pb.h"
29 #include "ortools/math_opt/model_update.pb.h"
30 #include "ortools/math_opt/parameters.pb.h"
31 #include "ortools/math_opt/result.pb.h"
32 #include "ortools/math_opt/solution.pb.h"
40 static absl::StatusOr<std::unique_ptr<SolverInterface>>
New(
41 const ModelProto&
model,
const SolverInitializerProto& initializer);
43 absl::StatusOr<SolveResultProto>
Solve(
45 const ModelSolveParametersProto& model_parameters,
46 const CallbackRegistrationProto& callback_registration,
48 absl::Status
Update(
const ModelUpdateProto& model_update)
override;
49 bool CanUpdate(
const ModelUpdateProto& model_update)
override;
58 PrimalSolutionProto ExtractSolution(
60 const ModelSolveParametersProto& model_parameters)
const;
62 const MPModelProto cp_sat_model_;
66 const std::vector<int64_t> variable_ids_;
bool CanUpdate(const ModelUpdateProto &model_update) override
absl::Status Update(const ModelUpdateProto &model_update) override
absl::StatusOr< SolveResultProto > Solve(const SolveParametersProto ¶meters, const ModelSolveParametersProto &model_parameters, const CallbackRegistrationProto &callback_registration, Callback cb) override
static absl::StatusOr< std::unique_ptr< SolverInterface > > New(const ModelProto &model, const SolverInitializerProto &initializer)
std::function< absl::StatusOr< CallbackResultProto >(const CallbackDataProto &)> Callback
SharedResponseManager * response
absl::Span< const int64_t > variable_ids
Collection of objects used to extend the Constraint Solver library.