Scippy

SCIP

Solving Constraint Integer Programs

heur_veclendiving.c File Reference

Detailed Description

LP diving heuristic that rounds variables with long column vectors.

Author
Tobias Achterberg

Definition in file heur_veclendiving.c.

#include <assert.h>
#include <string.h>
#include "scip/heur_veclendiving.h"

Go to the source code of this file.

Macros

#define HEUR_NAME   "veclendiving"
 
#define HEUR_DESC   "LP diving heuristic that rounds variables with long column vectors"
 
#define HEUR_DISPCHAR   'v'
 
#define HEUR_PRIORITY   -1003100
 
#define HEUR_FREQ   10
 
#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.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 (heurCopyVeclendiving)
 
static SCIP_DECL_HEURFREE (heurFreeVeclendiving)
 
static SCIP_DECL_HEURINIT (heurInitVeclendiving)
 
static SCIP_DECL_HEUREXIT (heurExitVeclendiving)
 
static SCIP_DECL_HEUREXEC (heurExecVeclendiving)
 
SCIP_RETCODE SCIPincludeHeurVeclendiving (SCIP *scip)
 

Macro Definition Documentation

#define HEUR_DESC   "LP diving heuristic that rounds variables with long column vectors"

Definition at line 30 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_DISPCHAR   'v'

Definition at line 31 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_PRIORITY   -1003100

Definition at line 32 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_FREQ   10

Definition at line 33 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_FREQOFS   4

Definition at line 34 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_MAXDEPTH   -1

Definition at line 35 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE

Definition at line 36 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance?

Definition at line 37 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MINRELDEPTH   0.0

minimal relative depth to start diving

Definition at line 44 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXRELDEPTH   1.0

maximal relative depth to start diving

Definition at line 45 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXLPITERQUOT   0.05

maximal fraction of diving LP iterations compared to node LP iterations

Definition at line 46 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXLPITEROFS   1000

additional number of allowed LP iterations

Definition at line 47 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXDIVEUBQUOT   0.8

maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)

Definition at line 48 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXDIVEAVGQUOT   0.0

maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)

Definition at line 50 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXDIVEUBQUOTNOSOL   0.1

maximal UBQUOT when no solution was found yet (0.0: no limit)

Definition at line 52 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_MAXDIVEAVGQUOTNOSOL   0.0

maximal AVGQUOT when no solution was found yet (0.0: no limit)

Definition at line 53 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define DEFAULT_BACKTRACK   TRUE

use one level of backtracking if infeasibility is encountered?

Definition at line 54 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

#define MINLPITER   10000

minimal number of LP iterations allowed in each LP solving call

Definition at line 56 of file heur_veclendiving.c.

Referenced by SCIP_DECL_HEUREXEC().

Function Documentation

static SCIP_DECL_HEURCOPY ( heurCopyVeclendiving  )
static

copy method for primal heuristic plugins (called when SCIP copies plugins)

Definition at line 90 of file heur_veclendiving.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurVeclendiving().

static SCIP_DECL_HEURFREE ( heurFreeVeclendiving  )
static

destructor of primal heuristic to free user data (called when SCIP is exiting)

Definition at line 104 of file heur_veclendiving.c.

References HEUR_NAME, NULL, SCIP_OKAY, SCIPfreeMemory, SCIPheurGetData(), SCIPheurGetName(), and SCIPheurSetData().

static SCIP_DECL_HEURINIT ( heurInitVeclendiving  )
static

initialization method of primal heuristic (called after problem was transformed)

Definition at line 124 of file heur_veclendiving.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateSol(), SCIPheurGetData(), and SCIPheurGetName().

static SCIP_DECL_HEUREXIT ( heurExitVeclendiving  )
static

deinitialization method of primal heuristic (called before transformed problem is freed)

Definition at line 148 of file heur_veclendiving.c.

References HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPfreeSol(), SCIPheurGetData(), and SCIPheurGetName().

static SCIP_DECL_HEUREXEC ( heurExecVeclendiving  )
static

execution method of primal heuristic

Definition at line 168 of file heur_veclendiving.c.

References FALSE, HEUR_NAME, MAX, MIN, MINLPITER, NULL, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_Longint, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIP_VARTYPE_BINARY, SCIPbacktrackProbing(), SCIPceil(), SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), SCIPcolGetNNonz(), SCIPdebugMessage, SCIPenableVarHistory(), SCIPendProbing(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPgetAvgLowerbound(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetDualbound(), SCIPgetLastDivenode(), SCIPgetLowerbound(), SCIPgetLPBranchCands(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetMaxDepth(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNLPIterations(), SCIPgetNNodeLPIterations(), SCIPgetNNodes(), SCIPgetNSolsFound(), SCIPgetProbingDepth(), SCIPgetSolOrigObj(), SCIPhasCurrentNodeLP(), SCIPheurGetData(), SCIPheurGetName(), SCIPheurGetNBestSolsFound(), SCIPheurGetNCalls(), SCIPinfinity(), SCIPisFeasGT(), SCIPisFeasLT(), SCIPisGE(), SCIPisGT(), SCIPisLPSolBasic(), SCIPisLT(), SCIPisObjIntegral(), SCIPisStopped(), SCIPlinkLPSol(), SCIPnewProbingNode(), SCIPpropagateProbing(), SCIPretransformObj(), SCIProundSol(), SCIPsolveProbingLP(), SCIPstartProbing(), SCIPsumepsilon(), SCIPtrySol(), SCIPupdateVarPseudocost(), SCIPvarGetCol(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), SCIPwarningMessage(), and TRUE.