Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for branch and bound tree

    Author
    Tobias Achterberg
    Timo Berthold
    Gerald Gamrath

    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/certificate.h"
    #include "scip/visual.h"
    #include "scip/event.h"
    #include "scip/lp.h"
    #include "scip/lpexact.h"
    #include "scip/relax.h"
    #include "scip/var.h"
    #include "scip/implics.h"
    #include "scip/primal.h"
    #include "scip/tree.h"
    #include "scip/reopt.h"
    #include "scip/conflictstore.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/struct_scip.h"
    #include "scip/struct_mem.h"
    #include "scip/struct_event.h"
    #include "scip/struct_lpexact.h"
    #include "scip/pub_message.h"
    #include "lpi/lpi.h"

    Go to the source code of this file.

    Macros

    #define MAXREPROPMARK   511
     
    #define ARRAYGROWTH   5
     

    Functions

    static SCIP_RETCODE treeEnsureChildrenMem (SCIP_TREE *tree, SCIP_SET *set, int num)
     
    static SCIP_RETCODE treeEnsurePathMem (SCIP_TREE *tree, SCIP_SET *set, int num)
     
    static SCIP_RETCODE treeEnsurePendingbdchgsMem (SCIP_TREE *tree, SCIP_SET *set, int num)
     
     SCIP_DECL_SORTPTRCOMP (SCIPnodeCompLowerbound)
     
    static void forkCaptureLPIState (SCIP_FORK *fork, int nuses)
     
    static SCIP_RETCODE forkReleaseLPIState (SCIP_FORK *fork, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    static void subrootCaptureLPIState (SCIP_SUBROOT *subroot, int nuses)
     
    static SCIP_RETCODE subrootReleaseLPIState (SCIP_SUBROOT *subroot, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPnodeCaptureLPIState (SCIP_NODE *node, int nuses)
     
    SCIP_RETCODE SCIPnodeReleaseLPIState (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    static SCIP_RETCODE probingnodeCreate (SCIP_PROBINGNODE **probingnode, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    static SCIP_RETCODE probingnodeUpdate (SCIP_PROBINGNODE *probingnode, BMS_BLKMEM *blkmem, SCIP_TREE *tree, SCIP_LP *lp)
     
    static SCIP_RETCODE probingnodeFree (SCIP_PROBINGNODE **probingnode, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    static SCIP_RETCODE junctionInit (SCIP_JUNCTION *junction, SCIP_TREE *tree)
     
    static SCIP_RETCODE pseudoforkCreate (SCIP_PSEUDOFORK **pseudofork, BMS_BLKMEM *blkmem, SCIP_TREE *tree, SCIP_LP *lp)
     
    static SCIP_RETCODE pseudoforkFree (SCIP_PSEUDOFORK **pseudofork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
     
    static SCIP_RETCODE forkCreate (SCIP_FORK **fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
     
    static SCIP_RETCODE forkFree (SCIP_FORK **fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
     
    static SCIP_RETCODE subrootFree (SCIP_SUBROOT **subroot, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
     
    static void treeRemoveSibling (SCIP_TREE *tree, SCIP_NODE *sibling)
     
    static SCIP_RETCODE treeAddChild (SCIP_TREE *tree, SCIP_SET *set, SCIP_NODE *child, SCIP_Real nodeselprio)
     
    static void treeRemoveChild (SCIP_TREE *tree, SCIP_NODE *child)
     
    static SCIP_RETCODE nodeAssignParent (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_TREE *tree, SCIP_NODE *parent, SCIP_Real nodeselprio)
     
    static SCIP_RETCODE nodeReleaseParent (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_TREE *tree)
     
    static SCIP_RETCODE nodeCreate (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set)
     
    SCIP_RETCODE SCIPnodeCreateChild (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Real nodeselprio, SCIP_Real estimate)
     
    SCIP_Bool SCIPtreeWasNodeLastBranchParent (SCIP_TREE *tree, SCIP_NODE *node)
     
    SCIP_RETCODE SCIPnodeFree (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPnodeCutoff (SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_REOPT *reopt, SCIP_LP *lp, BMS_BLKMEM *blkmem)
     
    void SCIPnodePropagateAgain (SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree)
     
    void SCIPnodeMarkPropagated (SCIP_NODE *node, SCIP_TREE *tree)
     
    static void treeNextRepropsubtreecount (SCIP_TREE *tree)
     
    static SCIP_RETCODE nodeRepropagate (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE nodeActivate (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE nodeDeactivate (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue)
     
    SCIP_RETCODE SCIPnodeAddCons (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_CONS *cons)
     
    SCIP_RETCODE SCIPnodeDelCons (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_CONS *cons)
     
    void SCIPnodeGetAddedConss (SCIP_NODE *node, SCIP_CONS **addedconss, int *naddedconss, int addedconsssize)
     
    int SCIPnodeGetNAddedConss (SCIP_NODE *node)
     
    static SCIP_RETCODE treeAddPendingBdchg (SCIP_TREE *tree, SCIP_SET *set, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_RATIONAL *newboundexact, SCIP_BOUNDTYPE boundtype, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)
     
    SCIP_RETCODE SCIPnodeAddBoundinfer (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)
     
    SCIP_RETCODE SCIPnodeAddBoundinferExact (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_BOUNDTYPE boundtype, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange)
     
    SCIP_RETCODE SCIPnodeAddBoundchg (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_Real newbound, SCIP_BOUNDTYPE boundtype, SCIP_Bool probingchange)
     
    SCIP_RETCODE SCIPnodeAddBoundchgExact (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LPEXACT *lpexact, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_VAR *var, SCIP_RATIONAL *newbound, SCIP_BOUNDTYPE boundtype, SCIP_Bool probingchange)
     
    SCIP_RETCODE SCIPnodeAddHoleinfer (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_CONS *infercons, SCIP_PROP *inferprop, int inferinfo, SCIP_Bool probingchange, SCIP_Bool *added)
     
    SCIP_RETCODE SCIPnodeAddHolechg (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_Bool probingchange, SCIP_Bool *added)
     
    static SCIP_RETCODE treeApplyPendingBdchgs (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
     
    SCIP_RETCODE SCIPnodeUpdateLowerbound (SCIP_NODE *node, SCIP_STAT *stat, SCIP_SET *set, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real newbound, SCIP_RATIONAL *newboundexact)
     
    SCIP_RETCODE SCIPnodeUpdateLowerboundLP (SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_MESSAGEHDLR *messagehdlr, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp)
     
    void SCIPchildChgNodeselPrio (SCIP_TREE *tree, SCIP_NODE *child, SCIP_Real priority)
     
    void SCIPnodeSetEstimate (SCIP_NODE *node, SCIP_SET *set, SCIP_Real newestimate)
     
    SCIP_RETCODE SCIPnodePropagateImplics (SCIP_NODE *node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE treeUpdatePathLPSize (SCIP_TREE *tree, int startdepth)
     
    static void treeFindSwitchForks (SCIP_TREE *tree, SCIP_NODE *node, SCIP_NODE **commonfork, SCIP_NODE **newlpfork, SCIP_NODE **newlpstatefork, SCIP_NODE **newsubroot, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE treeSwitchPath (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_NODE *fork, SCIP_NODE *focusnode, SCIP_Bool *cutoff)
     
    static SCIP_RETCODE subrootConstructLP (SCIP_NODE *subroot, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    static SCIP_RETCODE forkAddLP (SCIP_NODE *fork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    static SCIP_RETCODE pseudoforkAddLP (SCIP_NODE *pseudofork, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    static void treeCheckPath (SCIP_TREE *tree)
     
    SCIP_RETCODE SCIPtreeLoadLP (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_Bool *initroot)
     
    SCIP_RETCODE SCIPtreeLoadLPState (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
     
    static SCIP_RETCODE nodeToLeaf (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)
     
    static SCIP_RETCODE focusnodeCleanupVars (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool inlp)
     
    static SCIP_RETCODE focusnodeToDeadend (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)
     
    static SCIP_RETCODE focusnodeToLeaf (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)
     
    static SCIP_RETCODE focusnodeToJunction (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp)
     
    static SCIP_RETCODE focusnodeToPseudofork (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)
     
    static SCIP_RETCODE focusnodeToFork (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CLIQUETABLE *cliquetable)
     
    static SCIP_RETCODE treeNodesToQueue (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_NODE **nodes, int *nnodes, SCIP_NODE *lpstatefork, SCIP_Real cutoffbound)
     
    static void treeChildrenToSiblings (SCIP_TREE *tree)
     
    SCIP_RETCODE SCIPnodeFocus (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *cutoff, SCIP_Bool postponed, SCIP_Bool exitsolve)
     
    SCIP_RETCODE SCIPtreeCreate (SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_NODESEL *nodesel)
     
    SCIP_RETCODE SCIPtreeFree (SCIP_TREE **tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeClear (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeCreateRoot (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeCreatePresolvingRoot (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
     
    SCIP_RETCODE SCIPtreeFreePresolvingRoot (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
     
    SCIP_NODESELSCIPtreeGetNodesel (SCIP_TREE *tree)
     
    SCIP_RETCODE SCIPtreeSetNodesel (SCIP_TREE *tree, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_NODESEL *nodesel)
     
    SCIP_RETCODE SCIPtreeCutoff (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_LP *lp, SCIP_Real cutoffbound)
     
    SCIP_Real SCIPtreeCalcNodeselPriority (SCIP_TREE *tree, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_BRANCHDIR branchdir, SCIP_Real targetvalue)
     
    SCIP_Real SCIPtreeCalcChildEstimate (SCIP_TREE *tree, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var, SCIP_Real targetvalue)
     
    SCIP_RETCODE SCIPtreeBranchVar (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_VAR *var, SCIP_Real val, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild)
     
    SCIP_RETCODE SCIPtreeBranchVarExact (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_VAR *var, SCIP_NODE **downchild, SCIP_NODE **upchild)
     
    SCIP_RETCODE SCIPtreeBranchVarHole (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_NODE **downchild, SCIP_NODE **upchild)
     
    SCIP_RETCODE SCIPtreeBranchVarNary (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_VAR *var, SCIP_Real val, int n, SCIP_Real minwidth, SCIP_Real widthfactor, int *nchildren)
     
    SCIP_RETCODE SCIPtreeAddDiveBoundChange (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_VAR *var, SCIP_BRANCHDIR dir, SCIP_Real value, SCIP_Bool preferred)
     
    void SCIPtreeGetDiveBoundChangeData (SCIP_TREE *tree, SCIP_VAR ***variables, SCIP_BRANCHDIR **directions, SCIP_Real **values, int *ndivebdchgs, SCIP_Bool preferred)
     
    void SCIPtreeClearDiveBoundChanges (SCIP_TREE *tree)
     
    static SCIP_RETCODE treeCreateProbingNode (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeStartProbing (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob, SCIP_Bool strongbranching)
     
    SCIP_RETCODE SCIPtreeCreateProbingNode (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeSetProbingLPState (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_LP *lp, SCIP_LPISTATE **lpistate, SCIP_LPINORMS **lpinorms, SCIP_Bool primalfeas, SCIP_Bool dualfeas)
     
    SCIP_RETCODE SCIPtreeLoadProbingLPState (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *prob, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp)
     
    SCIP_RETCODE SCIPtreeMarkProbingNodeHasLP (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_LP *lp)
     
    static SCIP_RETCODE treeBacktrackProbing (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, int probingdepth)
     
    SCIP_RETCODE SCIPtreeBacktrackProbing (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, int probingdepth)
     
    SCIP_RETCODE SCIPtreeEndProbing (SCIP_TREE *tree, SCIP_REOPT *reopt, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PRIMAL *primal, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable)
     
    SCIP_RETCODE SCIPtreeStoreRelaxSol (SCIP_TREE *tree, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob)
     
    SCIP_RETCODE SCIPtreeRestoreRelaxSol (SCIP_TREE *tree, SCIP_SET *set, SCIP_RELAXATION *relaxation, SCIP_PROB *transprob)
     
    SCIP_NODESCIPtreeGetPrioChild (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetPrioSibling (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetBestChild (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_NODESCIPtreeGetBestSibling (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_NODESCIPtreeGetBestLeaf (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetBestNode (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_Real SCIPtreeGetLowerbound (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_RATIONALSCIPtreeGetLowerboundExact (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_NODESCIPtreeGetLowerboundNode (SCIP_TREE *tree, SCIP_SET *set)
     
    SCIP_Real SCIPtreeGetAvgLowerbound (SCIP_TREE *tree, SCIP_Real cutoffbound)
     
    SCIP_NODETYPE SCIPnodeGetType (SCIP_NODE *node)
     
    SCIP_Longint SCIPnodeGetNumber (SCIP_NODE *node)
     
    int SCIPnodeGetDepth (SCIP_NODE *node)
     
    SCIP_Real SCIPnodeGetLowerbound (SCIP_NODE *node)
     
    SCIP_RATIONALSCIPnodeGetLowerboundExact (SCIP_NODE *node)
     
    SCIP_Real SCIPnodeGetEstimate (SCIP_NODE *node)
     
    SCIP_REOPTTYPE SCIPnodeGetReopttype (SCIP_NODE *node)
     
    void SCIPnodeSetReopttype (SCIP_NODE *node, SCIP_REOPTTYPE reopttype)
     
    unsigned int SCIPnodeGetReoptID (SCIP_NODE *node)
     
    void SCIPnodeSetReoptID (SCIP_NODE *node, unsigned int id)
     
    SCIP_DOMCHGSCIPnodeGetDomchg (SCIP_NODE *node)
     
    void SCIPnodeGetNDomchg (SCIP_NODE *node, int *nbranchings, int *nconsprop, int *nprop)
     
    int SCIPnodeGetNDualBndchgs (SCIP_NODE *node)
     
    void SCIPnodeGetDualBoundchgs (SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *bounds, SCIP_BOUNDTYPE *boundtypes, int *nvars, int varssize)
     
    SCIP_NODESCIPnodeGetParent (SCIP_NODE *node)
     
    void SCIPnodeGetParentBranchings (SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)
     
    void SCIPnodeGetAncestorBranchings (SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)
     
    void SCIPnodeGetAncestorBranchingsPart (SCIP_NODE *node, SCIP_NODE *parent, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize)
     
    void SCIPnodeGetPropsBeforeDual (SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *varbounds, SCIP_BOUNDTYPE *varboundtypes, int *npropvars, int propvarssize)
     
    void SCIPnodeGetPropsAfterDual (SCIP_NODE *node, SCIP_VAR **vars, SCIP_Real *varbounds, SCIP_BOUNDTYPE *varboundtypes, int *nvars, int varssize)
     
    SCIP_RETCODE SCIPnodePrintAncestorBranchings (SCIP_NODE *node, FILE *file)
     
    void SCIPnodeGetAncestorBranchingPath (SCIP_NODE *node, SCIP_VAR **branchvars, SCIP_Real *branchbounds, SCIP_BOUNDTYPE *boundtypes, int *nbranchvars, int branchvarssize, int *nodeswitches, int *nnodes, int nodeswitchsize)
     
    SCIP_Bool SCIPnodesSharePath (SCIP_NODE *node1, SCIP_NODE *node2)
     
    SCIP_NODESCIPnodesGetCommonAncestor (SCIP_NODE *node1, SCIP_NODE *node2)
     
    SCIP_Bool SCIPnodeIsActive (SCIP_NODE *node)
     
    SCIP_Bool SCIPnodeIsPropagatedAgain (SCIP_NODE *node)
     
    SCIP_CONSSETCHGSCIPnodeGetConssetchg (SCIP_NODE *node)
     
    int SCIPtreeGetNChildren (SCIP_TREE *tree)
     
    int SCIPtreeGetNSiblings (SCIP_TREE *tree)
     
    int SCIPtreeGetNLeaves (SCIP_TREE *tree)
     
    int SCIPtreeGetNNodes (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeIsPathComplete (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeProbing (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetProbingRoot (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetFocusNode (SCIP_TREE *tree)
     
    int SCIPtreeGetFocusDepth (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeHasFocusNodeLP (SCIP_TREE *tree)
     
    void SCIPtreeSetFocusNodeLP (SCIP_TREE *tree, SCIP_Bool solvelp)
     
    SCIP_Bool SCIPtreeIsFocusNodeLPConstructed (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeInRepropagation (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetCurrentNode (SCIP_TREE *tree)
     
    int SCIPtreeGetCurrentDepth (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeHasCurrentNodeLP (SCIP_TREE *tree)
     
    int SCIPtreeGetProbingDepth (SCIP_TREE *tree)
     
    int SCIPtreeGetEffectiveRootDepth (SCIP_TREE *tree)
     
    SCIP_NODESCIPtreeGetRootNode (SCIP_TREE *tree)
     
    SCIP_Bool SCIPtreeProbingObjChanged (SCIP_TREE *tree)
     
    void SCIPtreeMarkProbingObjChanged (SCIP_TREE *tree)
     

    Macro Definition Documentation

    ◆ MAXREPROPMARK

    #define MAXREPROPMARK   511

    maximal subtree repropagation marker; must correspond to node data structure

    Definition at line 67 of file tree.c.

    ◆ ARRAYGROWTH

    #define ARRAYGROWTH   5

    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 7215 of file tree.c.

    Function Documentation

    ◆ treeEnsureChildrenMem()

    static SCIP_RETCODE treeEnsureChildrenMem ( SCIP_TREE tree,
    SCIP_SET set,
    int  num 
    )
    static

    resizes children arrays to be able to store at least num nodes

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    numminimal number of node slots in array

    Definition at line 76 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().

    ◆ treeEnsurePathMem()

    static SCIP_RETCODE treeEnsurePathMem ( SCIP_TREE tree,
    SCIP_SET set,
    int  num 
    )
    static

    resizes path array to be able to store at least num nodes

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    numminimal number of node slots in path

    Definition at line 101 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().

    ◆ treeEnsurePendingbdchgsMem()

    static SCIP_RETCODE treeEnsurePendingbdchgsMem ( SCIP_TREE tree,
    SCIP_SET set,
    int  num 
    )
    static

    resizes pendingbdchgs array to be able to store at least num nodes

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    numminimal number of node slots in path

    Definition at line 127 of file tree.c.

    References BMSreallocMemoryArray, NULL, SCIP_Tree::pendingbdchgs, SCIP_Tree::pendingbdchgssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().

    Referenced by treeAddPendingBdchg().

    ◆ forkCaptureLPIState()

    static void forkCaptureLPIState ( SCIP_FORK fork,
    int  nuses 
    )
    static

    increases the reference counter of the LP state in the fork

    Parameters
    forkfork data
    nusesnumber to add to the usage counter

    Definition at line 172 of file tree.c.

    References SCIP_Fork::nlpistateref, NULL, and SCIPdebugMessage.

    Referenced by focusnodeToFork(), forkCreate(), and SCIPnodeCaptureLPIState().

    ◆ forkReleaseLPIState()

    static SCIP_RETCODE forkReleaseLPIState ( SCIP_FORK fork,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )
    static

    decreases the reference counter of the LP state in the fork

    Parameters
    forkfork data
    blkmemblock memory buffers
    lpcurrent LP data

    Definition at line 187 of file tree.c.

    References SCIP_Fork::lpistate, SCIP_Fork::nlpistateref, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpFreeState().

    Referenced by SCIPnodeReleaseLPIState().

    ◆ subrootCaptureLPIState()

    static void subrootCaptureLPIState ( SCIP_SUBROOT subroot,
    int  nuses 
    )
    static

    increases the reference counter of the LP state in the subroot

    Parameters
    subrootsubroot data
    nusesnumber to add to the usage counter

    Definition at line 211 of file tree.c.

    References SCIP_Subroot::nlpistateref, NULL, and SCIPdebugMessage.

    Referenced by SCIPnodeCaptureLPIState().

    ◆ subrootReleaseLPIState()

    static SCIP_RETCODE subrootReleaseLPIState ( SCIP_SUBROOT subroot,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )
    static

    decreases the reference counter of the LP state in the subroot

    Parameters
    subrootsubroot data
    blkmemblock memory buffers
    lpcurrent LP data

    Definition at line 227 of file tree.c.

    References SCIP_Subroot::lpistate, SCIP_Subroot::nlpistateref, NULL, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, and SCIPlpFreeState().

    Referenced by SCIPnodeReleaseLPIState().

    ◆ SCIPnodeCaptureLPIState()

    SCIP_RETCODE SCIPnodeCaptureLPIState ( SCIP_NODE node,
    int  nuses 
    )

    increases the reference counter of the LP state in the fork or subroot node

    Parameters
    nodefork/subroot node
    nusesnumber to add to the usage counter

    Definition at line 250 of file tree.c.

    References SCIP_Node::data, SCIP_Node::fork, forkCaptureLPIState(), SCIP_Fork::nlpistateref, SCIP_Subroot::nlpistateref, NULL, SCIP_INVALIDDATA, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIP_Node::subroot, and subrootCaptureLPIState().

    Referenced by junctionInit(), and pseudoforkCreate().

    ◆ SCIPnodeReleaseLPIState()

    SCIP_RETCODE SCIPnodeReleaseLPIState ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )

    ◆ probingnodeCreate()

    static SCIP_RETCODE probingnodeCreate ( SCIP_PROBINGNODE **  probingnode,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )
    static

    creates probingnode data without LP information

    Parameters
    probingnodepointer to probingnode data
    blkmemblock memory
    lpcurrent LP data

    Definition at line 303 of file tree.c.

    References BMSallocBlockMemory, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNCols(), and SCIPlpGetNRows().

    Referenced by treeCreateProbingNode().

    ◆ probingnodeUpdate()

    ◆ probingnodeFree()

    static SCIP_RETCODE probingnodeFree ( SCIP_PROBINGNODE **  probingnode,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )
    static

    frees probingnode data

    Parameters
    probingnodeprobingnode data
    blkmemblock memory
    lpcurrent LP data

    Definition at line 385 of file tree.c.

    References BMSfreeBlockMemory, BMSfreeMemoryArray, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpFreeNorms(), and SCIPlpFreeState().

    Referenced by SCIPnodeFree(), and treeCreateProbingNode().

    ◆ junctionInit()

    static SCIP_RETCODE junctionInit ( SCIP_JUNCTION junction,
    SCIP_TREE tree 
    )
    static

    initializes junction data

    Parameters
    junctionpointer to junction data
    treebranch and bound tree

    Definition at line 422 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().

    ◆ pseudoforkCreate()

    static SCIP_RETCODE pseudoforkCreate ( SCIP_PSEUDOFORK **  pseudofork,
    BMS_BLKMEM blkmem,
    SCIP_TREE tree,
    SCIP_LP lp 
    )
    static

    creates pseudofork data

    Parameters
    pseudoforkpointer to pseudofork data
    blkmemblock memory
    treebranch and bound tree
    lpcurrent LP data

    Definition at line 446 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().

    ◆ pseudoforkFree()

    static SCIP_RETCODE pseudoforkFree ( SCIP_PSEUDOFORK **  pseudofork,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp 
    )
    static

    frees pseudofork data

    Parameters
    pseudoforkpseudofork data
    blkmemblock memory
    setglobal SCIP settings
    lpcurrent LP data

    Definition at line 499 of file tree.c.

    References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease().

    Referenced by SCIPnodeFree().

    ◆ forkCreate()

    static SCIP_RETCODE forkCreate ( SCIP_FORK **  fork,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_PROB prob,
    SCIP_TREE tree,
    SCIP_LP lp 
    )
    static

    ◆ forkFree()

    static SCIP_RETCODE forkFree ( SCIP_FORK **  fork,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp 
    )
    static

    frees fork data

    Parameters
    forkfork data
    blkmemblock memory
    setglobal SCIP settings
    lpcurrent LP data

    Definition at line 592 of file tree.c.

    References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease().

    Referenced by SCIPnodeFree().

    ◆ subrootFree()

    static SCIP_RETCODE subrootFree ( SCIP_SUBROOT **  subroot,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp 
    )
    static

    frees subroot

    Parameters
    subrootsubroot data
    blkmemblock memory
    setglobal SCIP settings
    lpcurrent LP data

    Definition at line 686 of file tree.c.

    References BMSfreeBlockMemory, BMSfreeBlockMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIProwRelease().

    Referenced by SCIPnodeFree().

    ◆ treeRemoveSibling()

    static void treeRemoveSibling ( SCIP_TREE tree,
    SCIP_NODE sibling 
    )
    static

    removes given sibling node from the siblings array

    Parameters
    treebranch and bound tree
    siblingsibling node to remove

    Definition at line 719 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().

    ◆ treeAddChild()

    static SCIP_RETCODE treeAddChild ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_NODE child,
    SCIP_Real  nodeselprio 
    )
    static

    adds given child node to children array of focus node

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    childchild node to add
    nodeselprionode selection priority of child node

    Definition at line 745 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().

    ◆ treeRemoveChild()

    static void treeRemoveChild ( SCIP_TREE tree,
    SCIP_NODE child 
    )
    static

    removes given child node from the children array

    Parameters
    treebranch and bound tree
    childchild node to remove

    Definition at line 768 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().

    ◆ nodeAssignParent()

    static SCIP_RETCODE nodeAssignParent ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_TREE tree,
    SCIP_NODE parent,
    SCIP_Real  nodeselprio 
    )
    static

    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

    Parameters
    nodechild node
    blkmemblock memory buffers
    setglobal SCIP settings
    treebranch and bound tree
    parentparent (= focus) node (or NULL, if node is root)
    nodeselprionode selection priority of child node

    Definition at line 796 of file tree.c.

    References SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Node::estimate, SCIP_Tree::focusnode, SCIP_Node::lowerbound, SCIP_Node::lowerboundexact, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_MAXDEPTHLEVEL, SCIP_MAXTREEDEPTH, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPrationalSetRational(), SCIPsetDebugMsg, SCIPsetIsInfinity(), SCIPtreeIsPathComplete(), and treeAddChild().

    Referenced by SCIPnodeCreateChild(), and treeCreateProbingNode().

    ◆ nodeReleaseParent()

    ◆ nodeCreate()

    static SCIP_RETCODE nodeCreate ( SCIP_NODE **  node,
    BMS_BLKMEM blkmem,
    SCIP_SET set 
    )
    static

    creates a node data structure

    Parameters
    nodepointer to node data structure
    blkmemblock memory
    setglobal SCIP settings

    Definition at line 1016 of file tree.c.

    References BMSallocBlockMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_REOPTTYPE_NONE, SCIPrationalCreateBlock(), SCIPrationalSetNegInfinity(), and SCIPsetInfinity().

    Referenced by SCIPnodeCreateChild(), and treeCreateProbingNode().

    ◆ SCIPnodeCreateChild()

    SCIP_RETCODE SCIPnodeCreateChild ( SCIP_NODE **  node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_Real  nodeselprio,
    SCIP_Real  estimate 
    )

    creates a child node of the focus node

    Parameters
    nodepointer to node data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    nodeselprionode selection priority of new node
    estimateestimate for (transformed) objective value of best feasible solution in subtree

    Definition at line 1050 of file tree.c.

    References SCIP_Stat::certificate, SCIP_Tree::focusnode, SCIP_Tree::lastbranchparentid, SCIP_Stat::ncreatednodes, SCIP_Stat::ncreatednodesrun, nodeAssignParent(), nodeCreate(), NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPcertificateNewNodeData(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeSetEstimate(), SCIPsetDebugMsg, SCIPtreeIsPathComplete(), SCIPvisualNewChild(), and SCIP_Stat::visual.

    Referenced by propAndSolve(), SCIPcreateChild(), SCIPreoptApply(), SCIPtreeBranchVar(), SCIPtreeBranchVarExact(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPtreeCreateRoot(), and solveNode().

    ◆ SCIPtreeWasNodeLastBranchParent()

    SCIP_Bool SCIPtreeWasNodeLastBranchParent ( SCIP_TREE tree,
    SCIP_NODE node 
    )

    query if focus node was already branched on

    Parameters
    treebranch and bound tree
    nodetree node, or NULL to check focus node

    Definition at line 1102 of file tree.c.

    References FALSE, SCIP_Tree::focusnode, SCIP_Tree::lastbranchparentid, NULL, SCIP_Node::number, and TRUE.

    Referenced by SCIPwasNodeLastBranchParent().

    ◆ SCIPnodeFree()

    SCIP_RETCODE SCIPnodeFree ( SCIP_NODE **  node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_LP lp 
    )

    ◆ SCIPnodeCutoff()

    SCIP_RETCODE SCIPnodeCutoff ( SCIP_NODE node,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    BMS_BLKMEM blkmem 
    )

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

    Note
    must not be used on a leaf because the node priority queue remains untouched
    Parameters
    nodenode that should be cut off
    setglobal SCIP settings
    statproblem statistics
    eventfilterglobal event filter
    treebranch and bound tree
    transprobtransformed problem after presolve
    origproboriginal problem
    reoptreoptimization data structure
    lpcurrent LP
    blkmemblock memory

    Definition at line 1259 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_Stat::inrestart, SCIP_Stat::lastlowerbound, SCIP_Stat::lastlowerboundexact, SCIP_Node::lowerbound, SCIP_Node::lowerboundexact, NULL, SCIP_Tree::root, SCIP_Stat::rootlowerbound, SCIP_CALL, SCIP_EVENTTYPE_DUALBOUNDIMPROVED, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_OKAY, SCIP_Real, SCIP_STAGE_INITSOLVE, SCIPeventChgType(), SCIPeventProcess(), SCIPlpGetSolstat(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPrationalIsEQ(), SCIPrationalIsGEReal(), SCIPrationalIsLT(), SCIPrationalSetInfinity(), SCIPrationalSetRational(), SCIPreoptCheckCutoff(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsRelEQ(), SCIPstatUpdatePrimalDualIntegrals(), SCIPtreeGetLowerbound(), SCIPtreeGetLowerboundExact(), SCIPvisualCutoffNode(), TRUE, and SCIP_Stat::visual.

    Referenced by createAndAddProofcons(), detectImpliedBounds(), focusnodeToDeadend(), nodeActivate(), nodeRepropagate(), nodeToLeaf(), priceAndCutLoop(), SCIPconflictAddConflictCon(), SCIPconflictAnalyzeDualProof(), SCIPconflictFlushConss(), SCIPcutoffNode(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPnodeFocus(), SCIPnodeUpdateLowerboundLP(), SCIPtreeCutoff(), SCIPupdateNodeLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), solveNode(), tightenSingleVar(), and treeApplyPendingBdchgs().

    ◆ SCIPnodePropagateAgain()

    void SCIPnodePropagateAgain ( SCIP_NODE node,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree 
    )

    marks node, that propagation should be applied again the next time, a node of its subtree is focused

    Parameters
    nodenode that should be propagated again
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree

    Definition at line 1368 of file tree.c.

    References SCIP_Node::active, SCIP_Node::depth, MIN, NULL, SCIP_Node::reprop, SCIP_Tree::repropdepth, SCIP_LONGINT_FORMAT, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPsetDebugMsg, SCIPvisualMarkedRepropagateNode(), TRUE, and SCIP_Stat::visual.

    Referenced by SCIPconflictFlushConss(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPnodeAddHoleinfer(), SCIPrepropagateNode(), and tightenSingleVar().

    ◆ SCIPnodeMarkPropagated()

    void SCIPnodeMarkPropagated ( SCIP_NODE node,
    SCIP_TREE tree 
    )

    marks node, that it is completely propagated in the current repropagation subtree level

    Parameters
    nodenode that should be marked to be propagated
    treebranch and bound tree

    Definition at line 1394 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().

    ◆ treeNextRepropsubtreecount()

    static void treeNextRepropsubtreecount ( SCIP_TREE tree)
    static

    moves the subtree repropagation counter to the next value

    Parameters
    treebranch and bound tree

    Definition at line 1424 of file tree.c.

    References MAXREPROPMARK, NULL, and SCIP_Tree::repropsubtreecount.

    Referenced by nodeRepropagate().

    ◆ nodeRepropagate()

    static SCIP_RETCODE nodeRepropagate ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_Bool cutoff 
    )
    static

    applies propagation on the node, that was marked to be propagated again

    Parameters
    nodenode to apply propagation on
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    transprobtransformed problem
    origproboriginal problem
    primalprimal data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    cutoffpointer to store whether the node can be cut off

    Definition at line 1436 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_LONGINT_FORMAT, 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(), SCIPdomchgMakeStatic(), SCIPeventqueueDelay(), SCIPeventqueueIsDelayed(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPpropagateDomains(), SCIPsetDebugMsg, SCIPvisualRepropagatedNode(), treeNextRepropsubtreecount(), and SCIP_Stat::visual.

    Referenced by nodeActivate(), and treeSwitchPath().

    ◆ nodeActivate()

    static SCIP_RETCODE nodeActivate ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_Bool cutoff 
    )
    static

    informs node, that it is now on the active path and applies any domain and constraint set changes

    Parameters
    nodenode to activate
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    primalprimal data
    treebranch and bound tree
    reoptreotimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    cutoffpointer to store whether the node can be cut off

    Definition at line 1587 of file tree.c.

    References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Node::lowerbound, SCIP_Node::lowerboundexact, SCIP_Stat::nactivatednodes, nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconssetchgApply(), SCIPdomchgApply(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeUpdateLowerbound(), SCIPsetDebugMsg, SCIPtreeProbing(), and TRUE.

    Referenced by treeSwitchPath().

    ◆ nodeDeactivate()

    static SCIP_RETCODE nodeDeactivate ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue 
    )
    static

    informs node, that it is no longer on the active path and undoes any domain and constraint set changes

    Parameters
    nodenode to deactivate
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue

    Definition at line 1660 of file tree.c.

    References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::domchg, FALSE, SCIP_Stat::ndeactivatednodes, NULL, SCIP_Node::repropsubtreemark, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconssetchgUndo(), SCIPdomchgUndo(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPsetDebugMsg, and SCIPtreeProbing().

    Referenced by treeBacktrackProbing(), and treeSwitchPath().

    ◆ SCIPnodeAddCons()

    SCIP_RETCODE SCIPnodeAddCons ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_CONS cons 
    )

    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

    Parameters
    nodenode to add constraint to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    consconstraint to add

    Definition at line 1696 of file tree.c.

    References SCIP_Node::active, SCIP_ConsSetChg::addedconss, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, SCIP_Stat::nactiveconssadded, NULL, SCIP_Tree::root, SCIP_Cons::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPconsIsActive(), SCIPconsIsGlobal(), SCIPconssetchgAddAddedCons(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), and SCIP_Cons::validdepth.

    Referenced by createAndAddProofcons(), SCIPaddCons(), SCIPaddConsNode(), and tightenSingleVar().

    ◆ SCIPnodeDelCons()

    SCIP_RETCODE SCIPnodeDelCons ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_CONS cons 
    )

    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

    Parameters
    nodenode to add constraint to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    consconstraint to locally delete

    Definition at line 1739 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(), SCIPsetDebugMsg, and SCIP_Cons::updatedisable.

    Referenced by SCIPdelConsLocal(), and SCIPdelConsNode().

    ◆ treeAddPendingBdchg()

    static SCIP_RETCODE treeAddPendingBdchg ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_NODE node,
    SCIP_VAR var,
    SCIP_Real  newbound,
    SCIP_RATIONAL newboundexact,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_CONS infercons,
    SCIP_PROP inferprop,
    int  inferinfo,
    SCIP_Bool  probingchange 
    )
    static

    adds the given bound change to the list of pending bound changes

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    nodenode to add bound change to
    varvariable to change the bounds for
    newboundnew value for bound
    newboundexactnew exact bound, or NULL if not needed
    boundtypetype of bound: lower or upper bound
    inferconsconstraint that deduced the bound change, or NULL
    inferproppropagator that deduced the bound change, or NULL
    inferinfouser information for inference to help resolving the conflict
    probingchangeis the bound change a temporary setting due to probing?

    Definition at line 1813 of file tree.c.

    References bound, SCIP_PendingBdchg::boundtype, SCIP_Node::depth, SCIP_PendingBdchg::infercons, SCIP_PendingBdchg::inferinfo, SCIP_PendingBdchg::inferprop, SCIP_PendingBdchg::newbound, SCIP_PendingBdchg::newboundexact, 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, SCIPrationalCreate(), SCIPrationalSetRational(), SCIPsetIsEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPvarAdjustBd(), SCIPvarCapture(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), treeEnsurePendingbdchgsMem(), and SCIP_PendingBdchg::var.

    Referenced by SCIPnodeAddBoundinfer(), and SCIPnodeAddBoundinferExact().

    ◆ SCIPnodeAddBoundinfer()

    SCIP_RETCODE SCIPnodeAddBoundinfer ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_VAR var,
    SCIP_Real  newbound,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_CONS infercons,
    SCIP_PROP inferprop,
    int  inferinfo,
    SCIP_Bool  probingchange 
    )

    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

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    varvariable to change the bounds for
    newboundnew value for bound
    boundtypetype of bound: lower or upper bound
    inferconsconstraint that deduced the bound change, or NULL
    inferproppropagator that deduced the bound change, or NULL
    inferinfouser information for inference to help resolving the conflict
    probingchangeis the bound change a temporary setting due to probing?

    Definition at line 1909 of file tree.c.

    References SCIP_Node::active, bound, SCIP_DomChgDyn::boundchgs, SCIP_Stat::certificate, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgdyn, SCIP_DomChgDyn::domchgtype, SCIP_Tree::effectiverootdepth, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Stat::lpcount, SCIP_Lp::lpexact, MAX, MIN, SCIP_DomChgDyn::nboundchgs, SCIP_BoundChg::newbound, SCIP_Node::nodetype, 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_LONGINT_FORMAT, 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(), SCIPbuffer(), SCIPcertificateGetCurrentIndex(), SCIPcertificatePrintDualboundPseudo(), SCIPcertificatePrintGlobalBound(), SCIPconsGetName(), SCIPdebugCheckInference, SCIPdomchgAddBoundchg(), SCIPdomchgAddCurrentCertificateIndex(), SCIPerrorMessage, SCIPisCertified(), SCIPlpGetModifiedPseudoObjval(), SCIPmessageFPrintWarning(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPnodeUpdateLowerbound(), SCIPpropGetName(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalSetReal(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPstatIncrement, SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), SCIPtreeProbing(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarChgBdGlobal(), SCIPvarChgBdGlobalExact(), SCIPvarGetCertificateIndex(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetLbLocalExact(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarGetUbLocalExact(), treeAddPendingBdchg(), and SCIP_BoundChg::var.

    Referenced by SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPnodeAddBoundchg(), SCIPnodePropagateImplics(), and treeApplyPendingBdchgs().

    ◆ SCIPnodeAddBoundinferExact()

    SCIP_RETCODE SCIPnodeAddBoundinferExact ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_VAR var,
    SCIP_RATIONAL newbound,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_CONS infercons,
    SCIP_PROP inferprop,
    int  inferinfo,
    SCIP_Bool  probingchange 
    )

    adds exact 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

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    varvariable to change the bounds for
    newboundnew value for bound
    boundtypetype of bound: lower or upper bound
    inferconsconstraint that deduced the bound change, or NULL
    inferproppropagator that deduced the bound change, or NULL
    inferinfouser information for inference to help resolving the conflict
    probingchangeis the bound change a temporary setting due to probing?

    Definition at line 2229 of file tree.c.

    References SCIP_Node::active, bound, SCIP_DomChgDyn::boundchgs, SCIP_Stat::certificate, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgdyn, SCIP_DomChgDyn::domchgtype, SCIP_Tree::effectiverootdepth, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_LpExact::fplp, SCIP_Lp::hasprovedbound, SCIP_Stat::lpcount, SCIP_DomChgDyn::nboundchgs, SCIP_BoundChg::newbound, SCIP_Node::nodetype, 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_R_ROUND_DOWNWARDS, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPboundchgApply(), SCIPcertificateGetCurrentIndex(), SCIPcertificatePrintDualboundPseudo(), SCIPcertificatePrintGlobalBound(), SCIPconsGetName(), SCIPdomchgAddBoundchg(), SCIPdomchgAddCurrentCertificateIndex(), SCIPerrorMessage, SCIPisCertified(), SCIPlpGetModifiedPseudoObjval(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPnodeUpdateLowerbound(), SCIPpropGetName(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalFreeBuffer(), SCIPrationalIsGE(), SCIPrationalIsGT(), SCIPrationalIsInfinity(), SCIPrationalIsIntegral(), SCIPrationalIsLE(), SCIPrationalIsLT(), SCIPrationalIsNegInfinity(), SCIPrationalMax(), SCIPrationalMin(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPsetDebugMsg, SCIPstatIncrement, SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), SCIPvarAdjustLbExact(), SCIPvarAdjustUbExact(), SCIPvarChgBdGlobalExact(), SCIPvarGetCertificateIndex(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbGlobalExact(), SCIPvarGetLbLocalExact(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetObjExact(), SCIPvarGetProbvarBoundExact(), SCIPvarGetStatus(), SCIPvarGetUbGlobalExact(), SCIPvarGetUbLocalExact(), treeAddPendingBdchg(), and SCIP_BoundChg::var.

    Referenced by SCIPinferVarLbConsExact(), SCIPinferVarUbConsExact(), and SCIPnodeAddBoundchgExact().

    ◆ SCIPnodeAddBoundchg()

    SCIP_RETCODE SCIPnodeAddBoundchg ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_VAR var,
    SCIP_Real  newbound,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_Bool  probingchange 
    )

    adds bound change to focus node, or child of focus node, or probing node; if possible, adjusts bound to integral value

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    varvariable to change the bounds for
    newboundnew value for bound
    boundtypetype of bound: lower or upper bound
    probingchangeis the bound change a temporary setting due to probing?

    Definition at line 2539 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(), SCIPconflictAddConflictCon(), SCIPfixVarProbing(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPshrinkDisjunctiveVarSet(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeBranchVar(), SCIPtreeBranchVarExact(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarFixBinary(), sepastoreApplyLb(), sepastoreApplyUb(), tightenSingleVar(), and varAddImplic().

    ◆ SCIPnodeAddBoundchgExact()

    SCIP_RETCODE SCIPnodeAddBoundchgExact ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LPEXACT lpexact,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_VAR var,
    SCIP_RATIONAL newbound,
    SCIP_BOUNDTYPE  boundtype,
    SCIP_Bool  probingchange 
    )

    adds exact bound change to focus node, or child of focus node, or probing node; if possible, adjusts bound to integral value

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpexactcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    varvariable to change the bounds for
    newboundnew value for bound
    boundtypetype of bound: lower or upper bound
    probingchangeis the bound change a temporary setting due to probing?

    Definition at line 2568 of file tree.c.

    References NULL, SCIP_CALL, SCIP_OKAY, and SCIPnodeAddBoundinferExact().

    Referenced by SCIPchgVarLbExact(), SCIPchgVarUbExact(), SCIPinferVarLbConsExact(), SCIPinferVarUbConsExact(), SCIPtightenVarLbExact(), SCIPtightenVarUbExact(), tightenVarLbGlobalSafe(), and tightenVarUbGlobalSafe().

    ◆ SCIPnodeAddHoleinfer()

    SCIP_RETCODE SCIPnodeAddHoleinfer ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_VAR var,
    SCIP_Real  left,
    SCIP_Real  right,
    SCIP_CONS infercons,
    SCIP_PROP inferprop,
    int  inferinfo,
    SCIP_Bool  probingchange,
    SCIP_Bool added 
    )

    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

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    eventqueueevent queue
    varvariable to change the bounds for
    leftleft bound of open interval defining the hole (left,right)
    rightright bound of open interval defining the hole (left,right)
    inferconsconstraint that deduced the bound change, or NULL
    inferproppropagator that deduced the bound change, or NULL
    inferinfouser information for inference to help resolving the conflict
    probingchangeis the bound change a temporary setting due to probing?
    addedpointer to store whether the hole was added, or NULL

    Definition at line 2598 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(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPpropGetName(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarAddHoleGlobal(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarHole(), SCIPvarGetStatus(), and SCIPvarGetUbLocal().

    Referenced by SCIPnodeAddHolechg().

    ◆ SCIPnodeAddHolechg()

    SCIP_RETCODE SCIPnodeAddHolechg ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_TREE tree,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_VAR var,
    SCIP_Real  left,
    SCIP_Real  right,
    SCIP_Bool  probingchange,
    SCIP_Bool added 
    )

    adds hole change to focus node, or child of focus node

    Parameters
    nodenode to add bound change to
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    treebranch and bound tree
    eventqueueevent queue
    varvariable to change the bounds for
    leftleft bound of open interval defining the hole (left,right)
    rightright bound of open interval defining the hole (left,right)
    probingchangeis the bound change a temporary setting due to probing?
    addedpointer to store whether the hole was added, or NULL

    Definition at line 2711 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, SCIPnodeAddHoleinfer(), SCIPsetDebugMsg, and SCIPvarGetName().

    ◆ treeApplyPendingBdchgs()

    static SCIP_RETCODE treeApplyPendingBdchgs ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable 
    )
    static

    applies the pending bound changes

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure

    Definition at line 2744 of file tree.c.

    References SCIP_PendingBdchg::boundtype, SCIP_Node::cutoff, 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, SCIPnodeAddBoundinfer(), SCIPnodeCutoff(), SCIPsetDebugMsg, SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarRelease(), and SCIP_PendingBdchg::var.

    Referenced by treeBacktrackProbing(), and treeSwitchPath().

    ◆ SCIPnodeUpdateLowerbound()

    SCIP_RETCODE SCIPnodeUpdateLowerbound ( SCIP_NODE node,
    SCIP_STAT stat,
    SCIP_SET set,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_Real  newbound,
    SCIP_RATIONAL newboundexact 
    )

    if given value is larger than the node's lower bound, sets the node's lower bound to the new value

    Note
    must not be used on a leaf because the node priority queue remains untouched
    Parameters
    nodenode to update lower bound for
    statproblem statistics
    setglobal SCIP settings
    eventfilterglobal event filter
    treebranch and bound tree
    transprobtransformed problem after presolve
    origproboriginal problem
    newboundnew lower bound (or SCIP_INVALID to use newboundexact in exact)
    newboundexactnew exact lower bound (or NULL to use newbound)

    Definition at line 2851 of file tree.c.

    References SCIP_Node::depth, SCIP_Node::estimate, SCIP_Tree::focusnode, SCIP_Stat::inrestart, SCIP_Stat::lastlowerbound, SCIP_Stat::lastlowerboundexact, SCIP_Node::lowerbound, SCIP_Node::lowerboundexact, NULL, SCIP_Stat::rootlowerbound, SCIP_CALL, SCIP_EVENTTYPE_DUALBOUNDIMPROVED, SCIP_INVALID, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_OKAY, SCIP_R_ROUND_DOWNWARDS, SCIP_Real, SCIP_STAGE_INITSOLVE, SCIPeventChgType(), SCIPeventProcess(), SCIPnodeGetLowerbound(), SCIPnodeGetType(), SCIPrationalIsEQ(), SCIPrationalIsGE(), SCIPrationalIsGEReal(), SCIPrationalIsInfinity(), SCIPrationalIsLT(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsRelEQ(), SCIPstatUpdatePrimalDualIntegrals(), SCIPtreeGetLowerbound(), SCIPtreeGetLowerboundExact(), SCIPvisualLowerbound(), and SCIP_Stat::visual.

    Referenced by applyBounding(), nodeActivate(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPnodeUpdateLowerboundLP(), SCIPpriceLoop(), SCIPupdateNodeLowerbound(), and solveNodeRelax().

    ◆ SCIPnodeUpdateLowerboundLP()

    SCIP_RETCODE SCIPnodeUpdateLowerboundLP ( SCIP_NODE node,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp 
    )

    ◆ SCIPchildChgNodeselPrio()

    void SCIPchildChgNodeselPrio ( SCIP_TREE tree,
    SCIP_NODE child,
    SCIP_Real  priority 
    )

    change the node selection priority of the given child

    Parameters
    treebranch and bound tree
    childchild to update the node selection priority
    prioritynode selection priority value

    Definition at line 3066 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().

    ◆ SCIPnodeSetEstimate()

    void SCIPnodeSetEstimate ( SCIP_NODE node,
    SCIP_SET set,
    SCIP_Real  newestimate 
    )

    sets the node's estimated bound to the new value

    Parameters
    nodenode to update lower bound for
    setglobal SCIP settings
    newestimatenew estimated bound for the node

    Definition at line 3084 of file tree.c.

    References SCIP_Node::estimate, SCIP_Node::lowerbound, NULL, and SCIPsetIsRelGE().

    Referenced by SCIPnodeCreateChild(), SCIPreoptApply(), and updateEstimate().

    ◆ SCIPnodePropagateImplics()

    SCIP_RETCODE SCIPnodePropagateImplics ( SCIP_NODE node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_Bool cutoff 
    )

    propagates implications of binary fixings at the given node triggered by the implication graph and the clique table

    Parameters
    nodenode to propagate implications on
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    cutoffpointer to store whether the node can be cut off

    Definition at line 3100 of file tree.c.

    References SCIP_Node::domchg, FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPboundchgGetBoundtype(), SCIPboundchgGetVar(), SCIPboundchgIsRedundant(), SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPdomchgGetBoundchg(), SCIPdomchgGetNBoundchgs(), SCIPnodeAddBoundinfer(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeIsActive(), SCIPsetDebugMsg, SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPvarGetCliques(), SCIPvarGetImplBounds(), SCIPvarGetImplTypes(), SCIPvarGetImplVars(), SCIPvarGetLbLocal(), SCIPvarGetNCliques(), SCIPvarGetNImpls(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), and TRUE.

    Referenced by SCIPpropagateProbingImplications().

    ◆ treeUpdatePathLPSize()

    ◆ treeFindSwitchForks()

    static void treeFindSwitchForks ( SCIP_TREE tree,
    SCIP_NODE node,
    SCIP_NODE **  commonfork,
    SCIP_NODE **  newlpfork,
    SCIP_NODE **  newlpstatefork,
    SCIP_NODE **  newsubroot,
    SCIP_Bool cutoff 
    )
    static

    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

    Parameters
    treebranch and bound tree
    nodenew focus node, or NULL
    commonforkpointer to store common fork node of old and new focus node
    newlpforkpointer to store the new LP defining fork node
    newlpstateforkpointer to store the new LP state defining fork node
    newsubrootpointer to store the new subroot node
    cutoffpointer to store whether the given node can be cut off and no path switching should be performed

    Definition at line 3396 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().

    ◆ treeSwitchPath()

    static SCIP_RETCODE treeSwitchPath ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_NODE fork,
    SCIP_NODE focusnode,
    SCIP_Bool cutoff 
    )
    static

    switches the active path to the new focus node, frees dead end, applies domain and constraint set changes

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    primalprimal data
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    forkcommon fork node of old and new focus node, or NULL
    focusnodenew focus node, or NULL
    cutoffpointer to store whether the new focus node can be cut off

    Definition at line 3694 of file tree.c.

    References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::cutoff, SCIP_Tree::cutoffdepth, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focusnode, SCIP_Node::fork, SCIP_Node::junction, MIN, SCIP_Junction::nchildren, SCIP_Pseudofork::nchildren, SCIP_Fork::nchildren, SCIP_Subroot::nchildren, nodeActivate(), nodeDeactivate(), nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Node::pseudofork, SCIP_Node::reprop, 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, SCIPconssetchgMakeGlobal(), SCIPdomchgApplyGlobal(), SCIPerrorMessage, SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPnodeFree(), SCIPnodeGetType(), SCIPsetDebugMsg, SCIP_Node::subroot, treeApplyPendingBdchgs(), treeEnsurePathMem(), treeUpdatePathLPSize(), TRUE, and SCIP_Tree::updatedeffectiverootdepth.

    Referenced by SCIPnodeFocus().

    ◆ subrootConstructLP()

    static SCIP_RETCODE subrootConstructLP ( SCIP_NODE subroot,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp 
    )
    static

    loads the subroot's LP data

    Parameters
    subrootsubroot node to construct LP for
    blkmemblock memory buffers
    setglobal SCIP settings
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data

    Definition at line 3901 of file tree.c.

    References SCIP_Subroot::cols, SCIP_Node::data, SCIP_Node::depth, SCIP_Subroot::ncols, SCIP_Subroot::nrows, NULL, r, SCIP_Subroot::rows, SCIP_CALL, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), SCIPnodeGetType(), and SCIP_Node::subroot.

    Referenced by SCIPtreeLoadLP().

    ◆ forkAddLP()

    static SCIP_RETCODE forkAddLP ( SCIP_NODE fork,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp 
    )
    static

    loads the fork's additional LP data

    Parameters
    forkfork node to construct additional LP for
    blkmemblock memory buffers
    setglobal SCIP settings
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data

    Definition at line 3946 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, r, SCIP_CALL, SCIP_NODETYPE_FORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType().

    Referenced by SCIPtreeLoadLP().

    ◆ pseudoforkAddLP()

    static SCIP_RETCODE pseudoforkAddLP ( SCIP_NODE pseudofork,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp 
    )
    static

    loads the pseudofork's additional LP data

    Parameters
    pseudoforkpseudofork node to construct additional LP for
    blkmemblock memory buffers
    setglobal SCIP settings
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data

    Definition at line 3991 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, r, SCIP_CALL, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType().

    Referenced by SCIPtreeLoadLP().

    ◆ treeCheckPath()

    ◆ SCIPtreeLoadLP()

    SCIP_RETCODE SCIPtreeLoadLP ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp,
    SCIP_Bool initroot 
    )

    ◆ SCIPtreeLoadLPState()

    SCIP_RETCODE SCIPtreeLoadLPState ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_PROB prob,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_LP lp 
    )

    ◆ nodeToLeaf()

    static SCIP_RETCODE nodeToLeaf ( SCIP_NODE **  node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_NODE lpstatefork,
    SCIP_Real  cutoffbound 
    )
    static

    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

    Parameters
    nodepointer to child or sibling node to convert
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    lpstateforkLP state defining fork of the node
    cutoffboundcutoff bound: all nodes with lowerbound >= cutoffbound are cut off

    Definition at line 4358 of file tree.c.

    References SCIP_Node::active, SCIP_Node::depth, SCIP_Tree::leaves, NULL, SCIP_Node::parent, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdomchgMakeStatic(), SCIPnodeCutoff(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqInsert(), SCIPnodeReleaseLPIState(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsInfinity(), and SCIPsetIsLT().

    Referenced by focusnodeToLeaf(), and treeNodesToQueue().

    ◆ focusnodeCleanupVars()

    static SCIP_RETCODE focusnodeCleanupVars ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_Bool  inlp 
    )
    static

    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)

    Parameters
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    cliquetableclique table data structure
    inlpshould variables in the LP be deleted, too?

    Definition at line 4437 of file tree.c.

    References FALSE, SCIP_Tree::focusnode, SCIP_Stat::nnodes, NULL, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPlpFlush(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpShrinkCols(), SCIPnodeAddBoundchg(), SCIPnodeGetType(), SCIPprobDelVar(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPprobPerformVarDeletions(), SCIPsetDebugMsg, SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPtreeProbing(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsDeletable(), SCIPvarIsInLP(), and SCIPvarMarkNotDeletable().

    Referenced by focusnodeToDeadend(), focusnodeToFork(), and focusnodeToPseudofork().

    ◆ focusnodeToDeadend()

    static SCIP_RETCODE focusnodeToDeadend ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CLIQUETABLE cliquetable 
    )
    static

    converts the focus node into a dead-end node

    Parameters
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    cliquetableclique table data structure

    Definition at line 4539 of file tree.c.

    References SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), SCIP_Tree::nchildren, SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPsetDebugMsg, SCIPtreeProbing(), and TRUE.

    Referenced by SCIPnodeFocus().

    ◆ focusnodeToLeaf()

    static SCIP_RETCODE focusnodeToLeaf ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_NODE lpstatefork,
    SCIP_Real  cutoffbound 
    )
    static

    converts the focus node into a leaf node (if it was postponed)

    Parameters
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    lpstateforkLP state defining fork of the node
    cutoffboundcutoff bound: all nodes with lowerbound >= cutoffbound are cut off

    Definition at line 4583 of file tree.c.

    References SCIP_Node::active, SCIP_Tree::focusnode, nodeToLeaf(), NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPsetDebugMsg, and SCIPtreeProbing().

    Referenced by SCIPnodeFocus().

    ◆ focusnodeToJunction()

    static SCIP_RETCODE focusnodeToJunction ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_TREE tree,
    SCIP_LP lp 
    )
    static

    ◆ focusnodeToPseudofork()

    static SCIP_RETCODE focusnodeToPseudofork ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CLIQUETABLE cliquetable 
    )
    static

    converts the focus node into a pseudofork node

    Parameters
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    cliquetableclique table data structure

    Definition at line 4650 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_LONGINT_FORMAT, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPdomchgMakeStatic(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPsetDebugMsg, and SCIPtreeProbing().

    Referenced by SCIPnodeFocus().

    ◆ focusnodeToFork()

    static SCIP_RETCODE focusnodeToFork ( BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CLIQUETABLE cliquetable 
    )
    static

    converts the focus node into a fork node

    Parameters
    blkmemblock memory buffers
    setglobal SCIP settings
    messagehdlrmessage handler
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    transprobtransformed problem after presolve
    origproboriginal problem
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    cliquetableclique table data structure

    Definition at line 4702 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_LONGINT_FORMAT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPdomchgMakeStatic(), SCIPlpCleanupNew(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpGetSolstat(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPsetDebugMsg, SCIPtreeProbing(), SCIP_Lp::solved, and TRUE.

    Referenced by SCIPnodeFocus().

    ◆ treeNodesToQueue()

    static SCIP_RETCODE treeNodesToQueue ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp,
    SCIP_NODE **  nodes,
    int *  nnodes,
    SCIP_NODE lpstatefork,
    SCIP_Real  cutoffbound 
    )
    static

    puts all nodes in the array on the node queue and makes them LEAFs

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data
    nodesarray of nodes to put on the queue
    nnodespointer to number of nodes in the array
    lpstateforkLP state defining fork of the nodes
    cutoffboundcutoff bound: all nodes with lowerbound >= cutoffbound are cut off

    Definition at line 4933 of file tree.c.

    References nnodes, nodeToLeaf(), NULL, SCIP_CALL, and SCIP_OKAY.

    Referenced by SCIPnodeFocus(), and SCIPtreeCreateRoot().

    ◆ treeChildrenToSiblings()

    ◆ SCIPnodeFocus()

    SCIP_RETCODE SCIPnodeFocus ( SCIP_NODE **  node,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_TREE tree,
    SCIP_REOPT reopt,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_CONFLICTSTORE conflictstore,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    SCIP_Bool cutoff,
    SCIP_Bool  postponed,
    SCIP_Bool  exitsolve 
    )

    installs a child, a sibling, or a leaf node as the new focus node

    Parameters
    nodepointer to node to focus (or NULL to remove focus); the node is freed, if it was cut off due to a cut off subtree
    blkmemblock memory buffers
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    primalprimal data
    treebranch and bound tree
    reoptreoptimization data structure
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    conflictstoreconflict store
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    cutoffpointer to store whether the given node can be cut off
    postponedwas the current focus node postponed?
    exitsolveare we in exitsolve stage, so we only need to loose the children

    Definition at line 5007 of file tree.c.

    References SCIP_Node::active, SCIP_Tree::children, SCIP_Tree::correctlpdepth, SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdepth, SCIP_Node::depth, 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(), focusnodeToLeaf(), focusnodeToPseudofork(), SCIP_Tree::focussubroot, SCIP_Lp::isrelax, SCIP_Stat::lastlowerbound, SCIP_Stat::lastlowerboundexact, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Stat::lpcount, MIN, SCIP_Stat::nbacktracks, SCIP_Tree::nchildren, SCIP_Stat::nearlybacktracks, SCIP_Tree::nsiblings, NULL, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Stat::plungedepth, SCIP_Stat::referencebound, SCIP_Lp::resolvelperror, SCIP_Tree::root, SCIP_Stat::rootlowerbound, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_DUALBOUNDIMPROVED, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_INVALIDDATA, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_Real, SCIPdebugCheckGlobalLowerbound, SCIPdebugCheckLocalLowerbound, SCIPerrorMessage, SCIPeventChgType(), SCIPeventProcess(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpGetSolstat(), SCIPlpMarkSize(), SCIPnodeCutoff(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqCompare(), SCIPnodepqLen(), SCIPnodepqRemove(), SCIPrationalIsGEReal(), SCIPrationalIsLT(), SCIPrationalSetInfinity(), SCIPrationalSetRational(), SCIPreoptCheckCutoff(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPstatUpdatePrimalDualIntegrals(), SCIPtreeGetBestLeaf(), SCIPtreeGetLowerbound(), SCIPtreeGetLowerboundExact(), SCIPtreeIsPathComplete(), SCIPtreeProbing(), SCIPvisualCutoffNode(), SCIP_Tree::siblings, treeChildrenToSiblings(), treeFindSwitchForks(), treeNodesToQueue(), treeRemoveChild(), treeRemoveSibling(), treeSwitchPath(), TRUE, SCIP_Primal::upperbound, SCIP_Primal::upperboundexact, and SCIP_Stat::visual.

    Referenced by freeReoptSolve(), freeSolve(), SCIPsolveCIP(), SCIPtreeCreatePresolvingRoot(), and SCIPtreeFreePresolvingRoot().

    ◆ SCIPtreeCreate()

    SCIP_RETCODE SCIPtreeCreate ( SCIP_TREE **  tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_NODESEL nodesel 
    )

    creates an initialized tree data structure

    Parameters
    treepointer to tree data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    nodeselnode selector to use for sorting leaves in the priority queue

    Definition at line 5499 of file tree.c.

    References BMSallocBlockMemoryArray, BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnodepqCreate(), and TRUE.

    Referenced by SCIPtransformProb().

    ◆ SCIPtreeFree()

    SCIP_RETCODE SCIPtreeFree ( SCIP_TREE **  tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp 
    )

    frees tree data structure

    Parameters
    treepointer to tree data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data

    Definition at line 5580 of file tree.c.

    References BMSfreeBlockMemoryArray, BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPnodepqFree(), SCIPsetDebugMsg, and SCIPtreeProbing().

    Referenced by freeTransform(), and freeTransforming().

    ◆ SCIPtreeClear()

    ◆ SCIPtreeCreateRoot()

    SCIP_RETCODE SCIPtreeCreateRoot ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp 
    )

    creates the root node of the tree and puts it into the leaves queue

    Parameters
    treetree data structure
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data

    Definition at line 5690 of file tree.c.

    References SCIP_Node::active, SCIP_Tree::children, SCIP_Node::cutoff, SCIP_Node::depth, SCIP_Tree::focusnode, MAXREPROPMARK, SCIP_Tree::nchildren, SCIP_Node::nodetype, SCIP_Tree::nsiblings, NULL, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Tree::root, SCIP_CALL, SCIP_MAXTREEDEPTH, SCIP_NODETYPE_CHILD, SCIP_OKAY, SCIPnodeCreateChild(), SCIPsetInfinity(), SCIPtreeProbing(), and treeNodesToQueue().

    Referenced by initSolve(), and SCIPtreeCreatePresolvingRoot().

    ◆ SCIPtreeCreatePresolvingRoot()

    SCIP_RETCODE SCIPtreeCreatePresolvingRoot ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_CONFLICTSTORE conflictstore,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable 
    )

    creates a temporary presolving root node of the tree and installs it as focus node

    Parameters
    treetree data structure
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    primalprimal data
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    conflictstoreconflict store
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure

    Definition at line 5736 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().

    ◆ SCIPtreeFreePresolvingRoot()

    SCIP_RETCODE SCIPtreeFreePresolvingRoot ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_PRIMAL primal,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_CONFLICT conflict,
    SCIP_CONFLICTSTORE conflictstore,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable 
    )

    frees the temporary presolving root and resets tree data structure

    Parameters
    treetree data structure
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    primalprimal data
    lpcurrent LP data
    branchcandbranching candidate storage
    conflictconflict analysis data
    conflictstoreconflict store
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure

    Definition at line 5777 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().

    ◆ SCIPtreeGetNodesel()

    SCIP_NODESEL * SCIPtreeGetNodesel ( SCIP_TREE tree)

    returns the node selector associated with the given node priority queue

    Parameters
    treebranch and bound tree

    Definition at line 5820 of file tree.c.

    References SCIP_Tree::leaves, NULL, and SCIPnodepqGetNodesel().

    ◆ SCIPtreeSetNodesel()

    SCIP_RETCODE SCIPtreeSetNodesel ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_NODESEL nodesel 
    )

    sets the node selector used for sorting the nodes in the priority queue, and resorts the queue if necessary

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics
    nodeselnode selector to use for sorting the nodes in the queue

    Definition at line 5830 of file tree.c.

    References SCIP_Tree::leaves, SCIP_Stat::nnodes, NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPmessagePrintVerbInfo(), SCIPnodepqGetNodesel(), SCIPnodepqSetNodesel(), and SCIPnodeselGetName().

    Referenced by SCIPsolveCIP().

    ◆ SCIPtreeCutoff()

    SCIP_RETCODE SCIPtreeCutoff ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_LP lp,
    SCIP_Real  cutoffbound 
    )

    cuts off nodes with lower bound not better than given cutoff bound

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statdynamic problem statistics
    eventqueueevent queue
    eventfilterglobal event filter
    lpcurrent LP data
    cutoffboundcutoff bound: all nodes with lowerbound >= cutoffbound are cut off

    Definition at line 5858 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::cutoffdelayed, FALSE, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_CALL, SCIP_OKAY, SCIPlpDiving(), SCIPnodeCutoff(), SCIPnodeFree(), SCIPnodepqBound(), SCIPsetIsGE(), SCIP_Tree::siblings, and TRUE.

    Referenced by primalSetCutoffbound(), primalSetCutoffboundExact(), SCIPendDive(), SCIPpruneTree(), and SCIPsolveCIP().

    ◆ SCIPtreeCalcNodeselPriority()

    SCIP_Real SCIPtreeCalcNodeselPriority ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_VAR var,
    SCIP_BRANCHDIR  branchdir,
    SCIP_Real  targetvalue 
    )

    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

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    statdynamic problem statistics
    varvariable, of which the branching factor should be applied, or NULL
    branchdirtype of branching that was performed: upwards, downwards, or fixed fixed should only be used, when both bounds changed
    targetvaluenew value of the variable in the child node

    Definition at line 5926 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(), SCIPtreeBranchVarExact(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().

    ◆ SCIPtreeCalcChildEstimate()

    SCIP_Real SCIPtreeCalcChildEstimate ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_VAR var,
    SCIP_Real  targetvalue 
    )

    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

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    statdynamic problem statistics
    varvariable, of which the branching factor should be applied, or NULL
    targetvaluenew value of the variable in the child node

    Definition at line 6076 of file tree.c.

    References SCIP_Tree::focusnode, MIN, NULL, SCIP_Real, SCIPnodeGetEstimate(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPtreeHasFocusNodeLP(), SCIPvarGetPseudocost(), SCIPvarGetSol(), and SCIPvarIsIntegral().

    Referenced by SCIPcalcChildEstimate(), SCIPtreeBranchVar(), SCIPtreeBranchVarExact(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().

    ◆ SCIPtreeBranchVar()

    SCIP_RETCODE SCIPtreeBranchVar ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_VAR var,
    SCIP_Real  val,
    SCIP_NODE **  downchild,
    SCIP_NODE **  eqchild,
    SCIP_NODE **  upchild 
    )

    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)

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    varvariable to branch on
    valvalue to branch on or SCIP_INVALID for branching on current LP/pseudo solution. A branching value is required for branching on continuous variables
    downchildpointer to return the left child with variable rounded down, or NULL
    eqchildpointer to return the middle child with variable fixed, or NULL
    upchildpointer to return the right child with variable rounded up, or NULL

    Definition at line 6135 of file tree.c.

    References SCIP_Stat::certificate, EPSISINT, 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, SCIPABORT, SCIPcertificateUpdateBranchingData(), SCIPerrorMessage, SCIPisCertified(), SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPnodeGetLowerbound(), SCIPrelDiff(), SCIPsetCeil(), SCIPsetDebugMsg, SCIPsetEpsilon(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsRelEQ(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetCurrentNode(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetProbvarSum(), SCIPvarGetRootSol(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvisualUpdateChild(), and SCIP_Stat::visual.

    Referenced by SCIPbranchExecExtern(), SCIPbranchExecLP(), SCIPbranchExecPseudo(), SCIPbranchVar(), SCIPbranchVarVal(), and SCIPtreeBranchVarNary().

    ◆ SCIPtreeBranchVarExact()

    SCIP_RETCODE SCIPtreeBranchVarExact ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_VAR var,
    SCIP_NODE **  downchild,
    SCIP_NODE **  upchild 
    )

    branches on a variable x; unlike the fp-version this will also branch x <= floor(x'), x >= ceil(x') if x' is very close to being integral at one of its bounds; in the fp version this case would be branched in the middle of the domain; not meant for branching on a continuous variables

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    varvariable to branch on
    downchildpointer to return the left child with variable rounded down, or NULL
    upchildpointer to return the right child with variable rounded up, or NULL

    Definition at line 6549 of file tree.c.

    References SCIP_Stat::certificate, FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, 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, SCIPABORT, SCIPcertificateUpdateBranchingData(), SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPnodeGetLowerbound(), SCIPsetDebugMsg, SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetRootSol(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvisualUpdateChild(), and SCIP_Stat::visual.

    Referenced by SCIPbranchExecLPExact().

    ◆ SCIPtreeBranchVarHole()

    SCIP_RETCODE SCIPtreeBranchVarHole ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_VAR var,
    SCIP_Real  left,
    SCIP_Real  right,
    SCIP_NODE **  downchild,
    SCIP_NODE **  upchild 
    )

    branches a variable x using the given domain hole; two child nodes will be created (x <= left, x >= right)

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    varvariable to branch on
    leftleft side of the domain hole
    rightright side of the domain hole
    downchildpointer to return the left child with variable rounded down, or NULL
    upchildpointer to return the right child with variable rounded up, or NULL

    Definition at line 6700 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, SCIPABORT, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPsetDebugMsg, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarHole(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvisualUpdateChild(), and SCIP_Stat::visual.

    Referenced by SCIPbranchVarHole().

    ◆ SCIPtreeBranchVarNary()

    SCIP_RETCODE SCIPtreeBranchVarNary ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_VAR var,
    SCIP_Real  val,
    int  n,
    SCIP_Real  minwidth,
    SCIP_Real  widthfactor,
    int *  nchildren 
    )

    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).

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory
    setglobal SCIP settings
    statproblem statistics data
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    varvariable to branch on
    valvalue to branch on or SCIP_INVALID for branching on current LP/pseudo solution. A branching value is required for branching on continuous variables
    nattempted number of children to be created, must be >= 2
    minwidthminimal domain width in children
    widthfactormultiplier for children domain width with increasing distance from val, must be >= 1.0
    nchildrenbuffer to store number of created children, or NULL

    Definition at line 6843 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_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPrelDiff(), SCIPsetCeil(), SCIPsetDebugMsg, 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(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvisualUpdateChild(), and SCIP_Stat::visual.

    Referenced by SCIPbranchVarValNary().

    ◆ SCIPtreeAddDiveBoundChange()

    SCIP_RETCODE SCIPtreeAddDiveBoundChange ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_VAR var,
    SCIP_BRANCHDIR  dir,
    SCIP_Real  value,
    SCIP_Bool  preferred 
    )

    adds a diving bound change to the tree together with the information if this is a bound change for the preferred direction or not

    Parameters
    treebranch and bound tree
    blkmemblock memory buffers
    varvariable to apply the bound change to
    dirdirection of the bound change
    valuevalue to adjust this variable bound to
    preferredis this a bound change for the preferred child?

    Definition at line 7216 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().

    ◆ SCIPtreeGetDiveBoundChangeData()

    void SCIPtreeGetDiveBoundChangeData ( SCIP_TREE tree,
    SCIP_VAR ***  variables,
    SCIP_BRANCHDIR **  directions,
    SCIP_Real **  values,
    int *  ndivebdchgs,
    SCIP_Bool  preferred 
    )

    get the dive bound change data for the preferred or the alternative direction

    Parameters
    treebranch and bound tree
    variablespointer to store variables for the specified direction
    directionspointer to store the branching directions
    valuespointer to store bound change values
    ndivebdchgspointer to store the number of dive bound changes
    preferredshould the dive bound changes for the preferred child be output?

    Definition at line 7248 of file tree.c.

    References SCIP_Tree::divebdchgdirs, SCIP_Tree::divebdchgvals, SCIP_Tree::divebdchgvars, SCIP_Tree::ndivebdchanges, and NULL.

    Referenced by SCIPgetDiveBoundChangeData(), and SCIPgetDiveBoundChanges().

    ◆ SCIPtreeClearDiveBoundChanges()

    void SCIPtreeClearDiveBoundChanges ( SCIP_TREE tree)

    clear the tree bound change data structure

    Parameters
    treebranch and bound tree

    Definition at line 7271 of file tree.c.

    References SCIP_Tree::ndivebdchanges.

    Referenced by SCIPclearDiveBoundChanges().

    ◆ treeCreateProbingNode()

    static SCIP_RETCODE treeCreateProbingNode ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp 
    )
    static

    ◆ SCIPtreeStartProbing()

    SCIP_RETCODE SCIPtreeStartProbing ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp,
    SCIP_RELAXATION relaxation,
    SCIP_PROB transprob,
    SCIP_Bool  strongbranching 
    )

    ◆ SCIPtreeCreateProbingNode()

    SCIP_RETCODE SCIPtreeCreateProbingNode ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_LP lp 
    )

    creates a new probing child node in the probing path

    Parameters
    treebranch and bound tree
    blkmemblock memory
    setglobal SCIP settings
    lpcurrent LP data

    Definition at line 7445 of file tree.c.

    References SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_CALL, SCIP_OKAY, SCIPnodeGetDepth(), SCIPsetDebugMsg, SCIPtreeProbing(), and treeCreateProbingNode().

    Referenced by SCIPnewProbingNode().

    ◆ SCIPtreeSetProbingLPState()

    SCIP_RETCODE SCIPtreeSetProbingLPState ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_LP lp,
    SCIP_LPISTATE **  lpistate,
    SCIP_LPINORMS **  lpinorms,
    SCIP_Bool  primalfeas,
    SCIP_Bool  dualfeas 
    )

    sets the LP state for the current probing node

    Note
    state and norms are stored at the node and later released by SCIP; therefore, the pointers are set to NULL by the method
    the pointers to state and norms must not be NULL; however, they may point to a NULL pointer if the respective information should not be set
    Parameters
    treebranch and bound tree
    blkmemblock memory
    lpcurrent LP data
    lpistatepointer to LP state information (like basis information)
    lpinormspointer to LP pricing norms information
    primalfeasprimal feasibility when LP state information was stored
    dualfeasdual feasibility when LP state information was stored

    Definition at line 7470 of file tree.c.

    References SCIP_Node::data, SCIP_Probingnode::lpinorms, SCIP_Probingnode::lpistate, SCIP_Probingnode::lpwasdualfeas, SCIP_Probingnode::lpwasprimfeas, NULL, SCIP_Tree::probingloadlpistate, SCIP_Node::probingnode, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPlpFreeNorms(), SCIPlpFreeState(), SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeProbing(), and TRUE.

    Referenced by SCIPsetProbingLPState().

    ◆ SCIPtreeLoadProbingLPState()

    ◆ SCIPtreeMarkProbingNodeHasLP()

    SCIP_RETCODE SCIPtreeMarkProbingNodeHasLP ( SCIP_TREE tree,
    BMS_BLKMEM blkmem,
    SCIP_LP lp 
    )

    marks the probing node to have a solved LP relaxation

    Parameters
    treebranch and bound tree
    blkmemblock memory
    lpcurrent LP data

    Definition at line 7606 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().

    ◆ treeBacktrackProbing()

    static SCIP_RETCODE treeBacktrackProbing ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_PRIMAL primal,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    int  probingdepth 
    )
    static

    undoes all changes to the problem applied in probing up to the given probing depth

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    primalprimal data structure
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    probingdepthprobing depth of the node in the probing path that should be reactivated, -1 to even deactivate the probing root, thus exiting probing mode

    Definition at line 7634 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, SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpRecomputeLocalAndGlobalPseudoObjval(), SCIPlpSetCutoffbound(), SCIPlpSetSizeMark(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpUnmarkDivingObjChanged(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPsetDebugMsg, SCIPtreeGetProbingDepth(), SCIPtreeProbing(), SCIPvarChgObj(), treeApplyPendingBdchgs(), treeCheckPath(), and TRUE.

    Referenced by SCIPtreeBacktrackProbing(), and SCIPtreeEndProbing().

    ◆ SCIPtreeBacktrackProbing()

    SCIP_RETCODE SCIPtreeBacktrackProbing ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_PRIMAL primal,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable,
    int  probingdepth 
    )

    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

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    statproblem statistics
    transprobtransformed problem
    origproboriginal problem
    lpcurrent LP data
    primalprimal data structure
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    probingdepthprobing depth of the node in the probing path that should be reactivated

    Definition at line 7780 of file tree.c.

    References NULL, SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeGetProbingDepth(), SCIPtreeProbing(), and treeBacktrackProbing().

    Referenced by SCIPbacktrackProbing().

    ◆ SCIPtreeEndProbing()

    SCIP_RETCODE SCIPtreeEndProbing ( SCIP_TREE tree,
    SCIP_REOPT reopt,
    BMS_BLKMEM blkmem,
    SCIP_SET set,
    SCIP_MESSAGEHDLR messagehdlr,
    SCIP_STAT stat,
    SCIP_PROB transprob,
    SCIP_PROB origprob,
    SCIP_LP lp,
    SCIP_RELAXATION relaxation,
    SCIP_PRIMAL primal,
    SCIP_BRANCHCAND branchcand,
    SCIP_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    SCIP_CLIQUETABLE cliquetable 
    )

    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

    Parameters
    treebranch and bound tree
    reoptreoptimization data structure
    blkmemblock memory buffers
    setglobal SCIP settings
    messagehdlrmessage handler
    statproblem statistics
    transprobtransformed problem after presolve
    origproboriginal problem
    lpcurrent LP data
    relaxationglobal relaxation data
    primalPrimal LP data
    branchcandbranching candidate storage
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure

    Definition at line 7814 of file tree.c.

    References SCIP_Lp::cutoffbound, SCIP_Primal::cutoffbound, SCIP_Lp::divingobjchg, SCIP_Lp::dualchecked, SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Tree::focuslpconstructed, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Lp::glbpseudoobjvalid, SCIP_Lp::hasprovedbound, SCIP_Lp::lpexact, SCIP_Lp::lpi, SCIP_Lp::lpobjval, 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::primalchecked, SCIP_Lp::primalfeasible, SCIP_Tree::probdiverelaxstored, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglphadsafebound, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpobjval, SCIP_Tree::probinglpwasdualchecked, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasprimchecked, SCIP_Tree::probinglpwasprimfeas, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingobjchanged, SCIP_Tree::probingroot, SCIP_Tree::probingsolvedlp, SCIP_Tree::probingsumchgdobjs, SCIP_Lp::pseudoobjvalid, SCIP_Lp::resolvelperror, SCIP_Tree::sbprobing, SCIP_Bool, SCIP_CALL, SCIP_LONGINT_FORMAT, 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(), SCIPlpDivingObjChanged(), SCIPlpEndProbing(), SCIPlpExactForceSafeBound(), SCIPlpFlush(), SCIPlpFreeNorms(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpiClearState(), SCIPlpIsRelax(), SCIPlpSetIsRelax(), SCIPlpSetNorms(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodeUpdateLowerboundLP(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPtreeGetCurrentNode(), SCIPtreeProbing(), SCIPtreeRestoreRelaxSol(), SCIP_Lp::solisbasic, SCIP_Lp::solved, treeBacktrackProbing(), and TRUE.

    Referenced by SCIPendProbing(), and SCIPendStrongbranch().

    ◆ SCIPtreeStoreRelaxSol()

    SCIP_RETCODE SCIPtreeStoreRelaxSol ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_RELAXATION relaxation,
    SCIP_PROB transprob 
    )

    stores relaxation solution before diving or probing

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    relaxationglobal relaxation data
    transprobtransformed problem after presolve

    Definition at line 7997 of file tree.c.

    References BMSallocMemoryArray, BMSreallocMemoryArray, SCIP_Tree::nprobdiverelaxsol, NULL, SCIP_Tree::probdiverelaxincludeslp, SCIP_Tree::probdiverelaxsol, SCIP_Tree::probdiverelaxstored, SCIP_ALLOC, SCIP_OKAY, SCIPprobGetNVars(), SCIPprobGetVars(), SCIPrelaxationIsLpIncludedForSol(), SCIPrelaxationIsSolValid(), SCIPvarGetRelaxSol(), and TRUE.

    Referenced by SCIPstartDive(), and SCIPtreeStartProbing().

    ◆ SCIPtreeRestoreRelaxSol()

    SCIP_RETCODE SCIPtreeRestoreRelaxSol ( SCIP_TREE tree,
    SCIP_SET set,
    SCIP_RELAXATION relaxation,
    SCIP_PROB transprob 
    )

    restores relaxation solution after diving or probing

    Parameters
    treebranch and bound tree
    setglobal SCIP settings
    relaxationglobal relaxation data
    transprobtransformed problem after presolve

    Definition at line 8041 of file tree.c.

    References FALSE, NULL, SCIP_Tree::probdiverelaxincludeslp, SCIP_Tree::probdiverelaxsol, SCIP_Tree::probdiverelaxstored, SCIP_CALL, SCIP_OKAY, SCIPprobGetNVars(), SCIPprobGetVars(), SCIPrelaxationSetSolValid(), SCIPvarSetRelaxSol(), and TRUE.

    Referenced by SCIPendDive(), and SCIPtreeEndProbing().

    ◆ SCIPtreeGetPrioChild()

    SCIP_NODE * SCIPtreeGetPrioChild ( SCIP_TREE tree)

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

    Parameters
    treebranch and bound tree

    Definition at line 8074 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::nchildren, NULL, SCIP_Real, and SCIP_REAL_MIN.

    Referenced by SCIPgetPrioChild().

    ◆ SCIPtreeGetPrioSibling()

    SCIP_NODE * SCIPtreeGetPrioSibling ( SCIP_TREE tree)

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

    Parameters
    treebranch and bound tree

    Definition at line 8100 of file tree.c.

    References SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIP_REAL_MIN, SCIP_Tree::siblings, and SCIP_Tree::siblingsprio.

    Referenced by SCIPgetPrioSibling().

    ◆ SCIPtreeGetBestChild()

    SCIP_NODE * SCIPtreeGetBestChild ( SCIP_TREE tree,
    SCIP_SET set 
    )

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

    Parameters
    treebranch and bound tree
    setglobal SCIP settings

    Definition at line 8126 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::leaves, SCIP_Tree::nchildren, NULL, SCIPnodepqGetNodesel(), and SCIPnodeselCompare().

    Referenced by SCIPgetBestChild(), and SCIPtreeGetBestNode().

    ◆ SCIPtreeGetBestSibling()

    SCIP_NODE * SCIPtreeGetBestSibling ( SCIP_TREE tree,
    SCIP_SET set 
    )

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

    Parameters
    treebranch and bound tree
    setglobal SCIP settings

    Definition at line 8153 of file tree.c.

    References SCIP_Tree::leaves, SCIP_Tree::nsiblings, NULL, SCIPnodepqGetNodesel(), SCIPnodeselCompare(), and SCIP_Tree::siblings.

    Referenced by SCIPgetBestSibling(), and SCIPtreeGetBestNode().

    ◆ SCIPtreeGetBestLeaf()

    SCIP_NODE * SCIPtreeGetBestLeaf ( SCIP_TREE tree)

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

    Parameters
    treebranch and bound tree

    Definition at line 8180 of file tree.c.

    References SCIP_Tree::leaves, NULL, and SCIPnodepqFirst().

    Referenced by SCIPgetBestLeaf(), SCIPnodeFocus(), and SCIPtreeGetBestNode().

    ◆ SCIPtreeGetBestNode()

    SCIP_NODE * SCIPtreeGetBestNode ( SCIP_TREE tree,
    SCIP_SET set 
    )

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

    Parameters
    treebranch and bound tree
    setglobal SCIP settings

    Definition at line 8190 of file tree.c.

    References SCIP_Tree::leaves, NULL, SCIPnodepqGetNodesel(), SCIPnodeselCompare(), SCIPtreeGetBestChild(), SCIPtreeGetBestLeaf(), SCIPtreeGetBestSibling(), and SCIPtreeGetNLeaves().

    Referenced by SCIPgetBestNode().

    ◆ SCIPtreeGetLowerbound()

    ◆ SCIPtreeGetLowerboundExact()

    SCIP_RATIONAL * SCIPtreeGetLowerboundExact ( SCIP_TREE tree,
    SCIP_SET set 
    )

    gets the minimal exact lower bound of all nodes in the tree or NULL if empty

    Note
    The user must not modify the return value.
    Parameters
    treebranch and bound tree
    setglobal SCIP settings

    Definition at line 8265 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerboundexact, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIPnodepqGetLowerboundExact(), SCIPrationalIsGT(), and SCIP_Tree::siblings.

    Referenced by SCIPgetLowerboundExact(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), and SCIPnodeUpdateLowerbound().

    ◆ SCIPtreeGetLowerboundNode()

    SCIP_NODE * SCIPtreeGetLowerboundNode ( SCIP_TREE tree,
    SCIP_SET set 
    )

    gets the node with minimal lower bound of all nodes in the tree (child, sibling, or leaf)

    Parameters
    treebranch and bound tree
    setglobal SCIP settings

    Definition at line 8305 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Node::lowerboundexact, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundNode(), SCIPrationalIsEQ(), SCIPrationalIsLE(), SCIPsetInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIP_Tree::siblings, and SCIP_Tree::siblingsprio.

    Referenced by SCIPgetBestboundNode().

    ◆ SCIPtreeGetAvgLowerbound()

    SCIP_Real SCIPtreeGetAvgLowerbound ( SCIP_TREE tree,
    SCIP_Real  cutoffbound 
    )

    gets the average lower bound of all nodes in the tree

    Parameters
    treebranch and bound tree
    cutoffboundglobal cutoff bound

    Definition at line 8386 of file tree.c.

    References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, nnodes, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundSum(), SCIPtreeGetNLeaves(), and SCIP_Tree::siblings.

    Referenced by SCIPgetAvgDualbound(), and SCIPgetAvgLowerbound().

    ◆ SCIPnodeGetNDualBndchgs()

    int SCIPnodeGetNDualBndchgs ( SCIP_NODE node)

    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.

    Parameters
    nodenode

    Definition at line 8665 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 SCIPvarIsIntegral().

    Referenced by collectDualInformation(), and SCIPreoptCheckCutoff().

    ◆ SCIPnodeGetDualBoundchgs()

    void SCIPnodeGetDualBoundchgs ( SCIP_NODE node,
    SCIP_VAR **  vars,
    SCIP_Real bounds,
    SCIP_BOUNDTYPE boundtypes,
    int *  nvars,
    int  varssize 
    )

    returns the set of variable branchings that were performed in the parent node to create this node

    Parameters
    nodenode data
    varsarray of variables on which the bound change is based on dual information
    boundsarray of bounds which are based on dual information
    boundtypesarray of boundtypes which are based on dual information
    nvarsnumber of variables on which the bound change is based on dual information if this is larger than the array size, arrays should be reallocated and method should be called again
    varssizeavailable slots in arrays

    Definition at line 8706 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, SCIPnodeGetDepth(), SCIPvarIsIntegral(), and SCIP_BoundChg::var.

    Referenced by collectDualInformation().

    ◆ SCIPnodeGetPropsBeforeDual()

    void SCIPnodeGetPropsBeforeDual ( SCIP_NODE node,
    SCIP_VAR **  vars,
    SCIP_Real varbounds,
    SCIP_BOUNDTYPE varboundtypes,
    int *  npropvars,
    int  propvarssize 
    )

    return all bound changes on non-continuous variables based on constraint and propagator propagation

    Stop saving the bound changes when a propagation based on a dual information is reached.

    Parameters
    nodenode
    varsarray of variables on which propagation triggers a bound change
    varboundsarray of bounds set by propagation
    varboundtypesarray of boundtypes set by propagation
    npropvarsnumber of variables on which propagation triggers a bound change if this is larger than the array size, arrays should be reallocated and method should be called again
    propvarssizeavailable slots in arrays

    Definition at line 8935 of file tree.c.

    References SCIP_DomChgBound::boundchgs, 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, SCIPnodeGetDepth(), SCIPnodeGetNDomchg(), SCIPvarIsIntegral(), and SCIP_BoundChg::var.

    Referenced by updatePropagation().

    ◆ SCIPnodeGetPropsAfterDual()

    void SCIPnodeGetPropsAfterDual ( SCIP_NODE node,
    SCIP_VAR **  vars,
    SCIP_Real varbounds,
    SCIP_BOUNDTYPE varboundtypes,
    int *  nvars,
    int  varssize 
    )

    return bound changes on non-continuous variables based on constraint and propagator propagation

    Start saving the bound changes when a propagation based on a dual information is reached.

    Note
    Currently, we can only detect bound changes based in dual information if they arise from strong branching.
    Parameters
    nodenode
    varsarray where to store variables with bound changes
    varboundsarray where to store changed bounds
    varboundtypesarray where to store type of changed bound
    nvarsbuffer to store number of bound changes; if this is larger than varssize, arrays should be reallocated and method should be called again
    varssizeavailable slots in provided arrays

    Definition at line 9017 of file tree.c.

    References SCIP_DomChgBound::boundchgs, 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, SCIPnodeGetDepth(), SCIPvarIsIntegral(), and SCIP_BoundChg::var.

    Referenced by saveAfterDualBranchings().

    ◆ SCIPtreeGetNChildren()

    int SCIPtreeGetNChildren ( SCIP_TREE tree)

    gets number of children of the focus node

    Parameters
    treebranch and bound tree

    Definition at line 9304 of file tree.c.

    References SCIP_Tree::nchildren, and NULL.

    Referenced by SCIPgetOpenNodesData().

    ◆ SCIPtreeGetNSiblings()

    int SCIPtreeGetNSiblings ( SCIP_TREE tree)

    gets number of siblings of the focus node

    Parameters
    treebranch and bound tree

    Definition at line 9314 of file tree.c.

    References SCIP_Tree::nsiblings, and NULL.

    Referenced by SCIPgetOpenNodesData().

    ◆ SCIPtreeGetNLeaves()

    int SCIPtreeGetNLeaves ( SCIP_TREE tree)

    gets number of leaves in the tree (excluding children and siblings of focus nodes)

    Parameters
    treebranch and bound tree

    Definition at line 9324 of file tree.c.

    References SCIP_Tree::leaves, NULL, and SCIPnodepqLen().

    Referenced by SCIPsolveCIP(), SCIPtreeGetAvgLowerbound(), SCIPtreeGetBestNode(), and SCIPtreeGetNNodes().

    ◆ SCIPtreeGetNNodes()

    int SCIPtreeGetNNodes ( SCIP_TREE tree)

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

    Parameters
    treebranch and bound tree

    Definition at line 9334 of file tree.c.

    References SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, and SCIPtreeGetNLeaves().

    Referenced by SCIPcollectTreeStatistics(), SCIPgetNNodesLeft(), SCIPprimalHeuristics(), SCIPprintTreeStatistics(), SCIPsolve(), SCIPsolveCIP(), and solveNode().

    ◆ SCIPtreeIsPathComplete()

    SCIP_Bool SCIPtreeIsPathComplete ( SCIP_TREE tree)

    returns whether the active path goes completely down to the focus node

    Parameters
    treebranch and bound tree

    Definition at line 9344 of file tree.c.

    References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing().

    Referenced by forkCreate(), junctionInit(), nodeAssignParent(), probingnodeUpdate(), pseudoforkCreate(), SCIPnodeCreateChild(), SCIPnodeFocus(), SCIPtreeHasCurrentNodeLP(), and treeCreateProbingNode().

    ◆ SCIPtreeProbing()

    SCIP_Bool SCIPtreeProbing ( SCIP_TREE tree)

    returns whether the current node is a temporary probing node

    Parameters
    treebranch and bound tree

    Definition at line 9361 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(), focusnodeToLeaf(), focusnodeToPseudofork(), nodeActivate(), nodeDeactivate(), nodeReleaseParent(), propAndSolve(), SCIPaddRowProbing(), SCIPaggregateVars(), SCIPaggregateVarsExact(), SCIPapplyCutsProbing(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(), SCIPchgVarObjProbing(), SCIPchgVarUbProbing(), SCIPconshdlrInitLP(), SCIPendProbing(), SCIPendStrongbranch(), SCIPfixVarProbing(), SCIPgetProbingDepth(), SCIPgetVarObjProbing(), SCIPinProbing(), SCIPisExactDivePossible(), SCIPmultiaggregateVar(), SCIPmultiaggregateVarExact(), SCIPnewProbingNode(), SCIPnodeAddBoundinfer(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodeUpdateLowerboundLP(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPpropagateProbing(), SCIPpropagateProbingImplications(), SCIPsetProbingLPState(), SCIPsolLinkLPSol(), SCIPsolveProbingRelax(), SCIPstartDive(), SCIPstartExactDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeBacktrackProbing(), SCIPtreeClear(), SCIPtreeCreatePresolvingRoot(), SCIPtreeCreateProbingNode(), SCIPtreeCreateRoot(), SCIPtreeEndProbing(), SCIPtreeFree(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusDepth(), SCIPtreeGetFocusNode(), SCIPtreeGetProbingDepth(), SCIPtreeHasCurrentNodeLP(), SCIPtreeIsPathComplete(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPtreeMarkProbingObjChanged(), SCIPtreeProbingObjChanged(), SCIPtreeSetProbingLPState(), SCIPtreeStartProbing(), SCIPupdateVarAncPseudocost(), SCIPupdateVarPseudocost(), solveProbingLP(), treeBacktrackProbing(), treeCheckPath(), treeCreateProbingNode(), and treeUpdatePathLPSize().

    ◆ SCIPtreeGetProbingRoot()

    SCIP_NODE * SCIPtreeGetProbingRoot ( SCIP_TREE tree)

    returns the temporary probing root node, or NULL if the we are not in probing mode

    Parameters
    treebranch and bound tree

    Definition at line 9374 of file tree.c.

    References SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_NODETYPE_PROBINGNODE, and SCIPnodeGetDepth().

    ◆ SCIPtreeGetFocusNode()

    ◆ SCIPtreeGetFocusDepth()

    ◆ SCIPtreeHasFocusNodeLP()

    SCIP_Bool SCIPtreeHasFocusNodeLP ( SCIP_TREE tree)

    returns whether the LP was or is to be solved in the focus node

    Parameters
    treebranch and bound tree

    Definition at line 9421 of file tree.c.

    References SCIP_Tree::focusnodehaslp, and NULL.

    Referenced by addCurrentSolution(), enforceConstraints(), propAndSolve(), SCIPprimalHeuristics(), SCIPsolveCIP(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeHasCurrentNodeLP(), solveNode(), solveNodeLP(), and updateEstimate().

    ◆ SCIPtreeSetFocusNodeLP()

    void SCIPtreeSetFocusNodeLP ( SCIP_TREE tree,
    SCIP_Bool  solvelp 
    )

    sets mark to solve or to ignore the LP while processing the focus node

    Parameters
    treebranch and bound tree
    solvelpshould the LP be solved in focus node?

    Definition at line 9431 of file tree.c.

    References SCIP_Tree::focusnodehaslp, and NULL.

    Referenced by enforceConstraints(), priceAndCutLoop(), propAndSolve(), SCIPsetFocusnodeLP(), and solveNode().

    ◆ SCIPtreeIsFocusNodeLPConstructed()

    ◆ SCIPtreeInRepropagation()

    SCIP_Bool SCIPtreeInRepropagation ( SCIP_TREE tree)

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

    Parameters
    treebranch and bound tree

    Definition at line 9452 of file tree.c.

    References SCIP_Tree::focusnode, NULL, SCIP_NODETYPE_REFOCUSNODE, and SCIPnodeGetType().

    Referenced by primalAddSol(), primalAddSolExact(), primalSetCutoffbound(), primalSetCutoffboundExact(), and SCIPinRepropagation().

    ◆ SCIPtreeGetCurrentNode()

    SCIP_NODE * SCIPtreeGetCurrentNode ( SCIP_TREE tree)

    gets current node of the tree, i.e. the last node in the active path, or NULL if no current node exists

    Parameters
    treebranch and bound tree

    Definition at line 9462 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(), SCIPaddRow(), SCIPaddRowDive(), SCIPaddRowProbing(), SCIPchgVarLb(), SCIPchgVarLbExact(), SCIPchgVarLbGlobal(), SCIPchgVarLbProbing(), SCIPchgVarObjProbing(), SCIPchgVarUb(), SCIPchgVarUbExact(), SCIPchgVarUbGlobal(), SCIPchgVarUbProbing(), SCIPdelConsLocal(), SCIPfixVarProbing(), SCIPgetCurrentNode(), SCIPgetLocalDualbound(), SCIPgetLocalLowerbound(), SCIPgetLocalOrigEstimate(), SCIPgetLocalTransEstimate(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbConsExact(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbConsExact(), SCIPinferVarUbProp(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPpriceLoop(), SCIPpropagateProbingImplications(), SCIPrelaxExec(), SCIPseparateCutpool(), SCIPseparateSolCutpool(), SCIPsepastoreApplyCuts(), SCIPsolve(), SCIPsolveCIP(), SCIPtightenVarLb(), SCIPtightenVarLbExact(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbExact(), SCIPtightenVarUbGlobal(), SCIPtreeBacktrackProbing(), SCIPtreeBranchVar(), SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPtreeSetProbingLPState(), SCIPupdateLocalDualbound(), SCIPupdateLocalLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), tightenVarLbGlobalSafe(), tightenVarUbGlobalSafe(), and treeCreateProbingNode().

    ◆ SCIPtreeGetCurrentDepth()

    int SCIPtreeGetCurrentDepth ( SCIP_TREE tree)

    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

    Parameters
    treebranch and bound tree

    Definition at line 9479 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(), conflictAnalyzeResolution(), conflictCreateReconvergenceConss(), conflictsetCalcInsertDepth(), priceAndCutLoop(), primalSetUpperbound(), primalSetUpperboundExact(), propagationRound(), propAndSolve(), SCIPaddCons(), SCIPaddPricedVar(), SCIPaddRow(), SCIPaggregateVars(), SCIPaggregateVarsExact(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPchgVarLb(), SCIPchgVarLbExact(), SCIPchgVarLbGlobal(), SCIPchgVarUb(), SCIPchgVarUbExact(), SCIPchgVarUbGlobal(), SCIPconflictAddConflictCon(), SCIPconflictAnalyze(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeResolution(), SCIPconflictAnalyzeStrongbranch(), SCIPconflictFlushConss(), SCIPconshdlrInitLP(), SCIPconstructCurrentLP(), SCIPfixVar(), SCIPfixVarExact(), SCIPgetDepth(), SCIPgetSepaMinEfficacy(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarFixCons(), SCIPinferVarFixProp(), SCIPinferVarLbCons(), SCIPinferVarLbConsExact(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbConsExact(), SCIPinferVarUbProp(), SCIPisCutEfficacious(), SCIPisEfficacious(), SCIPmultiaggregateVar(), SCIPmultiaggregateVarExact(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprimalHeuristics(), SCIPremoveInefficaciousCuts(), SCIPrunBoundHeuristic(), SCIPseparateCutpool(), SCIPseparateSol(), SCIPsolveCIP(), SCIPsolveProbingRelax(), SCIPtightenVarLb(), SCIPtightenVarLbExact(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbExact(), SCIPtightenVarUbGlobal(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetProbingDepth(), solStamp(), solveNodeLP(), solveProbingLP(), tightenVarLbGlobalSafe(), and tightenVarUbGlobalSafe().

    ◆ SCIPtreeHasCurrentNodeLP()

    ◆ SCIPtreeGetProbingDepth()

    int SCIPtreeGetProbingDepth ( SCIP_TREE tree)

    returns the current probing depth, i.e. the number of probing sub nodes existing in the probing path

    Parameters
    treebranch and bound tree

    Definition at line 9507 of file tree.c.

    References NULL, SCIP_Tree::probingroot, SCIPnodeGetDepth(), SCIPtreeGetCurrentDepth(), and SCIPtreeProbing().

    Referenced by performStrongbranchWithPropagation(), SCIPbacktrackProbing(), SCIPgetProbingDepth(), SCIPtreeBacktrackProbing(), and treeBacktrackProbing().

    ◆ SCIPtreeGetEffectiveRootDepth()

    int SCIPtreeGetEffectiveRootDepth ( SCIP_TREE tree)

    returns the depth of the effective root node (i.e. the first depth level of a node with at least two children)

    Parameters
    treebranch and bound tree

    Definition at line 9518 of file tree.c.

    References SCIP_Tree::effectiverootdepth, and NULL.

    Referenced by conflictAnalyzeLP(), createAndAddProofcons(), SCIPaddCons(), SCIPaddConsNode(), SCIPdelConsLocal(), SCIPdelConsNode(), SCIPgetEffectiveRootDepth(), SCIPrunBoundHeuristic(), and tightenSingleVar().

    ◆ SCIPtreeGetRootNode()

    SCIP_NODE * SCIPtreeGetRootNode ( SCIP_TREE tree)

    gets the root node of the tree

    Parameters
    treebranch and bound tree

    Definition at line 9529 of file tree.c.

    References NULL, and SCIP_Tree::root.

    Referenced by applyImplic(), detectImpliedBounds(), SCIPgetRootNode(), SCIPreoptSplitRoot(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarFixBinary(), sepastoreApplyLb(), sepastoreApplyUb(), and varAddImplic().

    ◆ SCIPtreeProbingObjChanged()

    SCIP_Bool SCIPtreeProbingObjChanged ( SCIP_TREE tree)

    returns whether we are in probing and the objective value of at least one column was changed

    Parameters
    treebranch and bound tree

    Definition at line 9540 of file tree.c.

    References NULL, SCIP_Tree::probingobjchanged, and SCIPtreeProbing().

    Referenced by SCIPchgVarObjProbing(), and SCIPisObjChangedProbing().

    ◆ SCIPtreeMarkProbingObjChanged()

    void SCIPtreeMarkProbingObjChanged ( SCIP_TREE tree)

    marks the current probing node to have a changed objective function

    Parameters
    treebranch and bound tree

    Definition at line 9551 of file tree.c.

    References NULL, SCIP_Tree::probingobjchanged, SCIPtreeProbing(), and TRUE.

    Referenced by SCIPchgVarObjProbing().