rounding locks primal heuristic
Definition in file heur_locks.c.
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "locks" |
#define | HEUR_DESC "heuristic that fixes variables based on their rounding locks" |
#define | HEUR_DISPCHAR 'k' |
#define | HEUR_PRIORITY 3000 |
#define | HEUR_FREQ 0 |
#define | HEUR_FREQOFS 0 |
#define | HEUR_MAXDEPTH -1 |
#define | HEUR_TIMING SCIP_HEURTIMING_BEFORENODE |
#define | HEUR_USESSUBSCIP TRUE |
#define | DEFAULT_MAXNODES 5000LL |
#define | DEFAULT_ROUNDUPPROBABILITY 0.67 |
#define | DEFAULT_MINFIXINGRATE 0.65 |
#define | DEFAULT_MINIMPROVE 0.01 |
#define | DEFAULT_MINNODES 500LL |
#define | DEFAULT_NODESOFS 500LL |
#define | DEFAULT_NODESQUOT 0.1 |
#define | DEFAULT_MAXPROPROUNDS 2 |
#define | DEFAULT_UPDATELOCKS TRUE |
#define | DEFAULT_COPYCUTS TRUE |
#define | DEFAULT_USEFINALSUBMIP TRUE |
#define | DEFAULT_RANDSEED 73 |
#define | heurInitsolLocks NULL |
#define | heurExitsolLocks NULL |
Functions | |
static SCIP_RETCODE | createNewSol (SCIP *scip, SCIP *subscip, SCIP_VAR **subvars, SCIP_SOL *newsol, SCIP_SOL *subsol, SCIP_Bool *success) |
static | SCIP_DECL_HEURCOPY (heurCopyLocks) |
static | SCIP_DECL_HEURFREE (heurFreeLocks) |
static | SCIP_DECL_HEURINIT (heurInitLocks) |
static | SCIP_DECL_HEUREXIT (heurExitLocks) |
SCIP_RETCODE | SCIPapplyLockFixings (SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_Bool *cutoff, SCIP_Bool *allrowsfulfilled) |
static | SCIP_DECL_HEUREXEC (heurExecLocks) |
SCIP_RETCODE | SCIPincludeHeurLocks (SCIP *scip) |
#define HEUR_NAME "locks" |
Definition at line 29 of file heur_locks.c.
Referenced by SCIP_DECL_HEUREXEC(), and SCIPapplyLockFixings().
#define HEUR_DESC "heuristic that fixes variables based on their rounding locks" |
Definition at line 30 of file heur_locks.c.
#define HEUR_DISPCHAR 'k' |
Definition at line 31 of file heur_locks.c.
#define HEUR_PRIORITY 3000 |
Definition at line 32 of file heur_locks.c.
#define HEUR_FREQ 0 |
Definition at line 33 of file heur_locks.c.
#define HEUR_FREQOFS 0 |
Definition at line 34 of file heur_locks.c.
#define HEUR_MAXDEPTH -1 |
Definition at line 35 of file heur_locks.c.
#define HEUR_TIMING SCIP_HEURTIMING_BEFORENODE |
Definition at line 36 of file heur_locks.c.
#define HEUR_USESSUBSCIP TRUE |
does the heuristic use a secondary SCIP instance?
Definition at line 37 of file heur_locks.c.
#define DEFAULT_MAXNODES 5000LL |
maximum number of nodes to regard in the subproblem
Definition at line 39 of file heur_locks.c.
#define DEFAULT_ROUNDUPPROBABILITY 0.67 |
probability for rounding a variable up in case of ties
Definition at line 40 of file heur_locks.c.
#define DEFAULT_MINFIXINGRATE 0.65 |
minimum percentage of variables that have to be fixed
Definition at line 41 of file heur_locks.c.
#define DEFAULT_MINIMPROVE 0.01 |
factor by which locks heuristic should at least improve the incumbent
Definition at line 42 of file heur_locks.c.
#define DEFAULT_MINNODES 500LL |
minimum number of nodes to regard in the subproblem
Definition at line 47 of file heur_locks.c.
#define DEFAULT_NODESOFS 500LL |
number of nodes added to the contingent of the total nodes
Definition at line 48 of file heur_locks.c.
#define DEFAULT_NODESQUOT 0.1 |
subproblem nodes in relation to nodes of the original problem
Definition at line 49 of file heur_locks.c.
#define DEFAULT_MAXPROPROUNDS 2 |
maximum number of propagation rounds during probing
Definition at line 50 of file heur_locks.c.
#define DEFAULT_UPDATELOCKS TRUE |
should the locks be updated based on LP rows?
Definition at line 51 of file heur_locks.c.
#define DEFAULT_COPYCUTS TRUE |
should all active cuts from the cutpool of the original scip be copied to constraints of the subscip?
Definition at line 52 of file heur_locks.c.
#define DEFAULT_USEFINALSUBMIP TRUE |
should a final sub-MIP be solved to construct a feasible solution if the LP was not roundable?
Definition at line 55 of file heur_locks.c.
#define DEFAULT_RANDSEED 73 |
initial random seed
Definition at line 58 of file heur_locks.c.
#define heurInitsolLocks NULL |
Definition at line 198 of file heur_locks.c.
#define heurExitsolLocks NULL |
Definition at line 199 of file heur_locks.c.
|
static |
creates a new solution for the original problem by copying the solution of the subproblem
scip | original SCIP data structure |
subscip | SCIP structure of the subproblem |
subvars | the variables of the subproblem |
newsol | working solution |
subsol | solution of the subproblem |
success | used to store whether new solution was found or not |
Definition at line 86 of file heur_locks.c.
References FALSE, SCIP_CALL, SCIP_DECL_HEURCOPY(), SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPgetNOrigVars(), SCIPgetSolVals(), SCIPgetVarsData(), SCIPsetSolVals(), SCIPtrySol(), and TRUE.
Referenced by SCIP_DECL_HEUREXEC().
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 130 of file heur_locks.c.
Referenced by createNewSol().
|
static |
free method for primal heuristic plugins (called when SCIP is exiting)
Definition at line 144 of file heur_locks.c.
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 162 of file heur_locks.c.
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 182 of file heur_locks.c.
SCIP_RETCODE SCIPapplyLockFixings | ( | SCIP * | scip, |
SCIP_HEURDATA * | heurdata, | ||
SCIP_Bool * | cutoff, | ||
SCIP_Bool * | allrowsfulfilled | ||
) |
apply fix-and-propagate scheme based on variable locks
scip | SCIP data structure |
heurdata | primal heuristic data |
cutoff | pointer to store if a cutoff was detected |
allrowsfulfilled | pointer to store if all rows became redundant |
Definition at line 205 of file heur_locks.c.
References FALSE, HEUR_NAME, REALABS, SCIP_Bool, SCIP_CALL, SCIP_DECL_HEUREXEC(), SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARTYPE_BINARY, SCIPallocBufferArray, SCIPallocClearBufferArray, SCIPbacktrackProbing(), SCIPcolGetNNonz(), SCIPcolGetRows(), SCIPcolGetVals(), SCIPcolGetVar(), SCIPconshdlrGetNCheckConss(), SCIPdebug, SCIPdebugMsg, SCIPduplicateBufferArray, SCIPfindConshdlr(), SCIPfindHeur(), SCIPfixVarProbing(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPgetDepth(), SCIPgetLPRowsData(), SCIPgetNCheckConss(), SCIPgetNConss(), SCIPgetNLPRows(), SCIPgetProbingDepth(), SCIPgetRowMaxActivity(), SCIPgetRowMinActivity(), SCIPgetVarsData(), SCIPheurGetData(), SCIPinProbing(), SCIPisFeasGE(), SCIPisFeasGT(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisInfinity(), SCIPisPositive(), SCIPisStopped(), SCIPnewProbingNode(), SCIPprintRow(), SCIPpropagateProbing(), SCIPrandomGetReal(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetRank(), SCIProwGetRhs(), SCIProwGetVals(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), and TRUE.
Referenced by applyVbounds(), and SCIP_DECL_HEUREXEC().
|
static |
execution method of primal heuristic
Definition at line 670 of file heur_locks.c.
References createNewSol(), FALSE, HEUR_NAME, SCIP_Bool, SCIP_CALL, SCIP_CALL_ABORT, SCIP_DIDNOTFIND, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_Real, SCIPallocBufferArray, SCIPapplyLockFixings(), SCIPblkmem(), SCIPcheckCopyLimits(), SCIPcheckSol(), SCIPconstructLP(), SCIPcopy(), SCIPcopyCuts(), SCIPcopyLimits(), SCIPcreate(), SCIPcreateSol(), SCIPcutoffNode(), SCIPdebug, SCIPdebugMsg, SCIPenableVarHistory(), SCIPendProbing(), SCIPfindBranchrule(), SCIPfindConshdlr(), SCIPflushLP(), SCIPfree(), SCIPfreeBufferArray, SCIPfreeSol(), SCIPgetBoolParam(), SCIPgetCurrentNode(), SCIPgetLowerbound(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetNConss(), SCIPgetNLPIterations(), SCIPgetNLPRows(), SCIPgetNNodes(), SCIPgetNPseudoBranchCands(), SCIPgetNSols(), SCIPgetNVars(), SCIPgetSols(), SCIPgetSolvingTime(), SCIPgetStatus(), SCIPgetUpperbound(), SCIPgetVarsData(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPheurGetData(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPincludeHeurLocks(), SCIPisInfinity(), SCIPisParamFixed(), SCIPisStopped(), SCIPlinkLPSol(), SCIPpresolve(), SCIPprintSol(), SCIPprintStatistics(), SCIProundSol(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetObjlimit(), SCIPsetPresolving(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPsolve(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPsumepsilon(), SCIPtrySol(), SCIPwarningMessage(), and TRUE.
Referenced by SCIPapplyLockFixings().