Scippy

SCIP

Solving Constraint Integer Programs

heur_proximity.h File Reference

Detailed Description

improvement heuristic which uses an auxiliary objective instead of the original objective function which is itself added as a constraint to a sub-SCIP instance. The heuristic was presented by Matteo Fischetti and Michele Monaci

Author
Gregor Hendel

Definition in file heur_proximity.h.

#include "scip/scip.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPapplyProximity (SCIP *scip, SCIP_HEUR *heur, SCIP_RESULT *result, SCIP_Real minimprove, SCIP_Longint nnodes, SCIP_Longint nlpiters, SCIP_Longint *nusednodes, SCIP_Longint *nusedlpiters, SCIP_Bool freesubscip)
 
SCIP_RETCODE SCIPincludeHeurProximity (SCIP *scip)
 
SCIP_RETCODE SCIPdeleteSubproblemProximity (SCIP *scip)
 

Function Documentation

SCIP_RETCODE SCIPapplyProximity ( SCIP scip,
SCIP_HEUR heur,
SCIP_RESULT result,
SCIP_Real  minimprove,
SCIP_Longint  nnodes,
SCIP_Longint  nlpiters,
SCIP_Longint nusednodes,
SCIP_Longint nusedlpiters,
SCIP_Bool  freesubscip 
)

main procedure of the proximity heuristic, creates and solves a sub-SCIP

Note
the method can be applied in an iterative way, keeping the same subscip in between. If the freesubscip parameter is set to FALSE, the heuristic will keep the subscip data structures. Always set this parameter to TRUE, or call SCIPdeleteSubproblemProximity() afterwards
Parameters
sciporiginal SCIP data structure
heurheuristic data structure
resultresult data structure
minimprovefactor by which proximity should at least improve the incumbent
nnodesnode limit for the subproblem
nlpitersLP iteration limit for the subproblem
nusednodespointer to store number of used nodes in subscip
nusedlpiterspointer to store number of used LP iterations in subscip
freesubscipshould the created sub-MIP be freed at the end of the method?

Definition at line 701 of file heur_proximity.c.

References createNewSol(), createRows(), deleteSubproblem(), EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, HEUR_NAME, MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_NODESOLVED, SCIP_FOUNDSOL, SCIP_Longint, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIPaddCoefLinear(), SCIPaddCons(), SCIPallocBlockMemoryArray, SCIPblkmem(), SCIPcalcHashtableSize(), SCIPcatchEvent(), SCIPchgRhsLinear(), SCIPchgVarLbGlobal(), SCIPchgVarObj(), SCIPchgVarUbGlobal(), SCIPcopy(), SCIPcopyPlugins(), SCIPcopyVars(), SCIPcreate(), SCIPcreateConsBasicLinear(), SCIPcreateProbBasic(), SCIPdebug, SCIPdebugMessage, SCIPdropEvent(), SCIPerrorMessage, SCIPfeasCeil(), SCIPfeasFloor(), SCIPfeastol(), SCIPfindEventhdlr(), SCIPfreeTransform(), SCIPgetBestSol(), SCIPgetGap(), SCIPgetLowerbound(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNBinVars(), SCIPgetNFixedVars(), SCIPgetNLPIterations(), SCIPgetNNodes(), SCIPgetNRootLPIterations(), SCIPgetNSols(), SCIPgetNSolsFound(), SCIPgetPresolvingTime(), SCIPgetPrimalbound(), SCIPgetRealParam(), SCIPgetRhsLinear(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetSolvingTime(), SCIPgetVarsData(), SCIPhashmapCreate(), SCIPhashmapGetImage(), SCIPheurGetData(), SCIPheurGetName(), SCIPincludeEventhdlrBasic(), SCIPinfinity(), SCIPisFeasEQ(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisFeasZero(), SCIPisInfinity(), SCIPisObjIntegral(), SCIPpresolve(), SCIPprintStatistics(), SCIPsetBoolParam(), SCIPsetIntParam(), SCIPsetLongintParam(), SCIPsetRealParam(), SCIPsolGetHeur(), SCIPsolGetIndex(), SCIPsolGetNodenum(), SCIPsolIsOriginal(), SCIPsolve(), SCIPstatisticMessage, SCIPtransformProb(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIPvarIsBinary(), SCIPwarningMessage(), setupSubproblem(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC().

SCIP_RETCODE SCIPdeleteSubproblemProximity ( SCIP scip)

frees the sub-MIP created by proximity

Parameters
scipSCIP data structure

Definition at line 674 of file heur_proximity.c.

References deleteSubproblem(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfindHeur(), and SCIPheurGetData().

Referenced by SCIP_DECL_HEUREXEC().