14#ifndef OR_TOOLS_SAT_COMBINE_SOLUTIONS_H_
15#define OR_TOOLS_SAT_COMBINE_SOLUTIONS_H_
23#include "absl/types/span.h"
24#include "ortools/sat/cp_model.pb.h"
35 const CpModelProto& model, absl::Span<const int64_t> new_solution,
36 absl::Span<const int64_t> base_solution,
43 std::shared_ptr<const SharedSolutionRepository<int64_t>::Solution>
46 std::shared_ptr<const SharedSolutionRepository<int64_t>::Solution>
51 absl::Span<const int64_t> new_solution,
const std::string& solution_info,
52 absl::Span<const int64_t> base_solution = {},
Model* model =
nullptr);
std::optional< std::vector< int64_t > > FindCombinedSolution(const CpModelProto &model, absl::Span< const int64_t > new_solution, absl::Span< const int64_t > base_solution, const SharedResponseManager *response_manager, std::string *solution_info)
PushedSolutionPointers PushAndMaybeCombineSolution(SharedResponseManager *response_manager, const CpModelProto &model_proto, absl::Span< const int64_t > new_solution, const std::string &solution_info, absl::Span< const int64_t > base_solution, Model *model)
In SWIG mode, we don't want anything besides these top-level includes.
std::shared_ptr< const SharedSolutionRepository< int64_t >::Solution > improved_solution
nullptr if no improvement was found.
std::shared_ptr< const SharedSolutionRepository< int64_t >::Solution > pushed_solution