Go to the documentation of this file.
27 #include "scip/def.h"
28 #include "scip/type_scip.h"
29 #include "scip/type_heur.h"
30 #include "scip/type_misc.h"
31 #include "scip/type_retcode.h"
32 #include "scip/type_sol.h"
33 #include "scip/type_var.h"
48 * This method performs a diving according to the settings defined by the diving settings @p diveset; Contrary to the
49 * name, SCIP enters probing mode (not diving mode) and dives along a path into the tree. Domain propagation
53 * score defined by the @p diveset and whose solution value has not yet been rendered infeasible by propagation,
56 * The algorithm iteratively selects the the next (unfixed) candidate in the list, until either enough domain changes
57 * or the resolve frequency of the LP trigger an LP resolve (and hence, the set of potential candidates changes),
61 * After the set of remaining candidates is empty or the targeted depth is reached, the node LP is
64 * @see heur_guideddiving.c for an example implementation of a dive set controlling the diving algorithm.
66 * @note the node from where the algorithm is called is checked for a basic LP solution. If the solution
67 * is non-basic, e.g., when barrier without crossover is used, the method returns without performing a dive.
69 * @note currently, when multiple diving heuristics call this method and solve an LP at the same node, only the first
75 SCIP_DIVESET* diveset, /**< settings for diving */
76 SCIP_SOL* worksol, /**< non-NULL working solution */
77 SCIP_HEUR* heur, /**< the calling primal heuristic */
78 SCIP_RESULT* result, /**< SCIP result pointer */
79 SCIP_Bool nodeinfeasible /**< is the current node known to be infeasible? */
85 SCIP* sourcescip, /**< source SCIP data structure */
86 SCIP* subscip, /**< sub-SCIP used by the heuristic */
87 SCIP_HASHMAP* varmap, /**< a hashmap to store the mapping of source variables to the corresponding
90 SCIP_VAR** fixedvars, /**< source variables whose copies should be fixed in the target SCIP environment, or NULL */
91 SCIP_Real* fixedvals, /**< array of fixing values for target SCIP variables, or NULL */
92 int nfixedvars, /**< number of source variables whose copies should be fixed in the target SCIP environment, or NULL */
93 SCIP_Bool uselprows, /**< should the linear relaxation of the problem defined by LP rows be copied? */
94 SCIP_Bool copycuts, /**< should cuts be copied (only if uselprows == FALSE) */
95 SCIP_Bool* success, /**< was the copying successful? */
96 SCIP_Bool* valid /**< pointer to store whether the copying was valid, or NULL */
type definitions for miscellaneous datastructures
SCIP_EXPORT SCIP_RETCODE SCIPperformGenericDivingAlgorithm(SCIP *scip, SCIP_DIVESET *diveset, SCIP_SOL *worksol, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_Bool nodeinfeasible)
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_RETCODE SCIPcopyLargeNeighborhoodSearch(SCIP *sourcescip, SCIP *subscip, SCIP_HASHMAP *varmap, const char *suffix, SCIP_VAR **fixedvars, SCIP_Real *fixedvals, int nfixedvars, SCIP_Bool uselprows, SCIP_Bool copycuts, SCIP_Bool *success, SCIP_Bool *valid)
type definitions for primal heuristics
type definitions for SCIP's main datastructure
type definitions for problem variables
type definitions for storing primal CIP solutions
common defines and data types used in all packages of SCIP