Solving Constraint Integer Programs

branch_allfullstrong.h File Reference

Detailed Description

all variables full strong LP branching rule

Tobias Achterberg
Gerald Gamrath

The all variables full strong branching rule applies strong branching to every non-fixed variable at the current node of the branch-and-bound search. The rule selects the candidate which will cause the highest gain of the dual bound in the created sub-tree among all branching variables.

For calculating the gain, a look-ahead is performed by solving the child node LPs which will result from branching on a variable.

For a more mathematical description and a comparison between the strong branching rule and other branching rules in SCIP, we refer to

Tobias Achterberg
Constraint Integer Programming
PhD Thesis, Technische Universit├Ąt Berlin, 2007

Definition in file branch_allfullstrong.h.

#include "scip/def.h"
#include "scip/type_result.h"
#include "scip/type_retcode.h"
#include "scip/type_scip.h"
#include "scip/type_var.h"

Go to the source code of this file.


SCIP_EXPORT SCIP_RETCODE SCIPselectVarPseudoStrongBranching (SCIP *scip, SCIP_VAR **pseudocands, SCIP_Bool *skipdown, SCIP_Bool *skipup, int npseudocands, int npriopseudocands, int *bestpseudocand, SCIP_Real *bestdown, SCIP_Real *bestup, SCIP_Real *bestscore, SCIP_Bool *bestdownvalid, SCIP_Bool *bestupvalid, SCIP_Real *provedbound, SCIP_RESULT *result)
SCIP_EXPORT SCIP_RETCODE SCIPincludeBranchruleAllfullstrong (SCIP *scip)

Function Documentation

◆ SCIPselectVarPseudoStrongBranching()

SCIP_EXPORT SCIP_RETCODE SCIPselectVarPseudoStrongBranching ( SCIP scip,
SCIP_VAR **  pseudocands,
SCIP_Bool skipdown,
SCIP_Bool skipup,
int  npseudocands,
int  npriopseudocands,
int *  bestpseudocand,
SCIP_Real bestdown,
SCIP_Real bestup,
SCIP_Real bestscore,
SCIP_Bool bestdownvalid,
SCIP_Bool bestupvalid,
SCIP_Real provedbound,

Selects a variable from a set of candidates by strong branching

SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
The variables in the lpcands array must have a fractional value in the current LP solution
sciporiginal SCIP data structure
pseudocandsbranching candidates
skipdownshould down branchings be skipped?
skipupshould up branchings be skipped?
npseudocandsnumber of branching candidates
npriopseudocandsnumber of priority branching candidates
bestpseudocandbest candidate for branching
bestdownobjective value of the down branch for bestcand
bestupobjective value of the up branch for bestcand
bestscorescore for bestcand
bestdownvalidis bestdown a valid dual bound for the down branch?
bestupvalidis bestup a valid dual bound for the up branch?
provedboundproved dual bound for current subtree
resultresult pointer

Definition at line 285 of file branch_allfullstrong.c.

References BRANCHRULE_NAME, FALSE, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_LPSOLSTAT_OPTIMAL, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_VERBLEVEL_HIGH, SCIPallColsInLP(), SCIPbranchruleGetData(), SCIPchgVarLb(), SCIPchgVarUb(), SCIPdebug, SCIPdebugMsg, SCIPendStrongbranch(), SCIPfeasCeil(), SCIPfeasFloor(), SCIPfindBranchrule(), SCIPfixVar(), SCIPgetBranchScore(), SCIPgetBranchScoreMultiple(), SCIPgetCutoffbound(), SCIPgetDepth(), SCIPgetLPObjval(), SCIPgetLPSolstat(), SCIPgetNNodes(), SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPinfinity(), SCIPisExactSolve(), SCIPisFeasIntegral(), SCIPisGE(), SCIPprintDisplayLine(), SCIPstartStrongbranch(), SCIPupdateVarPseudocost(), SCIPvarGetLbLocal(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetUbLocal(), SCIPvarIsInLP(), SCIPverbMessage(), and TRUE.

Referenced by branch(), and SCIP_DECL_BRANCHEXECLP().

◆ SCIPincludeBranchruleAllfullstrong()