SCIP_EventhdlrData
127 charlogregression_xtype;
130 char* improvesetname;
135 chartransitionmethod;
157 intnnondefaultparams;
158 intnondefaultparamssize;
163 intnnodesbelowincumbent;
186 if( estim1 < estim2 )
188 else if( estim1 > estim2 )
199 if( number1 < number2 )
201 else if( number1 > number2 )
221assert(eventhdlrdata->depthinfos !=
NULL);
224 for( n = 0; n <
nnodes; ++n )
248assert(pos >= 0 && pos < depthinfo->nminnodes);
249assert(depthinfo->
minnodes[pos] == node);
252++eventhdlrdata->nrank1nodes;
257++eventhdlrdata->nnodesbelowincumbent;
261eventhdlrdata->nnodesleft +=
nnodes;
277assert(node !=
NULL);
293--eventhdlrdata->nrank1nodes;
311 returneventhdlrdata->nrank1nodes;
330 returneventhdlrdata->nnodesbelowincumbent;
355assert(eventhdlrdata !=
NULL);
358 for( d = 0; d < eventhdlrdata->maxdepth; ++d )
359eventhdlrdata->depthinfos[d]->nminnodes = 0;
361eventhdlrdata->nrank1nodes = 0;
362eventhdlrdata->nnodesbelowincumbent = 0;
363eventhdlrdata->nnodesleft = 0;
365nleaves = nchildren = nsiblings = 0;
377eventhdlrdata->newbestsol =
FALSE;
390assert(depthinfo !=
NULL);
397(*depthinfo)->nsolvednodes = 0;
398(*depthinfo)->nminnodes = 0;
399(*depthinfo)->minnodescapacity = 2;
415assert(depthinfo !=
NULL);
416assert(*depthinfo !=
NULL);
417assert((*depthinfo)->minnodes !=
NULL);
437assert(node !=
NULL);
438assert(eventhdlrdata !=
NULL);
442assert(depthinfo !=
NULL);
453eventhdlrdata->nnodesbelowincumbent--;
460--(eventhdlrdata->nrank1nodes);
467--eventhdlrdata->nnodesleft;
482oldsize = eventhdlrdata->maxdepth;
491 else if( nodedepth + 1 >= eventhdlrdata->maxdepth )
493assert(nodedepth > 0);
495newsize = 2 * nodedepth;
499 if( newsize > oldsize )
503 for( c = oldsize; c < newsize; ++c )
508eventhdlrdata->maxdepth = newsize;
510assert(newsize > nodedepth);
524assert(node !=
NULL);
525assert(eventhdlrdata !=
NULL);
567 for( n = 0; n <
nnodes; ++n )
577 for( n = 0; n <
nnodes; ++n )
587 for( n = 0; n <
nnodes; ++n )
607 switch( eventhdlrdata->logregression_xtype )
655assert(eventhdlrdata !=
NULL);
657regression = eventhdlrdata->regression;
658assert(regression !=
NULL);
664currentx =
getX(
scip, eventhdlrdata);
700 return((
SCIPgetNNodes(
scip) > eventhdlrdata->nodeoffset) && (eventhdlrdata->nnodesbelowincumbent == 0));
735lambda = (axisintercept - primalbound) / (firstprimalbound - primalbound);
754referencevalue = eventhdlrdata->optimalvalue;
761 if(
EPSZ((primalbound - referencevalue)/max, 1e-9) )
778 switch( eventhdlrdata->transitionmethod )
838 else if( eventhdlrdata->solvingphase !=
SOLVINGPHASE_PROOF|| eventhdlrdata->fallback )
855 switch(eventhdlrdata->solvingphase)
868 SCIPdebugMsg(
scip,
"Unknown solving phase: %d -> ABORT!\n ", eventhdlrdata->solvingphase);
887 char* paramfilename =
NULL;
890 switch(eventhdlrdata->solvingphase)
893paramfilename = eventhdlrdata->feassetname;
896paramfilename = eventhdlrdata->improvesetname;
899paramfilename = eventhdlrdata->proofsetname;
903 SCIPdebugMsg(
scip,
"Unknown solving phase: %d -> ABORT!\n ", eventhdlrdata->solvingphase);
907assert(paramfilename !=
NULL);
913file = fopen(paramfilename,
"r");
918 SCIPwarningMessage(
scip,
"Parameter file <%s> not found--keeping settings as before.\n", paramfilename);
942 const char* relevantparams[] = {
945 "limits/totalnodes",
946 "limits/stallnodes",
953 "limits/maxorigsol",
955 "limits/autorestartnodes",
957 "solvingphases/enabled",
958 "solvingphases/fallback",
959 "solvingphases/interruptoptimal",
960 "solvingphases/nodeoffset",
961 "solvingphases/feassetname",
962 "solvingphases/proofsetname",
963 "solvingphases/optimalvalue",
964 "solvingphases/improvesetname",
965 "solvingphases/testmode",
966 "solvingphases/transitionmethod",
967 "solvingphases/useemphsettings",
968 "solvingphases/userestart1to2",
969 "solvingphases/userestart2to3",
970 "solvingphases/xtype" 972 intnrelevantparams = 28;
975 for( p = 0; p < nrelevantparams; ++p )
988 for( p = 0; p < eventhdlrdata->nnondefaultparams; ++p )
1014 if( eventhdlrdata->useemphsettings )
1048oldsolvingphase = eventhdlrdata->solvingphase;
1054 if( oldsolvingphase == eventhdlrdata->solvingphase )
1058 if( eventhdlrdata->solvingphase ==
SOLVINGPHASE_PROOF&& eventhdlrdata->transitionmethod ==
'o'&&
1059eventhdlrdata->interruptoptimal )
1070 else if( eventhdlrdata->solvingphase ==
SOLVINGPHASE_PROOF&& eventhdlrdata->userestart2to3 )
1099regressionx =
getX(
scip, eventhdlrdata);
1103 if(
SCIPisEQ(
scip, eventhdlrdata->lastx, regressionx) )
1110eventhdlrdata->lastx = regressionx;
1111eventhdlrdata->lasty = regressiony;
1127 switch( eventtype )
1131eventhdlrdata->newbestsol =
TRUE;
1155eventhdlrdata->newbestsol =
FALSE;
1190assert(eventhdlrdata !=
NULL);
1194eventhdlrdata->logreached =
TRUE;
1200eventhdlrdata->rank1reached =
TRUE;
1207eventhdlrdata->estimatereached =
TRUE;
1214eventhdlrdata->optimalreached =
TRUE;
1227#ifdef SCIP_DISABLED_CODE 1232assert(eventhdlr !=
NULL);
1241#define eventCopySolvingphase NULL 1251assert(eventhdlr !=
NULL);
1255assert(eventhdlrdata !=
NULL);
1273eventhdlrdata->depthinfos =
NULL;
1274eventhdlrdata->maxdepth = 0;
1275eventhdlrdata->nnodesbelowincumbent = 0;
1276eventhdlrdata->nnodesleft = 0;
1277eventhdlrdata->nrank1nodes = 0;
1279eventhdlrdata->newbestsol =
FALSE;
1294 if( eventhdlrdata->maxdepth > 0 )
1299 for( c = 0; c < eventhdlrdata->maxdepth; ++c )
1306eventhdlrdata->maxdepth = 0;
1326eventhdlrdata->nnondefaultparams = 0;
1327eventhdlrdata->nondefaultparams =
NULL;
1328eventhdlrdata->nondefaultparamssize = 0;
1331 for( p = 0; p < nparams; ++p )
1338 if( eventhdlrdata->nnondefaultparams == 0 )
1341eventhdlrdata->nondefaultparamssize = 8;
1343 else if( eventhdlrdata->nnondefaultparams == eventhdlrdata->nondefaultparamssize )
1345eventhdlrdata->nondefaultparamssize *= 2;
1347eventhdlrdata->nnondefaultparams, eventhdlrdata->nondefaultparamssize) );
1350eventhdlrdata->nondefaultparams[eventhdlrdata->nnondefaultparams++] = param;
1364assert(eventhdlr !=
NULL);
1368assert(eventhdlrdata !=
NULL);
1374eventhdlrdata->optimalreached =
FALSE;
1375eventhdlrdata->logreached =
FALSE;
1376eventhdlrdata->rank1reached =
FALSE;
1377eventhdlrdata->estimatereached =
FALSE;
1378eventhdlrdata->nnondefaultparams = 0;
1379eventhdlrdata->nondefaultparams =
NULL;
1380eventhdlrdata->nondefaultparamssize = 0;
1383 if( eventhdlrdata->enabled )
1392 if( eventhdlrdata->enabled || eventhdlrdata->testmode )
1411assert(eventhdlr !=
NULL);
1415assert(eventhdlrdata !=
NULL);
1432assert(eventhdlr !=
NULL);
1443 if( eventhdlrdata->enabled )
1449 if( eventhdlrdata->testmode )
1462#define DISP_NAME_NRANK1NODES "nrank1nodes" 1463#define DISP_DESC_NRANK1NODES "current number of rank1 nodes left" 1464#define DISP_HEAD_NRANK1NODES "rank1" 1465#define DISP_WIDT_NRANK1NODES 7 1466#define DISP_PRIO_NRANK1NODES 40000 1467#define DISP_POSI_NRANK1NODES 500 1468#define DISP_STRI_NRANK1NODES TRUE 1474assert(disp !=
NULL);
1485#define DISP_NAME_NNODESBELOWINC "nnodesbelowinc" 1486#define DISP_DESC_NNODESBELOWINC "current number of nodes with an estimate better than the current incumbent" 1487#define DISP_HEAD_NNODESBELOWINC "nbInc" 1488#define DISP_WIDT_NNODESBELOWINC 6 1489#define DISP_PRIO_NNODESBELOWINC 40000 1490#define DISP_POSI_NNODESBELOWINC 550 1491#define DISP_STRI_NNODESBELOWINC TRUE 1497assert(disp !=
NULL);
1516eventhdlrdata =
NULL;
1518assert(eventhdlrdata !=
NULL);
1520eventhdlrdata->feassetname =
NULL;
1521eventhdlrdata->improvesetname =
NULL;
1522eventhdlrdata->proofsetname =
NULL;
1524eventhdlrdata->depthinfos =
NULL;
1525eventhdlrdata->maxdepth = 0;
1526eventhdlrdata->eventfilterpos = -1;
1529eventhdlrdata->regression =
NULL;
1536eventExecSolvingphase, eventhdlrdata) );
1537assert(eventhdlr !=
NULL);
1541 NULL,
NULL,
NULL,
NULL,
NULL,
NULL, dispOutputNRank1Nodes,
NULL,
DISP_WIDT_NRANK1NODES,
DISP_PRIO_NRANK1NODES,
DISP_POSI_NRANK1NODES,
1544 NULL,
NULL,
NULL,
NULL,
NULL,
NULL, dispOutputNnodesbelowinc,
NULL,
DISP_WIDT_NNODESBELOWINC,
DISP_PRIO_NNODESBELOWINC,
DISP_POSI_NNODESBELOWINC,
1576 "transition method: Possible options are 'e'stimate,'l'ogarithmic regression,'o'ptimal-value based,'r'ank-1",
1579 "should the event handler interrupt the solving process after optimal solution was found?",
1583 "should a restart be applied between the feasibility and improvement phase?",
1587 "should a restart be applied between the improvement and the proof phase?",
1598 "should emphasis settings for the solving phases be used, or settings files?",
#define DEFAULT_USEEMPHSETTINGS
static SCIP_Bool checkRankOneTransition(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_RETCODE releaseNodeInformation(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_NODE *node)
#define DISP_PRIO_NNODESBELOWINC
#define DEFAULT_LOGREGRESSION_XTYPE
#define DISP_POSI_NRANK1NODES
#define DEFAULT_USERESTART1TO2
static SCIP_DECL_EVENTINIT(eventInitSolvingphase)
#define DEFAULT_INTERRUPTOPTIMAL
static SCIP_DECL_EVENTEXEC(eventExecSolvingphase)
static SCIP_Bool transitionPhase3(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_RETCODE applySolvingPhase(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_DESC_NRANK1NODES
static SCIP_Bool checkEstimateCriterion(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_RETCODE adaptSolverBehavior(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_HEAD_NNODESBELOWINC
static SCIP_RETCODE addNodesInformation(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_NODE **nodes, int nnodes)
#define LOGREGRESSION_XTYPES
static SCIP_Bool checkLogCriterion(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
@ SOLVINGPHASE_IMPROVEMENT
@ SOLVINGPHASE_FEASIBILITY
@ SOLVINGPHASE_UNINITIALIZED
static void testCriteria(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static int getNRank1Nodes(SCIP *scip)
static SCIP_DECL_SORTPTRCOMP(sortCompTreeinfo)
static SCIP_Real getX(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_DECL_EVENTFREE(eventFreeSolvingphase)
#define DISP_NAME_NNODESBELOWINC
#define DISP_WIDT_NNODESBELOWINC
enum SolvingPhase SOLVINGPHASE
static SCIP_DECL_EVENTINITSOL(eventInitsolSolvingphase)
#define DEFAULT_NODEOFFSET
static SCIP_DECL_EVENTEXIT(eventExitSolvingphase)
static SCIP_RETCODE collectNondefaultParams(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_DECL_EVENTEXITSOL(eventExitsolSolvingphase)
static void releaseNodeFromDepthInfo(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_NODE *node)
static SCIP_RETCODE fixOrUnfixRelevantParameters(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_Bool fix)
static void determineSolvingPhase(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_HEAD_NRANK1NODES
#define DEFAULT_TRANSITIONMETHOD
#define DISP_STRI_NRANK1NODES
static int getNNodesBelowIncumbent(SCIP *scip)
static void removeNode(SCIP_NODE *node, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_PRIO_NRANK1NODES
SCIP_RETCODE SCIPincludeEventHdlrSolvingphase(SCIP *scip)
static SCIP_RETCODE changeEmphasisParameters(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_WIDT_NRANK1NODES
static SCIP_RETCODE createDepthinfo(SCIP *scip, DEPTHINFO **depthinfo)
static SCIP_DECL_DISPOUTPUT(dispOutputNRank1Nodes)
static int checkLeavesBelowIncumbent(SCIP *scip)
static SCIP_Real getCurrentRegressionTangentAxisIntercept(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DEFAULT_USERESTART2TO3
#define DISP_POSI_NNODESBELOWINC
#define DISP_NAME_NRANK1NODES
#define eventCopySolvingphase
#define DISP_DESC_NNODESBELOWINC
static SCIP_RETCODE updateLogRegression(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_RETCODE freeDepthinfo(SCIP *scip, DEPTHINFO **depthinfo)
static SCIP_RETCODE recomputeNodeInformation(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define DISP_STRI_NNODESBELOWINC
static SCIP_RETCODE updateDataStructures(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_EVENTTYPE eventtype)
static SCIP_RETCODE ensureDepthInfoArraySize(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata, SCIP_NODE *node)
static SCIP_RETCODE changeParametersUsingSettingsFiles(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
static SCIP_Bool checkOptimalSolution(SCIP *scip, SCIP_EVENTHDLRDATA *eventhdlrdata)
#define TRANSITIONMETHODS
eventhdlr for solving phase dependent parameter adjustment
SCIP_STAGE SCIPgetStage(SCIP *scip)
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
SCIP_MESSAGEHDLR * SCIPgetMessagehdlr(SCIP *scip)
void SCIPwarningMessage(SCIP *scip, const char *formatstr,...)
SCIP_RETCODE SCIPaddLongintParam(SCIP *scip, const char *name, const char *desc, SCIP_Longint *valueptr, SCIP_Bool isadvanced, SCIP_Longint defaultvalue, SCIP_Longint minvalue, SCIP_Longint maxvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPaddCharParam(SCIP *scip, const char *name, const char *desc, char *valueptr, SCIP_Bool isadvanced, char defaultvalue, const char *allowedvalues, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
int SCIPgetNParams(SCIP *scip)
SCIP_RETCODE SCIPaddStringParam(SCIP *scip, const char *name, const char *desc, char **valueptr, SCIP_Bool isadvanced, const char *defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPaddRealParam(SCIP *scip, 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)
SCIP_RETCODE SCIPreadParams(SCIP *scip, const char *filename)
SCIP_RETCODE SCIPunfixParam(SCIP *scip, const char *name)
SCIP_RETCODE SCIPsetEmphasis(SCIP *scip, SCIP_PARAMEMPHASIS paramemphasis, SCIP_Bool quiet)
SCIP_PARAM ** SCIPgetParams(SCIP *scip)
SCIP_RETCODE SCIPaddBoolParam(SCIP *scip, const char *name, const char *desc, SCIP_Bool *valueptr, SCIP_Bool isadvanced, SCIP_Bool defaultvalue, SCIP_DECL_PARAMCHGD((*paramchgd)), SCIP_PARAMDATA *paramdata)
SCIP_RETCODE SCIPfixParam(SCIP *scip, const char *name)
const char * SCIPdispGetName(SCIP_DISP *disp)
void SCIPdispInt(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, int val, int width)
SCIP_RETCODE SCIPincludeDisp(SCIP *scip, const char *name, const char *desc, const char *header, SCIP_DISPSTATUS dispstatus, SCIP_DECL_DISPCOPY((*dispcopy)), SCIP_DECL_DISPFREE((*dispfree)), SCIP_DECL_DISPINIT((*dispinit)), SCIP_DECL_DISPEXIT((*dispexit)), SCIP_DECL_DISPINITSOL((*dispinitsol)), SCIP_DECL_DISPEXITSOL((*dispexitsol)), SCIP_DECL_DISPOUTPUT((*dispoutput)), SCIP_DISPDATA *dispdata, int width, int priority, int position, SCIP_Bool stripline)
SCIP_RETCODE SCIPsetEventhdlrInitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINITSOL((*eventinitsol)))
SCIP_RETCODE SCIPsetEventhdlrCopy(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTCOPY((*eventcopy)))
SCIP_RETCODE SCIPincludeEventhdlrBasic(SCIP *scip, SCIP_EVENTHDLR **eventhdlrptr, const char *name, const char *desc, SCIP_DECL_EVENTEXEC((*eventexec)), SCIP_EVENTHDLRDATA *eventhdlrdata)
SCIP_EVENTHDLR * SCIPfindEventhdlr(SCIP *scip, const char *name)
const char * SCIPeventhdlrGetName(SCIP_EVENTHDLR *eventhdlr)
SCIP_EVENTHDLRDATA * SCIPeventhdlrGetData(SCIP_EVENTHDLR *eventhdlr)
SCIP_RETCODE SCIPsetEventhdlrExitsol(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXITSOL((*eventexitsol)))
void SCIPeventhdlrSetData(SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTHDLRDATA *eventhdlrdata)
SCIP_RETCODE SCIPsetEventhdlrFree(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTFREE((*eventfree)))
SCIP_RETCODE SCIPsetEventhdlrExit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTEXIT((*eventexit)))
SCIP_RETCODE SCIPsetEventhdlrInit(SCIP *scip, SCIP_EVENTHDLR *eventhdlr, SCIP_DECL_EVENTINIT((*eventinit)))
SCIP_EVENTTYPE SCIPeventGetType(SCIP_EVENT *event)
SCIP_RETCODE SCIPcatchEvent(SCIP *scip, SCIP_EVENTTYPE eventtype, SCIP_EVENTHDLR *eventhdlr, SCIP_EVENTDATA *eventdata, int *filterpos)
SCIP_NODE * SCIPeventGetNode(SCIP_EVENT *event)
#define SCIPfreeBlockMemoryArray(scip, ptr, num)
#define SCIPallocBlockMemoryArray(scip, ptr, num)
#define SCIPreallocBlockMemoryArray(scip, ptr, oldnum, newnum)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPfreeBlockMemoryArrayNull(scip, ptr, num)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)
SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)
SCIP_Real SCIPnodeGetEstimate(SCIP_NODE *node)
int SCIPnodeGetDepth(SCIP_NODE *node)
int SCIPgetNSols(SCIP *scip)
SCIP_RETCODE SCIPrestartSolve(SCIP *scip)
SCIP_RETCODE SCIPinterruptSolve(SCIP *scip)
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_Longint SCIPgetNNodes(SCIP *scip)
SCIP_Real SCIPgetFirstPrimalBound(SCIP *scip)
SCIP_Longint SCIPgetNTotalNodes(SCIP *scip)
SCIP_Longint SCIPgetNDelayedCutoffs(SCIP *scip)
SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
SCIP_Real SCIPgetSolvingTime(SCIP *scip)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisNegative(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
int SCIPgetNChildren(SCIP *scip)
SCIP_RETCODE SCIPgetOpenNodesData(SCIP *scip, SCIP_NODE ***leaves, SCIP_NODE ***children, SCIP_NODE ***siblings, int *nleaves, int *nchildren, int *nsiblings)
SCIP_RETCODE SCIPgetChildren(SCIP *scip, SCIP_NODE ***children, int *nchildren)
int SCIPgetNNodesLeft(SCIP *scip)
SCIP_RETCODE SCIPgetLeaves(SCIP *scip, SCIP_NODE ***leaves, int *nleaves)
SCIP_RETCODE SCIPgetSiblings(SCIP *scip, SCIP_NODE ***siblings, int *nsiblings)
SCIP_NODE * SCIPgetCurrentNode(SCIP *scip)
void SCIPregressionRemoveObservation(SCIP_REGRESSION *regression, SCIP_Real x, SCIP_Real y)
void SCIPregressionAddObservation(SCIP_REGRESSION *regression, SCIP_Real x, SCIP_Real y)
SCIP_Real SCIPregressionGetIntercept(SCIP_REGRESSION *regression)
int SCIPregressionGetNObservations(SCIP_REGRESSION *regression)
void SCIPregressionFree(SCIP_REGRESSION **regression)
SCIP_RETCODE SCIPregressionCreate(SCIP_REGRESSION **regression)
void SCIPregressionReset(SCIP_REGRESSION *regression)
SCIP_Real SCIPregressionGetSlope(SCIP_REGRESSION *regression)
SCIP_Bool SCIPsortedvecFindPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *val, int len, int *pos)
void SCIPsortedvecInsertPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), void *keyval, int *len, int *pos)
void SCIPsortedvecDelPosPtr(void **ptrarray, SCIP_DECL_SORTPTRCOMP((*ptrcomp)), int pos, int *len)
SCIP_Bool SCIPparamIsDefault(SCIP_PARAM *param)
const char * SCIPparamGetName(SCIP_PARAM *param)
SCIP_Bool SCIPparamIsFixed(SCIP_PARAM *param)
public methods for displaying runtime statistics
public methods for managing events
public methods for message output
public data structures and miscellaneous methods
methods for sorting joint arrays of various types
public methods for handling parameter settings
public methods for branch and bound tree
public methods for display handler plugins
public methods for event handler plugins and event handlers
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for solutions
public methods for querying solving statistics
public methods for timing
public methods for the branch-and-bound tree
#define SCIP_EVENTTYPE_NODEFOCUSED
struct SCIP_EventhdlrData SCIP_EVENTHDLRDATA
#define SCIP_EVENTTYPE_NODEBRANCHED
#define SCIP_DECL_EVENTCOPY(x)
#define SCIP_EVENTTYPE_BESTSOLFOUND
@ SCIP_PARAMEMPHASIS_DEFAULT
@ SCIP_PARAMEMPHASIS_PHASEIMPROVE
@ SCIP_PARAMEMPHASIS_PHASEPROOF
@ SCIP_PARAMEMPHASIS_PHASEFEAS
enum SCIP_ParamEmphasis SCIP_PARAMEMPHASIS
enum SCIP_Retcode SCIP_RETCODE
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