All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURFREE(), SCIP_DECL_HEURINIT(), SCIPincludeHeurFeaspump(), setupSCIPparamsFP2(), and setupSCIPparamsStage3().
Definition at line 32 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 33 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 34 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 35 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 36 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 37 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
Definition at line 38 of file heur_feaspump.c. Referenced by SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXITSOL(), and SCIPincludeHeurFeaspump().
does the heuristic use a secondary SCIP instance? Definition at line 39 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
maximal fraction of diving LP iterations compared to node LP iterations Definition at line 41 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
additional number of allowed LP iterations Definition at line 42 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
total number of feasible solutions found up to which heuristic is called (-1: no limit) Definition at line 43 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
maximal number of pumping rounds (-1: no limit) Definition at line 45 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
maximal number of pumping rounds without fractionality improvement (-1: no limit) Definition at line 46 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
minimum number of random variables to flip, if a 1-cycle is encountered Definition at line 47 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
maximum length of cycles to be checked explicitly in each round Definition at line 48 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
number of iterations until a random perturbation is forced Definition at line 49 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
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 50 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
initial weight of the objective function in the convex combination Definition at line 52 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
threshold difference for the convex parameter to perform perturbation Definition at line 53 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
should the feasibility pump be called at root node before cut separation? Definition at line 54 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
should an iterative round-and-propagate scheme be used to find the integral points? Definition at line 55 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
should a random perturbation be performed if a feasible solution was found? Definition at line 56 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
should we solve a local branching sub-MIP if no solution could be found? Definition at line 57 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
radius of the neighborhood to be searched in stage 3 Definition at line 58 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
should all active cuts from the cutpool of the original SCIP be copied to constraints of the subscip Definition at line 59 of file heur_feaspump.c. Referenced by SCIPincludeHeurFeaspump().
minimal number of LP iterations allowed in each LP solving call Definition at line 63 of file heur_feaspump.c. Referenced by SCIP_DECL_HEUREXEC(). Function Documentation
Definition at line 101 of file heur_feaspump.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPblkmem(), SCIPcopy(), SCIPcopyCuts(), SCIPcreate(), SCIPgetNVars(), SCIPhashmapCreate(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
set appropriate parameters for probing SCIP in FP2
Definition at line 130 of file heur_feaspump.c. References FALSE, HEUR_NAME, SCIP_CALL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetHeuristics(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetPresolving(), SCIPunfixParam(), SCIPwarningMessage(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
set appropriate parameters for probing SCIP in Stage 3
Definition at line 168 of file heur_feaspump.c. References FALSE, HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIPcopyParamSettings(), SCIPfindBranchrule(), SCIPfindNodesel(), SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPunfixParam(), SCIPwarningMessage(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
checks whether a variable is one of the currently most fractional ones
Definition at line 257 of file heur_feaspump.c. References NULL. Referenced by SCIP_DECL_HEUREXEC().
flips the roundings of the most fractional variables, if a 1-cycle was found
Definition at line 303 of file heur_feaspump.c. References SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPchgVarObjDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeasFrac(), SCIPsetSolVal(), SCIPvarGetLPSol(), and SCIPvarGetObj(). Referenced by SCIP_DECL_HEUREXEC().
flips the roundings of randomly chosen fractional variables, preferring highly fractional ones, if a longer cycle was found
Definition at line 347 of file heur_feaspump.c. References MAX, MIN, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPchgVarObjDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeasFrac(), SCIPgetRandomReal(), SCIPsetSolVal(), SCIPvarGetLPSol(), and SCIPvarGetObj(). Referenced by SCIP_DECL_HEUREXEC().
create the extra constraint of local branching and add it to subscip
Definition at line 396 of file heur_feaspump.c. References 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 SCIP_DECL_HEUREXEC().
creates new solutions for the original problem by copying the solutions of the subproblem
Definition at line 464 of file heur_feaspump.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateSol(), SCIPfreeBufferArray, SCIPgetNOrigVars(), SCIPgetNSols(), SCIPgetSols(), SCIPgetSolVals(), SCIPgetVarsData(), SCIPhashmapGetImage(), SCIPsetSolVals(), SCIPtrySolFree(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
copy method for primal heuristic plugins (called when SCIP copies plugins) Definition at line 524 of file heur_feaspump.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurFeaspump().
destructor of primal heuristic to free user data (called when SCIP is exiting) Definition at line 538 of file heur_feaspump.c. References HEUR_NAME, NULL, SCIP_OKAY, SCIPfreeMemory, SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
initialization method of primal heuristic (called after problem was transformed) Definition at line 558 of file heur_feaspump.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateSol(), SCIPheurGetData(), and SCIPheurGetName().
deinitialization method of primal heuristic (called before transformed problem is freed) Definition at line 583 of file heur_feaspump.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeSol(), SCIPheurGetData(), and SCIPheurGetName().
solving process initialization method of primal heuristic (called when branch and bound process is about to begin) Definition at line 604 of file heur_feaspump.c. References NULL, SCIP_HEURTIMING_DURINGLPLOOP, SCIP_OKAY, SCIPheurGetData(), SCIPheurGetFreqofs(), and SCIPheurSetTimingmask().
solving process deinitialization method of primal heuristic (called before branch and bound process data is freed) Definition at line 621 of file heur_feaspump.c. References HEUR_TIMING, SCIP_OKAY, and SCIPheurSetTimingmask().
calculates an adjusted maximal number of LP iterations
Definition at line 631 of file heur_feaspump.c. Referenced by SCIP_DECL_HEUREXEC().
execution method of primal heuristic Definition at line 650 of file heur_feaspump.c. References addLocalBranchingConstraint(), adjustedMaxNLPIterations(), createNewSols(), FALSE, handle1Cycle(), handleCycle(), HEUR_NAME, HEUR_TIMING, insertFlipCand(), MAX, MIN, MINLPITER, NULL, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_HEURTIMING_DURINGLPLOOP, SCIP_Longint, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_STATUS_OPTIMAL, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPbacktrackProbing(), SCIPceil(), SCIPchgVarObjDive(), SCIPcreateSol(), SCIPdebugMessage, SCIPduplicateBufferArray, SCIPendDive(), SCIPendProbing(), SCIPfeasFrac(), SCIPfixVarProbing(), SCIPfloor(), SCIPfree(), SCIPfreeBufferArray, SCIPfreeSol(), SCIPfreeTransform(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetLastDivenode(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNBestSolsFound(), SCIPgetNLPBranchCands(), SCIPgetNLPIterations(), SCIPgetNNodes(), SCIPgetNPricers(), SCIPgetNSols(), SCIPgetNSolsFound(), SCIPgetObjNorm(), SCIPgetPrimalbound(), SCIPgetPseudoBranchCands(), SCIPgetRandomInt(), SCIPgetRealParam(), SCIPgetSolOrigObj(), SCIPgetSolVal(), SCIPgetSolvingTime(), SCIPgetStage(), SCIPgetStatus(), SCIPgetVarsData(), SCIPhasCurrentNodeLP(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPheurSetTimingmask(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFeasLE(), SCIPisFeasZero(), SCIPisGE(), SCIPisInfinity(), SCIPisIntegral(), SCIPisLE(), SCIPisLPSolBasic(), SCIPisLT(), SCIPisStopped(), SCIPlinkLPSol(), SCIPnewProbingNode(), SCIPpropagateProbing(), SCIProundSol(), SCIPsetLongintParam(), SCIPsetSolVal(), SCIPsolve(), SCIPsolveDiveLP(), SCIPsortRealPtr(), SCIPstartDive(), SCIPstartProbing(), SCIPstatisticMessage, SCIPtrySol(), SCIPunlinkSol(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPwarningMessage(), setupProbingSCIP(), setupSCIPparamsFP2(), and setupSCIPparamsStage3().
creates the feaspump primal heuristic and includes it in SCIP
Definition at line 1356 of file heur_feaspump.c. References DEFAULT_ALPHA, DEFAULT_ALPHADIFF, DEFAULT_BEFORECUTS, DEFAULT_COPYCUTS, DEFAULT_CYCLELENGTH, DEFAULT_MAXLOOPS, DEFAULT_MAXLPITEROFS, DEFAULT_MAXLPITERQUOT, DEFAULT_MAXSOLS, DEFAULT_MAXSTALLLOOPS, DEFAULT_MINFLIPS, DEFAULT_NEIGHBORHOODSIZE, DEFAULT_OBJFACTOR, DEFAULT_PERTSOLFOUND, DEFAULT_PERTURBFREQ, DEFAULT_STAGE3, DEFAULT_USEFP20, FALSE, HEUR_DESC, HEUR_DISPCHAR, HEUR_FREQ, HEUR_FREQOFS, HEUR_MAXDEPTH, HEUR_NAME, HEUR_PRIORITY, HEUR_TIMING, HEUR_USESSUBSCIP, NULL, SCIP_CALL, SCIP_OKAY, SCIP_REAL_MAX, SCIPaddBoolParam(), SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPincludeHeurBasic(), SCIPsetHeurCopy(), SCIPsetHeurExit(), SCIPsetHeurExitsol(), SCIPsetHeurFree(), SCIPsetHeurInit(), SCIPsetHeurInitsol(), and TRUE. Referenced by SCIP_DECL_HEURCOPY(), and SCIPincludeDefaultPlugins(). |