All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Detailed DescriptionNLP diving heuristic that chooses fixings w.r.t. the fractionalities. Definition in file heur_nlpdiving.c. #include <assert.h> #include <string.h> #include "scip/heur_nlpdiving.h" #include "scip/heur_subnlp.h" #include "scip/heur_undercover.h" #include "nlpi/nlpi.h" Go to the source code of this file.
Macro Definition Documentation
Definition at line 33 of file heur_nlpdiving.c. Referenced by SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURFREE(), SCIP_DECL_HEURINIT(), SCIPincludeHeurNlpdiving(), and solveSubMIP().
Definition at line 34 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 35 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 36 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 37 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 38 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 39 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 40 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
does the heuristic use a secondary SCIP instance? Definition at line 41 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
Definition at line 44 of file heur_nlpdiving.c. Referenced by SCIP_DECL_EVENTEXEC(), and SCIPincludeHeurNlpdiving().
Definition at line 45 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
minimal relative depth to start diving Definition at line 52 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal relative depth to start diving Definition at line 53 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
minimial absolute number of allowed NLP iterations Definition at line 54 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
additional allowed number of NLP iterations relative to successfully found solutions Definition at line 55 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit) Definition at line 56 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit) Definition at line 58 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal UBQUOT when no solution was found yet (0.0: no limit) Definition at line 60 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal AVGQUOT when no solution was found yet (0.0: no limit) Definition at line 61 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
heuristic will not run if less then this percentage of calls succeeded (0.0: no limit) Definition at line 62 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
maximal number of NLPs with feasible solution to solve during one dive Definition at line 63 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
percentage of fractional variables that should be fixed before the next NLP solve Definition at line 64 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
use one level of backtracking if infeasibility is encountered? Definition at line 65 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
should the LP relaxation be solved before the NLP relaxation? Definition at line 66 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
prefer variables that are also fractional in LP solution? Definition at line 67 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
should variables in a minimal cover be preferred? Definition at line 68 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
should a sub-MIP be solved if all cover variables are fixed? Definition at line 69 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
which point should be used as starting point for the NLP solver? Definition at line 70 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
which variable selection should be used? ('f'ractionality, 'c'oefficient, 'p'seudocost, 'g'uided, 'd'ouble) Definition at line 71 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
should the NLP solver stop early if it converges slow? Definition at line 74 of file heur_nlpdiving.c. Referenced by SCIPincludeHeurNlpdiving().
minimal number of NLP iterations allowed in each NLP solving call Definition at line 76 of file heur_nlpdiving.c. Referenced by SCIP_DECL_HEUREXEC(). Function Documentation
gets fractional variables of last NLP solution along with solution values and fractionalities
Definition at line 133 of file heur_nlpdiving.c. References NULL, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIPfeastol(), SCIPgetLPSolstat(), SCIPgetNLPFracVars(), SCIPgetSolVal(), SCIPisFeasIntegral(), SCIPsetSolVal(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by SCIP_DECL_HEUREXEC().
finds best candidate variable w.r.t. fractionality:
Definition at line 208 of file heur_nlpdiving.c. References FALSE, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
finds best candidate variable w.r.t. vector length:
Definition at line 360 of file heur_nlpdiving.c. References NULL, SCIP_Bool, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARTYPE_BINARY, SCIPhashmapExists(), SCIPisGT(), SCIPisLT(), SCIPsumepsilon(), SCIPvarGetLbLocal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
finds best candidate variable w.r.t. locking numbers:
Definition at line 454 of file heur_nlpdiving.c. References FALSE, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPisGT(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
calculates the pseudocost score for a given variable w.r.t. a given solution value and a given rounding direction
Definition at line 608 of file heur_nlpdiving.c. References FALSE, MAX, MIN, NULL, SCIP_Real, SCIPfeasFloor(), SCIPgetVarPseudocostVal(), SCIPisEQ(), SCIPvarGetRootSol(), SCIPvarIsBinary(), sqrt(), and TRUE. Referenced by choosePscostVar().
finds best candidate variable w.r.t. pseudo costs:
Definition at line 679 of file heur_nlpdiving.c. References calcPscostQuot(), FALSE, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPisGT(), SCIPisInfinity(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
finds best candidate variable w.r.t. the incumbent solution:
Definition at line 801 of file heur_nlpdiving.c. References FALSE, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPgetSolVal(), SCIPhashmapExists(), SCIPinfinity(), SCIPisEQ(), SCIPisGT(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
finds best candidate variable w.r.t. both, the LP and the NLP solution:
Definition at line 952 of file heur_nlpdiving.c. References FALSE, MAX, MIN, NULL, SCIP_Bool, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPfeasCeil(), SCIPfeasFloor(), SCIPhashmapExists(), SCIPisFeasEQ(), SCIPisFeasIntegral(), SCIPisGT(), SCIPisLE(), SCIPisLT(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
creates a new solution for the original problem by copying the solution of the subproblem
Definition at line 1095 of file heur_nlpdiving.c. References FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateSol(), SCIPfreeBufferArray, SCIPgetNOrigVars(), SCIPgetSolVals(), SCIPgetVarsData(), SCIPhashmapGetImage(), SCIPsetSolVals(), SCIPtrySolFree(), and TRUE. Referenced by solveSubMIP().
solves subproblem and passes best feasible solution to original SCIP instance
Definition at line 1148 of file heur_nlpdiving.c. References createNewSol(), FALSE, HEUR_NAME, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_OKAY, SCIP_PARAMSETTING_FAST, SCIP_PARAMSETTING_OFF, SCIP_Real, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcopy(), SCIPcreate(), SCIPfindBranchrule(), SCIPfindNodesel(), SCIPfree(), SCIPgetLowerbound(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNSols(), SCIPgetNVars(), SCIPgetRealParam(), SCIPgetSols(), SCIPgetSolvingTime(), SCIPgetUpperbound(), SCIPhashmapCreate(), SCIPhashmapFree(), SCIPhashmapGetImage(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPisParamFixed(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetObjlimit(), SCIPsetPresolving(), SCIPsetRealParam(), SCIPsetSeparating(), SCIPsetSubscipsOff(), SCIPsolve(), SCIPsumepsilon(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPwarningMessage(), and TRUE. Referenced by SCIP_DECL_HEUREXEC().
Definition at line 1332 of file heur_nlpdiving.c. References EVENTHDLR_NAME, NULL, SCIP_EVENTTYPE_LBCHANGED, SCIP_EVENTTYPE_LBRELAXED, SCIP_EVENTTYPE_LBTIGHTENED, SCIP_EVENTTYPE_UBRELAXED, SCIP_EVENTTYPE_UBTIGHTENED, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPeventGetNewbound(), SCIPeventGetOldbound(), SCIPeventGetType(), SCIPeventGetVar(), SCIPeventhdlrGetName(), SCIPgetNVars(), SCIPisEQ(), SCIPisFeasEQ(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
copy method for primal heuristic plugins (called when SCIP copies plugins) Definition at line 1397 of file heur_nlpdiving.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurNlpdiving().
destructor of primal heuristic to free user data (called when SCIP is exiting) Definition at line 1411 of file heur_nlpdiving.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 1431 of file heur_nlpdiving.c. References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateSol(), SCIPheurGetData(), SCIPheurGetName(), and SCIPstatistic.
deinitialization method of primal heuristic (called before transformed problem is freed) Definition at line 1462 of file heur_nlpdiving.c. References HEUR_NAME, MAX, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPfreeSol(), SCIPgetProbName(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNCalls(), SCIPheurGetNSolsFound(), SCIPheurGetTime(), SCIPstatistic, and SCIPstatisticMessage.
solving process initialization method of primal heuristic (called when branch and bound process is about to begin) Definition at line 1493 of file heur_nlpdiving.c. References NULL, SCIP_CALL, SCIP_OKAY, SCIPaddLinearConsToNlpHeurSubNlp(), SCIPfindHeur(), SCIPisNLPConstructed(), and TRUE.
execution method of primal heuristic Definition at line 1515 of file heur_nlpdiving.c. References chooseCoefVar(), chooseDoubleVar(), chooseFracVar(), chooseGuidedVar(), choosePscostVar(), chooseVeclenVar(), FALSE, getNLPFracVars(), HEUR_NAME, MAX, MIN, MINNLPITER, NULL, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_FOUNDSOL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_Longint, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NLPPAR_FASTFAIL, SCIP_NLPPAR_ITLIM, SCIP_NLPPAR_VERBLEVEL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_NUMERR, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPallocBufferArray, SCIPbacktrackProbing(), SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcatchVarEvent(), SCIPceil(), SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), SCIPcomputeCoverUndercover(), SCIPcreateNLPSol(), SCIPcreateSolCopy(), SCIPdebugMessage, SCIPdebugPrintf, SCIPdropVarEvent(), SCIPenableVarHistory(), SCIPendProbing(), SCIPerrorMessage, SCIPfeasCeil(), SCIPfeasFloor(), SCIPfrac(), SCIPfreeBufferArray, SCIPfreeSol(), SCIPgetAvgLowerbound(), SCIPgetBestSol(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetLastDivenode(), SCIPgetLocalLowerbound(), SCIPgetLowerbound(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMaxDepth(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNLPBranchCands(), SCIPgetNLPIntPar(), SCIPgetNLPObjval(), SCIPgetNLPSolstat(), SCIPgetNLPStatistics(), SCIPgetNLPTermstat(), SCIPgetNNlpis(), SCIPgetNNodes(), SCIPgetNSols(), SCIPgetNSolsFound(), SCIPgetNVars(), SCIPgetProbingDepth(), SCIPgetPseudoBranchCands(), SCIPgetRealParam(), SCIPgetSolOrigObj(), SCIPgetSolVals(), SCIPgetSolvingTime(), SCIPgetUpperbound(), SCIPhashmapCreate(), SCIPhashmapExists(), SCIPhashmapFree(), SCIPhashmapInsert(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPheurGetNSolsFound(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFeasGE(), SCIPisFeasGT(), SCIPisFeasIntegral(), SCIPisFeasLT(), SCIPisGT(), SCIPisInfinity(), SCIPisLbBetter(), SCIPisLPSolBasic(), SCIPisLT(), SCIPisNLPConstructed(), SCIPisObjIntegral(), SCIPisStopped(), SCIPisUbBetter(), SCIPlinkNLPSol(), SCIPnewProbingNode(), SCIPnlpStatisticsCreate(), SCIPnlpStatisticsFree(), SCIPnlpStatisticsGetNIterations(), SCIPpropagateProbing(), SCIPretransformObj(), SCIProundSol(), SCIPsetNLPInitialGuessSol(), SCIPsetNLPIntPar(), SCIPsolIsOriginal(), SCIPsolveNLP(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPstatistic, SCIPtrySol(), SCIPunlinkSol(), SCIPupdateVarPseudocost(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLPSol(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPwarningMessage(), solveSubMIP(), and TRUE.
creates the nlpdiving heuristic and includes it in SCIP
Definition at line 2551 of file heur_nlpdiving.c. References DEFAULT_BACKTRACK, DEFAULT_FIXQUOT, DEFAULT_LP, DEFAULT_MAXDIVEAVGQUOT, DEFAULT_MAXDIVEAVGQUOTNOSOL, DEFAULT_MAXDIVEUBQUOT, DEFAULT_MAXDIVEUBQUOTNOSOL, DEFAULT_MAXFEASNLPS, DEFAULT_MAXNLPITERABS, DEFAULT_MAXNLPITERREL, DEFAULT_MAXRELDEPTH, DEFAULT_MINRELDEPTH, DEFAULT_MINSUCCQUOT, DEFAULT_NLPFASTFAIL, DEFAULT_NLPSTART, DEFAULT_PREFERCOVER, DEFAULT_PREFERLPFRACS, DEFAULT_SOLVESUBMIP, DEFAULT_VARSELRULE, EVENTHDLR_DESC, EVENTHDLR_NAME, 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_PLUGINNOTFOUND, SCIP_REAL_MAX, SCIPaddBoolParam(), SCIPaddCharParam(), SCIPaddIntParam(), SCIPaddRealParam(), SCIPallocMemory, SCIPerrorMessage, SCIPincludeEventhdlrBasic(), SCIPincludeHeurBasic(), SCIPsetHeurCopy(), SCIPsetHeurExit(), SCIPsetHeurFree(), SCIPsetHeurInit(), SCIPsetHeurInitsol(), and TRUE. Referenced by SCIP_DECL_HEURCOPY(), and SCIPincludeDefaultPlugins(). |