Scippy

SCIP

Solving Constraint Integer Programs

Detailed Description

methods to query search tree related information

See also
Public methods for nodes

Modules

 Nodes
 methods for nodes of the search tree of SCIP
 

Functions

SCIP_NODESCIPgetFocusNode (SCIP *scip)
 
SCIP_NODESCIPgetCurrentNode (SCIP *scip)
 
int SCIPgetDepth (SCIP *scip)
 
int SCIPgetFocusDepth (SCIP *scip)
 
int SCIPgetPlungeDepth (SCIP *scip)
 
SCIP_NODESCIPgetRootNode (SCIP *scip)
 
int SCIPgetEffectiveRootDepth (SCIP *scip)
 
SCIP_Bool SCIPinRepropagation (SCIP *scip)
 
SCIP_RETCODE SCIPgetChildren (SCIP *scip, SCIP_NODE ***children, int *nchildren)
 
int SCIPgetNChildren (SCIP *scip)
 
SCIP_RETCODE SCIPgetSiblings (SCIP *scip, SCIP_NODE ***siblings, int *nsiblings)
 
int SCIPgetNSiblings (SCIP *scip)
 
SCIP_RETCODE SCIPgetLeaves (SCIP *scip, SCIP_NODE ***leaves, int *nleaves)
 
int SCIPgetNLeaves (SCIP *scip)
 
int SCIPgetNNodesLeft (SCIP *scip)
 
SCIP_NODESCIPgetPrioChild (SCIP *scip)
 
SCIP_NODESCIPgetPrioSibling (SCIP *scip)
 
SCIP_NODESCIPgetBestChild (SCIP *scip)
 
SCIP_NODESCIPgetBestSibling (SCIP *scip)
 
SCIP_NODESCIPgetBestLeaf (SCIP *scip)
 
SCIP_NODESCIPgetBestNode (SCIP *scip)
 
SCIP_NODESCIPgetBestboundNode (SCIP *scip)
 
SCIP_RETCODE SCIPgetOpenNodesData (SCIP *scip, SCIP_NODE ***leaves, SCIP_NODE ***children, SCIP_NODE ***siblings, int *nleaves, int *nchildren, int *nsiblings)
 
SCIP_RETCODE SCIPcutoffNode (SCIP *scip, SCIP_NODE *node)
 
SCIP_RETCODE SCIPpruneTree (SCIP *scip)
 
SCIP_RETCODE SCIPrepropagateNode (SCIP *scip, SCIP_NODE *node)
 
int SCIPgetCutoffdepth (SCIP *scip)
 
int SCIPgetRepropdepth (SCIP *scip)
 
SCIP_RETCODE SCIPprintNodeRootPath (SCIP *scip, SCIP_NODE *node, FILE *file)
 
void SCIPsetFocusnodeLP (SCIP *scip, SCIP_Bool solvelp)
 
SCIP_Bool SCIPwasNodeLastBranchParent (SCIP *scip, SCIP_NODE *node)
 

Function Documentation

◆ SCIPgetFocusNode()

SCIP_NODE* SCIPgetFocusNode ( SCIP scip)

gets focus node in the tree

if we are in probing/diving mode this method returns the node in the tree where the probing/diving mode was started.

Returns
the current node of the search tree
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 63 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetFocusNode(), Scip::tree, and TRUE.

Referenced by applyCliqueFixings(), SCIPvarUpdatePseudocost(), subtreeSumGapInsertChildren(), subtreeSumGapSplit(), and subtreeSumGapUpdate().

◆ SCIPgetCurrentNode()

SCIP_NODE* SCIPgetCurrentNode ( SCIP scip)

gets current node in the tree

Returns
the current node of the search tree
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 82 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetCurrentNode(), Scip::tree, and TRUE.

