assert(heur1 !=
NULL);
57assert(heur2 !=
NULL);
63 return(strcmp(heur1->
name, heur2->
name));
96assert(paramdata !=
NULL);
110assert(divesetstats !=
NULL);
121divesetstats->
nlps= 0;
125divesetstats->
ncalls= 0;
137assert(diveset !=
NULL);
141 for( d = 0; d < 4; ++d )
193assert(diveset !=
NULL);
219assert(diveset !=
NULL);
224 for( c = 0; c < 2; ++c )
227nbacktracks, nsolsfound, nbestsolsfound, nconflictsfound, leavesol);
241assert(heur !=
NULL);
242assert(diveset !=
NULL);
245diveset->
heur= heur;
285 unsigned intinitialseed,
297 const char* divesetname;
300assert(divesetptr !=
NULL);
302assert(divesetgetscore !=
NULL);
303assert(heur !=
NULL);
304assert(blkmem !=
NULL);
307diveset = *divesetptr;
323diveset->divesetgetscore = divesetgetscore;
324diveset->divesetavailable = divesetavailable;
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?",
420 returndiveset->
heur;
428assert(diveset !=
NULL);
430 returndiveset->
sol;
439assert(diveset !=
NULL);
449assert(diveset !=
NULL);
451 returndiveset->
name;
479assert(divesetstats !=
NULL);
492assert(divesetstats !=
NULL);
494 returndivesetstats->
ncalls;
505assert(diveset !=
NULL);
518assert(divesetstats !=
NULL);
531assert(divesetstats !=
NULL);
544assert(divesetstats !=
NULL);
557assert(divesetstats !=
NULL);
570assert(divesetstats !=
NULL);
583assert(divesetstats !=
NULL);
596assert(divesetstats !=
NULL);
609assert(divesetstats !=
NULL);
622assert(divesetstats !=
NULL);
635assert(divesetstats !=
NULL);
648assert(divesetstats !=
NULL);
714assert(diveset !=
NULL);
724assert(diveset !=
NULL);
735assert(diveset !=
NULL);
747assert(diveset !=
NULL);
758assert(diveset !=
NULL);
768assert(diveset !=
NULL);
780assert(divesetstats !=
NULL);
783divesetstats->
nlps++;
794assert(diveset !=
NULL);
816assert(diveset !=
NULL);
823 for( c = 0; c < 4; ++c )
845assert(diveset->divesetgetscore !=
NULL);
846assert(candscore !=
NULL);
847assert(roundup !=
NULL);
848assert(divecand !=
NULL);
851 SCIP_CALL( diveset->divesetgetscore(
set->scip, diveset, divetype, divecand, divecandsol, divecandfrac,
852candscore, roundup) );
865assert(diveset !=
NULL);
866assert(available !=
NULL);
868 if( diveset->divesetavailable ==
NULL)
873 SCIP_CALL( diveset->divesetavailable(
set->scip, diveset, available) );
887assert(heur !=
NULL);
891 if( heur->heurcopy !=
NULL)
929assert(heur !=
NULL);
930assert(name !=
NULL);
931assert(desc !=
NULL);
933assert(freqofs >= 0);
934assert(heurexec !=
NULL);
941(*heur)->dispchar = dispchar;
942(*heur)->priority = priority;
943(*heur)->freq = freq;
944(*heur)->freqofs = freqofs;
945(*heur)->maxdepth = maxdepth;
946(*heur)->delaypos = -1;
947(*heur)->timingmask = timingmask;
948(*heur)->usessubscip = usessubscip;
949(*heur)->heurcopy = heurcopy;
950(*heur)->heurfree = heurfree;
951(*heur)->heurinit = heurinit;
952(*heur)->heurexit = heurexit;
953(*heur)->heurinitsol = heurinitsol;
954(*heur)->heurexitsol = heurexitsol;
955(*heur)->heurexec = heurexec;
956(*heur)->heurdata = heurdata;
960(*heur)->nsolsfound = 0;
961(*heur)->nbestsolsfound = 0;
962(*heur)->initialized =
FALSE;
963(*heur)->divesets =
NULL;
964(*heur)->ndivesets = 0;
970&(*heur)->priority,
TRUE, priority, INT_MIN/4, INT_MAX/4,
973(void)
SCIPsnprintf(paramdesc,
SCIP_MAXSTRLEN,
"frequency for calling primal heuristic <%s> (-1: never, 0: only at depth freqofs)", name);
1013assert(heur !=
NULL);
1014assert(name !=
NULL);
1015assert(desc !=
NULL);
1017assert(freqofs >= 0);
1018assert(heurexec !=
NULL);
1020 SCIP_CALL_FINALLY(
doHeurCreate(heur,
set, messagehdlr, blkmem, name, desc, dispchar, priority, freq, freqofs,
1021maxdepth, timingmask, usessubscip, heurcopy, heurfree, heurinit, heurexit, heurinitsol, heurexitsol, heurexec,
1035assert(heur !=
NULL);
1036 if( *heur ==
NULL)
1038assert(!(*heur)->initialized);
1040assert((*heur)->divesets !=
NULL|| (*heur)->ndivesets == 0);
1043 if( (*heur)->heurfree !=
NULL)
1048 for( d = 0; d < (*heur)->ndivesets; ++d )
1050assert((*heur)->divesets[d] !=
NULL);
1070assert(heur !=
NULL);
1079 if(
set->misc_resetstat )
1093 if( heur->heurinit !=
NULL)
1105 for( d = 0; d < heur->
ndivesets; ++d )
1122assert(heur !=
NULL);
1131 if( heur->heurexit !=
NULL)
1152assert(heur !=
NULL);
1162 if( heur->heurinitsol !=
NULL)
1182assert(heur !=
NULL);
1186 if( heur->heurexitsol !=
NULL)
1204 intlpstateforkdepth,
1215execute = heur->
freq>= 0;
1223execute = (heur->
freq> 0 && depth >= heur->
freqofs 1225!= (lpstateforkdepth + heur->
freq- heur->
freqofs) / heur->
freq));
1234execute = execute || (depth == heur->
freqofs&& heur->
freq== 0);
1240execute = execute || (heur->
delaypos>= 0);
1257execute = execute && (heur->
timingmask& heurtiming) > 0;
1268 intlpstateforkdepth,
1271 int* ndelayedheurs,
1278assert(heur !=
NULL);
1279assert(heur->heurexec !=
NULL);
1280assert(heur->
freq>= -1);
1285assert(primal !=
NULL);
1287assert(ndelayedheurs !=
NULL);
1288assert(result !=
NULL);
1315 SCIP_CALL( heur->heurexec(
set->scip, heur, heurtiming, nodeinfeasible, result) );
1327 SCIPerrorMessage(
"execution method of primal heuristic <%s> returned invalid result <%d>\n",
1328heur->
name, *result);
1348 SCIPsetDebugMsg(
set,
"delaying execution of primal heuristic <%s> in depth %d (delaypos: %d), heur was%s delayed before, had delaypos %d\n",
1352 if( heur->
delaypos!= *ndelayedheurs )
1368assert(heur !=
NULL);
1379assert(heur !=
NULL);
1392assert(heur !=
NULL);
1394heur->heurcopy = heurcopy;
1403assert(heur !=
NULL);
1405heur->heurfree = heurfree;
1414assert(heur !=
NULL);
1416heur->heurinit = heurinit;
1425assert(heur !=
NULL);
1427heur->heurexit = heurexit;
1436assert(heur !=
NULL);
1438heur->heurinitsol = heurinitsol;
1447assert(heur !=
NULL);
1449heur->heurexitsol = heurexitsol;
1457assert(heur !=
NULL);
1459 returnheur->
name;
1467assert(heur !=
NULL);
1469 returnheur->
desc;
1477assert(heur !=
NULL);
1487assert(heur !=
NULL);
1498assert(heur !=
NULL);
1508assert(heur !=
NULL);
1518assert(heur !=
NULL);
1530assert(heur !=
NULL);
1542assert(heur !=
NULL);
1544 returnheur->
freq;
1553assert(heur !=
NULL);
1563assert(heur !=
NULL);
1573assert(heur !=
NULL);
1583assert(heur !=
NULL);
1593assert(heur !=
NULL);
1603assert(heur !=
NULL);
1613assert(heur !=
NULL);
1624assert(heur !=
NULL);
1635assert(heur !=
NULL);
1645assert(heur !=
NULL);
1655assert(heur !=
NULL);
1665assert(heur !=
NULL);
1709 intcurrentdistance;
1719assert(startvars !=
NULL);
1720assert(nstartvars >= 1);
1721assert(distances !=
NULL);
1722assert(maxdistance >= 0);
1730nbinintvars = nbinvars + nintvars;
1736 if( vargraph ==
NULL)
1739assert(vargraph !=
NULL);
1740localvargraph =
TRUE;
1743localvargraph =
FALSE;
1749 for( i = 0; i < nvars; ++i )
1758 for( i = 0; i < nstartvars; ++i )
1761assert(probindex >= 0);
1763distances[probindex] = 0;
1764queue[i] = probindex;
1767 if( probindex < nbinintvars )
1771nextlvlidx = nvars - 1;
1780currvar = vars[queue[currlvlidx]];
1782currentdistance = distances[varpos];
1783assert(currentdistance >= 0);
1786assert(currentdistance <= maxdistance);
1789 if( currentdistance == maxdistance )
1792assert(varpos >= 0);
1795 for( c = 0; c < vargraph->
nvarconss[varpos]; ++c )
1819 for( v = 0; v < nconsvars; ++v )
1823assert(nextvar !=
NULL);
1828assert(nextvarpos >= 0);
1831 if( distances[nextvarpos] == -1 )
1833distances[nextvarpos] = currentdistance + 1;
1834queue[nextlvlidx] = nextvarpos;
1835nextlvlidx -= increment;
1838 if( nextvarpos < nbinintvars )
1847queue[currlvlidx] = -1;
1848currlvlidx += increment;
1851 if( currlvlidx == nvars || currlvlidx == 0 || queue[currlvlidx] == -1 || currlvlidx == nextlvlidx )
1854 if( nvarshit >= maxvars || nbinintvarshit >= maxbinintvars )
1860 if( increment == +1 )
1862currlvlidx = nvars - 1;
1869nextlvlidx = nvars - 1;
1874 while( queue[currlvlidx] != -1 && distances[queue[currlvlidx]] >= currentdistance );
1880 if( localvargraph )
1899 int* nrelaxedconstraints
1910assert(vargraph !=
NULL);
1918 if( nrelaxedconstraints !=
NULL)
1919*nrelaxedconstraints = 0;
1921relaxlimit = (int)(relaxdensity * nvars);
1923 for( c = 0; c < nconss; ++c )
1941 if( relaxdenseconss && nconsvars >= relaxlimit )
1943 if( nrelaxedconstraints !=
NULL)
1944++(*nrelaxedconstraints);
1956 for( v = 0; v < nconsvars; ++v )
2003 int* nrelaxedconstraints
2010assert(vargraph !=
NULL);
2021SCIPhashKeyEqPtr, SCIPhashKeyValPtr,
NULL) );
2043assert(vargraph !=
NULL);
2047 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_DECL_SORTPTRCOMP(SCIPheurComp)
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 SCIPheurSetCopy(SCIP_HEUR *heur, SCIP_DECL_HEURCOPY((*heurcopy)))
void SCIPheurSetInitsol(SCIP_HEUR *heur, SCIP_DECL_HEURINITSOL((*heurinitsol)))
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)), SCIP_DECL_DIVESETAVAILABLE((*divesetavailable)))
void SCIPheurEnableOrDisableClocks(SCIP_HEUR *heur, SCIP_Bool enable)
SCIP_RETCODE SCIPdivesetIsAvailable(SCIP_DIVESET *diveset, SCIP_SET *set, SCIP_Bool *available)
void SCIPheurSetFree(SCIP_HEUR *heur, SCIP_DECL_HEURFREE((*heurfree)))
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)
void SCIPheurSetInit(SCIP_HEUR *heur, SCIP_DECL_HEURINIT((*heurinit)))
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 SCIPheurSetExitsol(SCIP_HEUR *heur, SCIP_DECL_HEUREXITSOL((*heurexitsol)))
void SCIPheurSetExit(SCIP_HEUR *heur, SCIP_DECL_HEUREXIT((*heurexit)))
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)
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)
SCIP_Bool SCIPheurShouldBeExecuted(SCIP_HEUR *heur, int depth, int lpstateforkdepth, SCIP_HEURTIMING heurtiming, SCIP_Bool *delayed)
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)
static SCIP_DECL_PARAMCHGD(paramChgdHeurPriority)
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 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
SCIP_HASHTABLE * visitedconss
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
struct SCIP_ParamData SCIP_PARAMDATA
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
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4