14 #ifndef OR_TOOLS_BOP_BOP_LNS_H_ 15 #define OR_TOOLS_BOP_BOP_LNS_H_ 51 bool ShouldBeRun(
const ProblemState& problem_state)
const final;
57 const ProblemState& problem_state,
int num_relaxed_vars);
59 int64_t state_update_stamp_;
60 std::unique_ptr<sat::SatSolver> sat_solver_;
113 bool ShouldBeRun(
const ProblemState& problem_state)
const final;
118 const bool use_lp_to_guide_sat_;
119 std::unique_ptr<NeighborhoodGenerator> neighborhood_generator_;
133 : objective_terms_(*objective_terms), random_(random) {}
137 void GenerateNeighborhood(
const ProblemState& problem_state,
151 : objective_terms_(*objective_terms), random_(random) {}
155 void GenerateNeighborhood(
const ProblemState& problem_state,
172 void GenerateNeighborhood(
const ProblemState& problem_state,
184 #endif // OR_TOOLS_BOP_BOP_LNS_H_ A simple class to enforce both an elapsed time limit and a deterministic time limit in the same threa...
virtual ~NeighborhoodGenerator()
BopAdaptiveLNSOptimizer(const std::string &name, bool use_lp_to_guide_sat, NeighborhoodGenerator *neighborhood_generator, sat::SatSolver *sat_propagator)
ModelSharedTimeLimit * time_limit
BopCompleteLNSOptimizer(const std::string &name, const BopConstraintTerms &objective_terms)
ConstraintBasedNeighborhood(const BopConstraintTerms *objective_terms, MTRandom *random)
virtual void GenerateNeighborhood(const ProblemState &problem_state, double difficulty, sat::SatSolver *sat_propagator)=0
~ConstraintBasedNeighborhood() final
~ObjectiveBasedNeighborhood() final
const std::string & name() const
RelationGraphBasedNeighborhood(const sat::LinearBooleanProblem &problem, MTRandom *random)
~RelationGraphBasedNeighborhood() final
~BopCompleteLNSOptimizer() final
Collection of objects used to extend the Constraint Solver library.
ObjectiveBasedNeighborhood(const BopConstraintTerms *objective_terms, MTRandom *random)
~BopAdaptiveLNSOptimizer() final