SCIP_NodeselData
105assert(nodesel !=
NULL);
120assert(nodesel !=
NULL);
126assert(nodeseldata !=
NULL);
145assert(nodesel !=
NULL);
148assert(selnode !=
NULL);
154assert(nodeseldata !=
NULL);
157minplungedepth = nodeseldata->minplungedepth;
158maxplungedepth = nodeseldata->maxplungedepth;
159maxplungequot = nodeseldata->maxplungequot;
160 if( minplungedepth == -1 )
164minplungedepth += 10;
165 if( maxplungedepth >= 0 )
166minplungedepth =
MIN(minplungedepth, maxplungedepth);
168 if( maxplungedepth == -1 )
170maxplungedepth =
MAX(maxplungedepth, minplungedepth);
171bestnodefreq = (nodeseldata->bestnodefreq == 0 ? INT_MAX : nodeseldata->bestnodefreq);
175 if( plungedepth > maxplungedepth )
178 SCIPdebugMsg(
scip,
"plungedepth: [%d,%d], cur: %d -> abort plunging\n", minplungedepth, maxplungedepth, plungedepth);
201cutoffbound = lowerbound + 0.2 * (cutoffbound - lowerbound);
204 if( plungedepth < minplungedepth )
209maxbound = lowerbound + maxplungequot * (cutoffbound - lowerbound);
212 SCIPdebugMsg(
scip,
"plungedepth: [%d,%d], cur: %d, bounds: [%g,%g], maxbound: %g\n",
213minplungedepth, maxplungedepth, plungedepth, lowerbound, cutoffbound, maxbound);
275assert(nodesel !=
NULL);
280assert(nodeseldata !=
NULL);
308 if( depth1 < depth2 )
310 else if( depth1 > depth2 )
342nodeselSelectHybridestim, nodeselCompHybridestim, nodeseldata) );
344assert(nodesel !=
NULL);
351 "nodeselection/hybridestim/minplungedepth",
352 "minimal plunging depth, before new best node may be selected (-1 for dynamic setting)",
355 "nodeselection/hybridestim/maxplungedepth",
356 "maximal plunging depth, before new best node is forced to be selected (-1 for dynamic setting)",
359 "nodeselection/hybridestim/maxplungequot",
360 "maximal quotient (estimate - lowerbound)/(cutoffbound - lowerbound) where plunging is performed",
363 "nodeselection/hybridestim/bestnodefreq",
364 "frequency at which the best node instead of the hybrid best estimate / best bound is selected (0: never)",
367 "nodeselection/hybridestim/estimweight",
368 "weight of estimate value in node selection score (0: pure best bound search, 1: pure best estimate search)",
SCIP_RETCODE SCIPincludeNodeselHybridestim(SCIP *scip)
SCIP_RETCODE SCIPaddIntParam(SCIP *scip, 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 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)
#define SCIPfreeBlockMemory(scip, ptr)
#define SCIPallocBlockMemory(scip, ptr)
SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)
SCIP_Real SCIPnodeGetLowerbound(SCIP_NODE *node)
SCIP_Real SCIPnodeGetEstimate(SCIP_NODE *node)
int SCIPnodeGetDepth(SCIP_NODE *node)
SCIP_RETCODE SCIPincludeNodeselBasic(SCIP *scip, SCIP_NODESEL **nodesel, const char *name, const char *desc, int stdpriority, int memsavepriority, SCIP_DECL_NODESELSELECT((*nodeselselect)), SCIP_DECL_NODESELCOMP((*nodeselcomp)), SCIP_NODESELDATA *nodeseldata)
void SCIPnodeselSetData(SCIP_NODESEL *nodesel, SCIP_NODESELDATA *nodeseldata)
SCIP_RETCODE SCIPsetNodeselFree(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELFREE((*nodeselfree)))
SCIP_NODESELDATA * SCIPnodeselGetData(SCIP_NODESEL *nodesel)
SCIP_RETCODE SCIPsetNodeselCopy(SCIP *scip, SCIP_NODESEL *nodesel, SCIP_DECL_NODESELCOPY((*nodeselcopy)))
const char * SCIPnodeselGetName(SCIP_NODESEL *nodesel)
SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
int SCIPgetMaxDepth(SCIP *scip)
SCIP_Longint SCIPgetNNodes(SCIP *scip)
SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip)
SCIP_Real SCIPgetLowerbound(SCIP *scip)
SCIP_Longint SCIPgetNNodeLPIterations(SCIP *scip)
SCIP_Real SCIPgetCutoffbound(SCIP *scip)
SCIP_Real SCIPinfinity(SCIP *scip)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisGT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_NODE * SCIPgetBestSibling(SCIP *scip)
SCIP_NODE * SCIPgetBestChild(SCIP *scip)
SCIP_NODE * SCIPgetPrioSibling(SCIP *scip)
SCIP_NODE * SCIPgetBestNode(SCIP *scip)
int SCIPgetPlungeDepth(SCIP *scip)
SCIP_NODE * SCIPgetBestboundNode(SCIP *scip)
SCIP_NODE * SCIPgetPrioChild(SCIP *scip)
static SCIP_Real getNodeselScore(SCIP_NODE *node, SCIP_Real estimweight)
static SCIP_DECL_NODESELFREE(nodeselFreeHybridestim)
static SCIP_DECL_NODESELSELECT(nodeselSelectHybridestim)
#define NODESEL_MEMSAVEPRIORITY
static SCIP_DECL_NODESELCOPY(nodeselCopyHybridestim)
#define NODESEL_STDPRIORITY
static SCIP_DECL_NODESELCOMP(nodeselCompHybridestim)
node selector for hybrid best estimate / best bound search
public methods for message output
public methods for node selectors
public methods for branch and bound tree
public methods for memory management
public methods for message handling
public methods for node selector plugins
public methods for numerical tolerances
public methods for SCIP parameter handling
public methods for querying solving statistics
public methods for the branch-and-bound tree
struct SCIP_NodeselData SCIP_NODESELDATA
enum SCIP_Retcode SCIP_RETCODE
enum SCIP_NodeType SCIP_NODETYPE
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