LP diving heuristic that changes variable's objective value instead of bounds, using pseudo cost values as guide.
Definition in file heur_objpscostdiving.c.
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "objpscostdiving" |
#define | HEUR_DESC "LP diving heuristic that changes variable's objective values instead of bounds, using pseudo costs as guide" |
#define | HEUR_DISPCHAR 'o' |
#define | HEUR_PRIORITY -1004000 |
#define | HEUR_FREQ 20 |
#define | HEUR_FREQOFS 4 |
#define | HEUR_MAXDEPTH -1 |
#define | HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
#define | HEUR_USESSUBSCIP FALSE |
#define | DEFAULT_MINRELDEPTH 0.0 |
#define | DEFAULT_MAXRELDEPTH 1.0 |
#define | DEFAULT_MAXLPITERQUOT 0.01 |
#define | DEFAULT_MAXLPITEROFS 1000 |
#define | DEFAULT_MAXSOLS -1 |
#define | DEFAULT_DEPTHFAC 0.5 |
#define | DEFAULT_DEPTHFACNOSOL 2.0 |
#define | DEFAULT_RANDSEED 139 |
#define | MINLPITER 10000 |
Functions | |
static void | calcPscostQuot (SCIP *scip, SCIP_HEURDATA *heurdata, SCIP_VAR *var, SCIP_Real primsol, SCIP_Real frac, int rounddir, SCIP_Real *pscostquot, SCIP_Bool *roundup) |
static | SCIP_DECL_HEURCOPY (heurCopyObjpscostdiving) |
static | SCIP_DECL_HEURFREE (heurFreeObjpscostdiving) |
static | SCIP_DECL_HEURINIT (heurInitObjpscostdiving) |
static | SCIP_DECL_HEUREXIT (heurExitObjpscostdiving) |
static | SCIP_DECL_HEUREXEC (heurExecObjpscostdiving) |
SCIP_RETCODE | SCIPincludeHeurObjpscostdiving (SCIP *scip) |
#define HEUR_NAME "objpscostdiving" |
Definition at line 29 of file heur_objpscostdiving.c.
Referenced by SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURFREE(), SCIP_DECL_HEURINIT(), and SCIPincludeHeurObjpscostdiving().
#define HEUR_DESC "LP diving heuristic that changes variable's objective values instead of bounds, using pseudo costs as guide" |
Definition at line 30 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_DISPCHAR 'o' |
Definition at line 31 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_PRIORITY -1004000 |
Definition at line 32 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_FREQ 20 |
Definition at line 33 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_FREQOFS 4 |
Definition at line 34 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_MAXDEPTH -1 |
Definition at line 35 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 36 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 37 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 44 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 45 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_MAXLPITERQUOT 0.01 |
maximal fraction of diving LP iterations compared to total iteration number
Definition at line 46 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 47 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_MAXSOLS -1 |
total number of feasible solutions found up to which heuristic is called (-1: no limit)
Definition at line 48 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_DEPTHFAC 0.5 |
maximal diving depth: number of binary/integer variables times depthfac
Definition at line 51 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_DEPTHFACNOSOL 2.0 |
maximal diving depth factor if no feasible solution was found yet
Definition at line 52 of file heur_objpscostdiving.c.
Referenced by SCIPincludeHeurObjpscostdiving().
#define DEFAULT_RANDSEED 139 |
initial random seed
Definition at line 53 of file heur_objpscostdiving.c.
Referenced by SCIP_DECL_HEURINIT().
#define MINLPITER 10000 |
minimal number of LP iterations allowed in each LP solving call
Definition at line 55 of file heur_objpscostdiving.c.
Referenced by SCIP_DECL_HEUREXEC().
|
static |
scip | SCIP data structure |
heurdata | heuristic data structure |
var | problem variable |
primsol | primal solution of variable |
frac | fractionality of variable |
rounddir | -1: round down, +1: round up, 0: select due to pseudo cost values |
pscostquot | pointer to store pseudo cost quotient |
roundup | pointer to store whether the variable should be rounded up |
Definition at line 81 of file heur_objpscostdiving.c.
References FALSE, MAX, SCIP_DECL_HEURCOPY(), SCIP_Real, SCIPgetVarPseudocostVal(), SCIPisEQ(), SCIPisGT(), SCIPisLT(), SCIPrandomGetInt(), SCIPvarGetRootSol(), SCIPvarIsBinary(), sqrt(), and TRUE.
Referenced by SCIP_DECL_HEUREXEC().
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 151 of file heur_objpscostdiving.c.
References HEUR_NAME, SCIP_CALL, SCIP_DECL_HEURFREE(), SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurObjpscostdiving().
Referenced by calcPscostQuot().
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 165 of file heur_objpscostdiving.c.
References HEUR_NAME, SCIP_DECL_HEURINIT(), SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
Referenced by SCIP_DECL_HEURCOPY().
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 185 of file heur_objpscostdiving.c.
References DEFAULT_RANDSEED, HEUR_NAME, SCIP_CALL, SCIP_DECL_HEUREXIT(), SCIP_OKAY, SCIPcreateRandom(), SCIPcreateSol(), SCIPheurGetData(), and SCIPheurGetName().
Referenced by SCIP_DECL_HEURFREE().
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 212 of file heur_objpscostdiving.c.
References HEUR_NAME, SCIP_CALL, SCIP_DECL_HEUREXEC(), SCIP_OKAY, SCIPfreeRandom(), SCIPfreeSol(), SCIPheurGetData(), and SCIPheurGetName().
Referenced by SCIP_DECL_HEURINIT().
|
static |
execution method of primal heuristic
Definition at line 235 of file heur_objpscostdiving.c.
References BMSclearMemoryArray, calcPscostQuot(), FALSE, HEUR_NAME, MAX, MINLPITER, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPchgVarLbDive(), SCIPchgVarObjDive(), SCIPchgVarUbDive(), SCIPdebugMsg, SCIPendDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfreeBufferArray, SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetLastDivenode(), SCIPgetLPBranchCands(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMaxDepth(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNLPIterations(), SCIPgetNNodeLPIterations(), SCIPgetNNodes(), SCIPgetNSolsFound(), SCIPgetSolOrigObj(), SCIPgetVarLbDive(), SCIPgetVarObjDive(), SCIPgetVarUbDive(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPincludeHeurObjpscostdiving(), SCIPisGE(), SCIPisLPSolBasic(), SCIPisStopped(), SCIPlinkLPSol(), SCIProundSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPtrySol(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_HEUREXIT().