14#ifndef ORTOOLS_SAT_CP_MODEL_SOLVER_HELPERS_H_
15#define ORTOOLS_SAT_CP_MODEL_SOLVER_HELPERS_H_
22#include "absl/types/span.h"
62 std::unique_ptr<SharedBoundsManager>
bounds;
65 std::unique_ptr<SharedClausesManager>
clauses;
105 IntegerVariable objective_var,
134 int num_variable_in_original_model,
136 absl::Span<const int> postsolve_mapping,
void SolveLoadedCpModel(const CpModelProto &model_proto, Model *model)
void RegisterObjectiveBoundsImport(SharedResponseManager *shared_response_manager, Model *model)
void RegisterClausesExport(int id, SharedClausesManager *shared_clauses_manager, Model *model)
void MinimizeL1DistanceWithHint(const CpModelProto &model_proto, Model *model)
void LoadFeasibilityPump(const CpModelProto &model_proto, Model *model)
void AdaptGlobalParameters(const CpModelProto &model_proto, Model *model)
void QuickSolveWithHint(const CpModelProto &model_proto, Model *model)
void LoadDebugSolution(const CpModelProto &model_proto, Model *model)
void RegisterVariableBoundsLevelZeroExport(const CpModelProto &, SharedBoundsManager *shared_bounds_manager, Model *model)
void PostsolveResponseWrapper(const SatParameters ¶ms, int num_variable_in_original_model, const CpModelProto &mapping_proto, absl::Span< const int > postsolve_mapping, std::vector< int64_t > *solution)
void RegisterVariableBoundsLevelZeroImport(const CpModelProto &model_proto, SharedBoundsManager *shared_bounds_manager, Model *model)
void LoadCpModel(const CpModelProto &model_proto, Model *model)
void RegisterObjectiveBestBoundExport(IntegerVariable objective_var, SharedResponseManager *shared_response_manager, Model *model)
void RegisterLinear2BoundsImport(SharedLinear2Bounds *shared_linear2_bounds, Model *model)
int RegisterClausesLevelZeroImport(int id, SharedClausesManager *shared_clauses_manager, Model *model)
Select next search node to expand Select next item_i to add this new search node to the search Generate a new search node where item_i is not in the knapsack Check validity of this new partial solution(using propagators) - If valid
void RegisterSharedClassesInLocalModel(Model *local_model)
SolverLogger *const logger
SharedLratProofStatus *const lrat_proof_status
const CpModelProto & model_proto
SharedLsSolutionRepository *const ls_hints
SolverProgressLogger *const progress_logger
std::unique_ptr< SharedIncompleteSolutionManager > incomplete_solutions
std::unique_ptr< SharedClausesManager > clauses
void LogFinalStatistics()
ModelSharedTimeLimit *const time_limit
SharedTreeManager *const shared_tree_manager
SharedResponseManager *const response
SharedClasses(const CpModelProto *proto, Model *global_model)
SharedStatTables *const stat_tables
SharedStatistics *const stats
std::unique_ptr< SharedLPSolutionRepository > lp_solutions
std::unique_ptr< SharedLinear2Bounds > linear2_bounds
WallTimer *const wall_timer
std::unique_ptr< SharedBoundsManager > bounds