Stay organized with collections
Save and categorize content based on your preferences.
C++ Reference: class RelaxationInducedNeighborhoodGenerator
Note: This documentation is automatically generated.
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.
Method |
Generate | Return type: Neighborhood Arguments: const CpSolverResponse& initial_solution,
double difficulty, absl::BitGenRef random Both initial solution and difficulty values are ignored.
|
ReadyToGenerate | Return type: bool Returns true if the required solutions are available.
|
RelaxationInducedNeighborhoodGenerator | Return type: explicit Arguments:
NeighborhoodGeneratorHelper const* helper,
const SharedResponseManager* response_manager,
const SharedRelaxationSolutionRepository* relaxation_solutions,
const SharedLPSolutionRepository* lp_solutions,
SharedIncompleteSolutionManager* incomplete_solutions,
const std::string& name |
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-08-06 UTC.
[null,null,["Last updated 2024-08-06 UTC."],[[["\u003cp\u003eThe RelaxationInducedNeighborhoodGenerator creates a neighborhood for a MIP solution by fixing variables based on solutions from various repositories (or solely on relaxation values if repositories aren't specified).\u003c/p\u003e\n"],["\u003cp\u003eIt draws inspiration from the RINS and RENS heuristics, focusing on using existing solutions or relaxation values to guide the neighborhood search.\u003c/p\u003e\n"],["\u003cp\u003eIf provided with an \u003ccode\u003eincomplete_solutions\u003c/code\u003e repository, it prioritizes those solutions; otherwise, it may utilize relaxation or LP solutions if available through corresponding repositories.\u003c/p\u003e\n"],["\u003cp\u003eThe generator can be configured using parameters like \u003ccode\u003eresponse_manager\u003c/code\u003e, \u003ccode\u003erelaxation_solutions\u003c/code\u003e, \u003ccode\u003elp_solutions\u003c/code\u003e, and \u003ccode\u003eincomplete_solutions\u003c/code\u003e to specify the sources for guiding the neighborhood generation.\u003c/p\u003e\n"],["\u003cp\u003eAlthough it has parameters for \u003ccode\u003einitial_solution\u003c/code\u003e and \u003ccode\u003edifficulty\u003c/code\u003e, the RelaxationInducedNeighborhoodGenerator currently ignores them during neighborhood generation.\u003c/p\u003e\n"]]],["The `RelaxationInducedNeighborhoodGenerator` class generates neighborhoods by fixing variables to solutions from repositories. If `incomplete_solutions` is provided, it prioritizes solutions from `SharedIncompleteSolutionManager`. Otherwise, if `response_manager` is absent, it uses linear/general relaxation values, limiting variable domains to integers near their LP/relaxation values. The `Generate` method creates a neighborhood, while `ReadyToGenerate` checks for solution availability. The constructor takes several repository types as input.\n"],null,["# RelaxationInducedNeighborhoodGenerator\n\nC++ Reference: class RelaxationInducedNeighborhoodGenerator\n===========================================================\n\n\nNote: This documentation is automatically generated.\nGenerates 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. \n\nIf incomplete_solutions is provided, this generates a neighborhood by fixing the variable values to a solution in the SharedIncompleteSolutionManager and ignores the other repositories. \n\nOtherwise, 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.\n\n| Method ||\n|--------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [`Generate`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_lns.h#L679) | Return type: `Neighborhood ` Arguments: `const CpSolverResponse& initial_solution, double difficulty, absl::BitGenRef random` Both initial solution and difficulty values are ignored. |\n| [`ReadyToGenerate`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_lns.h#L683) | Return type: `bool ` Returns true if the required solutions are available. |\n| [`RelaxationInducedNeighborhoodGenerator`](https://github.com/google/or-tools/blob/v9.4/ortools/sat/cp_model_lns.h#L662) | Return type: `explicit ` Arguments: ` NeighborhoodGeneratorHelper const* helper, const SharedResponseManager* response_manager, const SharedRelaxationSolutionRepository* relaxation_solutions, const SharedLPSolutionRepository* lp_solutions, SharedIncompleteSolutionManager* incomplete_solutions, const std::string& name` \u003cbr /\u003e |"]]