Scippy

SCIP

Solving Constraint Integer Programs

heur.h File Reference

Detailed Description

internal methods for primal heuristics

Author
Tobias Achterberg

Definition in file heur.h.

#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_set.h"
#include "scip/type_primal.h"
#include "scip/type_heur.h"
#include "scip/pub_heur.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPheurCopyInclude (SCIP_HEUR *heur, SCIP_SET *set)
 
SCIP_RETCODE SCIPheurCreate (SCIP_HEUR **heur, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, char dispchar, int priority, int freq, int freqofs, int maxdepth, unsigned int timingmask, SCIP_Bool usessubscip, SCIP_DECL_HEURCOPY((*heurcopy)), SCIP_DECL_HEURFREE((*heurfree)), SCIP_DECL_HEURINIT((*heurinit)), SCIP_DECL_HEUREXIT((*heurexit)), SCIP_DECL_HEURINITSOL((*heurinitsol)), SCIP_DECL_HEUREXITSOL((*heurexitsol)), SCIP_DECL_HEUREXEC((*heurexec)), SCIP_HEURDATA *heurdata)
 
SCIP_RETCODE SCIPheurFree (SCIP_HEUR **heur, SCIP_SET *set)
 
SCIP_RETCODE SCIPheurInit (SCIP_HEUR *heur, SCIP_SET *set)
 
SCIP_RETCODE SCIPheurExit (SCIP_HEUR *heur, SCIP_SET *set)
 
SCIP_RETCODE SCIPheurInitsol (SCIP_HEUR *heur, SCIP_SET *set)
 
SCIP_RETCODE SCIPheurExitsol (SCIP_HEUR *heur, SCIP_SET *set)
 
SCIP_Bool SCIPheurShouldBeExecuted (SCIP_HEUR *heur, int depth, int lpstateforkdepth, SCIP_HEURTIMING heurtiming, SCIP_Bool *delayed)
 
SCIP_RETCODE SCIPheurExec (SCIP_HEUR *heur, SCIP_SET *set, SCIP_PRIMAL *primal, int depth, int lpstateforkdepth, SCIP_HEURTIMING heurtiming, SCIP_Bool nodeinfeasible, int *ndelayedheurs, SCIP_RESULT *result)
 
void SCIPheurSetPriority (SCIP_HEUR *heur, SCIP_SET *set, int priority)
 
void SCIPheurSetCopy (SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy)))
 
void SCIPheurSetFree (SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree)))
 
void SCIPheurSetInit (SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit)))
 
void SCIPheurSetExit (SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit)))
 
void SCIPheurSetInitsol (SCIP_HEUR *heur, SCIP_DECL_HEURINITSOL((*heurinitsol)))
 
void SCIPheurSetExitsol (SCIP_HEUR *heur, SCIP_DECL_HEUREXITSOL((*heurexitsol)))
 

Function Documentation

SCIP_RETCODE SCIPheurCopyInclude ( SCIP_HEUR heur,
SCIP_SET set 
)

copies the given primal heuristic to a new scip

Parameters
heurprimal heuristic
setSCIP_SET of SCIP to copy to

Definition at line 87 of file heur.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPheurGetName().

Referenced by SCIPsetCopyPlugins().

SCIP_RETCODE SCIPheurCreate ( SCIP_HEUR **  heur,
SCIP_SET set,
SCIP_MESSAGEHDLR messagehdlr,
BMS_BLKMEM blkmem,
const char *  name,
const char *  desc,
char  dispchar,
int  priority,
int  freq,
int  freqofs,
int  maxdepth,
unsigned int  timingmask,
SCIP_Bool  usessubscip,
SCIP_DECL_HEURCOPY((*heurcopy))  ,
SCIP_DECL_HEURFREE((*heurfree))  ,
SCIP_DECL_HEURINIT((*heurinit))  ,
SCIP_DECL_HEUREXIT((*heurexit))  ,
SCIP_DECL_HEURINITSOL((*heurinitsol))  ,
SCIP_DECL_HEUREXITSOL((*heurexitsol))  ,
SCIP_DECL_HEUREXEC((*heurexec))  ,
SCIP_HEURDATA heurdata 
)

creates a primal heuristic

Parameters
heurpointer to primal heuristic data structure
setglobal SCIP settings
messagehdlrmessage handler
blkmemblock memory for parameter settings
namename of primal heuristic
descdescription of primal heuristic
dispchardisplay character of primal heuristic
prioritypriority of the primal heuristic
freqfrequency for calling primal heuristic
freqofsfrequency offset for calling primal heuristic
maxdepthmaximal depth level to call heuristic at (-1: no limit)
timingmaskpositions in the node solving loop where heuristic should be executed
usessubscipdoes the heuristic use a secondary SCIP instance?
heurdataprimal heuristic data

Definition at line 106 of file heur.c.

References BMSallocMemory, BMSduplicateMemoryArray, FALSE, NULL, paramname, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddIntParam(), SCIPsnprintf(), and TRUE.

Referenced by SCIPincludeHeur(), and SCIPincludeHeurBasic().

SCIP_RETCODE SCIPheurFree ( SCIP_HEUR **  heur,
SCIP_SET set 
)

calls destructor and frees memory of primal heuristic

Parameters
heurpointer to primal heuristic data structure
setglobal SCIP settings

Definition at line 189 of file heur.c.

References BMSfreeMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().

Referenced by SCIPsetFree().

SCIP_RETCODE SCIPheurInit ( SCIP_HEUR heur,
SCIP_SET set 
)
SCIP_RETCODE SCIPheurExit ( SCIP_HEUR heur,
SCIP_SET set 
)

calls exit method of primal heuristic

Parameters
heurprimal heuristic
setglobal SCIP settings

