Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

LP diving heuristic that rounds variables with long column vectors.

Author
Tobias Achterberg

Definition in file heur_veclendiving.c.

#include "scip/heuristics.h"
#include "scip/heur_veclendiving.h"
#include "scip/pub_heur.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_var.h"
#include "scip/scip_heur.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   "veclendiving"
 
#define HEUR_DESC   "LP diving heuristic that rounds variables with long column vectors"
 
#define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_DIVING
 
#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 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_MAXDIVEUBQUOTNOSOL   0.1
 
#define DEFAULT_MAXDIVEAVGQUOTNOSOL   0.0
 
#define DEFAULT_BACKTRACK   TRUE
 
#define DEFAULT_LPRESOLVEDOMCHGQUOT   0.15
 
#define DEFAULT_LPSOLVEFREQ   0
 
#define DEFAULT_ONLYLPBRANCHCANDS   FALSE
 
#define DEFAULT_RANDSEED   113
 
#define divesetAvailableVeclendiving   NULL
 

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)
 
static SCIP_DECL_DIVESETGETSCORE (divesetGetScoreVeclendiving)
 
SCIP_RETCODE SCIPincludeHeurVeclendiving (SCIP *scip)
 

Macro Definition Documentation

◆ HEUR_NAME

#define HEUR_NAME   "veclendiving"

Definition at line 37 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_DESC

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

Definition at line 38 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_DISPCHAR

#define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_DIVING

Definition at line 39 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_PRIORITY

#define HEUR_PRIORITY   -1003100

Definition at line 40 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_FREQ

#define HEUR_FREQ   10

Definition at line 41 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_FREQOFS

#define HEUR_FREQOFS   4

Definition at line 42 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_MAXDEPTH

#define HEUR_MAXDEPTH   -1

Definition at line 43 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_TIMING

#define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE

Definition at line 44 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ HEUR_USESSUBSCIP

#define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance?

Definition at line 45 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DIVESET_DIVETYPES

#define DIVESET_DIVETYPES   SCIP_DIVETYPE_INTEGRALITY

bit mask that represents all supported dive types

Definition at line 46 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DIVESET_ISPUBLIC

#define DIVESET_ISPUBLIC   TRUE

is this dive set publicly available (ie., can be used by other primal heuristics?)

Definition at line 47 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MINRELDEPTH

#define DEFAULT_MINRELDEPTH   0.0

minimal relative depth to start diving

Definition at line 54 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXRELDEPTH

#define DEFAULT_MAXRELDEPTH   1.0

maximal relative depth to start diving

Definition at line 55 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXLPITERQUOT

#define DEFAULT_MAXLPITERQUOT   0.05

maximal fraction of diving LP iterations compared to node LP iterations

Definition at line 56 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXLPITEROFS

#define DEFAULT_MAXLPITEROFS   1000

additional number of allowed LP iterations

Definition at line 57 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXDIVEUBQUOT

#define DEFAULT_MAXDIVEUBQUOT   0.8

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

Definition at line 58 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXDIVEAVGQUOT

#define DEFAULT_MAXDIVEAVGQUOT   0.0

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

Definition at line 61 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXDIVEUBQUOTNOSOL

#define DEFAULT_MAXDIVEUBQUOTNOSOL   0.1

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

Definition at line 64 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_MAXDIVEAVGQUOTNOSOL

#define DEFAULT_MAXDIVEAVGQUOTNOSOL   0.0

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

Definition at line 65 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_BACKTRACK

#define DEFAULT_BACKTRACK   TRUE

use one level of backtracking if infeasibility is encountered?

Definition at line 66 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_LPRESOLVEDOMCHGQUOT

#define DEFAULT_LPRESOLVEDOMCHGQUOT   0.15

percentage of immediate domain changes during probing to trigger LP resolve

Definition at line 67 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_LPSOLVEFREQ

#define DEFAULT_LPSOLVEFREQ   0

LP solve frequency for diving heuristics

Definition at line 68 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ 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 69 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ DEFAULT_RANDSEED

#define DEFAULT_RANDSEED   113

initial seed for random number generation

Definition at line 72 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

◆ divesetAvailableVeclendiving

#define divesetAvailableVeclendiving   NULL

Definition at line 213 of file heur_veclendiving.c.

Referenced by SCIPincludeHeurVeclendiving().

Function Documentation

◆ SCIP_DECL_HEURCOPY()

static SCIP_DECL_HEURCOPY ( heurCopyVeclendiving  )
static

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

Definition at line 91 of file heur_veclendiving.c.

◆ SCIP_DECL_HEURFREE()

static SCIP_DECL_HEURFREE ( heurFreeVeclendiving  )
static

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

Definition at line 105 of file heur_veclendiving.c.

◆ SCIP_DECL_HEURINIT()

static SCIP_DECL_HEURINIT ( heurInitVeclendiving  )
static

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

Definition at line 126 of file heur_veclendiving.c.

◆ SCIP_DECL_HEUREXIT()

static SCIP_DECL_HEUREXIT ( heurExitVeclendiving  )
static

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

Definition at line 146 of file heur_veclendiving.c.

◆ SCIP_DECL_HEUREXEC()

static SCIP_DECL_HEUREXEC ( heurExecVeclendiving  )
static

execution method of primal heuristic

Definition at line 166 of file heur_veclendiving.c.

◆ SCIP_DECL_DIVESETGETSCORE()

static SCIP_DECL_DIVESETGETSCORE ( divesetGetScoreVeclendiving  )
static

calculate score and preferred rounding direction for the candidate variable

Definition at line 190 of file heur_veclendiving.c.