Scippy

SCIP

Solving Constraint Integer Programs

SCIP_Tree Struct Reference

Detailed Description

branch and bound tree

Definition at line 165 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_Longint focuslpstateforklpcount
 
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 appliedeffectiverootdepth
 
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 probinglpwasdualfeas
 

Field Documentation

SCIP_NODE* SCIP_Tree::focuslpfork

LP defining pseudofork/fork/subroot of the focus node

Definition at line 176 of file struct_tree.h.

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

SCIP_NODE* SCIP_Tree::focussubroot

subroot of the focus node's sub tree

Definition at line 178 of file struct_tree.h.

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

SCIP_Real* SCIP_Tree::childrenprio

array with node selection priorities of children

Definition at line 182 of file struct_tree.h.

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

SCIP_Real* SCIP_Tree::siblingsprio

array with node selection priorities of siblings

Definition at line 183 of file struct_tree.h.

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

SCIP_VAR** SCIP_Tree::divebdchgvars[2]

two arrays to store variables for branching

Definition at line 184 of file struct_tree.h.

Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

SCIP_BRANCHDIR* SCIP_Tree::divebdchgdirs[2]

arrays to hold the directions for diving

Definition at line 185 of file struct_tree.h.

Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

SCIP_Real* SCIP_Tree::divebdchgvals[2]

arrays to store bound change values for diving

Definition at line 186 of file struct_tree.h.

Referenced by SCIPtreeAddDiveBoundChange(), and SCIPtreeGetDiveBoundChangeData().

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 187 of file struct_tree.h.

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

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 189 of file struct_tree.h.

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

SCIP_LPISTATE* SCIP_Tree::probinglpistate

LP state information before probing started

Definition at line 191 of file struct_tree.h.

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

SCIP_LPISTATE* SCIP_Tree::focuslpistate

LP state information of focus node

Definition at line 192 of file struct_tree.h.

SCIP_LPINORMS* SCIP_Tree::probinglpinorms

LP pricing norms information before probing started

Definition at line 193 of file struct_tree.h.

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

SCIP_PENDINGBDCHG* SCIP_Tree::pendingbdchgs

array of pending bound changes, or NULL

Definition at line 194 of file struct_tree.h.

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

SCIP_Longint SCIP_Tree::focuslpstateforklpcount

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

Definition at line 195 of file struct_tree.h.

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

int SCIP_Tree::divebdchgsize[2]

holds the two sizes of the dive bound change information

Definition at line 196 of file struct_tree.h.

Referenced by SCIPtreeAddDiveBoundChange().

int SCIP_Tree::ndivebdchanges[2]

current number of stored dive bound changes for the next depth

Definition at line 197 of file struct_tree.h.

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

int SCIP_Tree::pendingbdchgssize

size of pendingbdchgs array

Definition at line 198 of file struct_tree.h.

Referenced by treeEnsurePendingbdchgsMem().

int SCIP_Tree::npendingbdchgs

number of pending bound changes

Definition at line 199 of file struct_tree.h.

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

int SCIP_Tree::childrensize

available slots in children vector

Definition at line 200 of file struct_tree.h.

Referenced by treeChildrenToSiblings(), and treeEnsureChildrenMem().

int SCIP_Tree::siblingssize

available slots in siblings vector

Definition at line 202 of file struct_tree.h.

Referenced by treeChildrenToSiblings().

int SCIP_Tree::pathsize

number of available slots in path arrays

Definition at line 205 of file struct_tree.h.

Referenced by treeEnsurePathMem().

int SCIP_Tree::appliedeffectiverootdepth

the effective root depth which was already enforced (that is constraint and bound changes were made global)

Definition at line 207 of file struct_tree.h.

Referenced by SCIPnodeFocus(), and SCIPtreeClear().

int SCIP_Tree::correctlpdepth

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

Definition at line 208 of file struct_tree.h.

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

int SCIP_Tree::cutoffdepth
int SCIP_Tree::repropdepth

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

Definition at line 210 of file struct_tree.h.

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

int SCIP_Tree::repropsubtreecount

cyclicly increased counter to create markers for subtree repropagation

Definition at line 211 of file struct_tree.h.

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

int SCIP_Tree::probingsumchgdobjs

number of changed objective coefficients in all probing nodes

Definition at line 212 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probingnodehaslp

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

Definition at line 214 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::focuslpconstructed
SCIP_Bool SCIP_Tree::cutoffdelayed

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

Definition at line 216 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probinglpwasflushed

was the LP flushed before we entered the probing mode?

Definition at line 217 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probinglpwassolved

was the LP solved before we entered the probing mode?

Definition at line 218 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probingloadlpistate

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

Definition at line 219 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probinglpwasrelax

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

Definition at line 220 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probingsolvedlp

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

Definition at line 221 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::forcinglpmessage

was forcing LP solving message be posted

Definition at line 222 of file struct_tree.h.

Referenced by solveNode().

SCIP_Bool SCIP_Tree::probingobjchanged
SCIP_Bool SCIP_Tree::sbprobing

is the probing mode used for strong branching?

Definition at line 224 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probinglpwasprimfeas

primal feasibility when probing started

Definition at line 225 of file struct_tree.h.

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

SCIP_Bool SCIP_Tree::probinglpwasdualfeas

dual feasibility when probing started

Definition at line 226 of file struct_tree.h.

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