Definition at line 256 of file heur.c.

References FALSE, SCIP_Heur::initialized, SCIP_Heur::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Heur::setuptime.

Referenced by SCIPsetExitPlugins().

SCIP_RETCODE SCIPheurInitsol ( SCIP_HEUR heur,
SCIP_SET set 
)

informs primal heuristic that the branch and bound process is being started

Parameters
heurprimal heuristic
setglobal SCIP settings

Definition at line 286 of file heur.c.

References SCIP_Heur::delaypos, FALSE, NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Heur::setuptime.

Referenced by SCIPsetInitsolPlugins().

SCIP_RETCODE SCIPheurExitsol ( SCIP_HEUR heur,
SCIP_SET set 
)

informs primal heuristic that the branch and bound process data is being freed

Parameters
heurprimal heuristic
setglobal SCIP settings

Definition at line 316 of file heur.c.

References NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Heur::setuptime.

Referenced by SCIPsetExitsolPlugins().

SCIP_Bool SCIPheurShouldBeExecuted ( SCIP_HEUR heur,
int  depth,
int  lpstateforkdepth,
SCIP_HEURTIMING  heurtiming,
SCIP_Bool delayed 
)

should the heuristic be executed at the given depth, frequency, timing, ...

Parameters
heurprimal heuristic
depthdepth of current node
lpstateforkdepthdepth of the last node with solved LP
heurtimingcurrent point in the node solving process
delayedpointer to store whether the heuristic should be delayed

Definition at line 340 of file heur.c.

References SCIP_Heur::delaypos, FALSE, SCIP_Heur::freq, SCIP_Heur::freqofs, SCIP_Heur::maxdepth, SCIP_Bool, SCIP_HEURTIMING_AFTERLPNODE, SCIP_HEURTIMING_AFTERLPPLUNGE, SCIP_HEURTIMING_AFTERPSEUDONODE, SCIP_HEURTIMING_AFTERPSEUDOPLUNGE, SCIP_HEURTIMING_BEFOREPRESOL, SCIP_HEURTIMING_DURINGPRESOLLOOP, SCIP_Heur::timingmask, and TRUE.

Referenced by SCIPheurExec(), and SCIPprimalHeuristics().

SCIP_RETCODE SCIPheurExec ( SCIP_HEUR heur,
SCIP_SET set,
SCIP_PRIMAL primal,
int  depth,
int  lpstateforkdepth,
SCIP_HEURTIMING  heurtiming,
SCIP_Bool  nodeinfeasible,
int *  ndelayedheurs,
SCIP_RESULT result 
)

calls execution method of primal heuristic

Parameters
heurprimal heuristic
setglobal SCIP settings
primalprimal data
depthdepth of current node
lpstateforkdepthdepth of the last node with solved LP
heurtimingcurrent point in the node solving process
nodeinfeasiblewas the current node already detected to be infeasible?
ndelayedheurspointer to count the number of delayed heuristics
resultpointer to store the result of the callback method

Definition at line 402 of file heur.c.

References SCIP_Heur::delaypos, FALSE, SCIP_Heur::freq, SCIP_Heur::freqofs, SCIP_Heur::heurclock, SCIP_Heur::maxdepth, SCIP_Heur::name, SCIP_Heur::nbestsolsfound, SCIP_Primal::nbestsolsfound, SCIP_Heur::ncalls, SCIP_Primal::nsolsfound, SCIP_Heur::nsolsfound, NULL, SCIP_Bool, SCIP_CALL, SCIP_DELAYED, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_FOUNDSOL, SCIP_HEURTIMING_BEFOREPRESOL, SCIP_HEURTIMING_DURINGPRESOLLOOP, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPerrorMessage, and SCIPheurShouldBeExecuted().

Referenced by SCIPprimalHeuristics().

void SCIPheurSetPriority ( SCIP_HEUR heur,
SCIP_SET set,
int  priority 
)

sets priority of primal heuristic

Parameters
heurprimal heuristic
setglobal SCIP settings
prioritynew priority of the primal heuristic

Definition at line 662 of file heur.c.

References FALSE, NULL, and SCIP_Heur::priority.

Referenced by SCIPsetHeurPriority().

void SCIPheurSetCopy ( SCIP_HEUR heur,
SCIP_DECL_HEURCOPY((*heurcopy))   
)

sets copy callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 525 of file heur.c.

References NULL.

Referenced by SCIPsetHeurCopy().

void SCIPheurSetFree ( SCIP_HEUR heur,
SCIP_DECL_HEURFREE((*heurfree))   
)

sets destructor callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 536 of file heur.c.

References NULL.

Referenced by SCIPsetHeurFree().

void SCIPheurSetInit ( SCIP_HEUR heur,
SCIP_DECL_HEURINIT((*heurinit))   
)

sets initialization callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 547 of file heur.c.

References NULL.

Referenced by SCIPsetHeurInit().

void SCIPheurSetExit ( SCIP_HEUR heur,
SCIP_DECL_HEUREXIT((*heurexit))   
)

sets deinitialization callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 558 of file heur.c.

References NULL.

Referenced by SCIPsetHeurExit().

void SCIPheurSetInitsol ( SCIP_HEUR heur,
SCIP_DECL_HEURINITSOL((*heurinitsol))   
)

sets solving process initialization callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 569 of file heur.c.

References NULL.

Referenced by SCIPsetHeurInitsol().

void SCIPheurSetExitsol ( SCIP_HEUR heur,
SCIP_DECL_HEUREXITSOL((*heurexitsol))   
)

sets solving process deinitialization callback of primal heuristic

Parameters
heurprimal heuristic

Definition at line 580 of file heur.c.

References NULL.

Referenced by SCIPsetHeurExitsol().