![]() |
Google OR-Tools v9.12
a fast and portable software suite for combinatorial optimization
|
#include <cp_model_lns.h>
Public Member Functions | |
RelaxationInducedNeighborhoodGenerator (NeighborhoodGeneratorHelper const *helper, const SharedResponseManager *response_manager, const SharedLPSolutionRepository *lp_solutions, SharedIncompleteSolutionManager *incomplete_solutions, absl::string_view name) | |
Neighborhood | Generate (const CpSolverResponse &initial_solution, SolveData &data, absl::BitGenRef random) final |
Both initial solution and difficulty values are ignored. | |
bool | ReadyToGenerate () const override |
Returns true if the required solutions are available. | |
![]() | |
NeighborhoodGenerator (absl::string_view name, NeighborhoodGeneratorHelper const *helper) | |
virtual | ~NeighborhoodGenerator ()=default |
double | GetUCBScore (int64_t total_num_calls) const |
void | AddSolveData (SolveData data) |
double | Synchronize () |
std::string | name () const |
Returns a short description of the generator. | |
int64_t | num_calls () const |
Number of times this generator was called. | |
int64_t | num_fully_solved_calls () const |
Number of time the neighborhood was fully solved (OPTIMAL/INFEASIBLE). | |
int64_t | num_improving_calls () const |
Out of num_calls(), how many improved the given solution. | |
int64_t | num_consecutive_non_improving_calls () const |
double | difficulty () const |
The current difficulty of this generator. | |
double | deterministic_limit () const |
The current time limit that the sub-solve should use on this generator. | |
Additional Inherited Members | |
![]() | |
using | ActiveRectangle = NeighborhoodGeneratorHelper::ActiveRectangle |
![]() | |
const std::string | name_ |
const NeighborhoodGeneratorHelper & | helper_ |
absl::Mutex | generator_mutex_ |
double | deterministic_limit_ = 0.1 |
Generates a neighborhood by fixing the variables to solutions reported in various repositories. This is inspired from RINS published in "Exploring relaxation induced neighborhoods to improve MIP solutions" 2004 by E. Danna et.
If incomplete_solutions is provided, this generates a neighborhood by fixing the variable values to a solution in the SharedIncompleteSolutionManager and ignores the other repositories.
Otherwise, if response_manager is not provided, this generates a neighborhood using only the linear/general relaxation values. The domain of the variables are reduced to the integer values around their lp solution/relaxation solution values. This was published in "RENS – The Relaxation Enforced Neighborhood" 2009 by Timo Berthold.
Definition at line 854 of file cp_model_lns.h.
|
inlineexplicit |
Definition at line 856 of file cp_model_lns.h.
|
finalvirtual |
Both initial solution and difficulty values are ignored.
Fix the variables in the local model.
Implements operations_research::sat::NeighborhoodGenerator.
Definition at line 2759 of file cp_model_lns.cc.
|
overridevirtual |
Returns true if the required solutions are available.
Reimplemented from operations_research::sat::NeighborhoodGenerator.
Definition at line 2754 of file cp_model_lns.cc.