SCIP Doxygen Documentation
 
Loading...
Searching...
No Matches

Detailed Description

fix-and-infer primal heuristic

Author
Tobias Achterberg

Definition in file heur_fixandinfer.c.

#include "scip/heur_fixandinfer.h"
#include "scip/pub_heur.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_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_tree.h"
#include "scip/scip_var.h"
#include <string.h>

Go to the source code of this file.

Macros

#define HEUR_NAME   "fixandinfer"
 
#define HEUR_DESC   "iteratively fixes variables and propagates inferences"
 
#define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_PROP
 
#define HEUR_PRIORITY   -500000
 
#define HEUR_FREQ   -1 /* at the moment, the heuristic seems to be useless */
 
#define HEUR_FREQOFS   0
 
#define HEUR_MAXDEPTH   -1
 
#define HEUR_TIMING   SCIP_HEURTIMING_AFTERNODE
 
#define HEUR_USESSUBSCIP   FALSE
 
#define MAXDIVEDEPTH   100
 
#define DEFAULT_PROPROUNDS   0
 
#define DEFAULT_MINFIXINGS   100
 

Functions

static SCIP_RETCODE fixVariable (SCIP *scip, SCIP_VAR **pseudocands, int npseudocands, SCIP_Real large)
 
static SCIP_DECL_HEURCOPY (heurCopyFixandinfer)
 
 assert (heurdata !=NULL)
 
 SCIPfreeBlockMemory (scip, &heurdata)
 
 SCIPheurSetData (heur, NULL)
 
static SCIP_DECL_HEUREXEC (heurExecFixandinfer)
 
SCIP_RETCODE SCIPincludeHeurFixandinfer (SCIP *scip)
 

Variables

static heurdata = SCIPheurGetData(heur)
 
return SCIP_OKAY
 

Macro Definition Documentation

◆ HEUR_NAME

#define HEUR_NAME   "fixandinfer"

Definition at line 51 of file heur_fixandinfer.c.

◆ HEUR_DESC

#define HEUR_DESC   "iteratively fixes variables and propagates inferences"

Definition at line 52 of file heur_fixandinfer.c.

◆ HEUR_DISPCHAR

#define HEUR_DISPCHAR   SCIP_HEURDISPCHAR_PROP

Definition at line 53 of file heur_fixandinfer.c.

◆ HEUR_PRIORITY

#define HEUR_PRIORITY   -500000

Definition at line 54 of file heur_fixandinfer.c.

◆ HEUR_FREQ

#define HEUR_FREQ   -1 /* at the moment, the heuristic seems to be useless */

Definition at line 55 of file heur_fixandinfer.c.

◆ HEUR_FREQOFS

#define HEUR_FREQOFS   0

Definition at line 56 of file heur_fixandinfer.c.

◆ HEUR_MAXDEPTH

#define HEUR_MAXDEPTH   -1

Definition at line 57 of file heur_fixandinfer.c.

◆ HEUR_TIMING

#define HEUR_TIMING   SCIP_HEURTIMING_AFTERNODE

Definition at line 58 of file heur_fixandinfer.c.

◆ HEUR_USESSUBSCIP

#define HEUR_USESSUBSCIP   FALSE

does the heuristic use a secondary SCIP instance?

Definition at line 59 of file heur_fixandinfer.c.

◆ MAXDIVEDEPTH

#define MAXDIVEDEPTH   100

Definition at line 61 of file heur_fixandinfer.c.

Referenced by SCIP_DECL_HEUREXEC().

◆ DEFAULT_PROPROUNDS

#define DEFAULT_PROPROUNDS   0

maximal number of propagation rounds in probing subproblems

Definition at line 68 of file heur_fixandinfer.c.

Referenced by SCIPincludeHeurFixandinfer(), and SCIPincludePropProbing().

◆ DEFAULT_MINFIXINGS

#define DEFAULT_MINFIXINGS   100

minimal number of fixings to apply before dive may be aborted

Definition at line 69 of file heur_fixandinfer.c.

Referenced by SCIPincludeHeurFixandinfer().

Function Documentation

◆ fixVariable()

static SCIP_RETCODE fixVariable ( SCIP * scip,
SCIP_VAR ** pseudocands,
int npseudocands,
SCIP_Real large )
static

selects a variable and fixes it to its current pseudo solution value

Parameters
scipSCIP data structure
pseudocandsarray of unfixed variables
npseudocandsnumber of unfixed variables
largelarge value to be used instead of infinity

Definition at line 90 of file heur_fixandinfer.c.

References assert(), bestcand, c, NULL, pseudocands, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPceil(), SCIPdebugMsg, SCIPfixVarProbing(), SCIPfloor(), SCIPgetNPrioPseudoBranchBins(), SCIPgetVarAvgInferenceScore(), SCIPgetVarSol(), SCIPinfinity(), SCIPisFeasIntegral(), SCIPisInfinity(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), and var.

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIP_DECL_HEURCOPY()

static SCIP_DECL_HEURCOPY ( heurCopyFixandinfer )
static

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

Definition at line 174 of file heur_fixandinfer.c.

References assert(), HEUR_NAME, NULL, SCIP_CALL, SCIP_OKAY, SCIPheurGetName(), and SCIPincludeHeurFixandinfer().

◆ assert()

assert ( heurdata ! = NULL)

References heurdata, and NULL.

◆ SCIPfreeBlockMemory()

SCIPfreeBlockMemory ( scip ,
& heurdata )

References heurdata.

◆ SCIPheurSetData()

SCIPheurSetData ( heur ,
NULL  )

References NULL.

◆ SCIP_DECL_HEUREXEC()

Variable Documentation

◆ heurdata

heurdata = SCIPheurGetData(heur)

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

Definition at line 193 of file heur_fixandinfer.c.

◆ SCIP_OKAY

return SCIP_OKAY

Definition at line 198 of file heur_fixandinfer.c.