64 else if(
heur1->delaypos == -1 )
66 else if(
heur2->delaypos == -1 )
121 divesetstats->
nlps = 0;
141 for(
d = 0;
d < 4; ++
d )
160 SCIP_Longint nbestsolsfound,
161 SCIP_Longint nconflictsfound,
210 SCIP_Longint nbestsolsfound,
211 SCIP_Longint nconflictsfound,
224 for(
c = 0;
c < 2; ++
c )
273 SCIP_Real minreldepth,
274 SCIP_Real maxreldepth,
275 SCIP_Real maxlpiterquot,
276 SCIP_Real maxdiveubquot,
278 SCIP_Real maxdiveavgquot,
280 SCIP_Real maxdiveubquotnosol,
281 SCIP_Real maxdiveavgquotnosol,
282 SCIP_Real lpresolvedomchgquot,
285 unsigned int initialseed,
287 SCIP_Bool onlylpbranchcands,
332 for(
c = 0;
c < 4; ++
c )
343 paramname,
"minimal relative depth to start diving",
348 "maximal relative depth to start diving",
354 "maximal fraction of diving LP iterations compared to node LP iterations",
360 "additional number of allowed LP iterations",
366 "maximal quotient (curlowerbound - lowerbound)/(cutoffbound - lowerbound) where diving is performed (0.0: no limit)",
372 "maximal quotient (curlowerbound - lowerbound)/(avglowerbound - lowerbound) where diving is performed (0.0: no limit)",
378 "maximal UBQUOT when no solution was found yet (0.0: no limit)",
384 "maximal AVGQUOT when no solution was found yet (0.0: no limit)",
390 "use one level of backtracking if infeasibility is encountered?",
395 "percentage of immediate domain changes during probing to trigger LP resolve",
401 "LP solve frequency for diving heuristics (0: only after enough domain changes have been found)",
408 "should only LP branching candidates be considered instead of the slower but "
409 "more general constraint handler diving variable selection?",
494 return divesetstats->
ncalls;
783 divesetstats->
nlps++;
823 for(
c = 0;
c < 4; ++
c )
891 if( heur->heurcopy !=
NULL )
915 SCIP_Bool usessubscip,
941 (*heur)->dispchar = dispchar;
942 (*heur)->priority = priority;
943 (*heur)->freq = freq;
944 (*heur)->freqofs = freqofs;
946 (*heur)->delaypos = -1;
947 (*heur)->timingmask = timingmask;
948 (*heur)->usessubscip = usessubscip;
960 (*heur)->nsolsfound = 0;
961 (*heur)->nbestsolsfound = 0;
962 (*heur)->initialized =
FALSE;
963 (*heur)->divesets =
NULL;
964 (*heur)->ndivesets = 0;
1002 SCIP_Bool usessubscip,
1020 SCIP_CALL_FINALLY(
doHeurCreate(heur,
set, messagehdlr, blkmem, name, desc, dispchar, priority, freq, freqofs,
1021 maxdepth, timingmask, usessubscip,
heurcopy,
heurfree,
heurinit,
heurexit,
heurinitsol,
heurexitsol,
heurexec,
1038 assert(!(*heur)->initialized);
1040 assert((*heur)->divesets !=
NULL || (*heur)->ndivesets == 0);
1043 if( (*heur)->heurfree !=
NULL )
1048 for(
d = 0;
d < (*heur)->ndivesets; ++
d )
1079 if(
set->misc_resetstat )
1093 if( heur->heurinit !=
NULL )
1131 if( heur->heurexit !=
NULL )
1162 if( heur->heurinitsol !=
NULL )
1186 if( heur->heurexitsol !=
NULL )
1215 execute = heur->
freq >= 0;
1240 execute = execute || (heur->
delaypos >= 0);
1327 SCIPerrorMessage(
"execution method of primal heuristic <%s> returned invalid result <%d>\n",
1348 SCIPsetDebugMsg(
set,
"delaying execution of primal heuristic <%s> in depth %d (delaypos: %d), heur was%s delayed before, had delaypos %d\n",
1722 assert(maxdistance >= 0);
1762 distances[probindex] = 0;
1763 queue[
i] = probindex;
1794 for(
c = 0;
c <
vargraph->nvarconss[varpos]; ++
c )
1818 for( v = 0; v < nconsvars; ++v )
1859 if( increment == +1 )
1895 SCIP_Bool relaxdenseconss,
1898 int* nrelaxedconstraints
1917 if( nrelaxedconstraints !=
NULL )
1918 *nrelaxedconstraints = 0;
1922 for(
c = 0;
c < nconss; ++
c )
1940 if( relaxdenseconss && nconsvars >=
relaxlimit )
1942 if( nrelaxedconstraints !=
NULL )
1943 ++(*nrelaxedconstraints);
1955 for( v = 0; v < nconsvars; ++v )
1999 SCIP_Bool relaxdenseconss,
2002 int* nrelaxedconstraints
2046 for( v =
nvars - 1; v >= 0; --v )
void SCIPclockStop(SCIP_CLOCK *clck, SCIP_SET *set)
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
void SCIPclockStart(SCIP_CLOCK *clck, SCIP_SET *set)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPclockReset(SCIP_CLOCK *clck)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
common defines and data types used in all packages of SCIP
#define SCIP_MAXTREEDEPTH
#define SCIP_CALL_FINALLY(x, y)
SCIP_RETCODE SCIPgetVarsData(SCIP *scip, SCIP_VAR ***vars, int *nvars, int *nbinvars, int *nintvars, int *nimplvars, int *ncontvars)
SCIP_CONS ** SCIPgetConss(SCIP *scip)
int SCIPgetNVars(SCIP *scip)
int SCIPgetNConss(SCIP *scip)
void SCIPhashtableFree(SCIP_HASHTABLE **hashtable)
SCIP_Bool SCIPhashtableExists(SCIP_HASHTABLE *hashtable, void *element)
SCIP_RETCODE SCIPhashtableCreate(SCIP_HASHTABLE **hashtable, BMS_BLKMEM *blkmem, int tablesize, SCIP_DECL_HASHGETKEY((*hashgetkey)), SCIP_DECL_HASHKEYEQ((*hashkeyeq)), SCIP_DECL_HASHKEYVAL((*hashkeyval)), void *userptr)
void SCIPhashtableRemoveAll(SCIP_HASHTABLE *hashtable)
SCIP_RETCODE SCIPhashtableInsert(SCIP_HASHTABLE *hashtable, void *element)
SCIP_RETCODE SCIPgetConsNVars(SCIP *scip, SCIP_CONS *cons, int *nvars, SCIP_Bool *success)
SCIP_Bool SCIPconsIsChecked(SCIP_CONS *cons)
SCIP_RETCODE SCIPgetConsVars(SCIP *scip, SCIP_CONS *cons, SCIP_VAR **vars, int varssize, SCIP_Bool *success)
SCIP_Real SCIPdivesetGetMaxLPIterQuot(SCIP_DIVESET *diveset)
SCIP_Bool SCIPdivesetIsPublic(SCIP_DIVESET *diveset)
SCIP_Real SCIPdivesetGetUbQuotNoSol(SCIP_DIVESET *diveset)
SCIP_Real SCIPdivesetGetMaxRelDepth(SCIP_DIVESET *diveset)
SCIP_Longint SCIPdivesetGetNBacktracks(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Longint SCIPdivesetGetNSols(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
int SCIPdivesetGetMaxSolutionDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Longint SCIPdivesetGetNConflicts(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Real SCIPdivesetGetAvgQuot(SCIP_DIVESET *diveset)
SCIP_Bool SCIPdivesetUseBacktrack(SCIP_DIVESET *diveset)
int SCIPdivesetGetLPSolveFreq(SCIP_DIVESET *diveset)
SCIP_Real SCIPdivesetGetMinRelDepth(SCIP_DIVESET *diveset)
SCIP_Real SCIPdivesetGetUbQuot(SCIP_DIVESET *diveset)
SCIP_Real SCIPdivesetGetAvgSolutionDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
int SCIPdivesetGetMaxDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
int SCIPdivesetGetMinDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Bool SCIPdivesetSupportsType(SCIP_DIVESET *diveset, SCIP_DIVETYPE divetype)
SCIP_Real SCIPdivesetGetAvgDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Bool SCIPdivesetUseOnlyLPBranchcands(SCIP_DIVESET *diveset)
SCIP_Longint SCIPdivesetGetNLPIterations(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Longint SCIPdivesetGetSolSuccess(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
int SCIPdivesetGetMinSolutionDepth(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
const char * SCIPdivesetGetName(SCIP_DIVESET *diveset)
int SCIPdivesetGetNCalls(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Real SCIPdivesetGetAvgQuotNoSol(SCIP_DIVESET *diveset)
SCIP_RANDNUMGEN * SCIPdivesetGetRandnumgen(SCIP_DIVESET *diveset)
SCIP_Longint SCIPdivesetGetNProbingNodes(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
SCIP_Real SCIPdivesetGetLPResolveDomChgQuot(SCIP_DIVESET *diveset)
int SCIPdivesetGetNSolutionCalls(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
int SCIPdivesetGetMaxLPIterOffset(SCIP_DIVESET *diveset)
SCIP_RETCODE SCIPsetHeurPriority(SCIP *scip, SCIP_HEUR *heur, int priority)
char SCIPheurGetDispchar(SCIP_HEUR *heur)
SCIP_HEURDATA * SCIPheurGetData(SCIP_HEUR *heur)
SCIP_HEURTIMING SCIPheurGetTimingmask(SCIP_HEUR *heur)
const char * SCIPheurGetDesc(SCIP_HEUR *heur)
SCIP_Longint SCIPheurGetNSolsFound(SCIP_HEUR *heur)
int SCIPheurGetPriority(SCIP_HEUR *heur)
SCIP_Bool SCIPheurUsesSubscip(SCIP_HEUR *heur)
SCIP_Longint SCIPheurGetNBestSolsFound(SCIP_HEUR *heur)
void SCIPheurSetFreq(SCIP_HEUR *heur, int freq)
void SCIPheurSetTimingmask(SCIP_HEUR *heur, SCIP_HEURTIMING timingmask)
SCIP_Longint SCIPheurGetNCalls(SCIP_HEUR *heur)
int SCIPheurGetFreqofs(SCIP_HEUR *heur)
SCIP_Real SCIPheurGetSetupTime(SCIP_HEUR *heur)
int SCIPheurGetMaxdepth(SCIP_HEUR *heur)
int SCIPheurGetNDivesets(SCIP_HEUR *heur)
int SCIPheurGetFreq(SCIP_HEUR *heur)
SCIP_Real SCIPheurGetTime(SCIP_HEUR *heur)
const char * SCIPheurGetName(SCIP_HEUR *heur)
SCIP_Bool SCIPheurIsInitialized(SCIP_HEUR *heur)
SCIP_DIVESET ** SCIPheurGetDivesets(SCIP_HEUR *heur)
void SCIPheurSetData(SCIP_HEUR *heur, SCIP_HEURDATA *heurdata)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocClearBlockMemoryArray(scip, ptr, num)
#define SCIPallocClearBufferArray(scip, ptr, num)
int SCIPcalcMemGrowSize(SCIP *scip, int num)
#define SCIPallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArray(scip, ptr)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPallocBlockMemory(scip, ptr)
void SCIPvariableGraphFree(SCIP *scip, SCIP_VGRAPH **vargraph)
SCIP_RETCODE SCIPvariablegraphBreadthFirst(SCIP *scip, SCIP_VGRAPH *vargraph, SCIP_VAR **startvars, int nstartvars, int *distances, int maxdistance, int maxvars, int maxbinintvars)
SCIP_RETCODE SCIPvariableGraphCreate(SCIP *scip, SCIP_VGRAPH **vargraph, SCIP_Bool relaxdenseconss, SCIP_Real relaxdensity, int *nrelaxedconstraints)
SCIP_Bool SCIPvarIsActive(SCIP_VAR *var)
int SCIPvarGetProbindex(SCIP_VAR *var)
int SCIPsnprintf(char *t, int len, const char *s,...)
void SCIPheurSetExit(SCIP_HEUR *heur,)
void SCIPheurEnableOrDisableClocks(SCIP_HEUR *heur, SCIP_Bool enable)
SCIP_RETCODE SCIPdivesetIsAvailable(SCIP_DIVESET *diveset, SCIP_SET *set, SCIP_Bool *available)
void SCIPheurSetPriority(SCIP_HEUR *heur, SCIP_SET *set, int priority)
SCIP_RETCODE SCIPheurInit(SCIP_HEUR *heur, SCIP_SET *set)
static SCIP_RETCODE heurAddDiveset(SCIP_HEUR *heur, SCIP_DIVESET *diveset)
SCIP_RETCODE SCIPdivesetReset(SCIP_DIVESET *diveset, SCIP_SET *set)
void SCIPdivesetUpdateLPStats(SCIP_DIVESET *diveset, SCIP_STAT *stat, SCIP_Longint niterstoadd, SCIP_DIVECONTEXT divecontext)
static void divesetFree(SCIP_DIVESET **divesetptr, BMS_BLKMEM *blkmem)
static SCIP_DIVESETSTATS * divesetGetStats(SCIP_DIVESET *diveset, SCIP_DIVECONTEXT divecontext)
static SCIP_RETCODE doHeurCreate(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, SCIP_HEURTIMING 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 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)
static void resetDivesetStats(SCIP_DIVESETSTATS *divesetstats)
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, SCIP_HEURTIMING 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 SCIPheurCopyInclude(SCIP_HEUR *heur, SCIP_SET *set)
void SCIPheurSetInit(SCIP_HEUR *heur,)
void SCIPdivesetUpdateStats(SCIP_DIVESET *diveset, SCIP_STAT *stat, int depth, int nprobingnodes, int nbacktracks, SCIP_Longint nsolsfound, SCIP_Longint nbestsolsfound, SCIP_Longint nconflictsfound, SCIP_Bool leavesol, SCIP_DIVECONTEXT divecontext)
SCIP_RETCODE SCIPheurInitsol(SCIP_HEUR *heur, SCIP_SET *set)
void SCIPheurSetFree(SCIP_HEUR *heur,)
SCIP_RETCODE SCIPheurExitsol(SCIP_HEUR *heur, SCIP_SET *set)
static void updateDivesetstats(SCIP_DIVESETSTATS *divesetstats, int depth, int nprobingnodes, int nbacktracks, SCIP_Longint nsolsfound, SCIP_Longint nbestsolsfound, SCIP_Longint nconflictsfound, SCIP_Bool leavesol)
void SCIPheurSetCopy(SCIP_HEUR *heur,)
SCIP_Bool SCIPheurShouldBeExecuted(SCIP_HEUR *heur, int depth, int lpstateforkdepth, SCIP_HEURTIMING heurtiming, SCIP_Bool *delayed)
void SCIPheurSetInitsol(SCIP_HEUR *heur,)
SCIP_HEUR * SCIPdivesetGetHeur(SCIP_DIVESET *diveset)
SCIP_SOL * SCIPdivesetGetWorkSolution(SCIP_DIVESET *diveset)
SCIP_RETCODE SCIPdivesetGetScore(SCIP_DIVESET *diveset, SCIP_SET *set, SCIP_DIVETYPE divetype, SCIP_VAR *divecand, SCIP_Real divecandsol, SCIP_Real divecandfrac, SCIP_Real *candscore, SCIP_Bool *roundup)
void SCIPdivesetSetWorkSolution(SCIP_DIVESET *diveset, SCIP_SOL *sol)
SCIP_RETCODE SCIPdivesetCreate(SCIP_DIVESET **divesetptr, SCIP_HEUR *heur, const char *name, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_Real minreldepth, SCIP_Real maxreldepth, SCIP_Real maxlpiterquot, SCIP_Real maxdiveubquot, SCIP_Real maxdiveavgquot, SCIP_Real maxdiveubquotnosol, SCIP_Real maxdiveavgquotnosol, SCIP_Real lpresolvedomchgquot, int lpsolvefreq, int maxlpiterofs, unsigned int initialseed, SCIP_Bool backtrack, SCIP_Bool onlylpbranchcands, SCIP_Bool ispublic, SCIP_DIVETYPE divetypemask, SCIP_DECL_DIVESETGETSCORE((*divesetgetscore)),)
void SCIPheurSetExitsol(SCIP_HEUR *heur,)
static void updateDivesetstatsLP(SCIP_DIVESETSTATS *divesetstats, SCIP_Longint niterstoadd)
static SCIP_RETCODE fillVariableGraph(SCIP *scip, SCIP_VGRAPH *vargraph, SCIP_Bool relaxdenseconss, SCIP_Real relaxdensity, int *nrelaxedconstraints)
SCIP_RETCODE SCIPheurFree(SCIP_HEUR **heur, SCIP_SET *set, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPheurExit(SCIP_HEUR *heur, SCIP_SET *set)
internal methods for primal heuristics
static SCIP_DIVESET * diveset
assert(minobj< SCIPgetCutoffbound(scip))
static const char * paramname[]
#define BMSfreeMemory(ptr)
#define BMSfreeBlockMemory(mem, ptr)
#define BMSallocBlockMemory(mem, ptr)
#define BMSreallocMemoryArray(ptr, num)
#define BMSduplicateMemoryArray(ptr, source, num)
#define BMSclearMemory(ptr)
#define BMSallocMemoryArray(ptr, num)
#define BMSfreeMemoryArray(ptr)
struct BMS_BlkMem BMS_BLKMEM
#define BMSfreeMemoryArrayNull(ptr)
#define BMSallocMemory(ptr)
void SCIPrandomFree(SCIP_RANDNUMGEN **randnumgen, BMS_BLKMEM *blkmem)
SCIP_RETCODE SCIPrandomCreate(SCIP_RANDNUMGEN **randnumgen, BMS_BLKMEM *blkmem, unsigned int initialseed)
void SCIPrandomSetSeed(SCIP_RANDNUMGEN *randnumgen, unsigned int initseed)
internal miscellaneous methods
BMS_BLKMEM * SCIPblkmem(SCIP *scip)
SCIP_PARAMDATA * SCIPparamGetData(SCIP_PARAM *param)
int SCIPparamGetInt(SCIP_PARAM *param)
internal methods for handling parameter settings
internal methods for collecting primal CIP solutions and primal informations
public methods for message output
public data structures and miscellaneous methods
SCIP_RETCODE SCIPsetAddIntParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, int *valueptr, SCIP_Bool isadvanced, int defaultvalue, int minvalue, int maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPsetAddBoolParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPsetAddRealParam(SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, const char *name, const char *desc, SCIP_Real *valueptr, SCIP_Bool isadvanced, SCIP_Real defaultvalue, SCIP_Real minvalue, SCIP_Real maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
unsigned int SCIPsetInitializeRandomSeed(SCIP_SET *set, unsigned int initialseedvalue)
internal methods for global SCIP settings
SCIP_Longint nlpiterations
SCIP_Longint totalsoldepth
SCIP_Longint totalnbacktracks
SCIP_Longint nconflictsfound
SCIP_Longint nbestsolsfound
SCIP_RANDNUMGEN * randnumgen
SCIP_DIVETYPE divetypemask
SCIP_Real maxdiveavgquotnosol
SCIP_Real maxdiveubquotnosol
SCIP_DIVESETSTATS * divesetstats[4]
SCIP_Real lpresolvedomchgquot
SCIP_Bool onlylpbranchcands
SCIP_HEURTIMING timingmask
SCIP_Longint nbestsolsfound
SCIP_Longint nbestsolsfound
SCIP_Longint ndivesetlpiterations
SCIP_Longint totaldivesetdepth
datastructures for primal heuristics
#define SCIP_DECL_DIVESETAVAILABLE(x)
#define SCIP_DECL_HEURINITSOL(x)
#define SCIP_DECL_HEURCOPY(x)
enum SCIP_DiveContext SCIP_DIVECONTEXT
struct SCIP_HeurData SCIP_HEURDATA
#define SCIP_DECL_HEURINIT(x)
#define SCIP_DECL_HEUREXIT(x)
unsigned int SCIP_DIVETYPE
#define SCIP_DECL_HEURFREE(x)
#define SCIP_DECL_DIVESETGETSCORE(x)
#define SCIP_DECL_HEUREXITSOL(x)
#define SCIP_DECL_HEUREXEC(x)
@ SCIP_DIVECONTEXT_SINGLE
@ SCIP_DIVECONTEXT_ADAPTIVE
@ SCIP_DIVECONTEXT_SCHEDULER
#define SCIP_DECL_SORTPTRCOMP(x)
struct SCIP_ParamData SCIP_PARAMDATA
#define SCIP_DECL_PARAMCHGD(x)
enum SCIP_Result SCIP_RESULT
enum SCIP_Retcode SCIP_RETCODE
#define SCIP_HEURTIMING_BEFOREPRESOL
#define SCIP_HEURTIMING_AFTERPSEUDONODE
unsigned int SCIP_HEURTIMING
#define SCIP_HEURTIMING_DURINGPRESOLLOOP
#define SCIP_HEURTIMING_AFTERLPPLUNGE
#define SCIP_HEURTIMING_AFTERPSEUDOPLUNGE
#define SCIP_HEURTIMING_AFTERLPNODE