event handler for solving phase dependent parameter adjustment
this event handler provides methods to support parameter adjustment at every new of the three solving phases:
Of course, this event handler cannot detect by itself whether a given incumbent is optimal prior to termination of the solution process. It rather uses heuristic transitions based on properties of the search tree in order to determine the appropriate stage. Settings files can be passed to this event handler for each of the three phases.
This approach of phase-based parameter adjustment was first presented in
Gregor Hendel Empirical Analysis of Solving Phases in Mixed-Integer Programming Master thesis, Technical University Berlin (2014)
with the main results also available from
Gregor Hendel Exploiting solving phases in mixed-integer programs (2015)
Definition in file event_solvingphase.c.
Go to the source code of this file.
Typedefs | |
typedef enum SolvingPhase | SOLVINGPHASE |
typedef struct DepthInfo | DEPTHINFO |
Enumerations | |
enum | SolvingPhase { SOLVINGPHASE_UNINITIALIZED = -1, SOLVINGPHASE_FEASIBILITY = 0, SOLVINGPHASE_IMPROVEMENT = 1, SOLVINGPHASE_PROOF = 2 } |
#define EVENTHDLR_NAME "solvingphase" |
Definition at line 47 of file event_solvingphase.c.
Referenced by getNNodesBelowIncumbent(), getNRank1Nodes(), SCIP_DECL_EVENTEXIT(), SCIP_DECL_EVENTFREE(), SCIP_DECL_EVENTINIT(), SCIPincludeEventHdlrSolvingphase(), and testCriteria().
#define EVENTHDLR_DESC "event handler to adjust settings depending on current stage" |
Definition at line 48 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define EVENTHDLR_EVENT SCIP_EVENTTYPE_BESTSOLFOUND | SCIP_EVENTTYPE_NODEBRANCHED | SCIP_EVENTTYPE_NODEFOCUSED |
the actual event to be caught
Definition at line 50 of file event_solvingphase.c.
Referenced by SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EVENTINIT().
#define TRANSITIONMETHODS "elor" |
which heuristic transition method: (e)stimate based, (l)ogarithmic regression based, (o)ptimal value based (cheat!), (r)ank-1 node based?
Definition at line 51 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_SETNAME "-" |
default settings file name for solving phase setting files
Definition at line 54 of file event_solvingphase.c.
Referenced by changeParametersUsingSettingsFiles(), and SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_TRANSITIONMETHOD 'r' |
the default transition method
Definition at line 55 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_NODEOFFSET 50L |
default node offset before transition to proof phase is active
Definition at line 56 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_FALLBACK FALSE |
should the phase transition fall back to suboptimal phase?
Definition at line 57 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_INTERRUPTOPTIMAL FALSE |
should solving process be interrupted if optimal solution was found?
Definition at line 58 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_ENABLED FALSE |
should the event handler be executed?
Definition at line 60 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_TESTMODE FALSE |
should the event handler test the criteria?
Definition at line 61 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_USERESTART1TO2 FALSE |
should a restart be applied between the feasibility and improvement phase?
Definition at line 63 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_USERESTART2TO3 FALSE |
should a restart be applied between the improvement and the proof phase?
Definition at line 64 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_USEEMPHSETTINGS TRUE |
should emphasis settings be used for the different solving phases, or settings files?
Definition at line 65 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DEFAULT_LOGREGRESSION_XTYPE 'n' |
default type to use for log regression - (t)ime, (n)odes, (l)p iterations
Definition at line 68 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define LOGREGRESSION_XTYPES "lnt" |
available types for log regression - (t)ime, (n)odes, (l)p iterations
Definition at line 69 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define eventCopySolvingphase NULL |
copy method for event handler (called when SCIP copies plugins)
Definition at line 1220 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase(), and testCriteria().
#define DISP_NAME_NRANK1NODES "nrank1nodes" |
Definition at line 1445 of file event_solvingphase.c.
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPincludeEventHdlrSolvingphase().
#define DISP_DESC_NRANK1NODES "current number of rank1 nodes left" |
Definition at line 1446 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_HEAD_NRANK1NODES "rank1" |
Definition at line 1447 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_WIDT_NRANK1NODES 7 |
Definition at line 1448 of file event_solvingphase.c.
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPincludeEventHdlrSolvingphase().
#define DISP_PRIO_NRANK1NODES 40000 |
Definition at line 1449 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_POSI_NRANK1NODES 500 |
Definition at line 1450 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_STRI_NRANK1NODES TRUE |
Definition at line 1451 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_NAME_NNODESBELOWINC "nnodesbelowinc" |
Definition at line 1468 of file event_solvingphase.c.
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPincludeEventHdlrSolvingphase().
#define DISP_DESC_NNODESBELOWINC "current number of nodes with an estimate better than the current incumbent" |
Definition at line 1469 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_HEAD_NNODESBELOWINC "nbInc" |
Definition at line 1470 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_WIDT_NNODESBELOWINC 6 |
Definition at line 1471 of file event_solvingphase.c.
Referenced by SCIP_DECL_DISPOUTPUT(), and SCIPincludeEventHdlrSolvingphase().
#define DISP_PRIO_NNODESBELOWINC 40000 |
Definition at line 1472 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_POSI_NNODESBELOWINC 550 |
Definition at line 1473 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
#define DISP_STRI_NNODESBELOWINC TRUE |
Definition at line 1474 of file event_solvingphase.c.
Referenced by SCIPincludeEventHdlrSolvingphase().
typedef enum SolvingPhase SOLVINGPHASE |
Definition at line 82 of file event_solvingphase.c.
Definition at line 95 of file event_solvingphase.c.
enum SolvingPhase |
enumerator to represent the current solving phase
Definition at line 75 of file event_solvingphase.c.
|
static |
nodes are sorted first by their estimates, and if estimates are equal, by their number
Definition at line 146 of file event_solvingphase.c.
References addNodesInformation(), SCIP_Longint, SCIP_Real, SCIPnodeGetEstimate(), and SCIPnodeGetNumber().
|
static |
insert an array of open nodes (leaves/siblings/children) into the event handler data structures and update the transition information
scip | SCIP data structure |
eventhdlrdata | event handler data |
nodes | array of nodes |
nnodes | number of nodes |
Definition at line 183 of file event_solvingphase.c.
References DepthInfo::minestimate, DepthInfo::minnodes, DepthInfo::minnodescapacity, DepthInfo::nminnodes, nnodes, DepthInfo::nsolvednodes, removeNode(), SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_SIBLING, SCIP_OKAY, SCIP_Real, SCIPgetUpperbound(), SCIPisGE(), SCIPisLT(), SCIPnodeGetDepth(), SCIPnodeGetEstimate(), SCIPnodeGetType(), SCIPreallocBlockMemoryArray, and SCIPsortedvecInsertPtr().
Referenced by recomputeNodeInformation(), SCIP_DECL_SORTPTRCOMP(), and updateDataStructures().
|
static |
remove a node from the data structures of the event handler
node | node that should be removed |
eventhdlrdata | event handler data |
Definition at line 241 of file event_solvingphase.c.
References getNRank1Nodes(), DepthInfo::minnodes, DepthInfo::nminnodes, SCIP_Bool, SCIPnodeGetDepth(), SCIPsortedvecDelPosPtr(), and SCIPsortedvecFindPtr().
Referenced by addNodesInformation(), and releaseNodeFromDepthInfo().
|
static |
returns the current number of rank 1 nodes in the tree
scip | SCIP data structure |
Definition at line 272 of file event_solvingphase.c.
References EVENTHDLR_NAME, getNNodesBelowIncumbent(), SCIP_STAGE_SOLVING, SCIPeventhdlrGetData(), SCIPfindEventhdlr(), and SCIPgetStage().
Referenced by checkRankOneTransition(), removeNode(), SCIP_DECL_DISPOUTPUT(), and transitionPhase3().
|
static |
returns the current number of open nodes which have an estimate lower than the incumbent solution
scip | SCIP data structure |
Definition at line 291 of file event_solvingphase.c.
References EVENTHDLR_NAME, recomputeNodeInformation(), SCIP_STAGE_SOLVING, SCIPeventhdlrGetData(), SCIPfindEventhdlr(), and SCIPgetStage().
Referenced by getNRank1Nodes(), and SCIP_DECL_DISPOUTPUT().
|
static |
discards all previous node information and renews it
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 310 of file event_solvingphase.c.
References addNodesInformation(), createDepthinfo(), FALSE, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPgetOpenNodesData(), and SCIPgetStage().
Referenced by getNNodesBelowIncumbent(), releaseNodeInformation(), and updateDataStructures().
|
static |
allocates memory for a depth info
scip | SCIP data structure |
depthinfo | pointer to depth information structure |
Definition at line 357 of file event_solvingphase.c.
References freeDepthinfo(), SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, and SCIPinfinity().
Referenced by ensureDepthInfoArraySize(), and recomputeNodeInformation().
|
static |
frees depth information data structure
scip | SCIP data structure |
depthinfo | pointer to depth information structure |
Definition at line 382 of file event_solvingphase.c.
References releaseNodeFromDepthInfo(), SCIP_OKAY, SCIPfreeBlockMemory, and SCIPfreeBlockMemoryArray.
Referenced by createDepthinfo(), and SCIP_DECL_EVENTEXITSOL().
|
static |
removes the node itself and updates the data if this node defined an active estimate globally or locally at its depth level
scip | SCIP data structure |
eventhdlrdata | event handler data |
node | node to be removed from the data structures of the event handler |
Definition at line 401 of file event_solvingphase.c.
References ensureDepthInfoArraySize(), DepthInfo::minestimate, DepthInfo::minnodes, DepthInfo::nminnodes, DepthInfo::nsolvednodes, removeNode(), SCIPgetUpperbound(), SCIPisGT(), SCIPisLT(), SCIPnodeGetDepth(), and SCIPnodeGetEstimate().
Referenced by freeDepthinfo(), and releaseNodeInformation().
|
static |
ensures sufficient size for depthInfo array
scip | SCIP data structure |
eventhdlrdata | event handler data |
node | node to be removed from the data structures of the event handler |
Definition at line 445 of file event_solvingphase.c.
References createDepthinfo(), releaseNodeInformation(), SCIP_CALL, SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPnodeGetDepth(), and SCIPreallocBlockMemoryArray.
Referenced by releaseNodeFromDepthInfo(), and releaseNodeInformation().
|
static |
ensures the capacity of the event handler data structures and removes the current node
scip | SCIP data structure |
eventhdlrdata | event handler data |
node | node to be removed from the data structures of the event handler |
Definition at line 491 of file event_solvingphase.c.
References checkLeavesBelowIncumbent(), ensureDepthInfoArraySize(), recomputeNodeInformation(), releaseNodeFromDepthInfo(), SCIP_CALL, SCIP_OKAY, SCIPgetNDelayedCutoffs(), and SCIPgetNNodesLeft().
Referenced by ensureDepthInfoArraySize(), and updateDataStructures().
|
static |
ensures correctness of counters by explicitly summing up all children, leaves, and siblings with small estimates
Definition at line 528 of file event_solvingphase.c.
References getX(), nnodes, SCIP_OKAY, SCIP_Real, SCIPgetChildren(), SCIPgetLeaves(), SCIPgetNNodesLeft(), SCIPgetSiblings(), SCIPgetUpperbound(), SCIPisLT(), and SCIPnodeGetEstimate().
Referenced by releaseNodeInformation(), and updateDataStructures().
|
static |
get the point of the X axis for the regression according to the user choice of X type (time/nodes/iterations)
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 576 of file event_solvingphase.c.
References getCurrentRegressionTangentAxisIntercept(), log(), MAX, SCIP_Real, SCIP_STAGE_SOLVED, SCIP_STAGE_SOLVING, SCIPgetNLPIterations(), SCIPgetNTotalNodes(), SCIPgetSolvingTime(), and SCIPgetStage().
Referenced by checkLeavesBelowIncumbent(), getCurrentRegressionTangentAxisIntercept(), and updateLogRegression().
|
static |
get axis intercept of current tangent to logarithmic regression curve
scip | SCIP data structure |
eventhdlrdata | event handler data structure |
Definition at line 621 of file event_solvingphase.c.
References checkRankOneTransition(), getX(), SCIP_Bool, SCIP_Real, SCIPinfinity(), SCIPregressionGetIntercept(), SCIPregressionGetNObservations(), and SCIPregressionGetSlope().
Referenced by checkLogCriterion(), and getX().
|
static |
checks if rank-1 transition has been reached, that is, when all open nodes have a best-estimate higher than the best previously checked node at this depth
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 654 of file event_solvingphase.c.
References checkEstimateCriterion(), FALSE, getNRank1Nodes(), SCIP_Bool, SCIPgetNNodes(), and SCIPgetNSols().
Referenced by getCurrentRegressionTangentAxisIntercept(), testCriteria(), and transitionPhase3().
|
static |
check if Best-Estimate criterion was reached, that is, when the active estimate is not better than the current incumbent solution
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 668 of file event_solvingphase.c.
References checkLogCriterion(), FALSE, SCIP_Bool, SCIP_STAGE_SOLVING, SCIPgetNNodes(), SCIPgetNSols(), and SCIPgetStage().
Referenced by checkRankOneTransition(), testCriteria(), and transitionPhase3().
|
static |
check if logarithmic phase transition has been reached.
the logarithmic phase transition is reached when the slope of the logarithmic primal progress (as a function of the number of LP iterations or solving nodes) becomes gentle. More concretely, we measure the slope by calculating the axis intercept of the tangent of the logarithmic primal progress. We then compare this axis intercept to the first and current primal bound and say that the logarithmic phase transition is reached as soon as the axis intercept passes the current primal bound so that the scalar becomes negative.
While it would be enough to directly compare the primal bound and the axis intercept of the tangent to check the criterion, the scalar allows for a continuous indicator how far the phase transition is still ahead
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 693 of file event_solvingphase.c.
References checkOptimalSolution(), FALSE, getCurrentRegressionTangentAxisIntercept(), SCIP_Bool, SCIP_Real, SCIPgetFirstPrimalBound(), SCIPgetNSols(), SCIPgetPrimalbound(), SCIPisInfinity(), SCIPisNegative(), and TRUE.
Referenced by checkEstimateCriterion(), testCriteria(), and transitionPhase3().
|
static |
check if incumbent solution is nearly optimal; we allow a relative deviation of 10^-9
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 722 of file event_solvingphase.c.
References EPSZ, FALSE, REALABS, SCIP_Bool, SCIP_Real, SCIPgetPrimalbound(), SCIPisInfinity(), transitionPhase3(), and TRUE.
Referenced by checkLogCriterion(), testCriteria(), and transitionPhase3().
|
static |
check if we are in the proof phase
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 745 of file event_solvingphase.c.
References checkEstimateCriterion(), checkLogCriterion(), checkOptimalSolution(), checkRankOneTransition(), determineSolvingPhase(), FALSE, getNRank1Nodes(), SCIP_VERBLEVEL_NORMAL, SCIPgetNNodes(), SCIPgetPrimalbound(), SCIPgetSolvingTime(), SCIPverbMessage(), SOLVINGPHASE_PROOF, and TRUE.
Referenced by checkOptimalSolution(), and determineSolvingPhase().
|
static |
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 806 of file event_solvingphase.c.
References changeEmphasisParameters(), SCIPgetNSols(), SOLVINGPHASE_FEASIBILITY, SOLVINGPHASE_IMPROVEMENT, SOLVINGPHASE_PROOF, and transitionPhase3().
Referenced by applySolvingPhase(), and transitionPhase3().
|
static |
changes parameters by using emphasis settings
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 823 of file event_solvingphase.c.
References changeParametersUsingSettingsFiles(), FALSE, SCIP_CALL, SCIP_OKAY, SCIP_PARAMEMPHASIS_DEFAULT, SCIP_PARAMEMPHASIS_PHASEFEAS, SCIP_PARAMEMPHASIS_PHASEIMPROVE, SCIP_PARAMEMPHASIS_PHASEPROOF, SCIPABORT, SCIPdebugMsg, SCIPsetEmphasis(), SOLVINGPHASE_FEASIBILITY, SOLVINGPHASE_IMPROVEMENT, SOLVINGPHASE_PROOF, and SOLVINGPHASE_UNINITIALIZED.
Referenced by adaptSolverBehavior(), and determineSolvingPhase().
|
static |
change general solving strategy of SCIP depending on the phase by reading from settings file
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 857 of file event_solvingphase.c.
References DEFAULT_SETNAME, fixOrUnfixRelevantParameters(), SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPdebugMsg, SCIPreadParams(), SCIPverbMessage(), SCIPwarningMessage(), SOLVINGPHASE_FEASIBILITY, SOLVINGPHASE_IMPROVEMENT, SOLVINGPHASE_PROOF, and SOLVINGPHASE_UNINITIALIZED.
Referenced by adaptSolverBehavior(), and changeEmphasisParameters().
|
static |
fix/unfix relevant solving parameters that should not accidentally be set to default values
scip | SCIP data structure |
eventhdlrdata | event handler data |
fix | should the parameters be fixed (true) or unfixed? |
Definition at line 911 of file event_solvingphase.c.
References adaptSolverBehavior(), SCIP_CALL, SCIP_OKAY, SCIPfixParam(), SCIPparamGetName(), SCIPparamIsFixed(), and SCIPunfixParam().
Referenced by adaptSolverBehavior(), and changeParametersUsingSettingsFiles().
|
static |
change settings depending whether emphasis settings should be used, or settings files
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 981 of file event_solvingphase.c.
References applySolvingPhase(), changeEmphasisParameters(), changeParametersUsingSettingsFiles(), FALSE, fixOrUnfixRelevantParameters(), SCIP_CALL, SCIP_OKAY, SCIP_PARAMEMPHASIS_DEFAULT, SCIPsetEmphasis(), and TRUE.
Referenced by applySolvingPhase(), and fixOrUnfixRelevantParameters().
|
static |
scip | SCIP data structure |
eventhdlrdata | event handler data |
Definition at line 1011 of file event_solvingphase.c.
References adaptSolverBehavior(), determineSolvingPhase(), FALSE, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPinterruptSolve(), SCIPrestartSolve(), SCIPverbMessage(), SOLVINGPHASE_IMPROVEMENT, SOLVINGPHASE_PROOF, TRUE, and updateLogRegression().
Referenced by adaptSolverBehavior(), SCIP_DECL_EVENTEXEC(), and SCIP_DECL_EVENTINIT().
|
static |
update the logarithmic regression
scip | SCIP data structure |
eventhdlrdata | data of event handler |
Definition at line 1070 of file event_solvingphase.c.
References getX(), SCIP_OKAY, SCIP_Real, SCIPgetPrimalbound(), SCIPisEQ(), SCIPregressionAddObservation(), SCIPregressionRemoveObservation(), and updateDataStructures().
Referenced by applySolvingPhase(), and updateDataStructures().
|
static |
update data structures based on the event type caught
scip | SCIP data structure |
eventhdlrdata | data of event handler |
eventtype | type of the caught event |
Definition at line 1097 of file event_solvingphase.c.
References addNodesInformation(), checkLeavesBelowIncumbent(), FALSE, recomputeNodeInformation(), releaseNodeInformation(), SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEFOCUSED, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPgetChildren(), SCIPgetCurrentNode(), SCIPgetNChildren(), SCIPgetNNodesLeft(), SCIPgetStage(), testCriteria(), TRUE, and updateLogRegression().
Referenced by SCIP_DECL_EVENTEXEC(), and updateLogRegression().
|
static |
test all criteria whether they have been reached
scip | SCIP data structure |
eventhdlrdata | data of event handler |
Definition at line 1163 of file event_solvingphase.c.
References checkEstimateCriterion(), checkLogCriterion(), checkOptimalSolution(), checkRankOneTransition(), eventCopySolvingphase, EVENTHDLR_NAME, SCIP_CALL, SCIP_DECL_EVENTCOPY, SCIP_OKAY, SCIP_VERBLEVEL_NORMAL, SCIPeventhdlrGetName(), SCIPgetNNodes(), SCIPgetSolvingTime(), SCIPincludeEventHdlrSolvingphase(), SCIPverbMessage(), and TRUE.
Referenced by SCIP_DECL_EVENTEXEC(), and updateDataStructures().
|
static |
destructor of event handler to free user data (called when SCIP is exiting)
Definition at line 1225 of file event_solvingphase.c.
References EVENTHDLR_NAME, SCIP_DECL_EVENTINITSOL(), SCIP_OKAY, SCIPeventhdlrGetData(), SCIPeventhdlrGetName(), SCIPeventhdlrSetData(), SCIPfreeBlockMemory, and SCIPregressionFree().
|
static |
initialization method of event handler (called after problem was transformed)
Definition at line 1246 of file event_solvingphase.c.
References FALSE, SCIP_DECL_EVENTEXITSOL(), SCIP_OKAY, SCIPeventhdlrGetData(), and SCIPgetNDelayedCutoffs().
Referenced by SCIP_DECL_EVENTFREE().
|
static |
solving process deinitialization method of event handler (called before branch and bound process data is freed)
Definition at line 1265 of file event_solvingphase.c.
References collectNondefaultParams(), freeDepthinfo(), SCIP_CALL, SCIP_OKAY, SCIPeventhdlrGetData(), and SCIPfreeBlockMemoryArray.
Referenced by SCIP_DECL_EVENTINITSOL().
|
static |
collects all parameters that are set to non-default values and stores them in eventhdlrdata
scip | SCIP data structure |
eventhdlrdata | data of event handler |
Definition at line 1293 of file event_solvingphase.c.
References SCIP_CALL, SCIP_DECL_EVENTINIT(), SCIP_OKAY, SCIPallocBlockMemoryArray, SCIPgetNParams(), SCIPgetParams(), SCIPparamIsDefault(), and SCIPreallocBlockMemoryArray.
Referenced by SCIP_DECL_EVENTEXITSOL(), and SCIP_DECL_EVENTINIT().
|
static |
initialization method of event handler (called after problem was transformed)
Definition at line 1340 of file event_solvingphase.c.
References applySolvingPhase(), collectNondefaultParams(), EVENTHDLR_EVENT, EVENTHDLR_NAME, FALSE, SCIP_CALL, SCIP_DECL_EVENTEXIT(), SCIP_INVALID, SCIP_OKAY, SCIPcatchEvent(), SCIPeventhdlrGetData(), SCIPeventhdlrGetName(), SCIPregressionReset(), and SOLVINGPHASE_UNINITIALIZED.
Referenced by collectNondefaultParams().
|
static |
deinitialization method of event handler (called before problem is freed)
Definition at line 1387 of file event_solvingphase.c.
References EVENTHDLR_NAME, SCIP_DECL_EVENTEXEC(), SCIP_OKAY, SCIPeventhdlrGetData(), SCIPeventhdlrGetName(), and SCIPfreeBlockMemoryArrayNull.
Referenced by SCIP_DECL_EVENTINIT().
|
static |
execution method of event handler
Definition at line 1407 of file event_solvingphase.c.
References applySolvingPhase(), EVENTHDLR_EVENT, SCIP_CALL, SCIP_EVENTTYPE_NODEFOCUSED, SCIP_OKAY, SCIPeventGetNode(), SCIPeventGetType(), SCIPeventhdlrGetData(), SCIPgetCurrentNode(), testCriteria(), and updateDataStructures().
Referenced by SCIP_DECL_EVENTEXIT().
|
static |
output method of display column to output file stream 'file'
Definition at line 1455 of file event_solvingphase.c.
References DISP_NAME_NRANK1NODES, DISP_WIDT_NRANK1NODES, getNRank1Nodes(), SCIP_OKAY, SCIPdispGetName(), SCIPdispInt(), and SCIPgetMessagehdlr().
|
static |
output method of display column to output file stream 'file'
Definition at line 1478 of file event_solvingphase.c.
References DISP_NAME_NNODESBELOWINC, DISP_WIDT_NNODESBELOWINC, getNNodesBelowIncumbent(), SCIP_OKAY, SCIPdispGetName(), SCIPdispInt(), SCIPgetMessagehdlr(), and SCIPincludeEventHdlrSolvingphase().
SCIP_RETCODE SCIPincludeEventHdlrSolvingphase | ( | SCIP * | scip | ) |
creates event handler for Solvingphase event
scip | SCIP data structure |
Definition at line 1491 of file event_solvingphase.c.
References DEFAULT_ENABLED, DEFAULT_FALLBACK, DEFAULT_INTERRUPTOPTIMAL, DEFAULT_LOGREGRESSION_XTYPE, DEFAULT_NODEOFFSET, DEFAULT_SETNAME, DEFAULT_TESTMODE, DEFAULT_TRANSITIONMETHOD, DEFAULT_USEEMPHSETTINGS, DEFAULT_USERESTART1TO2, DEFAULT_USERESTART2TO3, DISP_DESC_NNODESBELOWINC, DISP_DESC_NRANK1NODES, DISP_HEAD_NNODESBELOWINC, DISP_HEAD_NRANK1NODES, DISP_NAME_NNODESBELOWINC, DISP_NAME_NRANK1NODES, DISP_POSI_NNODESBELOWINC, DISP_POSI_NRANK1NODES, DISP_PRIO_NNODESBELOWINC, DISP_PRIO_NRANK1NODES, DISP_STRI_NNODESBELOWINC, DISP_STRI_NRANK1NODES, DISP_WIDT_NNODESBELOWINC, DISP_WIDT_NRANK1NODES, eventCopySolvingphase, EVENTHDLR_DESC, EVENTHDLR_NAME, FALSE, LOGREGRESSION_XTYPES, SCIP_CALL, SCIP_DISPSTATUS_OFF, SCIP_INVALID, SCIP_LONGINT_MAX, SCIP_OKAY, SCIP_REAL_MAX, SCIP_REAL_MIN, SCIPaddBoolParam(), SCIPaddCharParam(), SCIPaddLongintParam(), SCIPaddRealParam(), SCIPaddStringParam(), SCIPallocBlockMemory, SCIPincludeDisp(), SCIPincludeEventhdlrBasic(), SCIPregressionCreate(), SCIPsetEventhdlrCopy(), SCIPsetEventhdlrExit(), SCIPsetEventhdlrExitsol(), SCIPsetEventhdlrFree(), SCIPsetEventhdlrInit(), SCIPsetEventhdlrInitsol(), and TRANSITIONMETHODS.
Referenced by SCIP_DECL_DISPOUTPUT(), SCIPincludeDefaultPlugins(), and testCriteria().