Detailed DescriptionLP rounding heuristic that tries to recover from intermediate infeasibilities and shifts continuous variables. Definition in file heur_shifting.c. Go to the source code of this file.
Macro Definition Documentation
Definition at line 29 of file heur_shifting.c. Referenced by SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINITSOL(), and SCIPincludeHeurShifting().
Definition at line 30 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 31 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 32 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 33 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 34 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 35 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
Definition at line 36 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
does the heuristic use a secondary SCIP instance? Definition at line 37 of file heur_shifting.c. Referenced by SCIPincludeHeurShifting().
maximal number of non improving shiftings Definition at line 39 of file heur_shifting.c. Referenced by SCIP_DECL_HEUREXEC().
Definition at line 40 of file heur_shifting.c. Referenced by SCIP_DECL_HEUREXEC(). Function Documentation
update row violation arrays after a row's activity value changed
Definition at line 58 of file heur_shifting.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 155 of file heur_shifting.c. References NULL, SCIP_OKAY, SCIP_Real, SCIPcolGetNLPNonz(), SCIPcolGetRows(), SCIPcolGetVals(), SCIPinfinity(), SCIPisInfinity(), SCIProwGetLPPos(), SCIProwIsInLP(), SCIProwIsLocal(), SCIPvarGetCol(), and updateViolations(). Referenced by SCIP_DECL_HEUREXEC().
returns a 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 230 of file heur_shifting.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(), SCIPisInfinity(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIProwGetCols(), SCIProwGetLhs(), SCIProwGetNLPNonz(), SCIProwGetRhs(), SCIProwGetVals(), SCIPvarGetLbGlobal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and SCIPvarIsIntegral(). 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 383 of file heur_shifting.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 461 of file heur_shifting.c. References SCIPcolGetNLPNonz(), SCIPcolGetRows(), SCIProwGetLPPos(), SCIProwIsLocal(), and SCIPvarGetCol(). Referenced by SCIP_DECL_HEUREXEC().
copy method for primal heuristic plugins (called when SCIP copies plugins) Definition at line 548 of file heur_shifting.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurShifting().
initialization method of primal heuristic (called after problem was transformed) Definition at line 563 of file heur_shifting.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 582 of file heur_shifting.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 600 of file heur_shifting.c. References HEUR_NAME, NULL, SCIP_OKAY, SCIPheurGetData(), and SCIPheurGetName().
execution method of primal heuristic Definition at line 616 of file heur_shifting.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_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPallocBufferArray, SCIPdebug, SCIPdebugMessage, SCIPfeasCeil(), SCIPfeasFloor(), SCIPfreeBufferArray, SCIPgetCutoffbound(), SCIPgetLPBranchCands(), SCIPgetLPObjval(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNLPs(), SCIPgetNNodes(), SCIPgetNVars(), SCIPgetRandomInt(), SCIPgetRowActivity(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPheurGetNSolsFound(), SCIPisEQ(), SCIPisFeasGT(), SCIPisFeasIntegral(), SCIPisFeasLT(), SCIPisGE(), SCIPlinkLPSol(), SCIPprintRow(), SCIPprintSol(), SCIPretransformObj(), SCIProwGetLhs(), SCIProwGetLPPos(), SCIProwGetName(), SCIProwGetRhs(), SCIProwIsLocal(), SCIPsetSolVal(), SCIPtrySol(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetType(), SCIPvarGetUbGlobal(), selectEssentialRounding(), selectShifting(), TRUE, updateActivities(), and WEIGHTFACTOR.
creates the shifting heuristic with infeasibility recovering and includes it in SCIP
Definition at line 947 of file heur_shifting.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(). |