Scippy

SCIP

Solving Constraint Integer Programs

heur_fracdiving.c File Reference

Detailed Description

LP diving heuristic that chooses fixings w.r.t. the fractionalities.

Author
Tobias Achterberg

Definition in file heur_fracdiving.c.

#include <assert.h>
#include <string.h>
#include "scip/heur_fracdiving.h"
#include "scip/pub_dive.h"

Go to the source code of this file.

Macros

#define HEUR_NAME   "fracdiving"
 
#define HEUR_DESC   "LP diving heuristic that chooses fixings w.r.t. the fractionalities"
 
#define HEUR_DISPCHAR   'f'
 
#define HEUR_PRIORITY   -1003000
 
#define HEUR_FREQ   10
 
#define HEUR_FREQOFS   3
 
#define HEUR_MAXDEPTH   -1
 
#define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE
 
#define HEUR_USESSUBSCIP   FALSE
 
#define DIVESET_DIVETYPES   SCIP_DIVETYPE_INTEGRALITY | SCIP_DIVETYPE_SOS1VARIABLE
 
#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
 

Functions

static SCIP_DECL_HEURCOPY (heurCopyFracdiving)
 
static SCIP_DECL_HEURFREE (heurFreeFracdiving)
 
static SCIP_DECL_HEURINIT (heurInitFracdiving)
 
static SCIP_DECL_HEUREXIT (heurExitFracdiving)
 
static SCIP_DECL_HEUREXEC (heurExecFracdiving)
 
static SCIP_DECL_DIVESETGETSCORE (divesetGetScoreFracdiving)
 
SCIP_RETCODE SCIPincludeHeurFracdiving (SCIP *scip)
 

Macro Definition Documentation

#define HEUR_NAME   "fracdiving"

Definition at line 29 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_DESC   "LP diving heuristic that chooses fixings w.r.t. the fractionalities"

Definition at line 30 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_DISPCHAR   'f'

Definition at line 31 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_PRIORITY   -1003000

Definition at line 32 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_FREQ   10

Definition at line 33 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_FREQOFS   3

Definition at line 34 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_MAXDEPTH   -1

Definition at line 35 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE

Definition at line 36 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance?

Definition at line 37 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DIVESET_DIVETYPES   SCIP_DIVETYPE_INTEGRALITY | SCIP_DIVETYPE_SOS1VARIABLE

bit mask that represents all supported dive types

Definition at line 38 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MINRELDEPTH   0.0

minimal relative depth to start diving

Definition at line 45 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXRELDEPTH   1.0

maximal relative depth to start diving

Definition at line 46 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXLPITERQUOT   0.05

maximal fraction of diving LP iterations compared to node LP iterations

Definition at line 47 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXLPITEROFS   1000

additional number of allowed LP iterations

Definition at line 48 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXDIVEUBQUOT   0.8

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

Definition at line 49 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXDIVEAVGQUOT   0.0

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

Definition at line 52 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXDIVEUBQUOTNOSOL   0.1

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

Definition at line 55 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_MAXDIVEAVGQUOTNOSOL   0.0

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

Definition at line 56 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_BACKTRACK   TRUE

use one level of backtracking if infeasibility is encountered?

Definition at line 57 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_LPRESOLVEDOMCHGQUOT   0.15

percentage of immediate domain changes during probing to trigger LP resolve

Definition at line 59 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#define DEFAULT_LPSOLVEFREQ   0

LP solve frequency for diving heuristics

Definition at line 60 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

#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 61 of file heur_fracdiving.c.

Referenced by SCIPincludeHeurFracdiving().

Function Documentation

static SCIP_DECL_HEURCOPY ( heurCopyFracdiving  )
static

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

Definition at line 82 of file heur_fracdiving.c.

static SCIP_DECL_HEURFREE ( heurFreeFracdiving  )
static

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

Definition at line 96 of file heur_fracdiving.c.

static SCIP_DECL_HEURINIT ( heurInitFracdiving  )
static

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

Definition at line 117 of file heur_fracdiving.c.

static SCIP_DECL_HEUREXIT ( heurExitFracdiving  )
static

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

Definition at line 137 of file heur_fracdiving.c.

static SCIP_DECL_HEUREXEC ( heurExecFracdiving  )
static

execution method of primal heuristic

Definition at line 157 of file heur_fracdiving.c.

static SCIP_DECL_DIVESETGETSCORE ( divesetGetScoreFracdiving  )
static

calculate score and preferred rounding direction for the candidate variable; the best candidate maximizes the score

Definition at line 181 of file heur_fracdiving.c.

References SCIP_OKAY, SCIPgetObjNorm(), SCIPincludeHeurFracdiving(), SCIPisFeasPositive(), SCIPisPositive(), SCIPvarGetObj(), SCIPvarIsBinary(), SCIPvarMayRoundDown(), and SCIPvarMayRoundUp().