Detailed DescriptionLP rounding heuristic that tries to recover from intermediate infeasibilities, shifts integer variables, and solves a final LP to calculate feasible values for continuous variables. Definition in file heur_intshifting.c. Go to the source code of this file.
Macro Definition Documentation
Definition at line 30 of file heur_intshifting.c. Referenced by SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINITSOL(), and SCIPincludeHeurIntshifting().
Definition at line 31 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 32 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 33 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 34 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 35 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 36 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
Definition at line 37 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
does the heuristic use a secondary SCIP instance? Definition at line 38 of file heur_intshifting.c. Referenced by SCIPincludeHeurIntshifting().
maximal number of non improving shiftings Definition at line 40 of file heur_intshifting.c. Referenced by SCIP_DECL_HEUREXEC().
Definition at line 41 of file heur_intshifting.c. Referenced by SCIP_DECL_HEUREXEC(). Function Documentation
update row violation arrays after a row's activity value changed
Definition at line 59 of file heur_intshifting.c. References NULL, SCIP_Bool, SCIP_Real, SCIPisFeasGT(), SCIPisFeasLT(), SCIProwGetLhs(), SCIProwGetLPPos(), and SCIProwGetRhs(). Referenced by updateActivities().
update row activities after a variable's solution value changed
Definition at line 119 of file heur_intshifting.c. References NULL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPcolGetNLPNonz(), SCIPcolGetRows(), SCIPcolGetVals(), SCIPinfinity(), SCIPisInfinity(), SCIProwGetLPPos(), SCIProwIsInLP(), SCIProwIsLocal(), SCIPvarGetCol(), SCIPvarGetType(), and updateViolations(). Referenced by SCIP_DECL_HEUREXEC().
returns an integer variable, that pushes activity of the row in the given direction with minimal negative impact on other rows; if variables have equal impact, chooses the one with best objective value improvement in corresponding direction; prefer fractional integers over other variables in order to become integral during the process; shifting in a direction is forbidden, if this forces the objective value over the upper bound, or if the variable was already shifted in the opposite direction
Definition at line 206 of file heur_intshifting.c. References MAX, MIN, NULL, SCIP_Bool, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPcolGetVar(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPgetSolVal(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasIntegral(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetNLPNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIPvarGetLbGlobal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetType(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_HEUREXEC().
returns a fractional variable, that has most impact on rows in opposite direction, i.e. that is most crucial to fix in the other direction; if variables have equal impact, chooses the one with best objective value improvement in corresponding direction; shifting in a direction is forbidden, if this forces the objective value over the upper bound
Definition at line 355 of file heur_intshifting.c. References NULL, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPfeasCeil(), SCIPfeasFloor(), SCIPgetCutoffbound(), SCIPgetSolVal(), SCIPinfinity(), SCIPisFeasIntegral(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), and SCIPvarGetType(). Referenced by SCIP_DECL_HEUREXEC().
adds a given value to the fractionality counters of the rows in which the given variable appears
Definition at line 433 of file heur_intshifting.c. References SCIPcolGetNLPNonz(), SCIPcolGetRows(), SCIProwGetLPPos(), and SCIPvarGetCol(). Referenced by SCIP_DECL_HEUREXEC().
copy method for primal heuristic plugins (called when SCIP copies plugins) Definition at line 466 of file heur_intshifting.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurIntshifting().
initialization method of primal heuristic (called after problem was transformed) Definition at line 481 of file heur_intshifting.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPallocMemory, SCIPcreateSol(), SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
deinitialization method of primal heuristic (called before transformed problem is freed) Definition at line 500 of file heur_intshifting.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeMemory, SCIPfreeSol(), SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
solving process initialization method of primal heuristic (called when branch and bound process is about to begin) Definition at line 518 of file heur_intshifting.c. References HEUR_NAME, NULL, SCIP_OKAY, SCIPheurGetData(), and SCIPheurGetName().
execution method of primal heuristic Definition at line 534 of file heur_intshifting.c. References addFracCounter(), BMSclearMemoryArray, FALSE, HEUR_NAME, MAXSHIFTINGS, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPallocBufferArray, SCIPchgVarLbDive(), SCIPchgVarUbDive(), SCIPcolGetPrimsol(), SCIPcolGetVar(), SCIPdebug, SCIPdebugMessage, SCIPendDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfreeBufferArray, SCIPgetCutoffbound(), SCIPgetLPBranchCands(), SCIPgetLPObjval(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNBinVars(), SCIPgetNContVars(), SCIPgetNIntVars(), SCIPgetNLPIterations(), SCIPgetNLPs(), SCIPgetNNodes(), SCIPgetNVars(), SCIPgetRandomInt(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetVars(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPheurGetNSolsFound(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasGT(), SCIPisFeasIntegral(), SCIPisFeasLT(), SCIPisGE(), SCIPisInfinity(), SCIPisStopped(), SCIPlinkLPSol(), SCIPprintRow(), SCIPprintSol(), SCIPretransformObj(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIProwIsLocal(), SCIPsetSolVal(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPtrySol(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbGlobal(), SCIPwarningMessage(), selectEssentialRounding(), selectShifting(), TRUE, updateActivities(), and WEIGHTFACTOR.
creates the intshifting heuristic with infeasibility recovering and includes it in SCIP
Definition at line 1007 of file heur_intshifting.c. References HEUR_DESC, HEUR_DISPCHAR, HEUR_FREQ, HEUR_FREQOFS, HEUR_MAXDEPTH, HEUR_NAME, HEUR_PRIORITY, HEUR_TIMING, HEUR_USESSUBSCIP, NULL, SCIP_CALL, SCIP_OKAY, SCIPincludeHeurBasic(), SCIPsetHeurCopy(), SCIPsetHeurExit(), SCIPsetHeurInit(), and SCIPsetHeurInitsol(). Referenced by SCIP_DECL_HEURCOPY(), and SCIPincludeDefaultPlugins(). |