Detailed Description
LP diving heuristic that changes variable's objective values using root LP solution as guide.
Definition in file heur_rootsoldiving.c.
#include "blockmemshell/memory.h"
#include "scip/heur_rootsoldiving.h"
#include "scip/pub_heur.h"
#include "scip/pub_message.h"
#include "scip/pub_var.h"
#include "scip/scip_branch.h"
#include "scip/scip_general.h"
#include "scip/scip_heur.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_param.h"
#include "scip/scip_prob.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "rootsoldiving" |
#define | HEUR_DESC "LP diving heuristic that changes variable's objective values using root LP solution as guide" |
#define | HEUR_DISPCHAR 'S' |
#define | HEUR_PRIORITY -1005000 |
#define | HEUR_FREQ 20 |
#define | HEUR_FREQOFS 5 |
#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 | MINLPITER 10000 |
#define | DEFAULT_ALPHA 0.9 |
Functions | |
static | SCIP_DECL_HEURCOPY (heurCopyRootsoldiving) |
static | SCIP_DECL_HEURFREE (heurFreeRootsoldiving) |
static | SCIP_DECL_HEURINIT (heurInitRootsoldiving) |
static | SCIP_DECL_HEUREXIT (heurExitRootsoldiving) |
static | SCIP_DECL_HEUREXEC (heurExecRootsoldiving) |
SCIP_RETCODE | SCIPincludeHeurRootsoldiving (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_NAME
#define HEUR_NAME "rootsoldiving" |
Definition at line 42 of file heur_rootsoldiving.c.
Referenced by SCIP_DECL_HEURCOPY(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXIT(), SCIP_DECL_HEURFREE(), SCIP_DECL_HEURINIT(), and SCIPincludeHeurRootsoldiving().
◆ HEUR_DESC
#define HEUR_DESC "LP diving heuristic that changes variable's objective values using root LP solution as guide" |
Definition at line 43 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_DISPCHAR
#define HEUR_DISPCHAR 'S' |
Definition at line 44 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_PRIORITY
#define HEUR_PRIORITY -1005000 |
Definition at line 45 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_FREQ
#define HEUR_FREQ 20 |
Definition at line 46 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_FREQOFS
#define HEUR_FREQOFS 5 |
Definition at line 47 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_MAXDEPTH
#define HEUR_MAXDEPTH -1 |
Definition at line 48 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 49 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 50 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_MINRELDEPTH
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 57 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_MAXRELDEPTH
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 58 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_MAXLPITERQUOT
#define DEFAULT_MAXLPITERQUOT 0.01 |
maximal fraction of diving LP iterations compared to node LP iterations
Definition at line 59 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_MAXLPITEROFS
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 60 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_MAXSOLS
#define DEFAULT_MAXSOLS -1 |
total number of feasible solutions found up to which heuristic is called (-1: no limit)
Definition at line 61 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_DEPTHFAC
#define DEFAULT_DEPTHFAC 0.5 |
maximal diving depth: number of binary/integer variables times depthfac
Definition at line 64 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ DEFAULT_DEPTHFACNOSOL
#define DEFAULT_DEPTHFACNOSOL 2.0 |
maximal diving depth factor if no feasible solution was found yet
Definition at line 65 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
◆ MINLPITER
#define MINLPITER 10000 |
minimal number of LP iterations allowed in each LP solving call
Definition at line 67 of file heur_rootsoldiving.c.
Referenced by SCIP_DECL_HEUREXEC().
◆ DEFAULT_ALPHA
#define DEFAULT_ALPHA 0.9 |
soft rounding factor to fade out objective coefficients
Definition at line 68 of file heur_rootsoldiving.c.
Referenced by SCIPincludeHeurRootsoldiving().
Function Documentation
◆ SCIP_DECL_HEURCOPY()
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 95 of file heur_rootsoldiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_DECL_HEURFREE(), SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurRootsoldiving().
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 109 of file heur_rootsoldiving.c.
References HEUR_NAME, NULL, SCIP_DECL_HEURINIT(), SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
Referenced by SCIP_DECL_HEURCOPY().
◆ SCIP_DECL_HEURINIT()
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 129 of file heur_rootsoldiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_DECL_HEUREXIT(), SCIP_OKAY, SCIPcreateSol(), SCIPheurGetData(), and SCIPheurGetName().
Referenced by SCIP_DECL_HEURFREE().
◆ SCIP_DECL_HEUREXIT()
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 153 of file heur_rootsoldiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_DECL_HEUREXEC(), SCIP_OKAY, SCIPfreeSol(), SCIPheurGetData(), and SCIPheurGetName().
Referenced by SCIP_DECL_HEURINIT().
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 173 of file heur_rootsoldiving.c.
References ABS, BMSclearMemoryArray, FALSE, HEUR_NAME, MAX, MINLPITER, NULL, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPchgVarLbDive(), SCIPchgVarObjDive(), SCIPchgVarUbDive(), SCIPdebugMsg, SCIPendDive(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfloor(), SCIPfreeBufferArray, SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetLastDivenode(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMaxDepth(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNLPBranchCands(), SCIPgetNLPIterations(), SCIPgetNNodeLPIterations(), SCIPgetNNodes(), SCIPgetNSolsFound(), SCIPgetSolOrigObj(), SCIPgetVarLbDive(), SCIPgetVarObjDive(), SCIPgetVarsData(), SCIPgetVarUbDive(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPincludeHeurRootsoldiving(), SCIPisFeasIntegral(), SCIPisGE(), SCIPisLPSolBasic(), SCIPisStopped(), SCIPlinkLPSol(), SCIProundSol(), SCIPsolveDiveLP(), SCIPstartDive(), SCIPtrySol(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetRootSol(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_HEUREXIT().