Detailed Description
LP diving heuristic that chooses fixings in direction of incumbent solutions.
Definition in file heur_guideddiving.c.
#include "scip/heur_guideddiving.h"
#include "scip/heuristics.h"
#include "scip/pub_heur.h"
#include "scip/pub_message.h"
#include "scip/pub_sol.h"
#include "scip/pub_var.h"
#include "scip/scip_heur.h"
#include "scip/scip_lp.h"
#include "scip/scip_mem.h"
#include "scip/scip_numerics.h"
#include "scip/scip_prob.h"
#include "scip/scip_sol.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "guideddiving" |
#define | HEUR_DESC "LP diving heuristic that chooses fixings in direction of incumbent solutions" |
#define | HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
#define | HEUR_PRIORITY -1007000 |
#define | HEUR_FREQ 10 |
#define | HEUR_FREQOFS 7 |
#define | HEUR_MAXDEPTH -1 |
#define | HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
#define | HEUR_USESSUBSCIP FALSE |
#define | DIVESET_DIVETYPES SCIP_DIVETYPE_INTEGRALITY |
#define | DIVESET_ISPUBLIC TRUE |
#define | DEFAULT_MINRELDEPTH 0.0 |
#define | DEFAULT_MAXRELDEPTH 1.0 |
#define | DEFAULT_MAXLPITERQUOT 0.05 |
#define | DEFAULT_MAXLPITEROFS 1000 |
#define | DEFAULT_MAXDIVEUBQUOT 0.8 |
#define | DEFAULT_MAXDIVEAVGQUOT 0.0 |
#define | DEFAULT_BACKTRACK TRUE |
#define | DEFAULT_LPRESOLVEDOMCHGQUOT 0.15 |
#define | DEFAULT_LPSOLVEFREQ 0 |
#define | DEFAULT_ONLYLPBRANCHCANDS FALSE |
#define | DEFAULT_RANDSEED 127 |
Functions | |
static | SCIP_DECL_HEURCOPY (heurCopyGuideddiving) |
static | SCIP_DECL_HEURFREE (heurFreeGuideddiving) |
static | SCIP_DECL_HEURINIT (heurInitGuideddiving) |
static | SCIP_DECL_HEUREXIT (heurExitGuideddiving) |
static | SCIP_DECL_HEUREXEC (heurExecGuideddiving) |
static | SCIP_DECL_DIVESETGETSCORE (divesetGetScoreGuideddiving) |
static | SCIP_DECL_DIVESETAVAILABLE (divesetAvailableGuideddiving) |
SCIP_RETCODE | SCIPincludeHeurGuideddiving (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_NAME
#define HEUR_NAME "guideddiving" |
Definition at line 47 of file heur_guideddiving.c.
◆ HEUR_DESC
#define HEUR_DESC "LP diving heuristic that chooses fixings in direction of incumbent solutions" |
Definition at line 48 of file heur_guideddiving.c.
◆ HEUR_DISPCHAR
#define HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
Definition at line 49 of file heur_guideddiving.c.
◆ HEUR_PRIORITY
#define HEUR_PRIORITY -1007000 |
Definition at line 50 of file heur_guideddiving.c.
◆ HEUR_FREQ
#define HEUR_FREQ 10 |
Definition at line 51 of file heur_guideddiving.c.
◆ HEUR_FREQOFS
#define HEUR_FREQOFS 7 |
Definition at line 52 of file heur_guideddiving.c.
◆ HEUR_MAXDEPTH
#define HEUR_MAXDEPTH -1 |
Definition at line 53 of file heur_guideddiving.c.
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 54 of file heur_guideddiving.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 55 of file heur_guideddiving.c.
◆ DIVESET_DIVETYPES
#define DIVESET_DIVETYPES SCIP_DIVETYPE_INTEGRALITY |
bit mask that represents all supported dive types
Definition at line 56 of file heur_guideddiving.c.
◆ DIVESET_ISPUBLIC
#define DIVESET_ISPUBLIC TRUE |
is this dive set publicly available (ie., can be used by other primal heuristics?)
Definition at line 57 of file heur_guideddiving.c.
◆ DEFAULT_MINRELDEPTH
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 64 of file heur_guideddiving.c.
◆ DEFAULT_MAXRELDEPTH
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 65 of file heur_guideddiving.c.
◆ DEFAULT_MAXLPITERQUOT
#define DEFAULT_MAXLPITERQUOT 0.05 |
maximal fraction of diving LP iterations compared to node LP iterations
Definition at line 66 of file heur_guideddiving.c.
◆ DEFAULT_MAXLPITEROFS
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 67 of file heur_guideddiving.c.
◆ DEFAULT_MAXDIVEUBQUOT
#define DEFAULT_MAXDIVEUBQUOT 0.8 |
maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 69 of file heur_guideddiving.c.
◆ DEFAULT_MAXDIVEAVGQUOT
#define DEFAULT_MAXDIVEAVGQUOT 0.0 |
maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)
Definition at line 71 of file heur_guideddiving.c.
◆ DEFAULT_BACKTRACK
#define DEFAULT_BACKTRACK TRUE |
use one level of backtracking if infeasibility is encountered?
Definition at line 72 of file heur_guideddiving.c.
◆ DEFAULT_LPRESOLVEDOMCHGQUOT
#define DEFAULT_LPRESOLVEDOMCHGQUOT 0.15 |
percentage of immediate domain changes during probing to trigger LP resolve
Definition at line 73 of file heur_guideddiving.c.
◆ DEFAULT_LPSOLVEFREQ
#define DEFAULT_LPSOLVEFREQ 0 |
LP solve frequency for diving heuristics
Definition at line 74 of file heur_guideddiving.c.
◆ DEFAULT_ONLYLPBRANCHCANDS
#define DEFAULT_ONLYLPBRANCHCANDS FALSE |
should only LP branching candidates be considered instead of the slower but more general constraint handler diving variable selection?
Definition at line 76 of file heur_guideddiving.c.
◆ DEFAULT_RANDSEED
#define DEFAULT_RANDSEED 127 |
initial seed for random number generation
Definition at line 77 of file heur_guideddiving.c.
Function Documentation
◆ SCIP_DECL_HEURCOPY()
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 95 of file heur_guideddiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurGuideddiving().
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 109 of file heur_guideddiving.c.
References HEUR_NAME, NULL, SCIP_OKAY, SCIPfreeBlockMemory, SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().
◆ SCIP_DECL_HEURINIT()
|
static |
initialization method of primal heuristic (called after problem was transformed)
Definition at line 130 of file heur_guideddiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateSol(), SCIPheurGetData(), and SCIPheurGetName().
◆ SCIP_DECL_HEUREXIT()
|
static |
deinitialization method of primal heuristic (called before transformed problem is freed)
Definition at line 150 of file heur_guideddiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeSol(), SCIPheurGetData(), and SCIPheurGetName().
◆ SCIP_DECL_HEUREXEC()
|
static |
execution method of primal heuristic
Definition at line 170 of file heur_guideddiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_DIVECONTEXT_SINGLE, SCIP_OKAY, SCIPgetBestSol(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNSols(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetDivesets(), SCIPheurGetName(), SCIPheurGetNDivesets(), SCIPperformGenericDivingAlgorithm(), SCIPsolIsOriginal(), and SCIP_Diveset::sol.
◆ SCIP_DECL_DIVESETGETSCORE()
|
static |
calculate score and preferred rounding direction for the candidate variable; the best candidate maximizes the score
Definition at line 218 of file heur_guideddiving.c.
References FALSE, NULL, SCIP_OKAY, SCIP_Real, SCIPgetBestSol(), SCIPgetObjNorm(), SCIPgetSolVal(), SCIPisPositive(), SCIPsolIsOriginal(), SCIPvarGetObj(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), and TRUE.
◆ SCIP_DECL_DIVESETAVAILABLE()
|
static |
callback to check preconditions for diving, e.g., if an incumbent solution is available
Definition at line 275 of file heur_guideddiving.c.
References FALSE, SCIP_OKAY, SCIPgetBestSol(), SCIPgetNSols(), SCIPsolIsOriginal(), and TRUE.