|
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
heur_randrounding.c
Go to the documentation of this file.
17 * @brief randomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree
24 * This implementation uses domain propagation techniques to tighten the variable domains after every
28 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
48 #define DEFAULT_USESIMPLEROUNDING FALSE /**< should the heuristic apply the variable lock strategy of simple rounding,
51 #define DEFAULT_PROPAGATEONLYROOT TRUE /**< should the probing part of the heuristic be applied exclusively at the root node */
61 SCIP_Bool usesimplerounding; /**< should the heuristic apply the variable lock strategy of simple rounding,
63 SCIP_Bool propagateonlyroot; /**< should the probing part of the heuristic be applied exclusively at the root node? */
70 /** perform randomized rounding of the given solution. Domain propagation is optionally applied after every rounding
167 /* choose rounding direction, if possible, or use the only direction guaranteed to be feasible */
187 /* if propagation is enabled, fix the candidate variable to its rounded value and propagate the solution */
298 /* only call heuristic, if LP solution is fractional; except we are called during pricing, in this case we
396 /** solving process initialization method of primal heuristic (called when branch and bound process is about to begin) */
399 {
416 /** solving process deinitialization method of primal heuristic (called before branch and bound process data is freed) */
419 {
439 /* only call heuristic, if an optimal LP solution is at hand or if relaxation solution is available */
451 /* don't call heuristic, if we have already processed the current LP solution but no relaxation solution is available */
495 SCIP_CALL( SCIPaddBoolParam(scip, "heuristics/"HEUR_NAME"/usesimplerounding", "should the heuristic apply the variable lock strategy of simple rounding, if possible?",
SCIP_RETCODE SCIPsetHeurInitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINITSOL((*heurinitsol))) Definition: scip.c:7078 void SCIPpermuteArray(void **array, int begin, int end, unsigned int *randseed) Definition: misc.c:7396 SCIP_RETCODE SCIPgetLPBranchCands(SCIP *scip, SCIP_VAR ***lpcands, SCIP_Real **lpcandssol, SCIP_Real **lpcandsfrac, int *nlpcands, int *npriolpcands, int *nfracimplvars) Definition: scip.c:30002 Definition: type_result.h:33 Definition: type_result.h:47 static SCIP_DECL_HEUREXIT(heurExitRandrounding) Definition: heur_randrounding.c:383 Definition: struct_scip.h:52 SCIP_RETCODE SCIPsetHeurCopy(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy))) Definition: scip.c:7014 static SCIP_RETCODE performRandRounding(SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_SOL *sol, SCIP_VAR **cands, int ncands, SCIP_Bool propagate, SCIP_RESULT *result) Definition: heur_randrounding.c:75 Definition: struct_var.h:196 SCIP_RETCODE SCIPsetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real val) Definition: scip.c:31639 SCIP_RETCODE SCIPincludeHeurBasic(SCIP *scip, SCIP_HEUR **heur, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, unsigned int timingmask, SCIP_Bool usessubscip, SCIP_DECL_HEUREXEC((*heurexec)), SCIP_HEURDATA *heurdata) Definition: scip.c:6969 SCIP_RETCODE SCIPpropagateProbing(SCIP *scip, int maxproprounds, SCIP_Bool *cutoff, SCIP_Longint *ndomredsfound) Definition: scip.c:29766 static SCIP_DECL_HEUREXEC(heurExecRandrounding) Definition: heur_randrounding.c:429 SCIP_Real SCIPgetSolVal(SCIP *scip, SCIP_SOL *sol, SCIP_VAR *var) Definition: scip.c:31775 #define SCIP_HEURTIMING_DURINGPRICINGLOOP Definition: type_timing.h:67 SCIP_RETCODE SCIPincludeHeurRandrounding(SCIP *scip) Definition: heur_randrounding.c:469 Definition: struct_sol.h:50 SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) Definition: scip.c:3388 SCIP_RETCODE SCIPaddIntParam(SCIP *scip, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata) Definition: scip.c:3414 static SCIP_DECL_HEURCOPY(heurCopyRandrounding) Definition: heur_randrounding.c:332 Definition: type_result.h:35 static SCIP_DECL_HEUREXITSOL(heurExitsolRandrounding) Definition: heur_randrounding.c:419 SCIP_RETCODE SCIPcreateSol(SCIP *scip, SCIP_SOL **sol, SCIP_HEUR *heur) Definition: scip.c:30856 SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:38648 Definition: type_var.h:42 Definition: type_retcode.h:33 void SCIPheurSetTimingmask(SCIP_HEUR *heur, SCIP_HEURTIMING timingmask) Definition: heur.c:631 Definition: struct_heur.h:36 static SCIP_DECL_HEURFREE(heurFreeRandrounding) Definition: heur_randrounding.c:346 Definition: type_lp.h:34 static SCIP_RETCODE performLPRandRounding(SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_HEURTIMING heurtiming, SCIP_Bool propagate, SCIP_RESULT *result) Definition: heur_randrounding.c:275 SCIP_RETCODE SCIPsetHeurExitsol(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXITSOL((*heurexitsol))) Definition: scip.c:7094 SCIP_RETCODE SCIPsetHeurExit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit))) Definition: scip.c:7062 SCIP_RETCODE SCIPsetHeurInit(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit))) Definition: scip.c:7046 SCIP_Real SCIPgetRandomReal(SCIP_Real minrandval, SCIP_Real maxrandval, unsigned int *seedp) Definition: misc.c:7231 #define SCIPduplicateBufferArray(scip, ptr, source, num) Definition: scip.h:19217 SCIP_RETCODE SCIPchgVarUbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) Definition: scip.c:29674 SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:38686 SCIP_RETCODE SCIPsetHeurFree(SCIP *scip, SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree))) Definition: scip.c:7030 SCIP_RETCODE SCIPchgVarLbProbing(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound) Definition: scip.c:29640 static SCIP_DECL_HEURINIT(heurInitRandrounding) Definition: heur_randrounding.c:365 SCIP_Bool SCIPisFeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:38724 randomized LP rounding heuristic which also generates conflicts via an auxiliary probing tree ... Definition: type_retcode.h:50 SCIP_RETCODE SCIPtrySol(SCIP *scip, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored) Definition: scip.c:32978 static SCIP_DECL_HEURINITSOL(heurInitsolRandrounding) Definition: heur_randrounding.c:399 SCIP_RETCODE SCIPprintSol(SCIP *scip, SCIP_SOL *sol, FILE *file, SCIP_Bool printzeros) Definition: scip.c:32161 |