Scippy

    SCIP

    Solving Constraint Integer Programs

    SCIP_Tree Struct Reference

    Detailed Description

    branch and bound tree

    Definition at line 186 of file struct_tree.h.

    #include <struct_tree.h>

    Data Fields

    SCIP_NODEroot
     
    SCIP_NODEPQleaves
     
    SCIP_NODE ** path
     
    SCIP_NODEfocusnode
     
    SCIP_NODEfocuslpfork
     
    SCIP_NODEfocuslpstatefork
     
    SCIP_NODEfocussubroot
     
    SCIP_NODEprobingroot
     
    SCIP_NODE ** children
     
    SCIP_NODE ** siblings
     
    SCIP_Realchildrenprio
     
    SCIP_Realsiblingsprio
     
    SCIP_VAR ** divebdchgvars [2]
     
    SCIP_BRANCHDIRdivebdchgdirs [2]
     
    SCIP_Realdivebdchgvals [2]
     
    int * pathnlpcols
     
    int * pathnlprows
     
    SCIP_LPISTATEprobinglpistate
     
    SCIP_LPISTATEfocuslpistate
     
    SCIP_LPINORMSprobinglpinorms
     
    SCIP_PENDINGBDCHGpendingbdchgs
     
    SCIP_Realprobdiverelaxsol
     
    SCIP_Real probinglpobjval
     
    int nprobdiverelaxsol
     
    SCIP_Longint focuslpstateforklpcount
     
    SCIP_Longint lastbranchparentid
     
    int divebdchgsize [2]
     
    int ndivebdchanges [2]
     
    int pendingbdchgssize
     
    int npendingbdchgs
     
    int childrensize
     
    int nchildren
     
    int siblingssize
     
    int nsiblings
     
    int pathlen
     
    int pathsize
     
    int effectiverootdepth
     
    int updatedeffectiverootdepth
     
    int correctlpdepth
     
    int cutoffdepth
     
    int repropdepth
     
    int repropsubtreecount
     
    int probingsumchgdobjs
     
    SCIP_Bool focusnodehaslp
     
    SCIP_Bool probingnodehaslp
     
    SCIP_Bool focuslpconstructed
     
    SCIP_Bool cutoffdelayed
     
    SCIP_Bool probinglpwasflushed
     
    SCIP_Bool probinglpwassolved
     
    SCIP_Bool probingloadlpistate
     
    SCIP_Bool probinglpwasrelax
     
    SCIP_Bool probingsolvedlp
     
    SCIP_Bool forcinglpmessage
     
    SCIP_Bool probingobjchanged
     
    SCIP_Bool sbprobing
     
    SCIP_Bool probinglpwasprimfeas
     
    SCIP_Bool probinglpwasprimchecked
     
    SCIP_Bool probinglpwasdualfeas
     
    SCIP_Bool probinglpwasdualchecked
     
    SCIP_Bool probinglphadsafebound
     
    SCIP_Bool probdiverelaxstored
     
    SCIP_Bool probdiverelaxincludeslp
     

    Field Documentation

    ◆ root

    ◆ leaves

    ◆ path

    ◆ focusnode

    SCIP_NODE* SCIP_Tree::focusnode

    focus node: the node that is stored together with its children and siblings in the tree data structure; the focus node is the currently processed node; it doesn't need to be active all the time, because it may be cut off and the active path stops at the cut off node

    Definition at line 193 of file struct_tree.h.

    Referenced by focusnodeCleanupVars(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToLeaf(), focusnodeToPseudofork(), forkCreate(), junctionInit(), nodeAssignParent(), nodeRepropagate(), pseudoforkCreate(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPinitConssLP(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPnodeAddHoleinfer(), SCIPnodeCreateChild(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodepqBound(), SCIPnodeUpdateLowerbound(), SCIPsolveCIP(), SCIPtreeBranchVar(), SCIPtreeBranchVarExact(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPtreeCalcChildEstimate(), SCIPtreeClear(), SCIPtreeCreatePresolvingRoot(), SCIPtreeCreateRoot(), SCIPtreeEndProbing(), SCIPtreeFreePresolvingRoot(), SCIPtreeGetAvgLowerbound(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusDepth(), SCIPtreeGetFocusNode(), SCIPtreeGetLowerbound(), SCIPtreeGetLowerboundExact(), SCIPtreeInRepropagation(), SCIPtreeIsPathComplete(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeWasNodeLastBranchParent(), solveNodeLP(), treeBacktrackProbing(), treeFindSwitchForks(), and treeSwitchPath().

    ◆ focuslpfork

    SCIP_NODE* SCIP_Tree::focuslpfork

    LP defining pseudofork/fork/subroot of the focus node

    Definition at line 197 of file struct_tree.h.

    Referenced by nodeRepropagate(), SCIPnodeFocus(), SCIPtreeLoadLP(), and treeFindSwitchForks().

    ◆ focuslpstatefork

    ◆ focussubroot

    SCIP_NODE* SCIP_Tree::focussubroot

    subroot of the focus node's sub tree

    Definition at line 199 of file struct_tree.h.

    Referenced by nodeRepropagate(), SCIPnodeFocus(), SCIPtreeLoadLP(), and treeFindSwitchForks().

    ◆ probingroot

    ◆ children

    ◆ siblings

    ◆ childrenprio

    SCIP_Real* SCIP_Tree::childrenprio

    array with node selection priorities of children

    Definition at line 203 of file struct_tree.h.

    Referenced by SCIPchildChgNodeselPrio(), SCIPtreeGetLowerboundNode(), SCIPtreeGetPrioChild(), treeAddChild(), treeChildrenToSiblings(), treeEnsureChildrenMem(), and treeRemoveChild().

    ◆ siblingsprio

    SCIP_Real* SCIP_Tree::siblingsprio

    array with node selection priorities of siblings

    Definition at line 204 of file struct_tree.h.

    Referenced by SCIPtreeGetLowerboundNode(), SCIPtreeGetPrioSibling(), treeChildrenToSiblings(), and treeRemoveSibling().

    ◆ divebdchgvars

    SCIP_VAR** SCIP_Tree::divebdchgvars[2]

    two arrays to store variables for branching

    Definition at line 205 of file struct_tree.h.

    Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

    ◆ divebdchgdirs

    SCIP_BRANCHDIR* SCIP_Tree::divebdchgdirs[2]

    arrays to hold the directions for diving

    Definition at line 206 of file struct_tree.h.

    Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

    ◆ divebdchgvals

    SCIP_Real* SCIP_Tree::divebdchgvals[2]

    arrays to store bound change values for diving

    Definition at line 207 of file struct_tree.h.

    Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

    ◆ pathnlpcols

    int* SCIP_Tree::pathnlpcols

    array with number of LP columns for each problem in active path (except newly added columns of the focus node and the current probing node)

    Definition at line 208 of file struct_tree.h.

    Referenced by SCIPnodeFocus(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), treeBacktrackProbing(), treeCheckPath(), treeCreateProbingNode(), treeEnsurePathMem(), and treeUpdatePathLPSize().

    ◆ pathnlprows

    int* SCIP_Tree::pathnlprows

    array with number of LP rows for each problem in active path (except newly added rows of the focus node and the current probing node)

    Definition at line 210 of file struct_tree.h.

    Referenced by SCIPconstructCurrentLP(), SCIPnodeFocus(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), treeBacktrackProbing(), treeCheckPath(), treeCreateProbingNode(), treeEnsurePathMem(), and treeUpdatePathLPSize().

    ◆ probinglpistate

    SCIP_LPISTATE* SCIP_Tree::probinglpistate

    LP state information before probing started

    Definition at line 212 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ focuslpistate

    SCIP_LPISTATE* SCIP_Tree::focuslpistate

    LP state information of focus node

    Definition at line 213 of file struct_tree.h.

    ◆ probinglpinorms

    SCIP_LPINORMS* SCIP_Tree::probinglpinorms

    LP pricing norms information before probing started

    Definition at line 214 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ pendingbdchgs

    SCIP_PENDINGBDCHG* SCIP_Tree::pendingbdchgs

    array of pending bound changes, or NULL

    Definition at line 215 of file struct_tree.h.

    Referenced by SCIPtreeClear(), treeAddPendingBdchg(), treeApplyPendingBdchgs(), and treeEnsurePendingbdchgsMem().

    ◆ probdiverelaxsol

    SCIP_Real* SCIP_Tree::probdiverelaxsol

    array with stored original relaxation solution during diving or probing

    Definition at line 216 of file struct_tree.h.

    Referenced by SCIPtreeRestoreRelaxSol(), and SCIPtreeStoreRelaxSol().

    ◆ probinglpobjval

    SCIP_Real SCIP_Tree::probinglpobjval

    lp objective value before probing started

    Definition at line 217 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ nprobdiverelaxsol

    int SCIP_Tree::nprobdiverelaxsol

    size of probdiverelaxsol

    Definition at line 218 of file struct_tree.h.

    Referenced by SCIPtreeStoreRelaxSol().

    ◆ focuslpstateforklpcount

    SCIP_Longint SCIP_Tree::focuslpstateforklpcount

    LP number of last solved LP in current LP state fork, or -1 if unknown

    Definition at line 219 of file struct_tree.h.

    Referenced by nodeRepropagate(), SCIPnodeAddBoundinfer(), SCIPnodeAddBoundinferExact(), SCIPnodeFocus(), SCIPtreeClear(), and SCIPtreeLoadLPState().

    ◆ lastbranchparentid

    SCIP_Longint SCIP_Tree::lastbranchparentid

    last node id/number of branching parent

    Definition at line 220 of file struct_tree.h.

    Referenced by SCIPnodeCreateChild(), and SCIPtreeWasNodeLastBranchParent().

    ◆ divebdchgsize

    int SCIP_Tree::divebdchgsize[2]

    holds the two sizes of the dive bound change information

    Definition at line 221 of file struct_tree.h.

    Referenced by SCIPtreeAddDiveBoundChange().

    ◆ ndivebdchanges

    int SCIP_Tree::ndivebdchanges[2]

    current number of stored dive bound changes for the next depth

    Definition at line 222 of file struct_tree.h.

    Referenced by SCIPtreeAddDiveBoundChange(), SCIPtreeClearDiveBoundChanges(), and SCIPtreeGetDiveBoundChangeData().

    ◆ pendingbdchgssize

    int SCIP_Tree::pendingbdchgssize

    size of pendingbdchgs array

    Definition at line 223 of file struct_tree.h.

    Referenced by treeEnsurePendingbdchgsMem().

    ◆ npendingbdchgs

    int SCIP_Tree::npendingbdchgs

    number of pending bound changes

    Definition at line 224 of file struct_tree.h.

    Referenced by SCIPtreeClear(), treeAddPendingBdchg(), and treeApplyPendingBdchgs().

    ◆ childrensize

    int SCIP_Tree::childrensize

    available slots in children vector

    Definition at line 225 of file struct_tree.h.

    Referenced by treeChildrenToSiblings(), and treeEnsureChildrenMem().

    ◆ nchildren

    ◆ siblingssize

    int SCIP_Tree::siblingssize

    available slots in siblings vector

    Definition at line 227 of file struct_tree.h.

    Referenced by treeChildrenToSiblings().

    ◆ nsiblings

    ◆ pathlen

    ◆ pathsize

    int SCIP_Tree::pathsize

    number of available slots in path arrays

    Definition at line 230 of file struct_tree.h.

    Referenced by treeEnsurePathMem().

    ◆ effectiverootdepth

    ◆ updatedeffectiverootdepth

    int SCIP_Tree::updatedeffectiverootdepth

    first depth of node with at least two children or focus node

    Definition at line 232 of file struct_tree.h.

    Referenced by nodeReleaseParent(), SCIPtreeClear(), and treeSwitchPath().

    ◆ correctlpdepth

    int SCIP_Tree::correctlpdepth

    depth to which current LP data corresponds to LP data of active path

    Definition at line 233 of file struct_tree.h.

    Referenced by SCIPconstructCurrentLP(), SCIPnodeFocus(), SCIPtreeClear(), SCIPtreeLoadLP(), and SCIPtreeLoadLPState().

    ◆ cutoffdepth

    int SCIP_Tree::cutoffdepth

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

    Definition at line 234 of file struct_tree.h.

    Referenced by propagationRound(), propAndSolve(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPtreeClear(), treeApplyPendingBdchgs(), treeBacktrackProbing(), treeFindSwitchForks(), treeSwitchPath(), and updateLoopStatus().

    ◆ repropdepth

    int SCIP_Tree::repropdepth

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

    Definition at line 235 of file struct_tree.h.

    Referenced by SCIPnodeMarkPropagated(), SCIPnodePropagateAgain(), SCIPtreeClear(), treeBacktrackProbing(), and treeFindSwitchForks().

    ◆ repropsubtreecount

    int SCIP_Tree::repropsubtreecount

    cyclicly increased counter to create markers for subtree repropagation

    Definition at line 236 of file struct_tree.h.

    Referenced by nodeRepropagate(), SCIPtreeClear(), and treeNextRepropsubtreecount().

    ◆ probingsumchgdobjs

    int SCIP_Tree::probingsumchgdobjs

    number of changed objective coefficients in all probing nodes

    Definition at line 237 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeStartProbing(), and treeBacktrackProbing().

    ◆ focusnodehaslp

    ◆ probingnodehaslp

    SCIP_Bool SCIP_Tree::probingnodehaslp

    was the LP solved (at least once) in the current probing node?

    Definition at line 239 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeHasCurrentNodeLP(), SCIPtreeMarkProbingNodeHasLP(), and treeCreateProbingNode().

    ◆ focuslpconstructed

    SCIP_Bool SCIP_Tree::focuslpconstructed

    ◆ cutoffdelayed

    SCIP_Bool SCIP_Tree::cutoffdelayed

    the treeCutoff() call was delayed because of diving and has to be executed

    Definition at line 241 of file struct_tree.h.

    Referenced by SCIPsolveCIP(), SCIPtreeClear(), and SCIPtreeCutoff().

    ◆ probinglpwasflushed

    SCIP_Bool SCIP_Tree::probinglpwasflushed

    was the LP flushed before we entered the probing mode?

    Definition at line 242 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ probinglpwassolved

    SCIP_Bool SCIP_Tree::probinglpwassolved

    was the LP solved before we entered the probing mode?

    Definition at line 243 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ probingloadlpistate

    SCIP_Bool SCIP_Tree::probingloadlpistate

    must the LP state be reloaded because of a backtrack in probing?

    Definition at line 244 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), SCIPtreeSetProbingLPState(), SCIPtreeStartProbing(), and treeBacktrackProbing().

    ◆ probinglpwasrelax

    SCIP_Bool SCIP_Tree::probinglpwasrelax

    was the LP a valid relaxation before we entered the probing mode?

    Definition at line 245 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ probingsolvedlp

    SCIP_Bool SCIP_Tree::probingsolvedlp

    was the LP solved during probing mode, i.e., was SCIPsolveProbingLP() called?

    Definition at line 246 of file struct_tree.h.

    Referenced by SCIPtreeClear(), SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ forcinglpmessage

    SCIP_Bool SCIP_Tree::forcinglpmessage

    was forcing LP solving message be posted

    Definition at line 247 of file struct_tree.h.

    Referenced by solveNode().

    ◆ probingobjchanged

    SCIP_Bool SCIP_Tree::probingobjchanged

    was the objective function changed during probing?

    Definition at line 248 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeMarkProbingObjChanged(), SCIPtreeProbingObjChanged(), SCIPtreeStartProbing(), and treeBacktrackProbing().

    ◆ sbprobing

    SCIP_Bool SCIP_Tree::sbprobing

    is the probing mode used for strong branching?

    Definition at line 249 of file struct_tree.h.

    Referenced by propagationRound(), SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ probinglpwasprimfeas

    SCIP_Bool SCIP_Tree::probinglpwasprimfeas

    primal feasibility when probing started

    Definition at line 250 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ probinglpwasprimchecked

    SCIP_Bool SCIP_Tree::probinglpwasprimchecked

    primal feasibility has been checked when probing started

    Definition at line 251 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ probinglpwasdualfeas

    SCIP_Bool SCIP_Tree::probinglpwasdualfeas

    dual feasibility when probing started

    Definition at line 252 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ probinglpwasdualchecked

    SCIP_Bool SCIP_Tree::probinglpwasdualchecked

    dual feasibility has been check when probing started

    Definition at line 253 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), and SCIPtreeStartProbing().

    ◆ probinglphadsafebound

    SCIP_Bool SCIP_Tree::probinglphadsafebound

    lp had a proven dual bound when probing started?

    Definition at line 254 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), and SCIPtreeStartProbing().

    ◆ probdiverelaxstored

    SCIP_Bool SCIP_Tree::probdiverelaxstored

    was a relax solution stored before diving or probing ?

    Definition at line 255 of file struct_tree.h.

    Referenced by SCIPtreeEndProbing(), SCIPtreeRestoreRelaxSol(), and SCIPtreeStoreRelaxSol().

    ◆ probdiverelaxincludeslp

    SCIP_Bool SCIP_Tree::probdiverelaxincludeslp

    did the stored relaxation solution include all lp cuts ?

    Definition at line 256 of file struct_tree.h.

    Referenced by SCIPtreeRestoreRelaxSol(), and SCIPtreeStoreRelaxSol().