Referenced by applyDomainChanges(), applyLastVertexBranch(), applyProbing(), applyVbounds(), branchCons(), checkDivingCandidates(), computeBranchingVariables(), computeDynamicRowOrder(), consEnfo(), consSepa(), constructCompression(), createAndSplitProblem(), enforceCardinality(), Exec(), execGenVBounds(), execRelpscost(), executeStrongBranching(), findComponents(), fixVarsRedbasedIsPromising(), getBranchingDecisionStrongbranchSOS1(), initProblem(), initPropgraph(), performInteriorSolCutStrengthening(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_BRANCHEXITSOL(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_PRICERFARKAS(), SCIP_DECL_PRICERREDCOST(), SCIP_DECL_PROPEXEC(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPanalyzeDeductionsProbing(), SCIPendStrongbranch(), SCIPstartDive(), SCIPStpBranchruleGetVertexChgLast(), SCIPStpBranchruleGetVertexChgs(), SCIPtreemodelSelectCandidate(), selectBranchingVertexByDegree(), selectBranchingVertexByLp(), selectBranchingVertexByLp2Flow(), selectBranchingVertexBySol(), selectVarMultAggrBranching(), separateOddCycles(), setupAndSolveSubscipRapidlearning(), subscipdataCopySubscip(), updateDataStructures(), and updatePropgraph().

◆ SCIPgetDepth()

int SCIPgetDepth ( SCIP scip)

gets depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node, such that the depth includes the probing path

Returns
the depth of current node, or -1 if no current node exists; in probing, the current node is the last probing node, such that the depth includes the probing path
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 661 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetCurrentDepth(), Scip::tree, and TRUE.

Referenced by applyCliqueFixings(), applyGenVBounds(), applyNlobbt(), applyOptcumulative(), applyVboundsFixings(), branchAuxNonlinear(), computeCut(), computeRltCut(), createAndSplitProblem(), createAuxVar(), createCons(), createRow(), createSubscip(), detectNlhdlrs(), disableCons(), enforceCardinality(), enforceConflictgraph(), enforceConstraint(), execGenVBounds(), execRelpscost(), filterExistingLP(), findComponents(), fixVarsDualcost(), fixVarsRedbasedIsPromising(), getBoundchanges(), getGraphStatesDirected(), initImplGraphSOS1(), initProblem(), mincutPrepareForLp(), performFixing(), performImplicationGraphAnalysis(), performRandRounding(), processRealBoundChg(), processWatchedVars(), propagateCons(), propagateCutoffboundBinvar(), propagateCutoffboundGlobally(), propagateRootRedcostBinvar(), removeFixedBinvars(), runVanillaStrongBranching(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_DISPOUTPUT(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NLHDLRENFO(), SCIP_DECL_NLHDLRESTIMATE(), SCIP_DECL_NLHDLRINITSEPA(), SCIP_DECL_NODESELSELECT(), SCIP_DECL_PRICERREDCOST(), SCIP_DECL_PROPEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPaddRow(), SCIPapplyLockFixings(), SCIPapplyUndercover(), SCIPapplyZeroobj(), SCIPbendersExec(), SCIPbendersSetupSubproblem(), SCIPgetRowprepRowCons(), SCIPgetRowprepRowConshdlr(), SCIPgetRowprepRowSepa(), SCIPisConflictAnalysisApplicable(), SCIPperformGenericDivingAlgorithm(), SCIPpropagateProbing(), SCIPselectVarPseudoStrongBranching(), SCIPselectVarStrongBranching(), SCIPsnprintfProbingStats(), SCIPupdateDivesetStats(), SCIPvarUpdatePseudocost(), selectVarMultAggrBranching(), sepaImplBoundCutsSOS1(), separateIndicators(), separateSOS1(), setupAndSolveSubscipRapidlearning(), setupProbingSCIP(), solveNlp(), startProbing(), tryOneOpt(), and trySolCandidate().

◆ SCIPgetFocusDepth()

int SCIPgetFocusDepth ( SCIP scip)

gets depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the branching tree, excluding the nodes of the probing path

Returns
the depth of the focus node, or -1 if no focus node exists; the focus node is the currently processed node in the branching tree, excluding the nodes of the probing path
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 687 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetFocusDepth(), Scip::tree, and TRUE.

◆ SCIPgetPlungeDepth()

int SCIPgetPlungeDepth ( SCIP scip)

gets current plunging depth (successive times, a child was selected as next node)

Returns
the current plunging depth (successive times, a child was selected as next node)
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 704 of file scip_tree.c.

References FALSE, SCIP_Stat::plungedepth, SCIP_CALL_ABORT, SCIPcheckStage(), Scip::stat, and TRUE.

Referenced by SCIP_DECL_DISPOUTPUT(), and SCIP_DECL_NODESELSELECT().

◆ SCIPgetRootNode()

SCIP_NODE* SCIPgetRootNode ( SCIP scip)

gets the root node of the tree

Returns
the root node of the search tree
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 101 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetRootNode(), Scip::tree, and TRUE.

Referenced by Exec(), propagateCons(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_PRICERFARKAS(), SCIPcopyConcurrentSolvingStats(), SCIPreoptimizeNode(), SCIPshrinkDisjunctiveVarSet(), tightenVarLb(), and tightenVarUb().

◆ SCIPgetEffectiveRootDepth()

int SCIPgetEffectiveRootDepth ( SCIP scip)

gets the effective root depth, i.e., the depth of the deepest node which is part of all paths from the root node to the unprocessed nodes.

Returns
effective root depth
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 118 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetEffectiveRootDepth(), Scip::tree, and TRUE.

Referenced by SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), and setupAndSolveSubscipRapidlearning().

◆ SCIPinRepropagation()

SCIP_Bool SCIPinRepropagation ( SCIP scip)

returns whether the current node is already solved and only propagated again

Returns
TRUE is returned if SCIP performance repropagation, otherwise FALSE.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 137 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeInRepropagation(), Scip::tree, and TRUE.

Referenced by applyProbingVar(), computeEffectiveHorizonCumulativeCondition(), fixIntegerVariable(), fixIntegerVariableLb(), fixIntegerVariableUb(), propagateAllConss(), propagateCons(), propagateVbounds(), propIndicator(), removeFixedBinvars(), SCIP_DECL_CONSPROP(), SCIP_DECL_PROPEXEC(), solveIndependentCons(), and updateSubproblemLowerbound().

◆ SCIPgetChildren()

SCIP_RETCODE SCIPgetChildren ( SCIP scip,
SCIP_NODE ***  children,
int *  nchildren 
)

gets children of focus node along with the number of children

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

gets children of focus node along with the number of children

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
childrenpointer to store children array, or NULL if not needed
nchildrenpointer to store number of children, or NULL if not needed

Definition at line 155 of file scip_tree.c.

References SCIP_Tree::children, FALSE, SCIP_Tree::nchildren, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), Scip::tree, and TRUE.

Referenced by checkLeavesBelowIncumbent(), SCIPsolve(), subtreeSumGapInsertChildren(), updateDataStructures(), and writeBounds().

◆ SCIPgetNChildren()

int SCIPgetNChildren ( SCIP scip)

gets number of children of focus node

Returns
number of children of the focus node
Precondition
This method can be called if scip is in one of the following stages:

gets number of children of focus node

Returns
number of children of the focus node
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 179 of file scip_tree.c.

References FALSE, SCIP_Tree::nchildren, SCIP_CALL_ABORT, SCIPcheckStage(), Scip::tree, and TRUE.

Referenced by SCIP_DECL_CONSDEACTIVE(), subtreeSumGapUpdate(), and updateDataStructures().

◆ SCIPgetSiblings()

SCIP_RETCODE SCIPgetSiblings ( SCIP scip,
SCIP_NODE ***  siblings,
int *  nsiblings 
)

gets siblings of focus node along with the number of siblings

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

gets siblings of focus node along with the number of siblings

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
siblingspointer to store siblings array, or NULL if not needed
nsiblingspointer to store number of siblings, or NULL if not needed

Definition at line 197 of file scip_tree.c.

References FALSE, SCIP_Tree::nsiblings, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIP_Tree::siblings, Scip::tree, and TRUE.

Referenced by checkLeavesBelowIncumbent(), SCIPsolve(), and writeBounds().

◆ SCIPgetNSiblings()

int SCIPgetNSiblings ( SCIP scip)

gets number of siblings of focus node

Returns
the number of siblings of focus node
Precondition
This method can be called if scip is in one of the following stages:

gets number of siblings of focus node

Returns
the number of siblings of focus node
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 221 of file scip_tree.c.

References FALSE, SCIP_Tree::nsiblings, SCIP_CALL_ABORT, SCIPcheckStage(), Scip::tree, and TRUE.

Referenced by subtreeSumGapUpdate().

◆ SCIPgetLeaves()

SCIP_RETCODE SCIPgetLeaves ( SCIP scip,
SCIP_NODE ***  leaves,
int *  nleaves 
)

gets leaves of the tree along with the number of leaves

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

gets leaves of the tree along with the number of leaves

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
leavespointer to store leaves array, or NULL if not needed
nleavespointer to store number of leaves, or NULL if not needed

Definition at line 239 of file scip_tree.c.

References FALSE, SCIP_Tree::leaves, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPnodepqLen(), SCIPnodepqNodes(), Scip::tree, and TRUE.

Referenced by checkLeavesBelowIncumbent(), SCIPsolve(), and writeBounds().

◆ SCIPgetNLeaves()

int SCIPgetNLeaves ( SCIP scip)

gets number of leaves in the tree

Returns
the number of leaves in the tree
Precondition
This method can be called if scip is in one of the following stages:

gets number of leaves in the tree

Returns
the number of leaves in the tree
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 263 of file scip_tree.c.

References FALSE, SCIP_Tree::leaves, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPnodepqLen(), Scip::tree, and TRUE.

Referenced by subtreeSumGapUpdate().

◆ SCIPgetNNodesLeft()

int SCIPgetNNodesLeft ( SCIP scip)

gets number of nodes left in the tree (children + siblings + leaves)

Returns
the number of nodes left in the tree (children + siblings + leaves)
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 635 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetNNodes(), Scip::tree, and TRUE.

Referenced by applyDomainChanges(), checkLeavesBelowIncumbent(), releaseNodeInformation(), SCIP_DECL_DISPOUTPUT(), SCIP_DECL_NODESELSELECT(), SCIPsolve(), updateDataStructures(), and writeBounds().

◆ SCIPgetPrioChild()

SCIP_NODE* SCIPgetPrioChild ( SCIP scip)

gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule

Returns
the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 279 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetPrioChild(), Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetPrioSibling()

SCIP_NODE* SCIPgetPrioSibling ( SCIP scip)

gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule

Returns
the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 295 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetPrioSibling(), Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetBestChild()

SCIP_NODE* SCIPgetBestChild ( SCIP scip)

gets the best child of the focus node w.r.t. the node selection strategy

Returns
the best child of the focus node w.r.t. the node selection strategy
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 311 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetBestChild(), Scip::set, Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetBestSibling()

SCIP_NODE* SCIPgetBestSibling ( SCIP scip)

gets the best sibling of the focus node w.r.t. the node selection strategy

Returns
the best sibling of the focus node w.r.t. the node selection strategy
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 327 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetBestSibling(), Scip::set, Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetBestLeaf()

SCIP_NODE* SCIPgetBestLeaf ( SCIP scip)

gets the best leaf from the node queue w.r.t. the node selection strategy

Returns
the best leaf from the node queue w.r.t. the node selection strategy
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 343 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetBestLeaf(), Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetBestNode()

SCIP_NODE* SCIPgetBestNode ( SCIP scip)

gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy

Returns
the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 359 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetBestNode(), Scip::set, Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetBestboundNode()

SCIP_NODE* SCIPgetBestboundNode ( SCIP scip)

gets the node with smallest lower bound from the tree (child, sibling, or leaf)

Returns
the node with smallest lower bound from the tree (child, sibling, or leaf)
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 375 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeGetLowerboundNode(), Scip::set, Scip::tree, and TRUE.

Referenced by SCIP_DECL_NODESELSELECT().

◆ SCIPgetOpenNodesData()

SCIP_RETCODE SCIPgetOpenNodesData ( SCIP scip,
SCIP_NODE ***  leaves,
SCIP_NODE ***  children,
SCIP_NODE ***  siblings,
int *  nleaves,
int *  nchildren,
int *  nsiblings 
)

access to all data of open nodes (leaves, children, and siblings)

Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
leavespointer to store the leaves, or NULL if not needed
childrenpointer to store the children, or NULL if not needed
siblingspointer to store the siblings, or NULL if not needed
nleavespointer to store the number of leaves, or NULL
nchildrenpointer to store the number of children, or NULL
nsiblingspointer to store the number of siblings, or NULL

Definition at line 389 of file scip_tree.c.

References SCIP_Tree::children, FALSE, SCIP_Tree::leaves, NULL, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPnodepqLen(), SCIPnodepqNodes(), SCIPtreeGetNChildren(), SCIPtreeGetNSiblings(), SCIP_Tree::siblings, Scip::tree, and TRUE.

Referenced by recomputeNodeInformation(), SCIP_DECL_NODESELSELECT(), subtreeSumGapInsertChildren(), and subtreeSumGapSplit().

◆ SCIPcutoffNode()

SCIP_RETCODE SCIPcutoffNode ( SCIP scip,
SCIP_NODE node 
)

marks node and whole sub tree to be cut off from branch and bound tree

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:

cuts off node and whole sub tree from branch and bound tree

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode that should be cut off

Definition at line 425 of file scip_tree.c.

References FALSE, Scip::lp, Scip::mem, Scip::origprob, SCIP_Mem::probmem, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPnodeCutoff(), Scip::set, Scip::stat, Scip::transprob, Scip::tree, and TRUE.

Referenced by applyVbounds(), propagateCons(), SCIP_DECL_HEUREXEC(), SCIPshrinkDisjunctiveVarSet(), tightenVarLb(), and tightenVarUb().

◆ SCIPpruneTree()

SCIP_RETCODE SCIPpruneTree ( SCIP scip)

removes all nodes from branch and bound tree that were marked to be cut off via SCIPcutoffNode()

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Note
In diving mode, the removal of nodes is delayed until diving ends.
Parameters
scipSCIP data structure

Definition at line 448 of file scip_tree.c.

References Scip::eventfilter, Scip::eventqueue, FALSE, Scip::lp, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPinfinity(), SCIPtreeCutoff(), Scip::set, Scip::stat, Scip::tree, and TRUE.

◆ SCIPrepropagateNode()

SCIP_RETCODE SCIPrepropagateNode ( SCIP scip,
SCIP_NODE node 
)

marks the given node to be propagated again the next time a node of its subtree is processed

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode that should be propagated again

Definition at line 468 of file scip_tree.c.

References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage(), SCIPnodePropagateAgain(), Scip::set, Scip::stat, Scip::tree, and TRUE.

Referenced by SCIP_DECL_CONSACTIVE().

◆ SCIPgetCutoffdepth()

int SCIPgetCutoffdepth ( SCIP scip)

returns depth of first node in active path that is marked being cutoff

Returns
depth of first node in active path that is marked being cutoff
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 487 of file scip_tree.c.

References SCIP_Tree::cutoffdepth, FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), Scip::tree, and TRUE.

◆ SCIPgetRepropdepth()

int SCIPgetRepropdepth ( SCIP scip)

returns depth of first node in active path that has to be propagated again

Returns
depth of first node in active path that has to be propagated again
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 503 of file scip_tree.c.

References FALSE, SCIP_Tree::repropdepth, SCIP_CALL_ABORT, SCIPcheckStage(), Scip::tree, and TRUE.

◆ SCIPprintNodeRootPath()

SCIP_RETCODE SCIPprintNodeRootPath ( SCIP scip,
SCIP_NODE node,
FILE *  file 
)

prints all branching decisions on variables from the root to the given node

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode data
fileoutput file (or NULL for standard output)

Definition at line 520 of file scip_tree.c.

References Scip::messagehdlr, nnodes, SCIP_BOUNDTYPE_LOWER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPfreeBufferArray, SCIPmessageFPrintInfo(), SCIPnodeGetAncestorBranchingPath(), SCIPnodeGetDepth(), SCIPreallocBufferArray, and SCIPvarGetName().

Referenced by computeBranchingVariables().

◆ SCIPsetFocusnodeLP()

void SCIPsetFocusnodeLP ( SCIP scip,
SCIP_Bool  solvelp 
)

sets whether the LP should be solved at the focus node

Note
In order to have an effect, this method needs to be called after a node is focused but before the LP is solved.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
solvelpshould the LP be solved?

Definition at line 616 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeSetFocusNodeLP(), Scip::tree, and TRUE.

◆ SCIPwasNodeLastBranchParent()

SCIP_Bool SCIPwasNodeLastBranchParent ( SCIP scip,
SCIP_NODE node 
)

query if node was the last parent of a branching of the tree

Returns
TRUE if node was the last parent of a branching of the tree
Precondition
This method can be called if SCIP is in one of the following stages:
Parameters
scipSCIP data structure
nodetree node, or NULL to check focus node

Definition at line 722 of file scip_tree.c.

References FALSE, SCIP_CALL_ABORT, SCIPcheckStage(), SCIPtreeWasNodeLastBranchParent(), Scip::tree, and TRUE.

Referenced by subtreeSumGapUpdate().