Detailed DescriptionObjective Feasibility Pump 2.0. Definition in file heur_feaspump.c. #include <assert.h> #include <string.h> #include "scip/heur_feaspump.h" #include "scip/cons_linear.h" #include "scip/scipdefplugins.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 31 of file heur_feaspump.c. Referenced by setupSCIPparamsFP2(), and setupSCIPparamsStage3().
Definition at line 32 of file heur_feaspump.c.
Definition at line 33 of file heur_feaspump.c.
Definition at line 34 of file heur_feaspump.c.
Definition at line 35 of file heur_feaspump.c.
Definition at line 36 of file heur_feaspump.c.
Definition at line 37 of file heur_feaspump.c.
Definition at line 38 of file heur_feaspump.c.
does the heuristic use a secondary SCIP instance? Definition at line 39 of file heur_feaspump.c.
maximal fraction of diving LP iterations compared to node LP iterations Definition at line 41 of file heur_feaspump.c.
additional number of allowed LP iterations Definition at line 42 of file heur_feaspump.c.
total number of feasible solutions found up to which heuristic is called (-1: no limit) Definition at line 43 of file heur_feaspump.c.
maximal number of pumping rounds (-1: no limit) Definition at line 46 of file heur_feaspump.c.
maximal number of pumping rounds without fractionality improvement (-1: no limit) Definition at line 47 of file heur_feaspump.c.
minimum number of random variables to flip, if a 1-cycle is encountered Definition at line 48 of file heur_feaspump.c.
maximum length of cycles to be checked explicitly in each round Definition at line 49 of file heur_feaspump.c.
number of iterations until a random perturbation is forced Definition at line 50 of file heur_feaspump.c.
factor by which the regard of the objective is decreased in each round, 1.0 for dynamic, depending on solutions already found Definition at line 51 of file heur_feaspump.c.
initial weight of the objective function in the convex combination Definition at line 54 of file heur_feaspump.c.
threshold difference for the convex parameter to perform perturbation Definition at line 55 of file heur_feaspump.c.
should the feasibility pump be called at root node before cut separation? Definition at line 56 of file heur_feaspump.c.
should an iterative round-and-propagate scheme be used to find the integral points? Definition at line 57 of file heur_feaspump.c.
should a random perturbation be performed if a feasible solution was found? Definition at line 58 of file heur_feaspump.c.
should we solve a local branching sub-MIP if no solution could be found? Definition at line 59 of file heur_feaspump.c.
radius of the neighborhood to be searched in stage 3 Definition at line 60 of file heur_feaspump.c.
should all active cuts from the cutpool of the original SCIP be copied to constraints of the subscip Definition at line 61 of file heur_feaspump.c.
minimal number of LP iterations allowed in each LP solving call Definition at line 67 of file heur_feaspump.c. Function Documentation
Definition at line 105 of file heur_feaspump.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPblkmem(), SCIPcopy(), SCIPcopyCuts(), SCIPcreate(), SCIPgetDepth(), SCIPgetDepthLimit(), SCIPgetNVars(), SCIPhashmapCreate(), setupSCIPparamsFP2(), and TRUE.
set appropriate parameters for probing SCIP in FP2
Definition at line 141 of file heur_feaspump.c. References FALSE, HEUR_NAME, SCIP_CALL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_Real, SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetHeuristics(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetPresolving(), SCIPunfixParam(), SCIPwarningMessage(), setupSCIPparamsStage3(), and TRUE. Referenced by setupProbingSCIP().
set appropriate parameters for probing SCIP in Stage 3
Definition at line 179 of file heur_feaspump.c. References FALSE, HEUR_NAME, insertFlipCand(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_Real, SCIPcopyParamSettings(), SCIPfindBranchrule(), SCIPfindNodesel(), SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPunfixParam(), SCIPwarningMessage(), and TRUE. Referenced by setupSCIPparamsFP2().
checks whether a variable is one of the currently most fractional ones
Definition at line 268 of file heur_feaspump.c. References handle1Cycle(), and NULL. Referenced by setupSCIPparamsStage3().
flips the roundings of the most fractional variables, if a 1-cycle was found
Definition at line 314 of file heur_feaspump.c. References handleCycle(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPchgVarObjDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeasFrac(), SCIPsetSolVal(), SCIPvarGetLPSol(), and SCIPvarGetObj(). Referenced by insertFlipCand().
flips the roundings of randomly chosen fractional variables, preferring highly fractional ones, if a longer cycle was found
Definition at line 358 of file heur_feaspump.c. References addLocalBranchingConstraint(), MAX, MIN, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPchgVarObjDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeasFrac(), SCIPgetRandomReal(), SCIPsetSolVal(), SCIPvarGetLPSol(), and SCIPvarGetObj(). Referenced by handle1Cycle().
create the extra constraint of local branching and add it to subscip
Definition at line 407 of file heur_feaspump.c. References createNewSols(), FALSE, NULL, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPaddCons(), SCIPallocBufferArray, SCIPchgVarObj(), SCIPcreateConsLinear(), SCIPfreeBufferArray, SCIPgetProbName(), SCIPgetSolVal(), SCIPgetVarsData(), SCIPhashmapGetImage(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPreleaseCons(), SCIPsnprintf(), SCIPvarGetType(), and TRUE. Referenced by handleCycle().
creates new solutions for the original problem by copying the solutions of the subproblem
Definition at line 475 of file heur_feaspump.c. References FALSE, NULL, SCIP_CALL, SCIP_DECL_HEURCOPY(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateSol(), SCIPfreeBufferArray, SCIPgetNOrigVars(), SCIPgetNSols(), SCIPgetSols(), SCIPgetSolVals(), SCIPgetVarsData(), SCIPhashmapGetImage(), SCIPsetSolVals(), SCIPtrySolFree(), and TRUE. Referenced by addLocalBranchingConstraint().
copy method for primal heuristic plugins (called when SCIP copies plugins) Definition at line 535 of file heur_feaspump.c. Referenced by createNewSols().
destructor of primal heuristic to free user data (called when SCIP is exiting) Definition at line 549 of file heur_feaspump.c.
initialization method of primal heuristic (called after problem was transformed) Definition at line 569 of file heur_feaspump.c.
deinitialization method of primal heuristic (called before transformed problem is freed) Definition at line 594 of file heur_feaspump.c.
solving process initialization method of primal heuristic (called when branch and bound process is about to begin) Definition at line 615 of file heur_feaspump.c.
solving process deinitialization method of primal heuristic (called before branch and bound process data is freed) Definition at line 632 of file heur_feaspump.c.
calculates an adjusted maximal number of LP iterations
Definition at line 642 of file heur_feaspump.c. References SCIP_DECL_HEUREXEC().
execution method of primal heuristic Definition at line 661 of file heur_feaspump.c. Referenced by adjustedMaxNLPIterations().
creates the feaspump primal heuristic and includes it in SCIP
Definition at line 1373 of file heur_feaspump.c. Referenced by SCIPincludeDefaultPlugins(). |