Detailed Description
LP diving heuristic that fixes variables with integral LP value.
Definition in file heur_intdiving.c.
#include "blockmemshell/memory.h"
#include "scip/heur_intdiving.h"
#include "scip/pub_heur.h"
#include "scip/pub_lp.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_probing.h"
#include "scip/scip_sol.h"
#include "scip/scip_solvingstats.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | HEUR_NAME "intdiving" |
#define | HEUR_DESC "LP diving heuristic that fixes binary variables with large LP value to one" |
#define | HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
#define | HEUR_PRIORITY -1003500 |
#define | HEUR_FREQ -1 |
#define | HEUR_FREQOFS 9 |
#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.05 |
#define | DEFAULT_MAXLPITEROFS 1000 |
#define | DEFAULT_MAXDIVEUBQUOT 0.8 |
#define | DEFAULT_MAXDIVEAVGQUOT 0.0 |
#define | DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
#define | DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
#define | DEFAULT_BACKTRACK TRUE |
#define | MINLPITER 10000 |
Functions | |
static | SCIP_DECL_HEURCOPY (heurCopyIntdiving) |
static | SCIP_DECL_HEURFREE (heurFreeIntdiving) |
static | SCIP_DECL_HEURINIT (heurInitIntdiving) |
static | SCIP_DECL_HEUREXIT (heurExitIntdiving) |
static | SCIP_DECL_HEUREXEC (heurExecIntdiving) |
SCIP_RETCODE | SCIPincludeHeurIntdiving (SCIP *scip) |
Macro Definition Documentation
◆ HEUR_NAME
#define HEUR_NAME "intdiving" |
Definition at line 55 of file heur_intdiving.c.
◆ HEUR_DESC
#define HEUR_DESC "LP diving heuristic that fixes binary variables with large LP value to one" |
Definition at line 56 of file heur_intdiving.c.
◆ HEUR_DISPCHAR
#define HEUR_DISPCHAR SCIP_HEURDISPCHAR_DIVING |
Definition at line 57 of file heur_intdiving.c.
◆ HEUR_PRIORITY
#define HEUR_PRIORITY -1003500 |
Definition at line 58 of file heur_intdiving.c.
◆ HEUR_FREQ
#define HEUR_FREQ -1 |
Definition at line 59 of file heur_intdiving.c.
◆ HEUR_FREQOFS
#define HEUR_FREQOFS 9 |
Definition at line 60 of file heur_intdiving.c.
◆ HEUR_MAXDEPTH
#define HEUR_MAXDEPTH -1 |
Definition at line 61 of file heur_intdiving.c.
◆ HEUR_TIMING
#define HEUR_TIMING SCIP_HEURTIMING_AFTERLPPLUNGE |
Definition at line 62 of file heur_intdiving.c.
◆ HEUR_USESSUBSCIP
#define HEUR_USESSUBSCIP FALSE |
does the heuristic use a secondary SCIP instance?
Definition at line 63 of file heur_intdiving.c.
◆ DEFAULT_MINRELDEPTH
#define DEFAULT_MINRELDEPTH 0.0 |
minimal relative depth to start diving
Definition at line 70 of file heur_intdiving.c.
◆ DEFAULT_MAXRELDEPTH
#define DEFAULT_MAXRELDEPTH 1.0 |
maximal relative depth to start diving
Definition at line 71 of file heur_intdiving.c.
◆ DEFAULT_MAXLPITERQUOT
#define DEFAULT_MAXLPITERQUOT 0.05 |
maximal fraction of diving LP iterations compared to node LP iterations
Definition at line 72 of file heur_intdiving.c.
◆ DEFAULT_MAXLPITEROFS
#define DEFAULT_MAXLPITEROFS 1000 |
additional number of allowed LP iterations
Definition at line 73 of file heur_intdiving.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 75 of file heur_intdiving.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 77 of file heur_intdiving.c.
◆ DEFAULT_MAXDIVEUBQUOTNOSOL
#define DEFAULT_MAXDIVEUBQUOTNOSOL 0.1 |
maximal UBQUOT when no solution was found yet (0.0: no limit)
Definition at line 78 of file heur_intdiving.c.
◆ DEFAULT_MAXDIVEAVGQUOTNOSOL
#define DEFAULT_MAXDIVEAVGQUOTNOSOL 0.0 |
maximal AVGQUOT when no solution was found yet (0.0: no limit)
Definition at line 79 of file heur_intdiving.c.
◆ DEFAULT_BACKTRACK
#define DEFAULT_BACKTRACK TRUE |
use one level of backtracking if infeasibility is encountered?
Definition at line 80 of file heur_intdiving.c.
◆ MINLPITER
#define MINLPITER 10000 |
minimal number of LP iterations allowed in each LP solving call
Definition at line 82 of file heur_intdiving.c.
Function Documentation
◆ SCIP_DECL_HEURCOPY()
|
static |
copy method for primal heuristic plugins (called when SCIP copies plugins)
Definition at line 116 of file heur_intdiving.c.
References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurIntdiving().
◆ SCIP_DECL_HEURFREE()
|
static |
destructor of primal heuristic to free user data (called when SCIP is exiting)
Definition at line 130 of file heur_intdiving.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 150 of file heur_intdiving.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 174 of file heur_intdiving.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 194 of file heur_intdiving.c.
References FALSE, HEUR_NAME, MAX, MIN, MINLPITER, NULL, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_INVALID, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPallocBufferArray, SCIPbacktrackProbing(), SCIPceil(), SCIPcolGetNNonz(), SCIPdebugMsg, SCIPduplicateBufferArray, SCIPenableVarHistory(), SCIPendProbing(), SCIPfixVarProbing(), SCIPfloor(), SCIPfrac(), SCIPfreeBufferArray, SCIPgetAvgLowerbound(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetLastDivenode(), SCIPgetLowerbound(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMaxDepth(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNLPIterations(), SCIPgetNNodeLPIterations(), SCIPgetNNodes(), SCIPgetNPseudoBranchCands(), SCIPgetNSolsFound(), SCIPgetProbingDepth(), SCIPgetPseudoBranchCands(), SCIPgetSolOrigObj(), SCIPgetVarAvgInferenceScore(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPinfinity(), SCIPisEQ(), SCIPisFeasFracIntegral(), SCIPisFeasGT(), SCIPisFeasLE(), SCIPisFeasLT(), SCIPisGE(), SCIPisGT(), SCIPisLE(), SCIPisLPSolBasic(), SCIPisLT(), SCIPisObjIntegral(), SCIPisStopped(), SCIPisZero(), SCIPlinkLPSol(), SCIPnewProbingNode(), SCIPpropagateProbing(), SCIPretransformObj(), SCIProundSol(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPtrySol(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetNCliques(), SCIPvarGetNImpls(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), SCIPvarIsIntegral(), SCIPwarningMessage(), and TRUE.