Detailed Descriptionmethods for branch and bound tree Definition in file tree.c. #include <assert.h> #include "scip/def.h" #include "scip/set.h" #include "scip/stat.h" #include "scip/clock.h" #include "scip/visual.h" #include "scip/event.h" #include "scip/lp.h" #include "scip/var.h" #include "scip/implics.h" #include "scip/primal.h" #include "scip/tree.h" #include "scip/reopt.h" #include "scip/solve.h" #include "scip/cons.h" #include "scip/nodesel.h" #include "scip/prop.h" #include "scip/debug.h" #include "scip/prob.h" #include "scip/scip.h" #include "scip/pub_message.h" #include "lpi/lpi.h" Go to the source code of this file.
Macro Definition Documentation
maximal subtree repropagation marker; must correspond to node data structure Definition at line 50 of file tree.c. Referenced by SCIPtreeCreateRoot(), and treeNextRepropsubtreecount().
adds a diving bound change to the tree together with the information if this is a bound change for the preferred direction or not Definition at line 6022 of file tree.c. Referenced by SCIPtreeAddDiveBoundChange(). Function Documentation
resizes children arrays to be able to store at least num nodes
Definition at line 59 of file tree.c. References BMSreallocMemoryArray, SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::childrensize, NULL, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by treeAddChild().
resizes path array to be able to store at least num nodes
Definition at line 84 of file tree.c. References BMSreallocMemoryArray, NULL, SCIP_Tree::path, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Tree::pathsize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcPathGrowSize(). Referenced by treeCreateProbingNode(), and treeSwitchPath().
resizes pendingbdchgs array to be able to store at least num nodes
Definition at line 110 of file tree.c. References BMSreallocMemoryArray, NULL, SCIP_Tree::pendingbdchgs, SCIP_Tree::pendingbdchgssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize(). Referenced by treeAddPendingBdchg().
increases the reference counter of the LP state in the fork
Definition at line 155 of file tree.c. References SCIP_Fork::nlpistateref, NULL, and SCIPdebugMessage. Referenced by focusnodeToFork(), forkCreate(), and SCIPnodeCaptureLPIState().
decreases the reference counter of the LP state in the fork
Definition at line 170 of file tree.c. References SCIP_Fork::lpistate, SCIP_Fork::nlpistateref, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpFreeState(). Referenced by SCIPnodeReleaseLPIState().
increases the reference counter of the LP state in the subroot
Definition at line 194 of file tree.c. References SCIP_Subroot::nlpistateref, NULL, and SCIPdebugMessage. Referenced by forkFree(), and SCIPnodeCaptureLPIState().
decreases the reference counter of the LP state in the subroot
Definition at line 210 of file tree.c. References SCIP_Subroot::lpistate, SCIP_Subroot::nlpistateref, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpFreeState(). Referenced by SCIPnodeReleaseLPIState().
increases the reference counter of the LP state in the fork or subroot node
Definition at line 233 of file tree.c. References SCIP_Node::data, SCIP_Node::fork, forkCaptureLPIState(), SCIP_Fork::nlpistateref, SCIP_Subroot::nlpistateref, NULL, SCIP_INVALIDDATA, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIP_Node::subroot, and subrootCaptureLPIState(). Referenced by junctionInit(), and pseudoforkCreate().
decreases the reference counter of the LP state in the fork or subroot node
Definition at line 261 of file tree.c. References SCIP_Node::data, SCIP_Node::fork, forkReleaseLPIState(), SCIP_Fork::nlpistateref, SCIP_Subroot::nlpistateref, NULL, SCIP_INVALIDDATA, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIP_Node::subroot, and subrootReleaseLPIState(). Referenced by focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), and SCIPnodeFree().
creates probingnode data without LP information
Definition at line 286 of file tree.c. References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNCols(), and SCIPlpGetNRows(). Referenced by treeCreateProbingNode().
updates LP information in probingnode data
Definition at line 312 of file tree.c. References SCIP_Lp::dualfeasible, SCIP_Lp::flushed, SCIP_Probingnode::lpistate, SCIP_Probingnode::lpwasdualfeas, SCIP_Probingnode::lpwasprimfeas, SCIP_Probingnode::ncols, SCIP_Probingnode::nrows, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpFreeState(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetState(), SCIPtreeIsPathComplete(), and SCIP_Lp::solved. Referenced by SCIPtreeMarkProbingNodeHasLP().
frees probingnode data
Definition at line 349 of file tree.c. References BMSfreeBlockMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, and SCIPlpFreeState(). Referenced by SCIPnodeFree(), and treeCreateProbingNode().
initializes junction data
Definition at line 381 of file tree.c. References SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Junction::nchildren, SCIP_Tree::nchildren, NULL, SCIP_CALL, SCIP_OKAY, SCIPnodeCaptureLPIState(), and SCIPtreeIsPathComplete(). Referenced by focusnodeToJunction().
creates pseudofork data
Definition at line 405 of file tree.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Tree::nchildren, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNewcols(), SCIPlpGetNewrows(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPnodeCaptureLPIState(), SCIProwCapture(), and SCIPtreeIsPathComplete(). Referenced by focusnodeToPseudofork().
frees pseudofork data
Definition at line 460 of file tree.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease(). Referenced by SCIPnodeFree().
creates fork data
Definition at line 490 of file tree.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_Lp::dualfeasible, SCIP_Lp::flushed, SCIP_Tree::focusnode, forkCaptureLPIState(), SCIP_Tree::nchildren, NULL, SCIP_Lp::primalfeasible, SCIP_ALLOC, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNewcols(), SCIPlpGetNewrows(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIProwCapture(), SCIPtreeIsPathComplete(), and SCIP_Lp::solved. Referenced by focusnodeToFork().
frees fork data
Definition at line 552 of file tree.c. References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, SCIP_Lp::dualfeasible, SCIP_Lp::flushed, SCIP_Tree::focusnode, SCIP_Tree::nchildren, NULL, SCIP_Lp::primalfeasible, SCIP_ALLOC, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPlpGetCols(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetObjval(), SCIPlpGetRows(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIProwCapture(), SCIProwRelease(), SCIPtreeIsPathComplete(), SCIP_Lp::solved, and subrootCaptureLPIState(). Referenced by SCIPnodeFree().
frees subroot
Definition at line 644 of file tree.c. References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease(). Referenced by SCIPnodeFree(). removes given sibling node from the siblings array
Definition at line 677 of file tree.c. References SCIP_Sibling::arraypos, SCIP_Node::data, SCIP_Tree::nsiblings, NULL, SCIP_NODETYPE_SIBLING, SCIPnodeGetType(), SCIP_Node::sibling, SCIP_Tree::siblings, and SCIP_Tree::siblingsprio. Referenced by SCIPnodeFocus(), and SCIPnodeFree().
adds given child node to children array of focus node
Definition at line 703 of file tree.c. References SCIP_Child::arraypos, SCIP_Node::child, SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Node::data, SCIP_Tree::nchildren, NULL, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_OKAY, SCIPnodeGetType(), and treeEnsureChildrenMem(). Referenced by nodeAssignParent(). removes given child node from the children array
Definition at line 726 of file tree.c. References SCIP_Child::arraypos, SCIP_Node::child, SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Node::data, SCIP_Tree::nchildren, NULL, SCIP_NODETYPE_CHILD, and SCIPnodeGetType(). Referenced by nodeReleaseParent(), and SCIPnodeFocus().
makes node a child of the given parent node, which must be the focus node; if the child is a probing node, the parent node can also be a refocused node or a probing node
Definition at line 754 of file tree.c. References SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Node::estimate, SCIP_Tree::focusnode, SCIP_Node::lowerbound, MAXDEPTH, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_MAXDEPTHLEVEL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPsetIsInfinity(), SCIPtreeIsPathComplete(), and treeAddChild(). Referenced by SCIPnodeCreateChild(), and treeCreateProbingNode().
decreases number of children of the parent, frees it if no children are left
Definition at line 809 of file tree.c. References SCIP_Node::active, SCIP_Node::data, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Node::fork, SCIP_Node::junction, SCIP_Junction::nchildren, SCIP_Pseudofork::nchildren, SCIP_Fork::nchildren, SCIP_Subroot::nchildren, NULL, SCIP_Node::parent, SCIP_Node::pseudofork, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), SCIP_Node::subroot, and treeRemoveChild(). Referenced by SCIPnodeFree().
creates a node data structure
Definition at line 926 of file tree.c. References BMSallocBlockMemory, FALSE, NULL, SCIP_ALLOC, SCIP_OKAY, SCIP_REOPTTYPE_NONE, and SCIPsetInfinity(). Referenced by SCIPnodeCreateChild(), and treeCreateProbingNode().
creates a child node of the focus node
Definition at line 953 of file tree.c. References SCIP_Tree::focusnode, SCIP_Stat::ncreatednodes, SCIP_Stat::ncreatednodesrun, nodeAssignParent(), nodeCreate(), NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeSetEstimate(), SCIPtreeIsPathComplete(), SCIPvisualNewChild(), and SCIP_Stat::visual. Referenced by SCIPcreateChild(), SCIPreoptApply(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPtreeCreateRoot(), and solveNode().
frees node
Definition at line 1002 of file tree.c. References BMSfreeBlockMemory, SCIP_Tree::children, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, forkFree(), SCIP_Stat::inrestart, SCIP_Tree::nchildren, nodeReleaseParent(), SCIP_Tree::nsiblings, NULL, probingnodeFree(), SCIP_Tree::probingroot, pseudoforkFree(), SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPconssetchgFree(), SCIPdebugMessage, SCIPdebugRemoveNode, SCIPdomchgFree(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), SCIP_Tree::siblings, subrootFree(), and treeRemoveSibling(). Referenced by nodeDeactivate(), nodeReleaseParent(), nodeToLeaf(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPnodepqClear(), SCIPtreeCutoff(), and treeBacktrackProbing().
cuts off node and whole sub tree from branch and bound tree
Definition at line 1122 of file tree.c. References SCIP_Node::active, SCIP_Node::cutoff, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, SCIP_Node::estimate, SCIP_Tree::focusnode, SCIP_Node::lowerbound, MIN, NULL, SCIP_Tree::root, SCIP_CALL, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPlpGetSolstat(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPreoptCheckCutoff(), SCIPsetInfinity(), SCIPvisualCutoffNode(), TRUE, and SCIP_Stat::visual. Referenced by nodeActivate(), nodeRepropagate(), SCIPconflictFlushConss(), SCIPcutoffNode(), SCIPnodeAddBoundinfer(), SCIPnodeFocus(), SCIPupdateNodeLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), treeApplyPendingBdchgs(), and treeSwitchPath().
marks node, that propagation should be applied again the next time, a node of its subtree is focused
Definition at line 1164 of file tree.c. References SCIP_Node::active, SCIP_Node::depth, MIN, NULL, SCIP_Node::reprop, SCIP_Tree::repropdepth, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPvisualMarkedRepropagateNode(), TRUE, and SCIP_Stat::visual. Referenced by SCIPconflictFlushConss(), SCIPnodeAddBoundinfer(), SCIPnodeAddHoleinfer(), and SCIPrepropagateNode(). marks node, that it is completely propagated in the current repropagation subtree level
Definition at line 1190 of file tree.c. References SCIP_Node::active, SCIP_Node::depth, FALSE, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Node::reprop, SCIP_Tree::repropdepth, and SCIP_Node::repropsubtreemark. Referenced by propagateDomains().
moves the subtree repropagation counter to the next value
Definition at line 1220 of file tree.c. References MAXREPROPMARK, NULL, and SCIP_Tree::repropsubtreecount. Referenced by nodeRepropagate().
applies propagation on the node, that was marked to be propagated again
Definition at line 1232 of file tree.c. References SCIP_Node::active, SCIP_Node::depth, SCIP_Node::domchg, FALSE, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Tree::focussubroot, SCIP_Stat::nboundchgs, SCIP_Tree::nchildren, SCIP_Stat::nodeactivationtime, SCIP_Node::nodetype, SCIP_Stat::nrepropboundchgs, SCIP_Stat::nrepropcutoffs, SCIP_Stat::nreprops, SCIP_Tree::nsiblings, NULL, SCIP_Node::parent, SCIP_Node::reprop, SCIP_Tree::repropsubtreecount, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_PROPTIMING_ALWAYS, SCIPclockIsRunning(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPeventqueueDelay(), SCIPeventqueueIsDelayed(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPpropagateDomains(), SCIPvisualRepropagatedNode(), treeNextRepropsubtreecount(), and SCIP_Stat::visual. Referenced by nodeActivate(), and treeSwitchPath().
informs node, that it is now on the active path and applies any domain and constraint set changes
Definition at line 1384 of file tree.c. References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Stat::nactivatednodes, nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconssetchgApply(), SCIPdebugMessage, SCIPdomchgApply(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), and TRUE. Referenced by treeSwitchPath().
informs node, that it is no longer on the active path and undoes any domain and constraint set changes
Definition at line 1453 of file tree.c. References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::data, SCIP_Node::domchg, FALSE, SCIP_Node::fork, SCIP_Node::junction, SCIP_Junction::nchildren, SCIP_Pseudofork::nchildren, SCIP_Fork::nchildren, SCIP_Subroot::nchildren, SCIP_Stat::ndeactivatednodes, NULL, SCIP_Node::pseudofork, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPconssetchgUndo(), SCIPdebugMessage, SCIPdomchgUndo(), SCIPerrorMessage, SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot. Referenced by treeBacktrackProbing(), and treeSwitchPath().
adds constraint locally to the node and captures it; activates constraint, if node is active; if a local constraint is added to the root node, it is automatically upgraded into a global constraint
Definition at line 1525 of file tree.c. References SCIP_Node::active, SCIP_ConsSetChg::addedconss, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, NULL, SCIP_Tree::root, SCIP_Cons::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconsIsActive(), SCIPconsIsGlobal(), SCIPconssetchgAddAddedCons(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), and SCIP_Cons::validdepth. Referenced by SCIPaddCons(), and SCIPaddConsNode().
locally deletes constraint at the given node by disabling its separation, enforcing, and propagation capabilities at the node; captures constraint; disables constraint, if node is active
Definition at line 1564 of file tree.c. References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_ConsSetChg::disabledconss, SCIP_Cons::enabled, SCIP_Cons::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsDisable(), SCIPconssetchgAddDisabledCons(), SCIPdebugMessage, and SCIP_Cons::updatedisable. Referenced by SCIPdelConsLocal(), and SCIPdelConsNode().
returns all constraints added to a given node
Definition at line 1594 of file tree.c. References SCIP_ConsSetChg::addedconss, SCIP_Node::conssetchg, SCIP_ConsSetChg::naddedconss, and NULL. Referenced by saveLocalConssData().
returns the number of added constraints to the given node
Definition at line 1624 of file tree.c. References SCIP_Node::conssetchg, SCIP_ConsSetChg::naddedconss, and NULL. Referenced by addNode(), saveLocalConssData(), and SCIPreoptGetNAddedConss().
adds the given bound change to the list of pending bound changes
Definition at line 1638 of file tree.c. References SCIP_PendingBdchg::boundtype, SCIP_Node::depth, SCIP_PendingBdchg::infercons, SCIP_PendingBdchg::inferinfo, SCIP_PendingBdchg::inferprop, SCIP_PendingBdchg::newbound, SCIP_PendingBdchg::node, SCIP_Tree::npendingbdchgs, NULL, SCIP_Tree::pendingbdchgs, SCIP_PendingBdchg::probingchange, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugCheckLbGlobal, SCIPdebugCheckUbGlobal, SCIPsetIsEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPvarAdjustBd(), SCIPvarCapture(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), treeEnsurePendingbdchgsMem(), and SCIP_PendingBdchg::var. Referenced by SCIPnodeAddBoundinfer().
adds bound change with inference information to focus node, child of focus node, or probing node; if possible, adjusts bound to integral value; at most one of infercons and inferprop may be non-NULL
Definition at line 1725 of file tree.c. References SCIP_Node::active, SCIP_DomChgDyn::boundchgs, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgdyn, SCIP_DomChgDyn::domchgtype, SCIP_Tree::effectiverootdepth, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Stat::lpcount, MAX, MIN, SCIP_Stat::nboundchgs, SCIP_DomChgDyn::nboundchgs, SCIP_BoundChg::newbound, SCIP_Node::nodetype, SCIP_Stat::nprobboundchgs, NULL, SCIP_Node::number, SCIP_Tree::path, SCIP_Tree::probingroot, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_DOMCHGTYPE_DYNAMIC, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPboundchgApply(), SCIPconsGetName(), SCIPdebugCheckInference, SCIPdebugMessage, SCIPdomchgAddBoundchg(), SCIPerrorMessage, SCIPlpGetModifiedProvedPseudoObjval(), SCIPlpGetModifiedPseudoObjval(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPnodeUpdateLowerbound(), SCIPpropGetName(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarChgBdGlobal(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), treeAddPendingBdchg(), and SCIP_BoundChg::var. Referenced by SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPnodeAddBoundchg(), SCIPnodePropagateImplics(), and treeApplyPendingBdchgs().
adds bound change to focus node, or child of focus node, or probing node; if possible, adjusts bound to integral value
Definition at line 1978 of file tree.c. References NULL, SCIP_CALL, SCIP_OKAY, and SCIPnodeAddBoundinfer(). Referenced by addSplitcons(), applyImplic(), changeAncestorBranchings(), conflictAddConflictCons(), fixBounds(), fixInterdiction(), focusnodeCleanupVars(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarLbNode(), SCIPchgVarLbProbing(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPchgVarUbNode(), SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPshrinkDisjunctiveVarSet(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarFixBinary(), sepastoreApplyLb(), sepastoreApplyUb(), and varAddImplic().
adds hole with inference information to focus node, child of focus node, or probing node; if possible, adjusts bound to integral value; at most one of infercons and inferprop may be non-NULL
Definition at line 2007 of file tree.c. References SCIP_Node::active, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focusnode, SCIP_Stat::nholechgs, SCIP_Node::nodetype, SCIP_Stat::nprobholechgs, NULL, SCIP_Tree::probingroot, SCIP_Tree::root, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPconsGetName(), SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPpropGetName(), SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarAddHoleGlobal(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarHole(), SCIPvarGetStatus(), and SCIPvarGetUbLocal(). Referenced by SCIPnodeAddHolechg().
adds hole change to focus node, or child of focus node
Definition at line 2130 of file tree.c. References SCIP_Node::depth, SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeAddHoleinfer(), and SCIPvarGetName().
applies the pending bound changes
Definition at line 2163 of file tree.c. References SCIP_PendingBdchg::boundtype, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, SCIP_PendingBdchg::infercons, SCIP_PendingBdchg::inferinfo, SCIP_PendingBdchg::inferprop, SCIP_PendingBdchg::newbound, SCIP_PendingBdchg::node, SCIP_Tree::npendingbdchgs, NULL, SCIP_Tree::pendingbdchgs, SCIP_PendingBdchg::probingchange, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeAddBoundinfer(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarRelease(), and SCIP_PendingBdchg::var. Referenced by treeBacktrackProbing(), and treeSwitchPath().
if given value is larger than the node's lower bound, sets the node's lower bound to the new value
Definition at line 2258 of file tree.c. References SCIP_Node::depth, SCIP_Node::estimate, SCIP_Stat::lastlowerbound, SCIP_Node::lowerbound, MAX, NULL, SCIP_Stat::rootlowerbound, SCIP_Real, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPstatUpdatePrimalDualIntegral(), and SCIPtreeGetLowerbound(). Referenced by applyBounding(), initSolve(), priceAndCutLoop(), SCIPnodeAddBoundinfer(), SCIPnodeUpdateLowerboundLP(), SCIPpriceLoop(), SCIPupdateNodeLowerbound(), solveNode(), and solveNodeRelax().
updates lower bound of node using lower bound of LP
Definition at line 2298 of file tree.c. References SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_CALL, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_OKAY, SCIP_Real, SCIPlpGetObjval(), SCIPlpGetProvedLowerbound(), and SCIPnodeUpdateLowerbound(). Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPtreeEndProbing(), and solveNodeInitialLP(). change the node selection priority of the given child
Definition at line 2332 of file tree.c. References SCIP_Child::arraypos, SCIP_Node::child, SCIP_Tree::childrenprio, SCIP_Node::data, SCIP_NODETYPE_CHILD, and SCIPnodeGetType(). Referenced by SCIPchgChildPrio(). sets the node's estimated bound to the new value
Definition at line 2350 of file tree.c. References SCIP_Node::estimate, SCIP_Node::lowerbound, NULL, and SCIPsetIsRelGE(). Referenced by SCIPnodeCreateChild(), SCIPreoptApply(), and updateEstimate().
propagates implications of binary fixings at the given node triggered by the implication graph and the clique table
Definition at line 2364 of file tree.c. References SCIP_Node::domchg, FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPboundchgGetBoundtype(), SCIPboundchgGetVar(), SCIPboundchgIsRedundant(), SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPdebugMessage, SCIPdomchgGetBoundchg(), SCIPdomchgGetNBoundchgs(), SCIPnodeAddBoundinfer(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeIsActive(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPvarGetCliques(), SCIPvarGetImplBounds(), SCIPvarGetImplTypes(), SCIPvarGetImplVars(), SCIPvarGetLbLocal(), SCIPvarGetNCliques(), SCIPvarGetNImpls(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), and TRUE. Referenced by SCIPpropagateProbingImplications().
updates the LP sizes of the active path starting at the given depth
Definition at line 2538 of file tree.c. References SCIP_Node::active, SCIP_Node::data, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Node::fork, SCIP_Pseudofork::naddedcols, SCIP_Fork::naddedcols, SCIP_Pseudofork::naddedrows, SCIP_Fork::naddedrows, SCIP_Probingnode::ncols, SCIP_Subroot::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, SCIP_Probingnode::nrows, SCIP_Subroot::nrows, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, SCIP_Node::pseudofork, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPABORT, SCIPerrorMessage, SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot. Referenced by focusnodeToFork(), treeCreateProbingNode(), and treeSwitchPath().
finds the common fork node, the new LP state defining fork, and the new focus subroot, if the path is switched to the given node
Definition at line 2646 of file tree.c. References SCIP_Node::active, SCIP_Node::cutoff, SCIP_Tree::cutoffdepth, SCIP_Node::depth, FALSE, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Tree::focussubroot, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Node::reprop, SCIP_Tree::repropdepth, SCIP_Tree::root, SCIP_NODETYPE_FORK, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SUBROOT, SCIPdebugMessage, SCIPnodeGetType(), and TRUE. Referenced by SCIPnodeFocus().
switches the active path to the new focus node, applies domain and constraint set changes
Definition at line 2943 of file tree.c. References SCIP_Node::active, SCIP_Node::cutoff, SCIP_Node::depth, FALSE, nodeActivate(), nodeDeactivate(), nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Node::reprop, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeGetType(), treeApplyPendingBdchgs(), treeEnsurePathMem(), treeUpdatePathLPSize(), and TRUE. Referenced by SCIPnodeFocus().
loads the subroot's LP data
Definition at line 3059 of file tree.c. References SCIP_Subroot::cols, SCIP_Node::data, SCIP_Node::depth, SCIP_Subroot::ncols, SCIP_Subroot::nrows, NULL, SCIP_Subroot::rows, SCIP_CALL, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), SCIPnodeGetType(), and SCIP_Node::subroot. Referenced by SCIPtreeLoadLP().
loads the fork's additional LP data
Definition at line 3104 of file tree.c. References SCIP_Fork::addedcols, SCIP_Fork::addedrows, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::fork, SCIP_Fork::naddedcols, SCIP_Fork::naddedrows, NULL, SCIP_CALL, SCIP_NODETYPE_FORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType(). Referenced by SCIPtreeLoadLP().
loads the pseudofork's additional LP data
Definition at line 3149 of file tree.c. References SCIP_Pseudofork::addedcols, SCIP_Pseudofork::addedrows, SCIP_Node::data, SCIP_Node::depth, SCIP_Pseudofork::naddedcols, SCIP_Pseudofork::naddedrows, NULL, SCIP_Node::pseudofork, SCIP_CALL, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType(). Referenced by SCIPtreeLoadLP().
checks validity of active path
Definition at line 3195 of file tree.c. References SCIP_Node::data, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Node::fork, SCIP_Pseudofork::naddedcols, SCIP_Fork::naddedcols, SCIP_Pseudofork::naddedrows, SCIP_Fork::naddedrows, SCIP_Probingnode::ncols, SCIP_Subroot::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, SCIP_Probingnode::nrows, SCIP_Subroot::nrows, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, SCIP_Node::pseudofork, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SUBROOT, SCIPABORT, SCIPerrorMessage, SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot. Referenced by SCIPtreeLoadLP(), and treeBacktrackProbing().
constructs the LP relaxation of the focus node
Definition at line 3267 of file tree.c. References SCIP_Node::active, SCIP_Tree::correctlpdepth, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Tree::focussubroot, forkAddLP(), MAX, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, pseudoforkAddLP(), SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPlpClear(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpMarkSize(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), subrootConstructLP(), treeCheckPath(), and TRUE. Referenced by SCIPconstructCurrentLP().
loads LP state for fork/subroot of the focus node
Definition at line 3395 of file tree.c. References SCIP_Node::active, SCIP_Tree::correctlpdepth, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_Lp::dualfeasible, FALSE, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Node::fork, SCIP_Stat::lpcount, SCIP_Fork::lpistate, SCIP_Subroot::lpistate, SCIP_Fork::lpwasdualfeas, SCIP_Subroot::lpwasdualfeas, SCIP_Fork::lpwasprimfeas, SCIP_Subroot::lpwasprimfeas, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPlpSetState(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), SCIP_Lp::solisbasic, SCIP_Lp::solved, SCIP_Node::subroot, and TRUE. Referenced by solveNodeInitialLP().
converts node into LEAF and moves it into the array of the node queue if node's lower bound is greater or equal than the given upper bound, the node is deleted; otherwise, it is moved to the node queue; anyways, the given pointer is NULL after the call
Definition at line 3507 of file tree.c. References SCIP_Node::active, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, NULL, SCIP_Node::parent, SCIP_Tree::root, SCIP_CALL, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPlpGetSolstat(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqInsert(), SCIPreoptCheckCutoff(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPvisualCutoffNode(), and SCIP_Stat::visual. Referenced by treeNodesToQueue().
removes variables from the problem, that are marked to be deletable, and were created at the focusnode; only removes variables that were created at the focusnode, unless inlp is TRUE (e.g., when the node is cut off, anyway)
Definition at line 3587 of file tree.c. References FALSE, SCIP_Tree::focusnode, SCIP_Stat::nnodes, NULL, SCIP_Prob::nvars, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpFlush(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpShrinkCols(), SCIPnodeAddBoundchg(), SCIPnodeGetType(), SCIPprobDelVar(), SCIPprobPerformVarDeletions(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPtreeProbing(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsDeletable(), SCIPvarIsInLP(), SCIPvarMarkNotDeletable(), and SCIP_Prob::vars. Referenced by focusnodeToDeadend(), focusnodeToFork(), and focusnodeToPseudofork().
converts the focus node into a dead-end node
Definition at line 3688 of file tree.c. References SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), SCIP_Tree::nchildren, SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), and TRUE. Referenced by SCIPnodeFocus().
converts the focus node into a junction node
Definition at line 3728 of file tree.c. References SCIP_Node::active, SCIP_Node::data, SCIP_Node::domchg, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Node::junction, junctionInit(), SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_JUNCTION, SCIP_OKAY, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPlpGetNNewcols(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), and SCIPtreeProbing(). Referenced by focusnodeToFork(), and SCIPnodeFocus().
converts the focus node into a pseudofork node
Definition at line 3768 of file tree.c. References SCIP_Node::active, SCIP_Node::data, SCIP_Node::domchg, FALSE, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), SCIP_Tree::nchildren, SCIP_Node::nodetype, NULL, SCIP_Node::pseudofork, pseudoforkCreate(), SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), and SCIPtreeProbing(). Referenced by SCIPnodeFocus().
converts the focus node into a fork node
Definition at line 3819 of file tree.c. References SCIP_Node::active, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::domchg, FALSE, SCIP_Lp::flushed, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), focusnodeToJunction(), SCIP_Node::fork, forkCaptureLPIState(), forkCreate(), SCIP_Tree::nchildren, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Node::nodetype, NULL, SCIP_Lp::resolvelperror, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPlpCleanupAll(), SCIPlpCleanupNew(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpGetSolstat(), SCIPlpRemoveAllObsoletes(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), SCIP_Lp::solved, SCIP_Node::subroot, treeUpdatePathLPSize(), and TRUE. Referenced by SCIPnodeFocus().
puts all nodes in the array on the node queue and makes them LEAFs
Definition at line 4057 of file tree.c. References nodeToLeaf(), NULL, SCIP_CALL, and SCIP_OKAY. Referenced by SCIPnodeFocus(), and SCIPtreeCreateRoot().
converts children into siblings, clears children array
Definition at line 4091 of file tree.c. References SCIP_Sibling::arraypos, SCIP_Child::arraypos, SCIP_Node::child, SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::childrensize, SCIP_Node::data, SCIP_Tree::nchildren, SCIP_Node::nodetype, SCIP_Tree::nsiblings, NULL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_SIBLING, SCIP_Real, SCIPnodeGetType(), SCIP_Node::sibling, SCIP_Tree::siblings, SCIP_Tree::siblingsprio, and SCIP_Tree::siblingssize. Referenced by SCIPnodeFocus().
installs a child, a sibling, or a leaf node as the new focus node
Definition at line 4128 of file tree.c. References SCIP_Node::active, SCIP_Tree::appliedeffectiverootdepth, SCIP_Tree::children, SCIP_Node::conssetchg, SCIP_Tree::correctlpdepth, SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), SCIP_Tree::focussubroot, SCIP_Lp::isrelax, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Stat::lpcount, MIN, SCIP_Stat::nbacktracks, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Stat::plungedepth, SCIP_Lp::resolvelperror, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPconssetchgMakeGlobal(), SCIPdebugMessage, SCIPdomchgApplyGlobal(), SCIPerrorMessage, SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpGetSolstat(), SCIPlpMarkSize(), SCIPnodeCutoff(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqCompare(), SCIPnodepqRemove(), SCIPreoptCheckCutoff(), SCIPsetInfinity(), SCIPtreeGetBestLeaf(), SCIPtreeIsPathComplete(), SCIPtreeProbing(), SCIPvisualCutoffNode(), SCIP_Tree::siblings, treeChildrenToSiblings(), treeFindSwitchForks(), treeNodesToQueue(), treeRemoveChild(), treeRemoveSibling(), treeSwitchPath(), TRUE, and SCIP_Stat::visual. Referenced by freeSolve(), SCIPsolveCIP(), SCIPtreeCreatePresolvingRoot(), and SCIPtreeFreePresolvingRoot().
creates an initialized tree data structure
Definition at line 4543 of file tree.c. References BMSallocBlockMemoryArray, BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnodepqCreate(), and TRUE. Referenced by SCIPtransformProb().
frees tree data structure
Definition at line 4619 of file tree.c. References BMSfreeBlockMemoryArray, BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPnodepqFree(), and SCIPtreeProbing(). Referenced by freeTransform().
clears and resets tree data structure and deletes all nodes
Definition at line 4666 of file tree.c. References SCIP_Tree::appliedeffectiverootdepth, SCIP_Tree::correctlpdepth, SCIP_Tree::cutoffdelayed, SCIP_Tree::cutoffdepth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Tree::leaves, SCIP_Tree::nchildren, SCIP_Tree::npendingbdchgs, SCIP_Tree::nsiblings, NULL, SCIP_Tree::pathlen, SCIP_Tree::pendingbdchgs, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingnodehaslp, SCIP_Tree::probingsolvedlp, SCIP_Tree::repropdepth, SCIP_Tree::repropsubtreecount, SCIP_Tree::root, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPnodepqClear(), SCIPtreeProbing(), SCIPvarRelease(), and SCIP_PendingBdchg::var. Referenced by freeSolve(), SCIPpresolve(), and SCIPtreeFreePresolvingRoot().
creates the root node of the tree and puts it into the leaves queue
Definition at line 4726 of file tree.c. References SCIP_Node::active, SCIP_Tree::children, SCIP_Node::cutoff, SCIP_Node::depth, SCIP_Tree::focusnode, MAXDEPTH, MAXREPROPMARK, SCIP_Tree::nchildren, SCIP_Node::nodetype, SCIP_Tree::nsiblings, NULL, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Tree::root, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_OKAY, SCIPnodeCreateChild(), SCIPsetInfinity(), SCIPtreeProbing(), and treeNodesToQueue(). Referenced by initSolve(), and SCIPtreeCreatePresolvingRoot().
creates a temporary presolving root node of the tree and installs it as focus node
Definition at line 4771 of file tree.c. References FALSE, SCIP_Tree::focusnode, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeFocus(), SCIPtreeCreateRoot(), and SCIPtreeProbing(). Referenced by initPresolve().
frees the temporary presolving root and resets tree data structure
Definition at line 4811 of file tree.c. References FALSE, SCIP_Tree::focusnode, NULL, SCIP_Tree::pathlen, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPnodeFocus(), and SCIPtreeClear(). Referenced by exitPresolve().
returns the node selector associated with the given node priority queue
Definition at line 4853 of file tree.c. References SCIP_Tree::leaves, NULL, and SCIPnodepqGetNodesel().
sets the node selector used for sorting the nodes in the priority queue, and resorts the queue if necessary
Definition at line 4863 of file tree.c. References SCIP_Tree::leaves, SCIP_Stat::nnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPmessagePrintVerbInfo(), SCIPnodepqGetNodesel(), SCIPnodepqSetNodesel(), and SCIPnodeselGetName(). Referenced by SCIPsolveCIP().
cuts off nodes with lower bound not better than given cutoff bound
Definition at line 4891 of file tree.c. References SCIP_Tree::children, SCIP_Tree::cutoffdelayed, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Tree::root, SCIP_CALL, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_OKAY, SCIPdebugMessage, SCIPlpDiving(), SCIPlpGetSolstat(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodepqBound(), SCIPreoptCheckCutoff(), SCIPsetIsGE(), SCIPvisualCutoffNode(), SCIP_Tree::siblings, TRUE, and SCIP_Stat::visual. Referenced by primalSetCutoffbound(), SCIPendDive(), and SCIPsolveCIP().
calculates the node selection priority for moving the given variable's LP value to the given target value; this node selection priority can be given to the SCIPcreateChild() call
Definition at line 4976 of file tree.c. References NULL, SCIP_Bool, SCIP_BRANCHDIR_AUTO, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_Real, SCIPerrorMessage, SCIPsetEpsilon(), SCIPsetInfinity(), SCIPtreeGetCurrentDepth(), SCIPtreeHasFocusNodeLP(), SCIPvarGetAvgInferences(), SCIPvarGetBranchDirection(), SCIPvarGetName(), SCIPvarGetPseudocost(), SCIPvarGetRootSol(), and SCIPvarGetSol(). Referenced by SCIPcalcNodeselPriority(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().
calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given branching; this estimate can be given to the SCIPcreateChild() call
Definition at line 5126 of file tree.c. References SCIP_Tree::focusnode, MIN, NULL, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPnodeGetEstimate(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPtreeHasFocusNodeLP(), SCIPvarGetPseudocost(), SCIPvarGetSol(), and SCIPvarGetType(). Referenced by SCIPcalcChildEstimate(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().
branches on a variable x if x is a continuous variable, then two child nodes will be created (x <= x', x >= x') but if the bounds of x are such that their relative difference is smaller than epsilon, the variable is fixed to val (if not SCIP_INVALID) or a well chosen alternative in the current node, i.e., no children are created if x is not a continuous variable, then: if solution value x' is fractional, two child nodes will be created (x <= floor(x'), x >= ceil(x')), if solution value is integral, the x' is equal to lower or upper bound of the branching variable and the bounds of x are finite, then two child nodes will be created (x <= x", x >= x"+1 with x" = floor((lb + ub)/2)), otherwise (up to) three child nodes will be created (x <= x'-1, x == x', x >= x'+1) if solution value is equal to one of the bounds and the other bound is infinite, only two child nodes will be created (the third one would be infeasible anyway)
Definition at line 5185 of file tree.c. References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, MAX, MIN, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPnodeGetLowerbound(), SCIPrelDiff(), SCIPsetEpsilon(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsRelEQ(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetCurrentNode(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetProbvarSum(), SCIPvarGetRootSol(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvisualUpdateChild(), and SCIP_Stat::visual. Referenced by SCIPbranchExecExtern(), SCIPbranchExecLP(), SCIPbranchExecPseudo(), SCIPbranchVar(), SCIPbranchVarVal(), and SCIPtreeBranchVarNary().
branches a variable x using the given domain hole; two child nodes will be created (x <= left, x >= right)
Definition at line 5516 of file tree.c. References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarHole(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvisualUpdateChild(), and SCIP_Stat::visual. Referenced by SCIPbranchVarHole().
n-ary branching on a variable x Branches on variable x such that up to n/2 children are created on each side of the usual branching value. The branching value is selected as in SCIPtreeBranchVar(). If n is 2 or the variables local domain is too small for a branching into n pieces, SCIPtreeBranchVar() is called. The parameters minwidth and widthfactor determine the domain width of the branching variable in the child nodes. If n is odd, one child with domain width 'width' and having the branching value in the middle is created. Otherwise, two children with domain width 'width' and being left and right of the branching value are created. Next further nodes to the left and right are created, where width is multiplied by widthfactor with increasing distance from the first nodes. The initial width is calculated such that n/2 nodes are created to the left and to the right of the branching value. If this value is below minwidth, the initial width is set to minwidth, which may result in creating less than n nodes. Giving a large value for widthfactor results in creating children with small domain when close to the branching value and large domain when closer to the current variable bounds. That is, setting widthfactor to a very large value and n to 3 results in a ternary branching where the branching variable is mostly fixed in the middle child. Setting widthfactor to 1.0 results in children where the branching variable always has the same domain width (except for one child if the branching value is not in the middle).
Definition at line 5658 of file tree.c. References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, MAX, MIN, NULL, pow(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPrelDiff(), SCIPsetCeil(), SCIPsetEpsilon(), SCIPsetFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsPositive(), SCIPsetIsRelEQ(), SCIPsetIsRelGT(), SCIPsetIsRelLT(), SCIPsetIsZero(), SCIPtreeBranchVar(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetProbvarSum(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvisualUpdateChild(), and SCIP_Stat::visual. Referenced by SCIPbranchVarValNary().
adds a diving bound change to the tree together with the information if this is a bound change for the preferred direction or not
Definition at line 6023 of file tree.c. References ARRAYGROWTH, BMSreallocBlockMemoryArray, SCIP_Tree::divebdchgdirs, SCIP_Tree::divebdchgsize, SCIP_Tree::divebdchgvals, SCIP_Tree::divebdchgvars, SCIP_Tree::ndivebdchanges, SCIP_ALLOC, and SCIP_OKAY. Referenced by SCIPaddDiveBoundChange().
get the dive bound change data for the preferred or the alternative direction
Definition at line 6055 of file tree.c. References SCIP_Tree::divebdchgdirs, SCIP_Tree::divebdchgvals, SCIP_Tree::divebdchgvars, SCIP_Tree::ndivebdchanges, and NULL. Referenced by SCIPgetDiveBoundChangeData(), and SCIPgetDiveBoundChanges().
clear the tree bound change data structure
Definition at line 6078 of file tree.c. References SCIP_Tree::ndivebdchanges. Referenced by SCIPclearDiveBoundChanges().
creates a probing child node of the current node, which must be the focus node, the current refocused node, or another probing node; if the current node is the focus or a refocused node, the created probing node is installed as probing root node
Definition at line 6093 of file tree.c. References SCIP_Node::active, BMSfreeBlockMemory, SCIP_Node::data, FALSE, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, nodeAssignParent(), nodeCreate(), SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, probingnodeCreate(), probingnodeFree(), SCIP_Tree::probingnodehaslp, SCIP_Tree::probingroot, SCIP_CALL, SCIP_MAXDEPTHLEVEL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpMarkSize(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeIsPathComplete(), SCIPtreeProbing(), treeEnsurePathMem(), treeUpdatePathLPSize(), and TRUE. Referenced by SCIPtreeCreateProbingNode(), and SCIPtreeStartProbing().
switches to probing mode and creates a probing root
Definition at line 6177 of file tree.c. References SCIP_Lp::divingobjchg, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::isrelax, NULL, SCIP_Tree::pathlen, SCIP_Lp::primalfeasible, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasprimfeas, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingobjchanged, SCIP_Tree::probingsolvedlp, SCIP_Tree::probingsumchgdobjs, SCIP_Tree::sbprobing, SCIP_CALL, SCIP_OKAY, SCIPconshdlrsStorePropagationStatus(), SCIPdebugMessage, SCIPlpGetNorms(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIPlpStartProbing(), SCIPtreeProbing(), SCIP_Lp::solved, treeCreateProbingNode(), and TRUE. Referenced by SCIPstartProbing(), and SCIPstartStrongbranch().
creates a new probing child node in the probing path
Definition at line 6232 of file tree.c. References SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPtreeProbing(), and treeCreateProbingNode(). Referenced by SCIPnewProbingNode().
loads the LP state for the current probing node
Definition at line 6251 of file tree.c. References SCIP_Node::data, FALSE, SCIP_Probingnode::lpistate, SCIP_Probingnode::lpwasdualfeas, SCIP_Probingnode::lpwasprimfeas, NULL, SCIP_Node::parent, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasprimfeas, SCIP_Node::probingnode, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPlpSetNorms(), SCIPlpSetState(), SCIPnodeGetType(), SCIPtreeGetCurrentNode(), and SCIPtreeProbing(). Referenced by solveProbingLP().
marks the probing node to have a solved LP relaxation
Definition at line 6324 of file tree.c. References SCIP_Node::data, NULL, SCIP_Node::probingnode, SCIP_Tree::probingnodehaslp, probingnodeUpdate(), SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeProbing(), and TRUE. Referenced by solveProbingLP().
undoes all changes to the problem applied in probing up to the given probing depth
Definition at line 6351 of file tree.c. References SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdepth, SCIP_Node::data, FALSE, SCIP_Tree::focuslpconstructed, SCIP_Tree::focusnode, SCIP_Probingnode::nchgdobjs, SCIP_Lp::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, nodeDeactivate(), SCIP_Lp::nrows, NULL, SCIP_Probingnode::origobjvals, SCIP_Probingnode::origobjvars, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Tree::probingloadlpistate, SCIP_Node::probingnode, SCIP_Tree::probingobjchanged, SCIP_Tree::probingroot, SCIP_Tree::probingsumchgdobjs, SCIP_Tree::repropdepth, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpRecomputeLocalAndGlobalPseudoObjval(), SCIPlpSetCutoffbound(), SCIPlpSetSizeMark(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpUnmarkDivingObjChanged(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPtreeGetProbingDepth(), SCIPtreeProbing(), SCIPvarChgObj(), treeApplyPendingBdchgs(), treeCheckPath(), and TRUE. Referenced by SCIPtreeBacktrackProbing(), and SCIPtreeEndProbing().
undoes all changes to the problem applied in probing up to the given probing depth; the changes of the probing node of the given probing depth are the last ones that remain active; changes that were applied before calling SCIPtreeCreateProbingNode() cannot be undone
Definition at line 6493 of file tree.c. References NULL, SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeGetProbingDepth(), SCIPtreeProbing(), and treeBacktrackProbing(). Referenced by SCIPbacktrackProbing().
switches back from probing to normal operation mode, frees all nodes on the probing path, restores bounds of all variables and restores active constraints arrays of focus node
Definition at line 6527 of file tree.c. References SCIP_Primal::cutoffbound, SCIP_Lp::cutoffbound, SCIP_Lp::divingobjchg, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Tree::focuslpconstructed, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Lp::lpi, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Lp::primalfeasible, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasprimfeas, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingobjchanged, SCIP_Tree::probingroot, SCIP_Tree::probingsolvedlp, SCIP_Tree::probingsumchgdobjs, SCIP_Lp::resolvelperror, SCIP_Tree::sbprobing, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPconshdlrsResetPropagationStatus(), SCIPdebugMessage, SCIPlpDivingObjChanged(), SCIPlpEndProbing(), SCIPlpFlush(), SCIPlpFreeNorms(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpiClearState(), SCIPlpIsRelax(), SCIPlpSetIsRelax(), SCIPlpSetNorms(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodeUpdateLowerboundLP(), SCIPprobAllColsInLP(), SCIPtreeGetCurrentNode(), SCIPtreeProbing(), SCIP_Lp::solisbasic, SCIP_Lp::solved, treeBacktrackProbing(), and TRUE. Referenced by SCIPendProbing(). gets the best child of the focus node w.r.t. the node selection priority assigned by the branching rule
Definition at line 6679 of file tree.c. References SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::nchildren, NULL, SCIP_Real, and SCIP_REAL_MIN. Referenced by SCIPgetPrioChild(). gets the best sibling of the focus node w.r.t. the node selection priority assigned by the branching rule
Definition at line 6705 of file tree.c. References SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIP_REAL_MIN, SCIP_Tree::siblings, and SCIP_Tree::siblingsprio. Referenced by SCIPgetPrioSibling(). gets the best child of the focus node w.r.t. the node selection strategy
Definition at line 6731 of file tree.c. References SCIP_Tree::children, SCIP_Tree::leaves, SCIP_Tree::nchildren, NULL, SCIPnodepqGetNodesel(), and SCIPnodeselCompare(). Referenced by SCIPgetBestChild(), and SCIPtreeGetBestNode(). gets the best sibling of the focus node w.r.t. the node selection strategy
Definition at line 6758 of file tree.c. References SCIP_Tree::leaves, SCIP_Tree::nsiblings, NULL, SCIPnodepqGetNodesel(), SCIPnodeselCompare(), and SCIP_Tree::siblings. Referenced by SCIPgetBestSibling(), and SCIPtreeGetBestNode(). gets the best leaf from the node queue w.r.t. the node selection strategy
Definition at line 6785 of file tree.c. References SCIP_Tree::leaves, NULL, and SCIPnodepqFirst(). Referenced by SCIPgetBestLeaf(), SCIPnodeFocus(), and SCIPtreeGetBestNode(). gets the best node from the tree (child, sibling, or leaf) w.r.t. the node selection strategy
Definition at line 6795 of file tree.c. References SCIP_Tree::leaves, NULL, SCIPnodepqGetNodesel(), SCIPnodeselCompare(), SCIPtreeGetBestChild(), SCIPtreeGetBestLeaf(), SCIPtreeGetBestSibling(), and SCIPtreeGetNLeaves(). Referenced by SCIPgetBestNode(). gets the minimal lower bound of all nodes in the tree
Definition at line 6829 of file tree.c. References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, MIN, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerbound(), and SCIP_Tree::siblings. Referenced by getDualbound(), getLowerbound(), priceAndCutLoop(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), and SCIPnodeUpdateLowerbound(). gets the node with minimal lower bound of all nodes in the tree (child, sibling, or leaf)
Definition at line 6867 of file tree.c. References SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundNode(), SCIPsetInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIP_Tree::siblings, and SCIP_Tree::siblingsprio. Referenced by SCIPgetBestboundNode(). gets the average lower bound of all nodes in the tree
Definition at line 6919 of file tree.c. References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundSum(), SCIPtreeGetNLeaves(), and SCIP_Tree::siblings. Referenced by SCIPgetAvgDualbound(), and SCIPgetAvgLowerbound().
gets the type of the node
Definition at line 7006 of file tree.c. References SCIP_Node::nodetype, and NULL. Referenced by focusnodeCleanupVars(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), forkAddLP(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeReleaseParent(), nodeToLeaf(), priceAndCutLoop(), propagateDomains(), pseudoforkAddLP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_NODESELCOMP(), SCIPchgChildPrio(), SCIPchgVarLbProbing(), SCIPchgVarObjProbing(), SCIPchgVarUbProbing(), SCIPchildChgNodeselPrio(), SCIPendStrongbranch(), SCIPfixVarProbing(), SCIPnodeAddBoundinfer(), SCIPnodeAddCons(), SCIPnodeAddHoleinfer(), SCIPnodeCaptureLPIState(), SCIPnodeCreateChild(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodepqBound(), SCIPnodepqClear(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPprimalHeuristics(), SCIPstartDive(), SCIPtreeBacktrackProbing(), SCIPtreeEndProbing(), SCIPtreeInRepropagation(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPvisualCutoffNode(), SCIPvisualFoundConflict(), SCIPvisualFoundSolution(), SCIPvisualMarkedRepropagateNode(), SCIPvisualNewChild(), SCIPvisualRepropagatedNode(), SCIPvisualSolvedNode(), SCIPvisualUpdateChild(), solveNode(), solveNodeInitialLP(), solveNodeRelax(), subrootConstructLP(), treeAddChild(), treeBacktrackProbing(), treeCheckPath(), treeChildrenToSiblings(), treeCreateProbingNode(), treeFindSwitchForks(), treeRemoveChild(), treeRemoveSibling(), treeSwitchPath(), treeUpdatePathLPSize(), and updatePseudocost().
gets successively assigned number of the node
Definition at line 7016 of file tree.c. References NULL, and SCIP_Node::number. Referenced by addBranchingComplementaritiesSOS1(), addLocalConss(), addNode(), addSplitcons(), applyVbounds(), collectDualInformation(), constructCompression(), Exec(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeGetVisits(), nodeReleaseParent(), nodeRepropagate(), nodeToLeaf(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIP_DECL_PROPEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPnodeCaptureLPIState(), SCIPnodeCreateChild(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodePropagateAgain(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPreoptAddDualBndchg(), SCIPreoptApply(), SCIPreoptCheckCutoff(), SCIPreoptGetNDualBndchgs(), SCIPtreeCutoff(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPvisualMarkedRepropagateNode(), shrinkNode(), treeCreateProbingNode(), and updateVisits().
gets the depth of the node
Definition at line 7026 of file tree.c. References SCIP_Node::depth, and NULL. Referenced by addNode(), applyProbing(), compareNodes(), constructCompression(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), generateCut(), generateSecantCut(), generateSecantCutNoCheck(), getLastSavedNode(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeReleaseParent(), nodeRepropagate(), nodeToLeaf(), priceAndCutLoop(), propagateDomains(), reoptCheckLocalRestart(), saveGlobalCons(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPaddConsNode(), SCIPaddRowDive(), SCIPaddRowProbing(), SCIPanalyzeDeductionsProbing(), SCIPconflicthdlrExec(), SCIPconstructCurrentLP(), SCIPdelConsLocal(), SCIPdelConsNode(), SCIPnodeAddBoundinfer(), SCIPnodeAddCons(), SCIPnodeAddHoleinfer(), SCIPnodeCaptureLPIState(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodeGetAncestorBranchingPath(), SCIPnodeGetAncestorBranchings(), SCIPnodeGetBdChgsAfterDual(), SCIPnodeGetConsProps(), SCIPnodeGetDualBoundchgs(), SCIPnodeGetParentBranchings(), SCIPnodepqBound(), SCIPnodePrintAncestorBranchings(), SCIPnodePropagateAgain(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPnodesGetCommonAncestor(), SCIPnodesSharePath(), SCIPprimalHeuristics(), SCIPprintNodeRootPath(), SCIPreoptCheckCutoff(), SCIPreoptGetChildIDs(), SCIPreoptGetNAddedConss(), SCIPreoptGetNLeaves(), SCIPreoptGetNNodes(), SCIPreoptGetSolveLP(), SCIPreoptResetDualBndchgs(), SCIPsepastoreApplyCuts(), SCIPsolveCIP(), SCIPtreeCreateProbingNode(), SCIPtreeCutoff(), SCIPtreeEndProbing(), SCIPtreeGetProbingDepth(), SCIPtreeGetProbingRoot(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeProbing(), SCIPvisualCutoffNode(), SCIPvisualNewChild(), SCIPvisualSolvedNode(), SCIPvisualUpdateChild(), solveNode(), solveNodeInitialLP(), solveNodeLP(), tightenBounds(), treeApplyPendingBdchgs(), treeBacktrackProbing(), treeCreateProbingNode(), updatePseudocost(), and updateVisits(). gets the lower bound of the node
Definition at line 7036 of file tree.c. References SCIP_Node::lowerbound, and NULL. Referenced by applyBounding(), branch(), enforceConstraints(), execRelpscost(), getNodeselScore(), nodeGetUctScore(), nodepqDelPos(), priceAndCutLoop(), propAndSolve(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPgetLocalDualbound(), SCIPgetLocalLowerbound(), SCIPgetNodeDualbound(), SCIPgetNodeLowerbound(), SCIPnodepqBound(), SCIPnodepqGetLowerbound(), SCIPnodepqInsert(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPreoptApply(), SCIPreoptSaveOpenNodes(), SCIPsolveCIP(), SCIPtreeBranchVar(), SCIPvisualCutoffNode(), SCIPvisualNewChild(), SCIPvisualSolvedNode(), SCIPvisualUpdateChild(), selectVarMultAggrBranching(), and updateEstimate(). gets the estimated value of the best feasible solution in subtree of the node
Definition at line 7046 of file tree.c. References SCIP_Node::estimate, and NULL. Referenced by Exec(), getNodeselScore(), nodeGetUctScore(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPgetLocalOrigEstimate(), SCIPgetLocalTransEstimate(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), and SCIPtreeCalcChildEstimate().
gets the reoptimization type of this node
Definition at line 7056 of file tree.c. References NULL, and SCIP_Node::reopttype. Referenced by getLastSavedNode(), and SCIPreoptGetSolveLP().
sets the reoptimization type of this node
Definition at line 7066 of file tree.c. References NULL, SCIP_Node::reopttype, SCIP_REOPTTYPE_FEASIBLE, SCIP_REOPTTYPE_INFSUBTREE, SCIP_REOPTTYPE_LEAF, SCIP_REOPTTYPE_LOGICORNODE, SCIP_REOPTTYPE_NONE, SCIP_REOPTTYPE_PRUNED, SCIP_REOPTTYPE_STRBRANCHED, and SCIP_REOPTTYPE_TRANSIT. Referenced by addNode(), SCIPreoptApply(), SCIPreoptSplitRoot(), and shrinkNode().
gets the unique id to identify the node during reoptimization; the id is 0 if the node is the root or not part of the reoptimization tree
Definition at line 7087 of file tree.c. References NULL, and SCIP_Node::reoptid. Referenced by addNode(), Exec(), getLastSavedNode(), reoptCheckLocalRestart(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIPreoptGetChildIDs(), SCIPreoptGetLeaves(), SCIPreoptGetNAddedConss(), SCIPreoptGetNLeaves(), SCIPreoptGetNNodes(), SCIPreoptGetSolveLP(), SCIPreoptimizeNode(), and SCIPreoptResetDualBndchgs().
set a unique id to identify the node during reoptimization
Definition at line 7097 of file tree.c. References NULL, and SCIP_Node::reoptid. Referenced by addNode(), and SCIPreoptApply().
gets the domain change information of the node, i.e., the information about the differences in the variables domains to the parent node
Definition at line 7111 of file tree.c. References SCIP_Node::domchg, and NULL. Referenced by SCIPendStrongbranch().
counts the number of bound changes due to branching, constraint propagation, and propagation
Definition at line 7121 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundchgtype, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Bool, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, and SCIP_BOUNDCHGTYPE_PROPINFER. Referenced by getLastSavedNode(), SCIPnodeGetConsProps(), and updateConstraintPropagation().
returns the number of bound changes based on dual information. currently, this methods works only for bound changes made by strong branching on binary variables. we need this method to ensure optimality within reoptimization. since the bound changes made by strong branching are stored as SCIP_BOUNDCHGTYPE_CONSINFER or SCIP_BOUNDCHGTYPE_PROPINFER with no constraint or propagator, resp., we are are interested in bound changes with these attributes. all bound changes of type SCIP_BOUNDCHGTYPE_BRANCHING are stored in the beginning of the bound change array, afterwards, we can find the other two types. thus, we start the search at the end of the list and stop when reaching the first bound change of type SCIP_BOUNDCHGTYPE_BRANCHING.
Definition at line 7173 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundchgtype, SCIP_BoundChg::data, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_BoundChg::inferencedata, SCIP_DomChgBound::nboundchgs, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, and SCIP_VARTYPE_BINARY. Referenced by collectDualInformation(), and SCIPreoptCheckCutoff().
returns the set of variable branchings that were performed in the parent node to create this node
Definition at line 7214 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundchgtype, SCIP_BoundChg::data, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_BoundChg::inferencedata, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_VARTYPE_BINARY, SCIPnodeGetDepth(), and SCIP_BoundChg::var. Referenced by collectDualInformation(). gets the parent node of a node in the branch-and-bound tree, if any
Definition at line 7287 of file tree.c. References NULL, and SCIP_Node::parent. Referenced by compareNodes(), getLastSavedNode(), nodeGetUctScore(), and updateVisits().
returns the set of variable branchings that were performed in the parent node to create this node
Definition at line 7297 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIPnodeGetDepth(), and SCIP_BoundChg::var. Referenced by SCIPnodeGetAncestorBranchingPath(), SCIPnodeGetAncestorBranchings(), and SCIPnodeGetAncestorBranchingsPart().
returns the set of variable branchings that were performed in all ancestor nodes (nodes on the path to the root) to create this node
Definition at line 7361 of file tree.c. References NULL, SCIP_Node::parent, SCIPnodeGetDepth(), and SCIPnodeGetParentBranchings(). Referenced by saveGlobalCons().
returns the set of variable branchings that were performed between the given
Definition at line 7398 of file tree.c. References NULL, SCIP_Node::parent, and SCIPnodeGetParentBranchings(). Referenced by saveAncestorBranchings().
return all bound changes based on constraint propagation; stop saving the bound changes if we reach a branching decision based on a dual information
Definition at line 7439 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundchgtype, SCIP_BoundChg::data, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_BoundChg::inferencedata, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_VARTYPE_BINARY, SCIPnodeGetDepth(), SCIPnodeGetNDomchg(), and SCIP_BoundChg::var. Referenced by updateConstraintPropagation().
gets all bound changes applied after the first bound change based on dual information.
Definition at line 7527 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundchgtype, SCIP_BoundChg::data, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_BoundChg::inferencedata, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_VARTYPE_BINARY, SCIPnodeGetDepth(), and SCIP_BoundChg::var. Referenced by saveAfterDualBranchings().
outputs the path into given file stream in GML format
Definition at line 7606 of file tree.c. References SCIP_DomChgBound::boundchgs, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Node::parent, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDTYPE_LOWER, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPgmlWriteArc(), SCIPgmlWriteClosing(), SCIPgmlWriteNode(), SCIPgmlWriteOpening(), SCIPnodeGetDepth(), SCIPsnprintf(), SCIPvarGetName(), and TRUE.
returns the set of variable branchings that were performed in all ancestor nodes (nodes on the path to the root) to create this node sorted by the nodes, starting from the current node going up to the root
Definition at line 7658 of file tree.c. References NULL, SCIP_Node::parent, SCIPnodeGetDepth(), and SCIPnodeGetParentBranchings(). Referenced by SCIPprintNodeRootPath(). checks for two nodes whether they share the same root path, i.e., whether one is an ancestor of the other
Definition at line 7707 of file tree.c. References NULL, SCIP_Node::parent, and SCIPnodeGetDepth(). finds the common ancestor node of two given nodes
Definition at line 7731 of file tree.c. References NULL, SCIP_Node::parent, and SCIPnodeGetDepth(). returns whether node is in the path to the current node
Definition at line 7762 of file tree.c. References SCIP_Node::active, and NULL. Referenced by propagateDomains(), SCIPnodePropagateImplics(), and updatePseudocost(). returns whether the node is marked to be propagated again
Definition at line 7772 of file tree.c. References NULL, and SCIP_Node::reprop. Referenced by updateLoopStatus().
gets number of children of the focus node
Definition at line 7782 of file tree.c. References SCIP_Tree::nchildren, and NULL. Referenced by SCIPgetOpenNodesData().
gets number of siblings of the focus node
Definition at line 7792 of file tree.c. References SCIP_Tree::nsiblings, and NULL. Referenced by SCIPgetOpenNodesData().
gets number of leaves in the tree (excluding children and siblings of focus nodes)
Definition at line 7802 of file tree.c. References SCIP_Tree::leaves, NULL, and SCIPnodepqLen(). Referenced by SCIPsolveCIP(), SCIPtreeGetAvgLowerbound(), SCIPtreeGetBestNode(), and SCIPtreeGetNNodes().
gets number of open nodes in the tree (children + siblings + leaves)
Definition at line 7812 of file tree.c. References SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, and SCIPtreeGetNLeaves(). Referenced by printTreeStatistics(), SCIPgetNNodesLeft(), SCIPprimalHeuristics(), SCIPsolve(), SCIPsolveCIP(), and solveNode(). returns whether the active path goes completely down to the focus node
Definition at line 7822 of file tree.c. References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing(). Referenced by forkCreate(), forkFree(), junctionInit(), nodeAssignParent(), probingnodeUpdate(), pseudoforkCreate(), SCIPnodeCreateChild(), SCIPnodeFocus(), SCIPtreeHasCurrentNodeLP(), and treeCreateProbingNode(). returns whether the current node is a temporary probing node
Definition at line 7839 of file tree.c. References SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_NODETYPE_PROBINGNODE, and SCIPnodeGetDepth(). Referenced by focusnodeCleanupVars(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), nodeActivate(), nodeDeactivate(), nodeReleaseParent(), propAndSolve(), SCIPaddRowProbing(), SCIPaggregateVars(), SCIPapplyCutsProbing(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(), SCIPchgVarObjProbing(), SCIPchgVarUbProbing(), SCIPconshdlrInitLP(), SCIPendProbing(), SCIPendStrongbranch(), SCIPfixVarProbing(), SCIPgetProbingDepth(), SCIPgetVarObjProbing(), SCIPgetVarStrongbranchFrac(), SCIPinProbing(), SCIPmultiaggregateVar(), SCIPnewProbingNode(), SCIPnodeFocus(), SCIPnodeFree(), SCIPprimalHeuristics(), SCIPpropagateProbing(), SCIPpropagateProbingImplications(), SCIPsolLinkLPSol(), SCIPstartDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeBacktrackProbing(), SCIPtreeClear(), SCIPtreeCreatePresolvingRoot(), SCIPtreeCreateProbingNode(), SCIPtreeCreateRoot(), SCIPtreeEndProbing(), SCIPtreeFree(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusDepth(), SCIPtreeGetFocusNode(), SCIPtreeGetProbingDepth(), SCIPtreeHasCurrentNodeLP(), SCIPtreeIsPathComplete(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPtreeMarkProbingObjChanged(), SCIPtreeProbingObjChanged(), SCIPtreeStartProbing(), SCIPupdateVarPseudocost(), solveProbingLP(), treeBacktrackProbing(), treeCheckPath(), treeCreateProbingNode(), and treeUpdatePathLPSize(). returns the temporary probing root node, or NULL if the we are not in probing mode
Definition at line 7852 of file tree.c. References SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_NODETYPE_PROBINGNODE, and SCIPnodeGetDepth(). gets focus node of the tree
Definition at line 7865 of file tree.c. References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing(). Referenced by applyBounding(), enforceConstraints(), freeSolve(), priceAndCutLoop(), SCIPconstructCurrentLP(), SCIPnodepqBound(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPsolveCIP(), solveNode(), solveNodeInitialLP(), solveNodeRelax(), updateEstimate(), updateLoopStatus(), and updatePseudocost().
gets depth of focus node in the tree
Definition at line 7882 of file tree.c. References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing(). Referenced by conflictAddConflictCons(), conflictAddConflictset(), conflictAnalyze(), conflictCreateReconvergenceConss(), SCIPconflictFlushConss(), SCIPgetFocusDepth(), and SCIPprimalHeuristics(). returns, whether the LP was or is to be solved in the focus node
Definition at line 7899 of file tree.c. References SCIP_Tree::focusnodehaslp, and NULL. Referenced by addCurrentSolution(), enforceConstraints(), propAndSolve(), SCIPprimalHeuristics(), SCIPsolveCIP(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeHasCurrentNodeLP(), solveNode(), solveNodeLP(), and updateEstimate(). sets mark to solve or to ignore the LP while processing the focus node
Definition at line 7909 of file tree.c. References SCIP_Tree::focusnodehaslp, and NULL. Referenced by enforceConstraints(), propAndSolve(), SCIPsetFocusnodeLP(), and solveNode(). returns whether the LP of the focus node is already constructed
Definition at line 7920 of file tree.c. References SCIP_Tree::focuslpconstructed, and NULL. Referenced by SCIPconstructCurrentLP(), SCIPendDive(), SCIPgetLPCols(), SCIPgetLPColsData(), SCIPgetLPRows(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNLPCols(), SCIPgetNLPRows(), SCIPisLPConstructed(), SCIPpricestoreApplyVars(), SCIPstartDive(), SCIPwriteLP(), and solveProbingLP(). returns whether the focus node is already solved and only propagated again
Definition at line 7930 of file tree.c. References SCIP_Tree::focusnode, NULL, SCIP_NODETYPE_REFOCUSNODE, and SCIPnodeGetType(). Referenced by primalAddSol(), primalSetCutoffbound(), and SCIPinRepropagation(). gets current node of the tree, i.e. the last node in the active path, or NULL if no current node exists
Definition at line 7940 of file tree.c. References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing(). Referenced by primalAddSol(), propagateDomains(), SCIPaddCons(), SCIPaddConsLocal(), SCIPaddCut(), SCIPaddRowDive(), SCIPaddRowProbing(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarLbProbing(), SCIPchgVarObjProbing(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPchgVarUbProbing(), SCIPdelConsLocal(), SCIPfixVarProbing(), SCIPgetCurrentNode(), SCIPgetLocalDualbound(), SCIPgetLocalLowerbound(), SCIPgetLocalOrigEstimate(), SCIPgetLocalTransEstimate(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPnodeAddBoundinfer(), SCIPpropagateProbingImplications(), SCIPseparateCutpool(), SCIPseparateSolCutpool(), SCIPsepastoreApplyCuts(), SCIPsolve(), SCIPsolveCIP(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeBacktrackProbing(), SCIPtreeBranchVar(), SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPupdateLocalDualbound(), SCIPupdateLocalLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), and treeCreateProbingNode().
gets depth of current node in the tree, i.e. the length of the active path minus 1, or -1 if no current node exists
Definition at line 7957 of file tree.c. References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing(). Referenced by addBoundViolated(), analyzeStrongbranch(), conflictAddConflictCons(), conflictAddConflictset(), conflictAnalyze(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), conflictCreateReconvergenceConss(), conflictsetCalcInsertDepth(), priceAndCutLoop(), primalSetUpperbound(), propagationRound(), propAndSolve(), SCIPaddCons(), SCIPaddCut(), SCIPaddPricedVar(), SCIPaggregateVars(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPconflictAnalyze(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeStrongbranch(), SCIPconflictFlushConss(), SCIPconshdlrInitLP(), SCIPfixVar(), SCIPgetDepth(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarFixCons(), SCIPinferVarFixProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPisCutEfficacious(), SCIPisEfficacious(), SCIPmultiaggregateVar(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprimalHeuristics(), SCIPremoveInefficaciousCuts(), SCIPseparateCutpool(), SCIPseparateSol(), SCIPseparateSolCutpool(), SCIPsolveCIP(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetProbingDepth(), solStamp(), solveNodeLP(), and solveProbingLP().
gets the maximal allowed tree depth
Definition at line 7974 of file tree.c. References MAXDEPTH, and NULL. Referenced by performStrongbranchWithPropagation(), and SCIPgetDepthLimit(). returns, whether the LP was or is to be solved in the current node
Definition at line 7984 of file tree.c. References NULL, SCIP_Tree::probingnodehaslp, SCIPtreeHasFocusNodeLP(), SCIPtreeIsPathComplete(), and SCIPtreeProbing(). Referenced by SCIPbranchGetBranchingPoint(), SCIPcreateLPSol(), SCIPgetColFarkasCoef(), SCIPgetColRedcost(), SCIPgetRowActivity(), SCIPgetRowFeasibility(), SCIPgetRowSolActivity(), SCIPgetRowSolFeasibility(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetVarSol(), SCIPgetVarSols(), SCIPhasCurrentNodeLP(), SCIPnodeAddBoundinfer(), SCIPpricestoreAddProbVars(), SCIPrecalcRowActivity(), SCIPseparateCutpool(), SCIPseparateSolCutpool(), SCIPsolCreateCurrentSol(), SCIPsolLinkCurrentSol(), and SCIPstartDive().
returns the current probing depth, i.e. the number of probing sub nodes existing in the probing path
Definition at line 7995 of file tree.c. References NULL, SCIP_Tree::probingroot, SCIPnodeGetDepth(), SCIPtreeGetCurrentDepth(), and SCIPtreeProbing(). Referenced by performStrongbranchWithPropagation(), SCIPbacktrackProbing(), SCIPgetProbingDepth(), SCIPtreeBacktrackProbing(), and treeBacktrackProbing().
returns the depth of the effective root node (i.e. the first depth level of a node with at least two children)
Definition at line 8006 of file tree.c. References SCIP_Tree::effectiverootdepth, and NULL. Referenced by SCIPaddCons(), SCIPaddConsNode(), SCIPdelConsLocal(), SCIPdelConsNode(), SCIPgetEffectiveRootDepth(), and SCIPnodepqBound(). gets the root node of the tree
Definition at line 8017 of file tree.c. References NULL, and SCIP_Tree::root. Referenced by applyImplic(), initSolve(), SCIPgetRootNode(), SCIPreoptSplitRoot(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarFixBinary(), sepastoreApplyLb(), sepastoreApplyUb(), and varAddImplic(). returns whether we are in probing and the objective value of at least one column was changed
Definition at line 8028 of file tree.c. References NULL, SCIP_Tree::probingobjchanged, and SCIPtreeProbing(). Referenced by SCIPchgVarObjProbing().
marks the current probing node to have a changed objective function
Definition at line 8039 of file tree.c. References NULL, SCIP_Tree::probingobjchanged, SCIPtreeProbing(), and TRUE. Referenced by SCIPchgVarObjProbing(). |