# SCIP

Solving Constraint Integer Programs

heur_linesearchdiving.c File Reference

## Detailed Description

LP diving heuristic that fixes variables with a large difference to their root solution.

Definition in file heur_linesearchdiving.c.

#include "scip/heuristics.h"
#include "scip/heur_linesearchdiving.h"
#include "scip/pub_heur.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_sol.h"
#include <string.h>

Go to the source code of this file.

## Macros

#define HEUR_NAME   "linesearchdiving"

#define HEUR_DESC   "LP diving heuristic that chooses fixings following the line from root solution to current solution"

#define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_DIVING

#define HEUR_PRIORITY   -1006000

#define HEUR_FREQ   10

#define HEUR_FREQOFS   6

#define HEUR_MAXDEPTH   -1

#define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE

#define HEUR_USESSUBSCIP   FALSE

#define DIVESET_DIVETYPES   SCIP_DIVETYPE_INTEGRALITY | SCIP_DIVETYPE_SOS1VARIABLE

#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   137

#define divesetAvailableLinesearchdiving   NULL

## Functions

static SCIP_DECL_HEURCOPY (heurCopyLinesearchdiving)

static SCIP_DECL_HEURFREE (heurFreeLinesearchdiving)

static SCIP_DECL_HEURINIT (heurInitLinesearchdiving)

static SCIP_DECL_HEUREXIT (heurExitLinesearchdiving)

static SCIP_DECL_HEUREXEC (heurExecLinesearchdiving)

static SCIP_DECL_DIVESETGETSCORE (divesetGetScoreLinesearchdiving)

SCIP_RETCODE SCIPincludeHeurLinesearchdiving (SCIP *scip)

## ◆ HEUR_NAME

 #define HEUR_NAME   "linesearchdiving"

Definition at line 35 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_DESC

 #define HEUR_DESC   "LP diving heuristic that chooses fixings following the line from root solution to current solution"

Definition at line 36 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_DISPCHAR

 #define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_DIVING

Definition at line 37 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_PRIORITY

 #define HEUR_PRIORITY   -1006000

Definition at line 38 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_FREQ

 #define HEUR_FREQ   10

Definition at line 39 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_FREQOFS

 #define HEUR_FREQOFS   6

Definition at line 40 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_MAXDEPTH

 #define HEUR_MAXDEPTH   -1

Definition at line 41 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_TIMING

 #define HEUR_TIMING   SCIP_HEURTIMING_AFTERLPPLUNGE

Definition at line 42 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ HEUR_USESSUBSCIP

 #define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance?

Definition at line 43 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DIVESET_DIVETYPES

 #define DIVESET_DIVETYPES   SCIP_DIVETYPE_INTEGRALITY | SCIP_DIVETYPE_SOS1VARIABLE

bit mask that represents all supported dive types

Definition at line 44 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DIVESET_ISPUBLIC

 #define DIVESET_ISPUBLIC   TRUE

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

Definition at line 45 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MINRELDEPTH

 #define DEFAULT_MINRELDEPTH   0.0

minimal relative depth to start diving

Definition at line 52 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXRELDEPTH

 #define DEFAULT_MAXRELDEPTH   1.0

maximal relative depth to start diving

Definition at line 53 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXLPITERQUOT

 #define DEFAULT_MAXLPITERQUOT   0.05

maximal fraction of diving LP iterations compared to node LP iterations

Definition at line 54 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXLPITEROFS

 #define DEFAULT_MAXLPITEROFS   1000

additional number of allowed LP iterations

Definition at line 55 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXDIVEUBQUOT

 #define DEFAULT_MAXDIVEUBQUOT   0.8

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

Definition at line 56 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXDIVEAVGQUOT

 #define DEFAULT_MAXDIVEAVGQUOT   0.0

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

Definition at line 59 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXDIVEUBQUOTNOSOL

 #define DEFAULT_MAXDIVEUBQUOTNOSOL   0.1

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

Definition at line 62 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_MAXDIVEAVGQUOTNOSOL

 #define DEFAULT_MAXDIVEAVGQUOTNOSOL   0.0

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

Definition at line 63 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_BACKTRACK

 #define DEFAULT_BACKTRACK   TRUE

use one level of backtracking if infeasibility is encountered?

Definition at line 64 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_LPRESOLVEDOMCHGQUOT

 #define DEFAULT_LPRESOLVEDOMCHGQUOT   0.15

percentage of immediate domain changes during probing to trigger LP resolve

Definition at line 65 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_LPSOLVEFREQ

 #define DEFAULT_LPSOLVEFREQ   0

LP solve frequency for diving heuristics

Definition at line 66 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ 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 67 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ DEFAULT_RANDSEED

 #define DEFAULT_RANDSEED   137

default initialization for random seed number generation

Definition at line 70 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ divesetAvailableLinesearchdiving

 #define divesetAvailableLinesearchdiving   NULL

Definition at line 259 of file heur_linesearchdiving.c.

Referenced by SCIPincludeHeurLinesearchdiving().

## ◆ SCIP_DECL_HEURCOPY()

 static SCIP_DECL_HEURCOPY ( heurCopyLinesearchdiving )
static

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

Definition at line 93 of file heur_linesearchdiving.c.

## ◆ SCIP_DECL_HEURFREE()

 static SCIP_DECL_HEURFREE ( heurFreeLinesearchdiving )
static

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

Definition at line 107 of file heur_linesearchdiving.c.

## ◆ SCIP_DECL_HEURINIT()

 static SCIP_DECL_HEURINIT ( heurInitLinesearchdiving )
static

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

Definition at line 126 of file heur_linesearchdiving.c.

## ◆ SCIP_DECL_HEUREXIT()

 static SCIP_DECL_HEUREXIT ( heurExitLinesearchdiving )
static

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

Definition at line 145 of file heur_linesearchdiving.c.

## ◆ SCIP_DECL_HEUREXEC()

 static SCIP_DECL_HEUREXEC ( heurExecLinesearchdiving )
static

execution method of primal heuristic

Definition at line 164 of file heur_linesearchdiving.c.

## ◆ SCIP_DECL_DIVESETGETSCORE()

 static SCIP_DECL_DIVESETGETSCORE ( divesetGetScoreLinesearchdiving )
static

returns a score for the given candidate – the best candidate maximizes the diving score

Definition at line 186 of file heur_linesearchdiving.c.