14 #ifndef OR_TOOLS_BOP_BOP_LNS_H_
15 #define OR_TOOLS_BOP_BOP_LNS_H_
29 #include "ortools/bop/bop_parameters.pb.h"
34 #include "ortools/sat/boolean_problem.pb.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,
A simple class to enforce both an elapsed time limit and a deterministic time limit in the same threa...
~BopAdaptiveLNSOptimizer() final
BopAdaptiveLNSOptimizer(const std::string &name, bool use_lp_to_guide_sat, NeighborhoodGenerator *neighborhood_generator, sat::SatSolver *sat_propagator)
BopCompleteLNSOptimizer(const std::string &name, const BopConstraintTerms &objective_terms)
~BopCompleteLNSOptimizer() final
const std::string & name() const
ConstraintBasedNeighborhood(const BopConstraintTerms *objective_terms, MTRandom *random)
~ConstraintBasedNeighborhood() final
virtual ~NeighborhoodGenerator()
virtual void GenerateNeighborhood(const ProblemState &problem_state, double difficulty, sat::SatSolver *sat_propagator)=0
ObjectiveBasedNeighborhood(const BopConstraintTerms *objective_terms, MTRandom *random)
~ObjectiveBasedNeighborhood() final
RelationGraphBasedNeighborhood(const sat::LinearBooleanProblem &problem, MTRandom *random)
~RelationGraphBasedNeighborhood() final
SharedTimeLimit * time_limit
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...