|
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/vbc.h"
#include "scip/event.h"
#include "scip/lp.h"
#include "scip/var.h"
#include "scip/implics.h"
#include "scip/primal.h"
#include "scip/tree.h"
#include "scip/solve.h"
#include "scip/cons.h"
#include "scip/nodesel.h"
#include "scip/prop.h"
#include "scip/debug.h"
#include "scip/prob.h"
#include "scip/scip.h"
#include "scip/pub_message.h"
#include "lpi/lpi.h"
Go to the source code of this file.
|
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_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp) |
|
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_RETCODE | SCIPnodeFree (SCIP_NODE **node, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_TREE *tree, SCIP_LP *lp) |
|
void | SCIPnodeCutoff (SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree) |
|
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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, 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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, 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) |
|
static SCIP_RETCODE | treeAddPendingBdchg (SCIP_TREE *tree, SCIP_SET *set, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, 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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real 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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_VAR *var, SCIP_Real 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, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue) |
|
void | SCIPnodeUpdateLowerbound (SCIP_NODE *node, SCIP_STAT *stat, SCIP_SET *set, SCIP_TREE *tree, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real newbound) |
|
SCIP_RETCODE | SCIPnodeUpdateLowerboundLP (SCIP_NODE *node, SCIP_SET *set, SCIP_STAT *stat, 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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, 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, 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_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, 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_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_TREE *tree, 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_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_Bool inlp) |
|
static SCIP_RETCODE | focusnodeToDeadend (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand) |
|
static SCIP_RETCODE | focusnodeToJunction (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand) |
|
static SCIP_RETCODE | focusnodeToPseudofork (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand) |
|
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_LP *lp, SCIP_BRANCHCAND *branchcand) |
|
static SCIP_RETCODE | treeNodesToQueue (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, 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_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_Bool *cutoff, SCIP_Bool exitsolve) |
|
SCIP_RETCODE | SCIPtreeCreate (SCIP_TREE **tree, 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_LP *lp) |
|
SCIP_RETCODE | SCIPtreeClear (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPtreeCreateRoot (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPtreeCreatePresolvingRoot (SCIP_TREE *tree, 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_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue) |
|
SCIP_RETCODE | SCIPtreeFreePresolvingRoot (SCIP_TREE *tree, 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_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue) |
|
SCIP_NODESEL * | SCIPtreeGetNodesel (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, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, 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, 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_VAR *var, SCIP_Real val, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild) |
|
SCIP_RETCODE | SCIPtreeBranchVarHole (SCIP_TREE *tree, 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_VAR *var, SCIP_Real left, SCIP_Real right, SCIP_NODE **downchild, SCIP_NODE **upchild) |
|
SCIP_RETCODE | SCIPtreeBranchVarNary (SCIP_TREE *tree, 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_VAR *var, SCIP_Real val, int n, SCIP_Real minwidth, SCIP_Real widthfactor, int *nchildren) |
|
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_Bool strongbranching) |
|
SCIP_RETCODE | SCIPtreeCreateProbingNode (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPtreeLoadProbingLPState (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, 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, 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, int probingdepth) |
|
SCIP_RETCODE | SCIPtreeBacktrackProbing (SCIP_TREE *tree, 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, int probingdepth) |
|
SCIP_RETCODE | SCIPtreeEndProbing (SCIP_TREE *tree, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter) |
|
SCIP_NODE * | SCIPtreeGetPrioChild (SCIP_TREE *tree) |
|
SCIP_NODE * | SCIPtreeGetPrioSibling (SCIP_TREE *tree) |
|
SCIP_NODE * | SCIPtreeGetBestChild (SCIP_TREE *tree, SCIP_SET *set) |
|
SCIP_NODE * | SCIPtreeGetBestSibling (SCIP_TREE *tree, SCIP_SET *set) |
|
SCIP_NODE * | SCIPtreeGetBestLeaf (SCIP_TREE *tree) |
|
SCIP_NODE * | SCIPtreeGetBestNode (SCIP_TREE *tree, SCIP_SET *set) |
|
SCIP_Real | SCIPtreeGetLowerbound (SCIP_TREE *tree, SCIP_SET *set) |
|
SCIP_NODE * | SCIPtreeGetLowerboundNode (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_Real | SCIPnodeGetEstimate (SCIP_NODE *node) |
|
SCIP_DOMCHG * | SCIPnodeGetDomchg (SCIP_NODE *node) |
|
SCIP_NODE * | SCIPnodeGetParent (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) |
|
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_NODE * | SCIPnodesGetCommonAncestor (SCIP_NODE *node1, SCIP_NODE *node2) |
|
SCIP_Bool | SCIPnodeIsActive (SCIP_NODE *node) |
|
SCIP_Bool | SCIPnodeIsPropagatedAgain (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_NODE * | SCIPtreeGetProbingRoot (SCIP_TREE *tree) |
|
SCIP_NODE * | SCIPtreeGetFocusNode (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_NODE * | SCIPtreeGetCurrentNode (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_NODE * | SCIPtreeGetRootNode (SCIP_TREE *tree) |
|
#define MAXREPROPMARK 511 |
SCIP_DECL_SORTPTRCOMP |
( |
SCIPnodeCompLowerbound |
| ) |
|
node comparator for best lower bound
Definition at line 140 of file tree.c.
References NULL.
static void forkCaptureLPIState |
( |
SCIP_FORK * |
fork, |
|
|
int |
nuses |
|
) |
| |
|
static |
static void subrootCaptureLPIState |
( |
SCIP_SUBROOT * |
subroot, |
|
|
int |
nuses |
|
) |
| |
|
static |
increases the reference counter of the LP state in the fork or subroot node
- Parameters
-
node | fork/subroot node |
nuses | number to add to the usage counter |
Definition at line 233 of file tree.c.
References SCIP_Node::data, SCIP_Node::fork, forkCaptureLPIState(), SCIP_Fork::nlpistateref, SCIP_Subroot::nlpistateref, NULL, SCIP_INVALIDDATA, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIP_Node::subroot, and subrootCaptureLPIState().
Referenced by junctionInit(), and pseudoforkCreate().
decreases the reference counter of the LP state in the fork or subroot node
- Parameters
-
node | fork/subroot node |
blkmem | block memory buffers |
lp | current LP data |
Definition at line 261 of file tree.c.
References SCIP_Node::data, SCIP_Node::fork, forkReleaseLPIState(), SCIP_Fork::nlpistateref, SCIP_Subroot::nlpistateref, NULL, SCIP_INVALIDDATA, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIP_Node::subroot, and subrootReleaseLPIState().
Referenced by focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), and SCIPnodeFree().
updates LP information in probingnode data
- Parameters
-
probingnode | probingnode data |
blkmem | block memory |
tree | branch and bound tree |
lp | current LP data |
Definition at line 309 of file tree.c.
References SCIP_Lp::dualfeasible, SCIP_Lp::flushed, SCIP_Probingnode::lpistate, SCIP_Probingnode::lpwasdualfeas, SCIP_Probingnode::lpwasprimfeas, SCIP_Probingnode::ncols, SCIP_Probingnode::nrows, NULL, SCIP_Lp::primalfeasible, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPlpFreeState(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpGetState(), SCIPtreeIsPathComplete(), and SCIP_Lp::solved.
Referenced by SCIPtreeMarkProbingNodeHasLP().
creates pseudofork data
- Parameters
-
pseudofork | pointer to pseudofork data |
blkmem | block memory |
tree | branch and bound tree |
lp | current LP data |
Definition at line 392 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().
creates fork data
- Parameters
-
fork | pointer to fork data |
blkmem | block memory |
set | global SCIP settings |
prob | transformed problem after presolve |
tree | branch and bound tree |
lp | current LP data |
Definition at line 477 of file tree.c.
References BMSallocBlockMemory, BMSduplicateBlockMemoryArray, SCIP_Lp::dualfeasible, SCIP_Lp::flushed, SCIP_Tree::focusnode, forkCaptureLPIState(), SCIP_Tree::nchildren, NULL, SCIP_Lp::primalfeasible, SCIP_ALLOC, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNewcols(), SCIPlpGetNewrows(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIProwCapture(), SCIPtreeIsPathComplete(), and SCIP_Lp::solved.
Referenced by focusnodeToFork().
adds given child node to children array of focus node
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
child | child node to add |
nodeselprio | node selection priority of child node |
Definition at line 690 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().
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
-
node | child node |
blkmem | block memory buffers |
set | global SCIP settings |
tree | branch and bound tree |
parent | parent (= focus) node (or NULL, if node is root) |
nodeselprio | node selection priority of child node |
Definition at line 741 of file tree.c.
References SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Node::estimate, SCIP_Tree::focusnode, SCIP_Node::lowerbound, MAXDEPTH, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_MAXDEPTHLEVEL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPsetIsInfinity(), SCIPtreeIsPathComplete(), and treeAddChild().
Referenced by SCIPnodeCreateChild(), and treeCreateProbingNode().
decreases number of children of the parent, frees it if no children are left
- Parameters
-
node | child node |
blkmem | block memory buffer |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
tree | branch and bound tree |
lp | current LP data |
Definition at line 796 of file tree.c.
References SCIP_Node::active, SCIP_Node::data, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Node::fork, SCIP_Node::junction, SCIP_Junction::nchildren, SCIP_Pseudofork::nchildren, SCIP_Fork::nchildren, SCIP_Subroot::nchildren, NULL, SCIP_Node::parent, SCIP_Node::pseudofork, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), SCIP_Node::subroot, and treeRemoveChild().
Referenced by SCIPnodeFree().
creates a child node of the focus node
- Parameters
-
node | pointer to node data structure |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
nodeselprio | node selection priority of new node |
estimate | estimate for (transformed) objective value of best feasible solution in subtree |
Definition at line 936 of file tree.c.
References SCIP_Tree::focusnode, SCIP_Stat::ncreatednodes, SCIP_Stat::ncreatednodesrun, nodeAssignParent(), nodeCreate(), NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeSetEstimate(), SCIPtreeIsPathComplete(), SCIPvbcNewChild(), and SCIP_Stat::vbc.
Referenced by SCIPcreateChild(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPtreeCreateRoot(), and solveNode().
frees node
- Parameters
-
node | node data |
blkmem | block memory buffer |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
tree | branch and bound tree |
lp | current LP data |
Definition at line 984 of file tree.c.
References BMSfreeBlockMemory, SCIP_Tree::children, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, forkFree(), SCIP_Stat::inrestart, SCIP_Tree::nchildren, nodeReleaseParent(), SCIP_Tree::nsiblings, NULL, probingnodeFree(), SCIP_Tree::probingroot, pseudoforkFree(), SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPconssetchgFree(), SCIPdebugMessage, SCIPdebugRemoveNode, SCIPdomchgFree(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), SCIP_Tree::siblings, subrootFree(), and treeRemoveSibling().
Referenced by nodeDeactivate(), nodeReleaseParent(), nodeToLeaf(), SCIPnodeFocus(), SCIPnodepqBound(), SCIPnodepqClear(), SCIPtreeCutoff(), and treeBacktrackProbing().
cuts off node and whole sub tree from branch and bound tree
- Parameters
-
node | node that should be cut off |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
Definition at line 1104 of file tree.c.
References SCIP_Node::active, SCIP_Node::cutoff, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Node::estimate, SCIP_Node::lowerbound, MIN, NULL, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPsetInfinity(), SCIPvbcCutoffNode(), TRUE, and SCIP_Stat::vbc.
Referenced by nodeActivate(), nodeRepropagate(), SCIPconflictFlushConss(), SCIPcutoffNode(), SCIPnodeAddBoundinfer(), SCIPnodeFocus(), SCIPupdateNodeLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), treeApplyPendingBdchgs(), and treeSwitchPath().
marks node, that propagation should be applied again the next time, a node of its subtree is focused
- Parameters
-
node | node that should be propagated again |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
Definition at line 1129 of file tree.c.
References SCIP_Node::active, SCIP_Node::depth, MIN, NULL, SCIP_Node::reprop, SCIP_Tree::repropdepth, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPvbcMarkedRepropagateNode(), TRUE, and SCIP_Stat::vbc.
Referenced by SCIPconflictFlushConss(), SCIPnodeAddBoundinfer(), SCIPnodeAddHoleinfer(), and SCIPrepropagateNode().
marks node, that it is completely propagated in the current repropagation subtree level
- Parameters
-
node | node that should be marked to be propagated |
tree | branch and bound tree |
Definition at line 1155 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().
static void treeNextRepropsubtreecount |
( |
SCIP_TREE * |
tree | ) |
|
|
static |
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_CONFLICT * |
conflict, |
|
|
SCIP_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_Bool * |
cutoff |
|
) |
| |
|
static |
applies propagation on the node, that was marked to be propagated again
- Parameters
-
node | node to apply propagation on |
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
transprob | transformed problem |
origprob | original problem |
primal | primal data |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
conflict | conflict analysis data |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
cutoff | pointer to store whether the node can be cut off |
Definition at line 1197 of file tree.c.
References SCIP_Node::active, SCIP_Node::depth, SCIP_Node::domchg, FALSE, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Tree::focussubroot, SCIP_Stat::nboundchgs, SCIP_Tree::nchildren, SCIP_Stat::nodeactivationtime, SCIP_Node::nodetype, SCIP_Stat::nrepropboundchgs, SCIP_Stat::nrepropcutoffs, SCIP_Stat::nreprops, SCIP_Tree::nsiblings, NULL, SCIP_Node::parent, SCIP_Node::reprop, SCIP_Tree::repropsubtreecount, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_PROPTIMING_ALWAYS, SCIPclockIsRunning(), SCIPclockStart(), SCIPclockStop(), SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPeventqueueDelay(), SCIPeventqueueIsDelayed(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPpropagateDomains(), SCIPvbcRepropagatedNode(), treeNextRepropsubtreecount(), and SCIP_Stat::vbc.
Referenced by nodeActivate(), and treeSwitchPath().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_CONFLICT * |
conflict, |
|
|
SCIP_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_Bool * |
cutoff |
|
) |
| |
|
static |
informs node, that it is now on the active path and applies any domain and constraint set changes
- Parameters
-
node | node to activate |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
primal | primal data |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
conflict | conflict analysis data |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
cutoff | pointer to store whether the node can be cut off |
Definition at line 1345 of file tree.c.
References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Stat::nactivatednodes, nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconssetchgApply(), SCIPdebugMessage, SCIPdomchgApply(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), and TRUE.
Referenced by treeSwitchPath().
informs node, that it is no longer on the active path and undoes any domain and constraint set changes
- Parameters
-
node | node to deactivate |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
Definition at line 1412 of file tree.c.
References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::data, SCIP_Node::domchg, FALSE, SCIP_Node::fork, SCIP_Node::junction, SCIP_Junction::nchildren, SCIP_Pseudofork::nchildren, SCIP_Fork::nchildren, SCIP_Subroot::nchildren, SCIP_Stat::ndeactivatednodes, NULL, SCIP_Node::pseudofork, SCIP_Node::repropsubtreemark, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPconssetchgUndo(), SCIPdebugMessage, SCIPdomchgUndo(), SCIPerrorMessage, SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot.
Referenced by treeBacktrackProbing(), and treeSwitchPath().
adds constraint locally to the node and captures it; activates constraint, if node is active; if a local constraint is added to the root node, it is automatically upgraded into a global constraint
- Parameters
-
node | node to add constraint to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
cons | constraint to add |
Definition at line 1484 of file tree.c.
References SCIP_Node::active, SCIP_ConsSetChg::addedconss, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, NULL, SCIP_Tree::root, SCIP_Cons::scip, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPconsIsActive(), SCIPconsIsGlobal(), SCIPconssetchgAddAddedCons(), SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), and SCIP_Cons::validdepth.
Referenced by SCIPaddCons(), and SCIPaddConsNode().
locally deletes constraint at the given node by disabling its separation, enforcing, and propagation capabilities at the node; captures constraint; disables constraint, if node is active
- Parameters
-
node | node to add constraint to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
cons | constraint to locally delete |
Definition at line 1523 of file tree.c.
References SCIP_Node::active, SCIP_Node::conssetchg, SCIP_Node::depth, SCIP_ConsSetChg::disabledconss, SCIP_Cons::enabled, SCIP_Cons::name, NULL, SCIP_CALL, SCIP_OKAY, SCIPconsDisable(), SCIPconssetchgAddDisabledCons(), SCIPdebugMessage, and SCIP_Cons::updatedisable.
Referenced by SCIPdelConsLocal(), and SCIPdelConsNode().
adds the given bound change to the list of pending bound changes
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
node | node to add bound change to |
var | variable to change the bounds for |
newbound | new value for bound |
boundtype | type of bound: lower or upper bound |
infercons | constraint that deduced the bound change, or NULL |
inferprop | propagator that deduced the bound change, or NULL |
inferinfo | user information for inference to help resolving the conflict |
probingchange | is the bound change a temporary setting due to probing? |
Definition at line 1554 of file tree.c.
References SCIP_PendingBdchg::boundtype, SCIP_Node::depth, SCIP_PendingBdchg::infercons, SCIP_PendingBdchg::inferinfo, SCIP_PendingBdchg::inferprop, SCIP_PendingBdchg::newbound, SCIP_PendingBdchg::node, SCIP_Tree::npendingbdchgs, NULL, SCIP_Tree::pendingbdchgs, SCIP_PendingBdchg::probingchange, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugCheckLbGlobal, SCIPdebugCheckUbGlobal, SCIPsetIsEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPvarAdjustBd(), SCIPvarCapture(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), treeEnsurePendingbdchgsMem(), and SCIP_PendingBdchg::var.
Referenced by SCIPnodeAddBoundinfer().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
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
-
node | node to add bound change to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
var | variable to change the bounds for |
newbound | new value for bound |
boundtype | type of bound: lower or upper bound |
infercons | constraint that deduced the bound change, or NULL |
inferprop | propagator that deduced the bound change, or NULL |
inferinfo | user information for inference to help resolving the conflict |
probingchange | is the bound change a temporary setting due to probing? |
Definition at line 1641 of file tree.c.
References SCIP_Node::active, SCIP_DomChgDyn::boundchgs, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgdyn, SCIP_DomChgDyn::domchgtype, SCIP_Tree::effectiverootdepth, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Stat::lpcount, MAX, MIN, SCIP_Stat::nboundchgs, SCIP_DomChgDyn::nboundchgs, SCIP_BoundChg::newbound, SCIP_Node::nodetype, SCIP_Stat::nprobboundchgs, NULL, SCIP_Tree::path, SCIP_Tree::probingroot, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDCHGTYPE_CONSINFER, SCIP_BOUNDCHGTYPE_PROPINFER, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_DOMCHGTYPE_DYNAMIC, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPboundchgApply(), SCIPconsGetName(), SCIPdebugCheckInference, SCIPdebugMessage, SCIPdomchgAddBoundchg(), SCIPerrorMessage, SCIPlpGetModifiedProvedPseudoObjval(), SCIPlpGetModifiedPseudoObjval(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPnodeUpdateLowerbound(), SCIPpropGetName(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPtreeGetCurrentNode(), SCIPtreeHasCurrentNodeLP(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarChgBdGlobal(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarBound(), SCIPvarGetStatus(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), treeAddPendingBdchg(), and SCIP_BoundChg::var.
Referenced by SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPnodeAddBoundchg(), SCIPnodePropagateImplics(), and treeApplyPendingBdchgs().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
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
-
node | node to add bound change to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
var | variable to change the bounds for |
newbound | new value for bound |
boundtype | type of bound: lower or upper bound |
probingchange | is the bound change a temporary setting due to probing? |
Definition at line 1892 of file tree.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPnodeAddBoundinfer().
Referenced by applyImplic(), conflictAddConflictCons(), focusnodeCleanupVars(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarLbNode(), SCIPchgVarLbProbing(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPchgVarUbNode(), SCIPchgVarUbProbing(), SCIPfixVarProbing(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPshrinkDisjunctiveVarSet(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), SCIPvarAddVlb(), SCIPvarAddVub(), SCIPvarFixBinary(), sepastoreApplyLb(), sepastoreApplyUb(), and varAddImplic().
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
-
node | node to add bound change to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
eventqueue | event queue |
var | variable to change the bounds for |
left | left bound of open interval defining the hole (left,right) |
right | right bound of open interval defining the hole (left,right) |
infercons | constraint that deduced the bound change, or NULL |
inferprop | propagator that deduced the bound change, or NULL |
inferinfo | user information for inference to help resolving the conflict |
probingchange | is the bound change a temporary setting due to probing? |
added | pointer to store whether the hole was added, or NULL |
Definition at line 1919 of file tree.c.
References SCIP_Node::active, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focusnode, SCIP_Stat::nholechgs, SCIP_Node::nodetype, SCIP_Stat::nprobholechgs, NULL, SCIP_Tree::probingroot, SCIP_Tree::root, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIPABORT, SCIPconsGetName(), SCIPdebugMessage, SCIPerrorMessage, SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodePropagateAgain(), SCIPpropGetName(), SCIPsetIsEQ(), SCIPsetIsGE(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarAddHoleGlobal(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbvarHole(), SCIPvarGetStatus(), and SCIPvarGetUbLocal().
Referenced by SCIPnodeAddHolechg().
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
-
node | node to add bound change to |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
eventqueue | event queue |
var | variable to change the bounds for |
left | left bound of open interval defining the hole (left,right) |
right | right bound of open interval defining the hole (left,right) |
probingchange | is the bound change a temporary setting due to probing? |
added | pointer to store whether the hole was added, or NULL |
Definition at line 2042 of file tree.c.
References SCIP_Node::depth, SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeAddHoleinfer(), and SCIPvarGetName().
applies the pending bound changes
- Parameters
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
Definition at line 2075 of file tree.c.
References SCIP_PendingBdchg::boundtype, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Tree::effectiverootdepth, SCIP_PendingBdchg::infercons, SCIP_PendingBdchg::inferinfo, SCIP_PendingBdchg::inferprop, SCIP_PendingBdchg::newbound, SCIP_PendingBdchg::node, SCIP_Tree::npendingbdchgs, NULL, SCIP_Tree::pendingbdchgs, SCIP_PendingBdchg::probingchange, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPdebugMessage, SCIPnodeAddBoundinfer(), SCIPnodeCutoff(), SCIPnodeGetDepth(), SCIPsetIsGT(), SCIPsetIsLT(), SCIPvarGetConflictingBdchgDepth(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarRelease(), and SCIP_PendingBdchg::var.
Referenced by treeBacktrackProbing(), and treeSwitchPath().
if given value is larger than the node's lower bound, sets the node's lower bound to the new value
- Parameters
-
node | node to update lower bound for |
stat | problem statistics |
set | global SCIP settings |
tree | branch and bound tree |
transprob | transformed problem after presolve |
origprob | original problem |
newbound | new lower bound for the node (if it's larger than the old one) |
Definition at line 2168 of file tree.c.
References SCIP_Node::depth, SCIP_Node::estimate, SCIP_Stat::lastlowerbound, SCIP_Node::lowerbound, MAX, NULL, SCIP_Stat::rootlowerbound, SCIP_Real, SCIPsetInfinity(), SCIPsetIsEQ(), SCIPstatUpdatePrimalDualIntegral(), and SCIPtreeGetLowerbound().
Referenced by applyBounding(), initSolve(), priceAndCutLoop(), SCIPnodeAddBoundinfer(), SCIPnodeUpdateLowerboundLP(), SCIPpriceLoop(), SCIPupdateNodeLowerbound(), solveNode(), and solveNodeRelax().
updates lower bound of node using lower bound of LP
- Parameters
-
node | node to set lower bound for |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
transprob | transformed problem after presolve |
origprob | original problem |
lp | LP data |
Definition at line 2208 of file tree.c.
References SCIP_Lp::flushed, SCIP_Lp::lpsolstat, NULL, SCIP_CALL, SCIP_LPSOLSTAT_ITERLIMIT, SCIP_LPSOLSTAT_TIMELIMIT, SCIP_OKAY, SCIP_Real, SCIPlpGetObjval(), SCIPlpGetProvedLowerbound(), and SCIPnodeUpdateLowerbound().
Referenced by priceAndCutLoop(), propAndSolve(), SCIPendDive(), SCIPtreeEndProbing(), and solveNodeInitialLP().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_Bool * |
cutoff |
|
) |
| |
propagates implications of binary fixings at the given node triggered by the implication graph and the clique table
- Parameters
-
node | node to propagate implications on |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cutoff | pointer to store whether the node can be cut off |
Definition at line 2274 of file tree.c.
References SCIP_Node::domchg, FALSE, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPboundchgGetBoundtype(), SCIPboundchgGetVar(), SCIPboundchgIsRedundant(), SCIPcliqueGetNVars(), SCIPcliqueGetValues(), SCIPcliqueGetVars(), SCIPdebugMessage, SCIPdomchgGetBoundchg(), SCIPdomchgGetNBoundchgs(), SCIPnodeAddBoundinfer(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeIsActive(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPvarGetCliques(), SCIPvarGetImplBounds(), SCIPvarGetImplTypes(), SCIPvarGetImplVars(), SCIPvarGetLbLocal(), SCIPvarGetNCliques(), SCIPvarGetNImpls(), SCIPvarGetProbvar(), SCIPvarGetStatus(), SCIPvarGetUbLocal(), SCIPvarIsBinary(), and TRUE.
Referenced by SCIPpropagateProbingImplications().
updates the LP sizes of the active path starting at the given depth
- Parameters
-
tree | branch and bound tree |
startdepth | depth to start counting |
Definition at line 2446 of file tree.c.
References SCIP_Node::active, SCIP_Node::data, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Node::fork, SCIP_Pseudofork::naddedcols, SCIP_Fork::naddedcols, SCIP_Pseudofork::naddedrows, SCIP_Fork::naddedrows, SCIP_Probingnode::ncols, SCIP_Subroot::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, SCIP_Probingnode::nrows, SCIP_Subroot::nrows, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, SCIP_Node::pseudofork, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPABORT, SCIPerrorMessage, SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot.
Referenced by treeCreateProbingNode(), and treeSwitchPath().
finds the common fork node, the new LP state defining fork, and the new focus subroot, if the path is switched to the given node
- Parameters
-
tree | branch and bound tree |
node | new focus node, or NULL |
commonfork | pointer to store common fork node of old and new focus node |
newlpfork | pointer to store the new LP defining fork node |
newlpstatefork | pointer to store the new LP state defining fork node |
newsubroot | pointer to store the new subroot node |
cutoff | pointer to store whether the given node can be cut off and no path switching should be performed |
Definition at line 2554 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().
static SCIP_RETCODE treeSwitchPath |
( |
SCIP_TREE * |
tree, |
|
|
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_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_NODE * |
fork, |
|
|
SCIP_NODE * |
focusnode, |
|
|
SCIP_Bool * |
cutoff |
|
) |
| |
|
static |
switches the active path to the new focus node, applies domain and constraint set changes
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
primal | primal data |
lp | current LP data |
branchcand | branching candidate storage |
conflict | conflict analysis data |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
fork | common fork node of old and new focus node, or NULL |
focusnode | new focus node, or NULL |
cutoff | pointer to store whether the new focus node can be cut off |
Definition at line 2850 of file tree.c.
References SCIP_Node::active, SCIP_Node::cutoff, SCIP_Node::depth, FALSE, nodeActivate(), nodeDeactivate(), nodeRepropagate(), NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Node::reprop, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPeventqueueDelay(), SCIPeventqueueProcess(), SCIPnodeCutoff(), SCIPnodeGetType(), treeApplyPendingBdchgs(), treeEnsurePathMem(), and treeUpdatePathLPSize().
Referenced by SCIPnodeFocus().
loads the subroot's LP data
- Parameters
-
subroot | subroot node to construct LP for |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
lp | current LP data |
Definition at line 2961 of file tree.c.
References SCIP_Subroot::cols, SCIP_Node::data, SCIP_Node::depth, SCIP_Subroot::ncols, SCIP_Subroot::nrows, NULL, SCIP_Subroot::rows, SCIP_CALL, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), SCIPnodeGetType(), and SCIP_Node::subroot.
Referenced by SCIPtreeLoadLP().
loads the fork's additional LP data
- Parameters
-
fork | fork node to construct additional LP for |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
lp | current LP data |
Definition at line 3006 of file tree.c.
References SCIP_Fork::addedcols, SCIP_Fork::addedrows, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::fork, SCIP_Fork::naddedcols, SCIP_Fork::naddedrows, NULL, SCIP_CALL, SCIP_NODETYPE_FORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType().
Referenced by SCIPtreeLoadLP().
loads the pseudofork's additional LP data
- Parameters
-
pseudofork | pseudofork node to construct additional LP for |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
lp | current LP data |
Definition at line 3051 of file tree.c.
References SCIP_Pseudofork::addedcols, SCIP_Pseudofork::addedrows, SCIP_Node::data, SCIP_Node::depth, SCIP_Pseudofork::naddedcols, SCIP_Pseudofork::naddedrows, NULL, SCIP_Node::pseudofork, SCIP_CALL, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPlpAddCol(), SCIPlpAddRow(), and SCIPnodeGetType().
Referenced by SCIPtreeLoadLP().
static void treeCheckPath |
( |
SCIP_TREE * |
tree | ) |
|
|
static |
checks validity of active path
- Parameters
-
tree | branch and bound tree |
Definition at line 3097 of file tree.c.
References SCIP_Node::data, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Node::fork, SCIP_Pseudofork::naddedcols, SCIP_Fork::naddedcols, SCIP_Pseudofork::naddedrows, SCIP_Fork::naddedrows, SCIP_Probingnode::ncols, SCIP_Subroot::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, SCIP_Probingnode::nrows, SCIP_Subroot::nrows, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, SCIP_Node::pseudofork, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_REFOCUSNODE, SCIP_NODETYPE_SUBROOT, SCIPABORT, SCIPerrorMessage, SCIPnodeGetType(), SCIPtreeProbing(), and SCIP_Node::subroot.
Referenced by SCIPtreeLoadLP(), and treeBacktrackProbing().
constructs the LP relaxation of the focus node
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
eventfilter | global event filter |
lp | current LP data |
initroot | pointer to store whether the root LP relaxation has to be initialized |
Definition at line 3169 of file tree.c.
References SCIP_Node::active, SCIP_Tree::correctlpdepth, SCIP_Node::depth, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Tree::focussubroot, forkAddLP(), MAX, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, pseudoforkAddLP(), SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPlpClear(), SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpMarkSize(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), subrootConstructLP(), treeCheckPath(), and TRUE.
Referenced by SCIPconstructCurrentLP().
loads LP state for fork/subroot of the focus node
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
lp | current LP data |
Definition at line 3297 of file tree.c.
References SCIP_Node::active, SCIP_Tree::correctlpdepth, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_Lp::dualfeasible, FALSE, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Node::fork, SCIP_Stat::lpcount, SCIP_Fork::lpistate, SCIP_Subroot::lpistate, SCIP_Fork::lpwasdualfeas, SCIP_Subroot::lpwasdualfeas, SCIP_Fork::lpwasprimfeas, SCIP_Subroot::lpwasprimfeas, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Lp::primalfeasible, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIPdebugMessage, SCIPlpSetState(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeProbing(), SCIP_Lp::solisbasic, SCIP_Lp::solved, SCIP_Node::subroot, and TRUE.
Referenced by solveNodeInitialLP().
converts node into LEAF and moves it into the array of the node queue if node's lower bound is greater or equal than the given upper bound, the node is deleted; otherwise, it is moved to the node queue; anyways, the given pointer is NULL after the call
- Parameters
-
node | pointer to child or sibling node to convert |
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
tree | branch and bound tree |
lp | current LP data |
lpstatefork | LP state defining fork of the node |
cutoffbound | cutoff bound: all nodes with lowerbound >= cutoffbound are cut off |
Definition at line 3409 of file tree.c.
References SCIP_Node::active, SCIP_Node::depth, SCIP_Tree::leaves, NULL, SCIP_Node::parent, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_FORK, SCIP_NODETYPE_JUNCTION, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_REAL_MIN, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqInsert(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPvbcCutoffNode(), and SCIP_Stat::vbc.
Referenced by treeNodesToQueue().
removes variables from the problem, that are marked to be deletable, and were created at the focusnode; only removes variables that were created at the focusnode, unless inlp is TRUE (e.g., when the node is cut off, anyway)
- Parameters
-
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
inlp | should variables in the LP be deleted, too? |
Definition at line 3480 of file tree.c.
References FALSE, SCIP_Tree::focusnode, SCIP_Stat::nnodes, NULL, SCIP_Prob::nvars, SCIP_Tree::root, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpFlush(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpShrinkCols(), SCIPnodeAddBoundchg(), SCIPnodeGetType(), SCIPprobDelVar(), SCIPprobPerformVarDeletions(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPtreeProbing(), SCIPvarGetLbGlobal(), SCIPvarGetUbGlobal(), SCIPvarIsDeletable(), SCIPvarIsInLP(), SCIPvarMarkNotDeletable(), and SCIP_Prob::vars.
Referenced by focusnodeToDeadend(), focusnodeToFork(), and focusnodeToPseudofork().
converts the focus node into a dead-end node
- Parameters
-
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
Definition at line 3579 of file tree.c.
References SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), SCIP_Tree::nchildren, SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), and TRUE.
Referenced by SCIPnodeFocus().
converts the focus node into a junction node
- Parameters
-
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
prob | transformed problem after presolve |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
Definition at line 3617 of file tree.c.
References SCIP_Node::active, SCIP_Node::data, SCIP_Node::domchg, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, SCIP_Node::junction, junctionInit(), SCIP_Node::nodetype, NULL, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_JUNCTION, SCIP_OKAY, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPlpGetNNewcols(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), and SCIPtreeProbing().
Referenced by focusnodeToFork(), and SCIPnodeFocus().
converts the focus node into a pseudofork node
- Parameters
-
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
Definition at line 3657 of file tree.c.
References SCIP_Node::active, SCIP_Node::data, SCIP_Node::domchg, FALSE, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), SCIP_Tree::nchildren, SCIP_Node::nodetype, NULL, SCIP_Node::pseudofork, pseudoforkCreate(), SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PSEUDOFORK, SCIP_OKAY, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), and SCIPtreeProbing().
Referenced by SCIPnodeFocus().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand |
|
) |
| |
|
static |
converts the focus node into a fork node
- Parameters
-
blkmem | block memory buffers |
set | global SCIP settings |
messagehdlr | message handler |
stat | dynamic problem statistics |
eventqueue | event queue |
eventfilter | global event filter |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
Definition at line 3706 of file tree.c.
References SCIP_Node::active, SCIP_Node::data, SCIP_Node::depth, SCIP_Node::domchg, FALSE, SCIP_Lp::flushed, SCIP_Tree::focuslpstatefork, SCIP_Tree::focusnode, focusnodeCleanupVars(), focusnodeToJunction(), SCIP_Node::fork, forkCaptureLPIState(), forkCreate(), SCIP_Tree::nchildren, SCIP_Stat::nlps, SCIP_Stat::nnodes, SCIP_Node::nodetype, NULL, SCIP_Lp::resolvelperror, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_OPTIMAL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPdebugMessage, SCIPdomchgMakeStatic(), SCIPlpCleanupNew(), SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpGetSolstat(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodeReleaseLPIState(), SCIPtreeProbing(), SCIP_Lp::solved, and TRUE.
Referenced by SCIPnodeFocus().
puts all nodes in the array on the node queue and makes them LEAFs
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
lp | current LP data |
nodes | array of nodes to put on the queue |
nnodes | pointer to number of nodes in the array |
lpstatefork | LP state defining fork of the nodes |
cutoffbound | cutoff bound: all nodes with lowerbound >= cutoffbound are cut off |
Definition at line 3941 of file tree.c.
References nodeToLeaf(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPnodeFocus(), and SCIPtreeCreateRoot().
static void treeChildrenToSiblings |
( |
SCIP_TREE * |
tree | ) |
|
|
static |
converts children into siblings, clears children array
- Parameters
-
tree | branch and bound tree |
Definition at line 3974 of file tree.c.
References SCIP_Sibling::arraypos, SCIP_Child::arraypos, SCIP_Node::child, SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::childrensize, SCIP_Node::data, SCIP_Tree::nchildren, SCIP_Node::nodetype, SCIP_Tree::nsiblings, NULL, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_SIBLING, SCIP_Real, SCIPnodeGetType(), SCIP_Node::sibling, SCIP_Tree::siblings, SCIP_Tree::siblingsprio, and SCIP_Tree::siblingssize.
Referenced by SCIPnodeFocus().
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_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_CONFLICT * |
conflict, |
|
|
SCIP_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_Bool * |
cutoff, |
|
|
SCIP_Bool |
exitsolve |
|
) |
| |
installs a child, a sibling, or a leaf node as the new focus node
- Parameters
-
node | pointer to node to focus (or NULL to remove focus); the node is freed, if it was cut off due to a cut off subtree |
blkmem | block memory buffers |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
primal | primal data |
tree | branch and bound tree |
lp | current LP data |
branchcand | branching candidate storage |
conflict | conflict analysis data |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
cutoff | pointer to store whether the given node can be cut off |
exitsolve | are we in exitsolve stage, so we only need to loose the children |
Definition at line 4011 of file tree.c.
References SCIP_Node::active, SCIP_Tree::appliedeffectiverootdepth, SCIP_Tree::children, SCIP_Node::conssetchg, SCIP_Tree::correctlpdepth, SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdepth, SCIP_Node::depth, SCIP_Node::domchg, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focuslpconstructed, SCIP_Tree::focuslpfork, SCIP_Tree::focuslpstatefork, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), SCIP_Tree::focussubroot, SCIP_Lp::isrelax, SCIP_Tree::leaves, SCIP_Stat::lpcount, MIN, SCIP_Stat::nbacktracks, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Stat::plungedepth, SCIP_Lp::resolvelperror, SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_DEADEND, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_FORK, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_PSEUDOFORK, SCIP_NODETYPE_SIBLING, SCIP_NODETYPE_SUBROOT, SCIP_OKAY, SCIP_REAL_MIN, SCIPconssetchgMakeGlobal(), SCIPdebugMessage, SCIPdomchgApplyGlobal(), SCIPerrorMessage, SCIPlpGetNCols(), SCIPlpGetNNewcols(), SCIPlpGetNNewrows(), SCIPlpGetNRows(), SCIPlpMarkSize(), SCIPnodeCutoff(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPnodepqCompare(), SCIPnodepqRemove(), SCIPtreeGetBestLeaf(), SCIPtreeIsPathComplete(), SCIPtreeProbing(), SCIP_Tree::siblings, treeChildrenToSiblings(), treeFindSwitchForks(), treeNodesToQueue(), treeRemoveChild(), treeRemoveSibling(), treeSwitchPath(), and TRUE.
Referenced by freeSolve(), SCIPsolveCIP(), SCIPtreeCreatePresolvingRoot(), and SCIPtreeFreePresolvingRoot().
clears and resets tree data structure and deletes all nodes
- Parameters
-
tree | tree data structure |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
lp | current LP data |
Definition at line 4510 of file tree.c.
References SCIP_Tree::appliedeffectiverootdepth, SCIP_Tree::correctlpdepth, SCIP_Tree::cutoffdelayed, SCIP_Tree::cutoffdepth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Tree::focuslpstateforklpcount, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Tree::leaves, SCIP_Tree::nchildren, SCIP_Tree::npendingbdchgs, SCIP_Tree::nsiblings, NULL, SCIP_Tree::pathlen, SCIP_Tree::pendingbdchgs, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingnodehaslp, SCIP_Tree::probingsolvedlp, SCIP_Tree::repropdepth, SCIP_Tree::repropsubtreecount, SCIP_Tree::root, SCIP_CALL, SCIP_OKAY, SCIPdebugMessage, SCIPnodepqClear(), SCIPtreeProbing(), SCIPvarRelease(), and SCIP_PendingBdchg::var.
Referenced by freeSolve(), SCIPpresolve(), and SCIPtreeFreePresolvingRoot().
creates the root node of the tree and puts it into the leaves queue
- Parameters
-
tree | tree data structure |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
eventqueue | event queue |
lp | current LP data |
Definition at line 4570 of file tree.c.
References SCIP_Node::active, SCIP_Tree::children, SCIP_Node::cutoff, SCIP_Node::depth, SCIP_Tree::focusnode, MAXDEPTH, MAXREPROPMARK, SCIP_Tree::nchildren, SCIP_Node::nodetype, SCIP_Tree::nsiblings, NULL, SCIP_Node::reprop, SCIP_Node::repropsubtreemark, SCIP_Tree::root, SCIP_CALL, SCIP_NODETYPE_CHILD, SCIP_OKAY, SCIPnodeCreateChild(), SCIPsetInfinity(), SCIPtreeProbing(), and treeNodesToQueue().
Referenced by initSolve(), and SCIPtreeCreatePresolvingRoot().
SCIP_RETCODE SCIPtreeCreatePresolvingRoot |
( |
SCIP_TREE * |
tree, |
|
|
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_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue |
|
) |
| |
creates a temporary presolving root node of the tree and installs it as focus node
- Parameters
-
tree | tree data structure |
blkmem | block memory buffers |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
transprob | transformed problem |
origprob | original problem |
primal | primal data |
lp | current LP data |
branchcand | branching candidate storage |
conflict | conflict analysis data |
eventfilter | event filter for global (not variable dependent) events |
eventqueue | event queue |
Definition at line 4614 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().
SCIP_RETCODE SCIPtreeFreePresolvingRoot |
( |
SCIP_TREE * |
tree, |
|
|
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_EVENTFILTER * |
eventfilter, |
|
|
SCIP_EVENTQUEUE * |
eventqueue |
|
) |
| |
sets the node selector used for sorting the nodes in the priority queue, and resorts the queue if necessary
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
nodesel | node selector to use for sorting the nodes in the queue |
Definition at line 4702 of file tree.c.
References SCIP_Tree::leaves, SCIP_Stat::nnodes, NULL, SCIP_CALL, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPmessagePrintVerbInfo(), SCIPnodepqGetNodesel(), SCIPnodepqSetNodesel(), and SCIPnodeselGetName().
Referenced by SCIPsolveCIP().
cuts off nodes with lower bound not better than given cutoff bound
- Parameters
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
stat | dynamic problem statistics |
eventqueue | event queue |
lp | current LP data |
cutoffbound | cutoff bound: all nodes with lowerbound >= cutoffbound are cut off |
Definition at line 4730 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, SCIPdebugMessage, SCIPlpDiving(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodepqBound(), SCIPsetIsGE(), SCIPvbcCutoffNode(), SCIP_Tree::siblings, TRUE, and SCIP_Stat::vbc.
Referenced by primalSetCutoffbound(), SCIPendDive(), and SCIPsolveCIP().
calculates the node selection priority for moving the given variable's LP value to the given target value; this node selection priority can be given to the SCIPcreateChild() call
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
stat | dynamic problem statistics |
var | variable, of which the branching factor should be applied, or NULL |
branchdir | type of branching that was performed: upwards, downwards, or fixed fixed should only be used, when both bounds changed |
targetvalue | new value of the variable in the child node |
Definition at line 4794 of file tree.c.
References NULL, SCIP_Bool, SCIP_BRANCHDIR_AUTO, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_Real, SCIPerrorMessage, SCIPsetEpsilon(), SCIPsetInfinity(), SCIPtreeGetCurrentDepth(), SCIPtreeHasFocusNodeLP(), SCIPvarGetAvgInferences(), SCIPvarGetBranchDirection(), SCIPvarGetName(), SCIPvarGetPseudocost(), SCIPvarGetRootSol(), and SCIPvarGetSol().
Referenced by SCIPcalcNodeselPriority(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().
calculates an estimate for the objective of the best feasible solution contained in the subtree after applying the given branching; this estimate can be given to the SCIPcreateChild() call
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
stat | dynamic problem statistics |
var | variable, of which the branching factor should be applied, or NULL |
targetvalue | new value of the variable in the child node |
Definition at line 4944 of file tree.c.
References SCIP_Tree::focusnode, MIN, NULL, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIPnodeGetEstimate(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPtreeHasFocusNodeLP(), SCIPvarGetPseudocost(), SCIPvarGetSol(), and SCIPvarGetType().
Referenced by SCIPcalcChildEstimate(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), and SCIPtreeBranchVarNary().
SCIP_RETCODE SCIPtreeBranchVar |
( |
SCIP_TREE * |
tree, |
|
|
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_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
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
var | variable to branch on |
val | value to branch on or SCIP_INVALID for branching on current LP/pseudo solution. A branching value is required for branching on continuous variables |
downchild | pointer to return the left child with variable rounded down, or NULL |
eqchild | pointer to return the middle child with variable fixed, or NULL |
upchild | pointer to return the right child with variable rounded up, or NULL |
Definition at line 5003 of file tree.c.
References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, MAX, MIN, NULL, SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPnodeGetLowerbound(), SCIPrelDiff(), SCIPsetEpsilon(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsEQ(), SCIPsetIsFeasEQ(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsRelEQ(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetCurrentNode(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetProbvarSum(), SCIPvarGetRootSol(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvbcUpdateChild(), and SCIP_Stat::vbc.
Referenced by SCIPbranchExecExtern(), SCIPbranchExecLP(), SCIPbranchExecPseudo(), SCIPbranchVar(), SCIPbranchVarVal(), and SCIPtreeBranchVarNary().
SCIP_RETCODE SCIPtreeBranchVarHole |
( |
SCIP_TREE * |
tree, |
|
|
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_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
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
var | variable to branch on |
left | left side of the domain hole |
right | right side of the domain hole |
downchild | pointer to return the left child with variable rounded down, or NULL |
upchild | pointer to return the right child with variable rounded up, or NULL |
Definition at line 5327 of file tree.c.
References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarHole(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarIsActive(), SCIPvarIsIntegral(), SCIPvbcUpdateChild(), and SCIP_Stat::vbc.
Referenced by SCIPbranchVarHole().
SCIP_RETCODE SCIPtreeBranchVarNary |
( |
SCIP_TREE * |
tree, |
|
|
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_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
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
var | variable to branch on |
val | value to branch on or SCIP_INVALID for branching on current LP/pseudo solution. A branching value is required for branching on continuous variables |
n | attempted number of children to be created, must be >= 2 |
minwidth | minimal domain width in children |
widthfactor | multiplier for children domain width with increasing distance from val, must be >= 1.0 |
nchildren | buffer to store number of created children, or NULL |
Definition at line 5468 of file tree.c.
References FALSE, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, MAX, MIN, NULL, pow(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_BOUNDTYPE_UPPER, SCIP_BRANCHDIR_DOWNWARDS, SCIP_BRANCHDIR_FIXED, SCIP_BRANCHDIR_UPWARDS, SCIP_CALL, SCIP_INVALID, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_CONTINUOUS, SCIPABORT, SCIPdebugMessage, SCIPerrorMessage, SCIPnodeAddBoundchg(), SCIPnodeCreateChild(), SCIPnodeGetEstimate(), SCIPrelDiff(), SCIPsetCeil(), SCIPsetEpsilon(), SCIPsetFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetIsPositive(), SCIPsetIsRelEQ(), SCIPsetIsRelGT(), SCIPsetIsRelLT(), SCIPsetIsZero(), SCIPtreeBranchVar(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPvarAdjustLb(), SCIPvarAdjustUb(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvar(), SCIPvarGetProbvarSum(), SCIPvarGetSol(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIPvarGetWorstBoundLocal(), SCIPvarIsActive(), SCIPvbcUpdateChild(), and SCIP_Stat::vbc.
Referenced by SCIPbranchVarValNary().
creates a probing child node of the current node, which must be the focus node, the current refocused node, or another probing node; if the current node is the focus or a refocused node, the created probing node is installed as probing root node
- Parameters
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
lp | current LP data |
Definition at line 5833 of file tree.c.
References SCIP_Node::active, BMSfreeBlockMemory, SCIP_Node::data, FALSE, SCIP_Lp::firstnewcol, SCIP_Lp::firstnewrow, nodeAssignParent(), nodeCreate(), SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Node::probingnode, probingnodeCreate(), probingnodeFree(), SCIP_Tree::probingnodehaslp, SCIP_Tree::probingroot, SCIP_CALL, SCIP_MAXDEPTHLEVEL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpMarkSize(), SCIPnodeGetDepth(), SCIPnodeGetNumber(), SCIPnodeGetType(), SCIPtreeGetCurrentNode(), SCIPtreeIsPathComplete(), SCIPtreeProbing(), treeEnsurePathMem(), treeUpdatePathLPSize(), and TRUE.
Referenced by SCIPtreeCreateProbingNode(), and SCIPtreeStartProbing().
switches to probing mode and creates a probing root
- Parameters
-
tree | branch and bound tree |
blkmem | block memory |
set | global SCIP settings |
lp | current LP data |
strongbranching | is the probing mode used for strongbranching? |
Definition at line 5917 of file tree.c.
References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Lp::isrelax, NULL, SCIP_Tree::pathlen, SCIP_Lp::primalfeasible, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasprimfeas, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingsolvedlp, SCIP_Tree::sbprobing, SCIP_CALL, SCIP_OKAY, SCIPconshdlrsStorePropagationStatus(), SCIPdebugMessage, SCIPlpGetNorms(), SCIPlpGetSolstat(), SCIPlpGetState(), SCIPlpStartProbing(), SCIPtreeProbing(), SCIP_Lp::solved, and treeCreateProbingNode().
Referenced by SCIPstartProbing(), and SCIPstartStrongbranch().
loads the LP state for the current probing node
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
eventqueue | event queue |
lp | current LP data |
Definition at line 5985 of file tree.c.
References SCIP_Node::data, FALSE, SCIP_Probingnode::lpistate, SCIP_Probingnode::lpwasdualfeas, SCIP_Probingnode::lpwasprimfeas, NULL, SCIP_Node::parent, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasprimfeas, SCIP_Node::probingnode, SCIP_Bool, SCIP_CALL, SCIP_NODETYPE_PROBINGNODE, SCIP_OKAY, SCIPlpSetNorms(), SCIPlpSetState(), SCIPnodeGetType(), SCIPtreeGetCurrentNode(), and SCIPtreeProbing().
Referenced by solveProbingLP().
marks the probing node to have a solved LP relaxation
- Parameters
-
tree | branch and bound tree |
blkmem | block memory |
lp | current LP data |
Definition at line 6058 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().
static SCIP_RETCODE treeBacktrackProbing |
( |
SCIP_TREE * |
tree, |
|
|
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, |
|
|
int |
probingdepth |
|
) |
| |
|
static |
undoes all changes to the problem applied in probing up to the given probing depth
- Parameters
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
eventfilter | global event filter |
probingdepth | probing 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 6085 of file tree.c.
References SCIP_Tree::cutoffdepth, SCIP_Node::data, SCIP_Tree::focuslpconstructed, SCIP_Tree::focusnode, SCIP_Lp::ncols, SCIP_Probingnode::ninitialcols, SCIP_Probingnode::ninitialrows, nodeDeactivate(), SCIP_Lp::nrows, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::pathnlpcols, SCIP_Tree::pathnlprows, SCIP_Tree::probingloadlpistate, SCIP_Node::probingnode, SCIP_Tree::probingroot, SCIP_Tree::repropdepth, SCIP_CALL, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIPdebugMessage, SCIPlpGetNCols(), SCIPlpGetNRows(), SCIPlpSetSizeMark(), SCIPlpShrinkCols(), SCIPlpShrinkRows(), SCIPnodeFree(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPtreeGetProbingDepth(), SCIPtreeProbing(), treeApplyPendingBdchgs(), treeCheckPath(), and TRUE.
Referenced by SCIPtreeBacktrackProbing(), and SCIPtreeEndProbing().
SCIP_RETCODE SCIPtreeBacktrackProbing |
( |
SCIP_TREE * |
tree, |
|
|
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, |
|
|
int |
probingdepth |
|
) |
| |
SCIP_RETCODE SCIPtreeEndProbing |
( |
SCIP_TREE * |
tree, |
|
|
BMS_BLKMEM * |
blkmem, |
|
|
SCIP_SET * |
set, |
|
|
SCIP_MESSAGEHDLR * |
messagehdlr, |
|
|
SCIP_STAT * |
stat, |
|
|
SCIP_PROB * |
transprob, |
|
|
SCIP_PROB * |
origprob, |
|
|
SCIP_LP * |
lp, |
|
|
SCIP_BRANCHCAND * |
branchcand, |
|
|
SCIP_EVENTQUEUE * |
eventqueue, |
|
|
SCIP_EVENTFILTER * |
eventfilter |
|
) |
| |
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
-
tree | branch and bound tree |
blkmem | block memory buffers |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
eventfilter | global event filter |
Definition at line 6222 of file tree.c.
References SCIP_Lp::dualfeasible, FALSE, SCIP_Lp::flushed, SCIP_Tree::focuslpconstructed, SCIP_Tree::focusnode, SCIP_Tree::focusnodehaslp, SCIP_Lp::lpi, SCIP_Lp::lpsolstat, SCIP_Lp::nlpicols, SCIP_Lp::nlpirows, SCIP_Stat::nlps, SCIP_Stat::nnodes, NULL, SCIP_Node::parent, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Lp::primalfeasible, SCIP_Tree::probingloadlpistate, SCIP_Tree::probinglpinorms, SCIP_Tree::probinglpistate, SCIP_Tree::probinglpwasdualfeas, SCIP_Tree::probinglpwasflushed, SCIP_Tree::probinglpwasprimfeas, SCIP_Tree::probinglpwasrelax, SCIP_Tree::probinglpwassolved, SCIP_Tree::probingroot, SCIP_Tree::probingsolvedlp, SCIP_Lp::resolvelperror, SCIP_Tree::sbprobing, SCIP_Bool, SCIP_CALL, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_NODETYPE_FOCUSNODE, SCIP_NODETYPE_PROBINGNODE, SCIP_NODETYPE_REFOCUSNODE, SCIP_OKAY, SCIP_VERBLEVEL_FULL, SCIPconshdlrsResetPropagationStatus(), SCIPdebugMessage, SCIPlpEndProbing(), SCIPlpFlush(), SCIPlpFreeNorms(), SCIPlpFreeState(), SCIPlpGetSolstat(), SCIPlpiClearState(), SCIPlpIsRelax(), SCIPlpSetIsRelax(), SCIPlpSetNorms(), SCIPlpSetState(), SCIPlpSolveAndEval(), SCIPmessagePrintVerbInfo(), SCIPnodeGetDepth(), SCIPnodeGetType(), SCIPnodeUpdateLowerboundLP(), SCIPtreeGetCurrentNode(), SCIPtreeProbing(), SCIP_Lp::solisbasic, SCIP_Lp::solved, treeBacktrackProbing(), and TRUE.
Referenced by SCIPendProbing().
gets the minimal lower bound of all nodes in the tree
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
Definition at line 6514 of file tree.c.
References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, MIN, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerbound(), and SCIP_Tree::siblings.
Referenced by getDualbound(), getLowerbound(), priceAndCutLoop(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), and SCIPnodeUpdateLowerbound().
gets the node with minimal lower bound of all nodes in the tree (child, sibling, or leaf)
- Parameters
-
tree | branch and bound tree |
set | global SCIP settings |
Definition at line 6552 of file tree.c.
References SCIP_Tree::children, SCIP_Tree::childrenprio, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundNode(), SCIPsetInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIP_Tree::siblings, and SCIP_Tree::siblingsprio.
Referenced by SCIPgetBestboundNode().
gets the average lower bound of all nodes in the tree
- Parameters
-
tree | branch and bound tree |
cutoffbound | global cutoff bound |
Definition at line 6604 of file tree.c.
References SCIP_Tree::children, SCIP_Tree::focusnode, SCIP_Tree::leaves, SCIP_Node::lowerbound, SCIP_Tree::nchildren, SCIP_Tree::nsiblings, NULL, SCIP_Real, SCIPnodepqGetLowerboundSum(), SCIPtreeGetNLeaves(), and SCIP_Tree::siblings.
Referenced by SCIPgetAvgDualbound(), and SCIPgetAvgLowerbound().
gets the type of the node
- Parameters
-
Definition at line 6688 of file tree.c.
References SCIP_Node::nodetype, and NULL.
Referenced by focusnodeCleanupVars(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), forkAddLP(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeReleaseParent(), nodeToLeaf(), priceAndCutLoop(), propagateDomains(), pseudoforkAddLP(), SCIP_DECL_NODESELCOMP(), SCIPchgChildPrio(), SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), SCIPchildChgNodeselPrio(), SCIPendStrongbranch(), SCIPfixVarProbing(), SCIPnodeAddBoundinfer(), SCIPnodeAddCons(), SCIPnodeAddHoleinfer(), SCIPnodeCaptureLPIState(), SCIPnodeCreateChild(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodepqBound(), SCIPnodepqClear(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPprimalHeuristics(), SCIPstartDive(), SCIPtreeBacktrackProbing(), SCIPtreeEndProbing(), SCIPtreeInRepropagation(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPvbcCutoffNode(), SCIPvbcFoundConflict(), SCIPvbcFoundSolution(), SCIPvbcMarkedRepropagateNode(), SCIPvbcNewChild(), SCIPvbcRepropagatedNode(), SCIPvbcSolvedNode(), SCIPvbcUpdateChild(), solveNode(), solveNodeInitialLP(), solveNodeRelax(), subrootConstructLP(), treeAddChild(), treeBacktrackProbing(), treeCheckPath(), treeChildrenToSiblings(), treeCreateProbingNode(), treeFindSwitchForks(), treeRemoveChild(), treeRemoveSibling(), treeSwitchPath(), treeUpdatePathLPSize(), and updatePseudocost().
gets successively assigned number of the node
- Parameters
-
Definition at line 6698 of file tree.c.
References NULL, and SCIP_Node::number.
Referenced by applyVbounds(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeGetVisits(), nodeReleaseParent(), nodeRepropagate(), nodeToLeaf(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIP_DECL_PROPEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPnodeCaptureLPIState(), SCIPnodeCreateChild(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodePropagateAgain(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPtreeCutoff(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPvbcMarkedRepropagateNode(), treeCreateProbingNode(), and updateVisits().
gets the depth of the node
- Parameters
-
Definition at line 6708 of file tree.c.
References SCIP_Node::depth, and NULL.
Referenced by applyProbing(), compareNodes(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), generateCut(), generateSecantCut(), generateSecantCutNoCheck(), nodeActivate(), nodeAssignParent(), nodeDeactivate(), nodeReleaseParent(), nodeRepropagate(), nodeToLeaf(), priceAndCutLoop(), propagateDomains(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPaddConsNode(), SCIPaddRowDive(), SCIPanalyzeDeductionsProbing(), SCIPconflicthdlrExec(), SCIPconstructCurrentLP(), SCIPdelConsLocal(), SCIPdelConsNode(), SCIPnodeAddBoundinfer(), SCIPnodeAddCons(), SCIPnodeAddHoleinfer(), SCIPnodeCaptureLPIState(), SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodeFree(), SCIPnodeGetAncestorBranchingPath(), SCIPnodeGetAncestorBranchings(), SCIPnodeGetParentBranchings(), SCIPnodepqBound(), SCIPnodePrintAncestorBranchings(), SCIPnodePropagateAgain(), SCIPnodePropagateImplics(), SCIPnodeReleaseLPIState(), SCIPnodesGetCommonAncestor(), SCIPnodesSharePath(), SCIPprimalHeuristics(), SCIPprintNodeRootPath(), SCIPsepastoreApplyCuts(), SCIPsolveCIP(), SCIPtreeCreateProbingNode(), SCIPtreeCutoff(), SCIPtreeEndProbing(), SCIPtreeGetProbingDepth(), SCIPtreeGetProbingRoot(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeProbing(), SCIPvbcCutoffNode(), SCIPvbcNewChild(), SCIPvbcSolvedNode(), SCIPvbcUpdateChild(), solveNode(), solveNodeInitialLP(), solveNodeLP(), tightenBounds(), treeApplyPendingBdchgs(), treeBacktrackProbing(), treeCreateProbingNode(), updatePseudocost(), and updateVisits().
gets the lower bound of the node
- Parameters
-
Definition at line 6718 of file tree.c.
References SCIP_Node::lowerbound, and NULL.
Referenced by applyBounding(), branch(), enforceConstraints(), execRelpscost(), getNodeselScore(), nodeGetUctScore(), nodepqDelPos(), priceAndCutLoop(), propAndSolve(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPgetLocalDualbound(), SCIPgetLocalLowerbound(), SCIPgetNodeDualbound(), SCIPgetNodeLowerbound(), SCIPnodepqBound(), SCIPnodepqGetLowerbound(), SCIPnodepqInsert(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPsolveCIP(), SCIPtreeBranchVar(), SCIPvbcCutoffNode(), SCIPvbcNewChild(), SCIPvbcSolvedNode(), SCIPvbcUpdateChild(), and updateEstimate().
gets the estimated value of the best feasible solution in subtree of the node
- Parameters
-
Definition at line 6728 of file tree.c.
References SCIP_Node::estimate, and NULL.
Referenced by getNodeselScore(), nodeGetUctScore(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_NODESELCOMP(), SCIP_DECL_NODESELSELECT(), SCIPgetLocalOrigEstimate(), SCIPgetLocalTransEstimate(), SCIPtreeBranchVar(), SCIPtreeBranchVarHole(), SCIPtreeBranchVarNary(), and SCIPtreeCalcChildEstimate().
gets the domain change information of the node, i.e., the information about the differences in the variables domains to the parent node
- Parameters
-
Definition at line 6740 of file tree.c.
References SCIP_Node::domchg, and NULL.
Referenced by SCIPendStrongbranch().
returns the set of variable branchings that were performed in the parent node to create this node
- Parameters
-
node | node data |
branchvars | array of variables on which the branching has been performed in the parent node |
branchbounds | array of bounds which the branching in the parent node set |
boundtypes | array of boundtypes which the branching in the parent node set |
nbranchvars | number of variables on which branching has been performed in the parent node if this is larger than the array size, arrays should be reallocated and method should be called again |
branchvarssize | available slots in arrays |
Definition at line 6760 of file tree.c.
References SCIP_DomChgBound::boundchgs, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDCHGTYPE_BRANCHING, SCIPnodeGetDepth(), and SCIP_BoundChg::var.
Referenced by SCIPnodeGetAncestorBranchingPath(), and SCIPnodeGetAncestorBranchings().
returns the set of variable branchings that were performed in all ancestor nodes (nodes on the path to the root) to create this node
- Parameters
-
node | node data |
branchvars | array of variables on which the branchings has been performed in all ancestors |
branchbounds | array of bounds which the branchings in all ancestors set |
boundtypes | array of boundtypes which the branchings in all ancestors set |
nbranchvars | number of variables on which branchings have been performed in all ancestors if this is larger than the array size, arrays should be reallocated and method should be called again |
branchvarssize | available slots in arrays |
Definition at line 6824 of file tree.c.
References NULL, SCIP_Node::parent, SCIPnodeGetDepth(), and SCIPnodeGetParentBranchings().
outputs the path into given file stream in GML format
- Parameters
-
node | node data |
file | file to output the path |
Definition at line 6861 of file tree.c.
References SCIP_DomChgBound::boundchgs, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, NULL, SCIP_Node::parent, SCIP_BOUNDCHGTYPE_BRANCHING, SCIP_BOUNDTYPE_LOWER, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPgmlWriteArc(), SCIPgmlWriteClosing(), SCIPgmlWriteNode(), SCIPgmlWriteOpening(), SCIPnodeGetDepth(), SCIPsnprintf(), SCIPvarGetName(), and TRUE.
void SCIPnodeGetAncestorBranchingPath |
( |
SCIP_NODE * |
node, |
|
|
SCIP_VAR ** |
branchvars, |
|
|
SCIP_Real * |
branchbounds, |
|
|
SCIP_BOUNDTYPE * |
boundtypes, |
|
|
int * |
nbranchvars, |
|
|
int |
branchvarssize, |
|
|
int * |
nodeswitches, |
|
|
int * |
nnodes, |
|
|
int |
nodeswitchsize |
|
) |
| |
returns the set of variable branchings that were performed in all ancestor nodes (nodes on the path to the root) to create this node sorted by the nodes, starting from the current node going up to the root
- Parameters
-
node | node data |
branchvars | array of variables on which the branchings has been performed in all ancestors |
branchbounds | array of bounds which the branchings in all ancestors set |
boundtypes | array of boundtypes which the branchings in all ancestors set |
nbranchvars | number of variables on which branchings have been performed in all ancestors if this is larger than the array size, arrays should be reallocated and method should be called again |
branchvarssize | available slots in arrays |
nodeswitches | marks, where in the arrays the branching decisions of the next node on the path start branchings performed at the parent of node always start at position 0. For single variable branching, nodeswitches[i] = i holds |
nnodes | number of nodes in the nodeswitch array |
nodeswitchsize | available slots in node switch array |
Definition at line 6913 of file tree.c.
References NULL, SCIP_Node::parent, SCIPnodeGetDepth(), and SCIPnodeGetParentBranchings().
Referenced by SCIPprintNodeRootPath().
checks for two nodes whether they share the same root path, i.e., whether one is an ancestor of the other
- Parameters
-
node1 | node data |
node2 | node data |
Definition at line 6962 of file tree.c.
References NULL, SCIP_Node::parent, and SCIPnodeGetDepth().
returns whether the active path goes completely down to the focus node
- Parameters
-
tree | branch and bound tree |
Definition at line 7077 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().
returns whether the current node is a temporary probing node
- Parameters
-
tree | branch and bound tree |
Definition at line 7094 of file tree.c.
References SCIP_Node::nodetype, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, SCIP_Tree::probingroot, SCIP_NODETYPE_PROBINGNODE, and SCIPnodeGetDepth().
Referenced by focusnodeCleanupVars(), focusnodeToDeadend(), focusnodeToFork(), focusnodeToJunction(), focusnodeToPseudofork(), nodeActivate(), nodeDeactivate(), nodeReleaseParent(), propAndSolve(), SCIPaggregateVars(), SCIPbacktrackProbing(), SCIPchgVarLbProbing(), SCIPchgVarUbProbing(), SCIPconshdlrInitLP(), SCIPendProbing(), SCIPendStrongbranch(), SCIPfixVarProbing(), SCIPgetProbingDepth(), SCIPgetVarStrongbranchFrac(), SCIPinProbing(), SCIPmultiaggregateVar(), SCIPnewProbingNode(), SCIPnodeFocus(), SCIPnodeFree(), SCIPprimalHeuristics(), SCIPpropagateProbing(), SCIPpropagateProbingImplications(), SCIPstartDive(), SCIPstartProbing(), SCIPstartStrongbranch(), SCIPtreeBacktrackProbing(), SCIPtreeClear(), SCIPtreeCreatePresolvingRoot(), SCIPtreeCreateProbingNode(), SCIPtreeCreateRoot(), SCIPtreeEndProbing(), SCIPtreeFree(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusDepth(), SCIPtreeGetFocusNode(), SCIPtreeGetProbingDepth(), SCIPtreeHasCurrentNodeLP(), SCIPtreeIsPathComplete(), SCIPtreeLoadLP(), SCIPtreeLoadLPState(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPtreeStartProbing(), solveProbingLP(), treeBacktrackProbing(), treeCheckPath(), treeCreateProbingNode(), and treeUpdatePathLPSize().
gets focus node of the tree
- Parameters
-
tree | branch and bound tree |
Definition at line 7120 of file tree.c.
References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing().
Referenced by applyBounding(), enforceConstraints(), freeSolve(), priceAndCutLoop(), SCIPconstructCurrentLP(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPsolveCIP(), solveNode(), solveNodeInitialLP(), solveNodeRelax(), updateEstimate(), updateLoopStatus(), and updatePseudocost().
int SCIPtreeGetFocusDepth |
( |
SCIP_TREE * |
tree | ) |
|
gets depth of focus node in the tree
- Parameters
-
tree | branch and bound tree |
Definition at line 7137 of file tree.c.
References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing().
Referenced by conflictAddConflictCons(), conflictAddConflictset(), conflictAnalyze(), conflictCreateReconvergenceConss(), SCIPconflictFlushConss(), SCIPgetFocusDepth(), and SCIPprimalHeuristics().
returns, whether the LP was or is to be solved in the focus node
- Parameters
-
tree | branch and bound tree |
Definition at line 7154 of file tree.c.
References SCIP_Tree::focusnodehaslp, and NULL.
Referenced by addCurrentSolution(), enforceConstraints(), propAndSolve(), SCIPprimalHeuristics(), SCIPsolveCIP(), SCIPtreeCalcChildEstimate(), SCIPtreeCalcNodeselPriority(), SCIPtreeHasCurrentNodeLP(), solveNode(), solveNodeLP(), and updateEstimate().
returns whether the LP of the focus node is already constructed
- Parameters
-
tree | branch and bound tree |
Definition at line 7175 of file tree.c.
References SCIP_Tree::focuslpconstructed, and NULL.
Referenced by SCIPconstructCurrentLP(), SCIPendDive(), SCIPgetLPCols(), SCIPgetLPColsData(), SCIPgetLPRows(), SCIPgetLPRowsData(), SCIPgetLPSolstat(), SCIPgetNLPCols(), SCIPgetNLPRows(), SCIPisLPConstructed(), SCIPpricestoreApplyVars(), SCIPstartDive(), SCIPwriteLP(), and solveProbingLP().
gets current node of the tree, i.e. the last node in the active path, or NULL if no current node exists
- Parameters
-
tree | branch and bound tree |
Definition at line 7195 of file tree.c.
References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing().
Referenced by primalAddSol(), propagateDomains(), SCIPaddCons(), SCIPaddConsLocal(), SCIPaddCut(), SCIPaddRowDive(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarLbProbing(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPchgVarUbProbing(), SCIPdelConsLocal(), SCIPfixVarProbing(), SCIPgetCurrentNode(), SCIPgetLocalDualbound(), SCIPgetLocalLowerbound(), SCIPgetLocalOrigEstimate(), SCIPgetLocalTransEstimate(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPnodeAddBoundinfer(), SCIPpropagateProbingImplications(), SCIPseparateCutpool(), SCIPseparateSolCutpool(), SCIPsepastoreApplyCuts(), SCIPsolve(), SCIPsolveCIP(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeBacktrackProbing(), SCIPtreeBranchVar(), SCIPtreeEndProbing(), SCIPtreeLoadProbingLPState(), SCIPtreeMarkProbingNodeHasLP(), SCIPupdateLocalDualbound(), SCIPupdateLocalLowerbound(), sepastoreApplyLb(), sepastoreApplyUb(), and treeCreateProbingNode().
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
-
tree | branch and bound tree |
Definition at line 7212 of file tree.c.
References SCIP_Node::depth, SCIP_Tree::focusnode, NULL, SCIP_Tree::path, SCIP_Tree::pathlen, and SCIPtreeProbing().
Referenced by addBoundViolated(), analyzeStrongbranch(), conflictAddConflictCons(), conflictAddConflictset(), conflictAnalyze(), conflictAnalyzeBoundexceedingLP(), conflictAnalyzeInfeasibleLP(), conflictAnalyzeLP(), conflictCreateReconvergenceConss(), conflictsetCalcInsertDepth(), priceAndCutLoop(), primalSetUpperbound(), propagationRound(), propAndSolve(), SCIPaddCons(), SCIPaddCut(), SCIPaddPricedVar(), SCIPaggregateVars(), SCIPbranchruleExecExternSol(), SCIPbranchruleExecLPSol(), SCIPbranchruleExecPseudoSol(), SCIPchgVarLb(), SCIPchgVarLbGlobal(), SCIPchgVarUb(), SCIPchgVarUbGlobal(), SCIPconflictAnalyze(), SCIPconflictAnalyzePseudo(), SCIPconflictAnalyzeStrongbranch(), SCIPconflictFlushConss(), SCIPconshdlrInitLP(), SCIPfixVar(), SCIPgetDepth(), SCIPinferBinvarCons(), SCIPinferBinvarProp(), SCIPinferVarLbCons(), SCIPinferVarLbProp(), SCIPinferVarUbCons(), SCIPinferVarUbProp(), SCIPisCutEfficacious(), SCIPisEfficacious(), SCIPmultiaggregateVar(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPprimalHeuristics(), SCIPremoveInefficaciousCuts(), SCIPseparateCutpool(), SCIPseparateSol(), SCIPseparateSolCutpool(), SCIPsolveCIP(), SCIPtightenVarLb(), SCIPtightenVarLbGlobal(), SCIPtightenVarUb(), SCIPtightenVarUbGlobal(), SCIPtreeCalcNodeselPriority(), SCIPtreeGetProbingDepth(), solStamp(), solveNodeLP(), and solveProbingLP().
returns, whether the LP was or is to be solved in the current node
- Parameters
-
tree | branch and bound tree |
Definition at line 7229 of file tree.c.
References NULL, SCIP_Tree::probingnodehaslp, SCIPtreeHasFocusNodeLP(), SCIPtreeIsPathComplete(), and SCIPtreeProbing().
Referenced by SCIPbranchGetBranchingPoint(), SCIPcreateLPSol(), SCIPgetColFarkasCoef(), SCIPgetColRedcost(), SCIPgetRowActivity(), SCIPgetRowFeasibility(), SCIPgetRowSolActivity(), SCIPgetRowSolFeasibility(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPgetSolVal(), SCIPgetVarSol(), SCIPgetVarSols(), SCIPhasCurrentNodeLP(), SCIPnodeAddBoundinfer(), SCIPpricestoreAddProbVars(), SCIPrecalcRowActivity(), SCIPseparateCutpool(), SCIPseparateSolCutpool(), SCIPsolCreateCurrentSol(), SCIPsolLinkCurrentSol(), and SCIPstartDive().
int SCIPtreeGetProbingDepth |
( |
SCIP_TREE * |
tree | ) |
|
int SCIPtreeGetEffectiveRootDepth |
( |
SCIP_TREE * |
tree | ) |
|
|