internal methods for branching rules and branching candidate storage
Definition in file branch.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_misc.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_tree.h"
#include "scip/type_sepastore.h"
#include "scip/type_branch.h"
#include "scip/pub_branch.h"
Go to the source code of this file.
SCIP_RETCODE SCIPbranchcandCreate | ( | SCIP_BRANCHCAND ** | branchcand | ) |
creates a branching candidate storage
branchcand | pointer to store branching candidate storage |
Definition at line 133 of file branch.c.
References BMSallocMemory, SCIP_ALLOC, SCIP_OKAY, and SCIPbranchcandInvalidate().
Referenced by SCIPtransformProb().
SCIP_RETCODE SCIPbranchcandFree | ( | SCIP_BRANCHCAND ** | branchcand | ) |
frees branching candidate storage
branchcand | pointer to store branching candidate storage |
Definition at line 173 of file branch.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, and SCIP_OKAY.
Referenced by freeTransform().
void SCIPbranchcandInvalidate | ( | SCIP_BRANCHCAND * | branchcand | ) |
invalidates branching candidates storage
resets branching candidates storage
branchcand | pointer to store branching candidate storage |
Definition at line 192 of file branch.c.
References SCIP_BranchCand::validlpcandslp.
Referenced by prepareReoptimization(), and SCIPbranchcandCreate().
SCIP_RETCODE SCIPbranchcandGetLPCands | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_LP * | lp, | ||
SCIP_VAR *** | lpcands, | ||
SCIP_Real ** | lpcandssol, | ||
SCIP_Real ** | lpcandsfrac, | ||
int * | nlpcands, | ||
int * | npriolpcands, | ||
int * | nfracimplvars | ||
) |
gets branching candidates for LP solution branching (fractional variables)
branchcand | branching candidate storage |
set | global SCIP settings |
stat | problem statistics |
lp | current LP data |
lpcands | pointer to store the array of LP branching candidates, or NULL |
lpcandssol | pointer to store the array of LP candidate solution values, or NULL |
lpcandsfrac | pointer to store the array of LP candidate fractionalities, or NULL |
nlpcands | pointer to store the number of LP branching candidates, or NULL |
npriolpcands | pointer to store the number of candidates with maximal priority, or NULL |
nfracimplvars | pointer to store the number of implicit fractional variables, or NULL |
Definition at line 404 of file branch.c.
References branchcandCalcLPCands(), SCIP_BranchCand::lpcands, SCIP_BranchCand::lpcandsfrac, SCIP_BranchCand::lpcandssol, SCIP_BranchCand::nimpllpfracs, SCIP_BranchCand::nlpcands, SCIP_BranchCand::npriolpbins, SCIP_BranchCand::npriolpcands, SCIP_CALL, and SCIP_OKAY.
Referenced by priceAndCutLoop(), SCIPgetLPBranchCands(), SCIPgetNLPBranchCands(), SCIPgetNPrioLPBranchCands(), solveNode(), and updateEstimate().
SCIP_RETCODE SCIPbranchcandGetExternCands | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_VAR *** | externcands, | ||
SCIP_Real ** | externcandssol, | ||
SCIP_Real ** | externcandsscore, | ||
int * | nexterncands, | ||
int * | nprioexterncands, | ||
int * | nprioexternbins, | ||
int * | nprioexternints, | ||
int * | nprioexternimpls | ||
) |
gets external branching candidates
branchcand | branching candidate storage |
externcands | pointer to store the array of external branching candidates, or NULL |
externcandssol | pointer to store the array of external candidate solution values, or NULL |
externcandsscore | pointer to store the array of external candidate scores, or NULL |
nexterncands | pointer to store the number of external branching candidates, or NULL |
nprioexterncands | pointer to store the number of candidates with maximal priority, or NULL |
nprioexternbins | pointer to store the number of binary candidates with maximal priority, or NULL |
nprioexternints | pointer to store the number of integer candidates with maximal priority, or NULL |
nprioexternimpls | pointer to store the number of implicit integer candidates with maximal priority, or NULL |
Definition at line 439 of file branch.c.
References SCIP_BranchCand::externcands, SCIP_BranchCand::externcandsscore, SCIP_BranchCand::externcandssol, SCIP_BranchCand::nexterncands, SCIP_BranchCand::nprioexternbins, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::nprioexternimpls, SCIP_BranchCand::nprioexternints, and SCIP_OKAY.
Referenced by SCIPgetExternBranchCands().
int SCIPbranchcandGetLPMaxPrio | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets maximal branching priority of LP branching candidates
branchcand | branching candidate storage |
Definition at line 476 of file branch.c.
References SCIP_BranchCand::lpmaxpriority.
Referenced by solveNode().
int SCIPbranchcandGetNPrioLPCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of LP branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 486 of file branch.c.
References SCIP_BranchCand::npriolpcands.
Referenced by solveNode().
int SCIPbranchcandGetExternMaxPrio | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets maximal branching priority of external branching candidates
branchcand | branching candidate storage |
Definition at line 496 of file branch.c.
References SCIP_BranchCand::externmaxpriority.
Referenced by solveNode().
int SCIPbranchcandGetNExternCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of external branching candidates
branchcand | branching candidate storage |
Definition at line 506 of file branch.c.
References SCIP_BranchCand::nexterncands.
Referenced by SCIPgetNExternBranchCands(), and solveNode().
int SCIPbranchcandGetNPrioExternCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of external branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 516 of file branch.c.
References SCIP_BranchCand::nprioexterncands.
Referenced by SCIPgetNPrioExternBranchCands(), and solveNode().
int SCIPbranchcandGetNPrioExternBins | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of binary external branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 526 of file branch.c.
References SCIP_BranchCand::nprioexternbins.
Referenced by SCIPgetNPrioExternBranchBins().
int SCIPbranchcandGetNPrioExternInts | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of integer external branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 536 of file branch.c.
References SCIP_BranchCand::nprioexternints.
Referenced by SCIPgetNPrioExternBranchInts().
int SCIPbranchcandGetNPrioExternImpls | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of implicit integer external branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 546 of file branch.c.
References SCIP_BranchCand::nprioexternimpls.
Referenced by SCIPgetNPrioExternBranchImpls().
int SCIPbranchcandGetNPrioExternConts | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of continuous external branching candidates with maximal branch priority
branchcand | branching candidate storage |
Definition at line 556 of file branch.c.
References SCIP_BranchCand::nprioexternbins, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::nprioexternimpls, and SCIP_BranchCand::nprioexternints.
Referenced by SCIPgetNPrioExternBranchConts().
SCIP_RETCODE SCIPbranchcandAddExternCand | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | score, | ||
SCIP_Real | solval | ||
) |
insert variable, its score and its solution value into the external branching candidate storage the absolute difference of the current lower and upper bounds of the variable must be at least epsilon
branchcand | branching candidate storage |
set | global SCIP settings |
var | variable to insert |
score | score of external candidate, e.g. infeasibility |
solval | value of the variable in the current solution |
Definition at line 568 of file branch.c.
References ensureExterncandsSize(), SCIP_BranchCand::externcands, SCIP_BranchCand::externcandsscore, SCIP_BranchCand::externcandssize, SCIP_BranchCand::externcandssol, SCIP_BranchCand::externmaxpriority, SCIP_BranchCand::nexterncands, SCIP_BranchCand::nprioexternbins, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::nprioexternimpls, SCIP_BranchCand::nprioexternints, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_MULTAGGR, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPsetCeil(), SCIPsetDebugMsg, SCIPsetFloor(), SCIPsetIsEQ(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetMultaggrLbLocal(), SCIPvarGetMultaggrUbLocal(), SCIPvarGetName(), SCIPvarGetStatus(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPaddExternBranchCand().
void SCIPbranchcandClearExternCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
removes all external candidates from the storage for external branching
branchcand | branching candidate storage |
Definition at line 698 of file branch.c.
References SCIP_BranchCand::externmaxpriority, SCIP_BranchCand::nexterncands, SCIP_BranchCand::nprioexternbins, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::nprioexternimpls, and SCIP_BranchCand::nprioexternints.
Referenced by propAndSolve(), SCIPclearExternBranchCands(), and solveNode().
SCIP_Bool SCIPbranchcandContainsExternCand | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_VAR * | var | ||
) |
checks whether the given variable is contained in the candidate storage for external branching
branchcand | branching candidate storage |
var | variable to look for |
Definition at line 713 of file branch.c.
References SCIP_BranchCand::externcands, SCIP_BranchCand::externcandssize, SCIP_BranchCand::externmaxpriority, FALSE, SCIP_BranchCand::nexterncands, SCIP_BranchCand::nprioexternbins, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::nprioexternimpls, SCIP_BranchCand::nprioexternints, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPvarGetBranchPriority(), SCIPvarGetType(), and TRUE.
Referenced by SCIPcontainsExternBranchCand().
SCIP_RETCODE SCIPbranchcandGetPseudoCands | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_SET * | set, | ||
SCIP_PROB * | prob, | ||
SCIP_VAR *** | pseudocands, | ||
int * | npseudocands, | ||
int * | npriopseudocands | ||
) |
gets branching candidates for pseudo solution branching (non-fixed variables)
branchcand | branching candidate storage |
set | global SCIP settings |
prob | problem data |
pseudocands | pointer to store the array of pseudo branching candidates, or NULL |
npseudocands | pointer to store the number of pseudo branching candidates, or NULL |
npriopseudocands | pointer to store the number of candidates with maximal priority, or NULL |
Definition at line 789 of file branch.c.
References SCIP_Var::branchpriority, SCIP_Prob::nbinvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_BranchCand::npriopseudobins, SCIP_BranchCand::npriopseudocands, SCIP_BranchCand::npseudocands, SCIP_Var::pseudocandindex, SCIP_BranchCand::pseudocands, SCIP_BranchCand::pseudomaxpriority, SCIP_OKAY, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_IMPLINT, SCIP_VARTYPE_INTEGER, SCIPsetIsFeasIntegral(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPvarGetLbLocal(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbLocal(), and SCIP_Prob::vars.
Referenced by SCIPgetPseudoBranchCands().
int SCIPbranchcandGetNPseudoCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of branching candidates for pseudo solution branching (non-fixed variables)
branchcand | branching candidate storage |
Definition at line 853 of file branch.c.
References SCIP_BranchCand::npseudocands.
Referenced by propAndSolve(), SCIPconshdlrEnforcePseudoSol(), SCIPgetNPseudoBranchCands(), SCIPsolveCIP(), and solveNode().
int SCIPbranchcandGetNPrioPseudoCands | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of branching candidates with maximal branch priority for pseudo solution branching
branchcand | branching candidate storage |
Definition at line 863 of file branch.c.
References SCIP_BranchCand::npriopseudocands.
Referenced by SCIPgetNPrioPseudoBranchCands().
int SCIPbranchcandGetNPrioPseudoBins | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of binary branching candidates with maximal branch priority for pseudo solution branching
branchcand | branching candidate storage |
Definition at line 873 of file branch.c.
References SCIP_BranchCand::npriopseudobins.
Referenced by SCIPgetNPrioPseudoBranchBins().
int SCIPbranchcandGetNPrioPseudoInts | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of integer branching candidates with maximal branch priority for pseudo solution branching
branchcand | branching candidate storage |
Definition at line 883 of file branch.c.
References SCIP_BranchCand::npriopseudoints.
Referenced by SCIPgetNPrioPseudoBranchInts().
int SCIPbranchcandGetNPrioPseudoImpls | ( | SCIP_BRANCHCAND * | branchcand | ) |
gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching
branchcand | branching candidate storage |
Definition at line 893 of file branch.c.
References SCIP_BranchCand::npriopseudobins, SCIP_BranchCand::npriopseudocands, and SCIP_BranchCand::npriopseudoints.
Referenced by SCIPgetNPrioPseudoBranchImpls().
SCIP_RETCODE SCIPbranchcandRemoveVar | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_VAR * | var | ||
) |
removes variable from branching candidate list
branchcand | branching candidate storage |
var | variable that changed its bounds |
Definition at line 1120 of file branch.c.
References branchcandRemovePseudoCand(), SCIP_Var::pseudocandindex, and SCIP_OKAY.
Referenced by SCIPbranchcandUpdateVar(), SCIPbranchcandUpdateVarBranchPriority(), SCIPprobChgVarType(), and SCIPprobPerformVarDeletions().
SCIP_RETCODE SCIPbranchcandUpdateVar | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_SET * | set, | ||
SCIP_VAR * | var | ||
) |
updates branching candidate list for a given variable
branchcand | branching candidate storage |
set | global SCIP settings |
var | variable that changed its bounds |
Definition at line 1137 of file branch.c.
References branchcandInsertPseudoCand(), ensurePseudocandsSize(), SCIP_BranchCand::npseudocands, SCIP_Var::pseudocandindex, SCIP_CALL, SCIP_OKAY, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIP_VARTYPE_CONTINUOUS, SCIPbranchcandRemoveVar(), SCIPsetIsGE(), SCIPsetIsLT(), SCIPvarGetLbLocal(), SCIPvarGetStatus(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPbranchcandUpdateVarBranchPriority(), SCIPeventProcess(), SCIPprobAddVar(), SCIPprobChgVarType(), and SCIPprobVarChangedStatus().
SCIP_RETCODE SCIPbranchcandUpdateVarBranchPriority | ( | SCIP_BRANCHCAND * | branchcand, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
int | branchpriority | ||
) |
updates branching priority of the given variable and update the pseudo candidate array if needed
branchcand | branching candidate storage |
set | global SCIP settings |
var | variable that changed its bounds |
branchpriority | branch priority of the variable |
Definition at line 1177 of file branch.c.
References SCIP_Var::pseudocandindex, SCIP_BranchCand::pseudomaxpriority, SCIP_CALL, SCIP_OKAY, SCIPbranchcandRemoveVar(), SCIPbranchcandUpdateVar(), SCIPvarChgBranchPriority(), and SCIPvarGetBranchPriority().
Referenced by SCIPchgVarBranchPriority().
SCIP_RETCODE SCIPbranchruleCopyInclude | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set | ||
) |
copies the given branchrule to a new scip
branchrule | branchrule |
set | SCIP_SET of SCIP to copy to |
Definition at line 1248 of file branch.c.
References SCIP_CALL, SCIP_OKAY, SCIPbranchruleGetName(), and SCIPsetDebugMsg.
SCIP_RETCODE SCIPbranchruleCreate | ( | SCIP_BRANCHRULE ** | branchrule, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | maxdepth, | ||
SCIP_Real | maxbounddist, | ||
SCIP_DECL_BRANCHCOPY((*branchcopy)) | , | ||
SCIP_DECL_BRANCHFREE((*branchfree)) | , | ||
SCIP_DECL_BRANCHINIT((*branchinit)) | , | ||
SCIP_DECL_BRANCHEXIT((*branchexit)) | , | ||
SCIP_DECL_BRANCHINITSOL((*branchinitsol)) | , | ||
SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) | , | ||
SCIP_DECL_BRANCHEXECLP((*branchexeclp)) | , | ||
SCIP_DECL_BRANCHEXECEXT((*branchexecext)) | , | ||
SCIP_DECL_BRANCHEXECPS((*branchexecps)) | , | ||
SCIP_BRANCHRULEDATA * | branchruledata | ||
) |
creates a branching rule
branchrule | pointer to store branching rule |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory for parameter settings |
name | name of branching rule |
desc | description of branching rule |
priority | priority of the branching rule |
maxdepth | maximal depth level, up to which this branching rule should be used (or -1) |
maxbounddist | maximal relative distance from current node's dual bound to primal bound compared to best node's dual bound for applying branching rule (0.0: only on current best node, 1.0: on all nodes) |
branchruledata | branching rule data |
Definition at line 1267 of file branch.c.
References BMSallocMemory, BMSduplicateMemoryArray, FALSE, SCIP_ALLOC, SCIP_CALL, SCIP_CLOCKTYPE_DEFAULT, SCIP_MAXSTRLEN, SCIP_MAXTREEDEPTH, SCIP_OKAY, SCIPclockCreate(), SCIPsetAddIntParam(), SCIPsetAddRealParam(), and SCIPsnprintf().
Referenced by SCIPincludeBranchrule(), and SCIPincludeBranchruleBasic().
SCIP_RETCODE SCIPbranchruleFree | ( | SCIP_BRANCHRULE ** | branchrule, |
SCIP_SET * | set | ||
) |
frees memory of branching rule
branchrule | pointer to branching rule data structure |
set | global SCIP settings |
Definition at line 1347 of file branch.c.
References BMSfreeMemory, BMSfreeMemoryArray, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPsetFree().
SCIP_RETCODE SCIPbranchruleInit | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set | ||
) |
initializes branching rule
branchrule | branching rule |
set | global SCIP settings |
Definition at line 1373 of file branch.c.
References SCIP_Branchrule::branchclock, SCIP_Branchrule::initialized, SCIP_Branchrule::name, SCIP_Branchrule::nchildren, SCIP_Branchrule::nconssfound, SCIP_Branchrule::ncutoffs, SCIP_Branchrule::ncutsfound, SCIP_Branchrule::ndomredsfound, SCIP_Branchrule::nexterncalls, SCIP_Branchrule::nlpcalls, SCIP_Branchrule::npseudocalls, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Branchrule::setuptime, and TRUE.
Referenced by SCIPsetInitPlugins().
SCIP_RETCODE SCIPbranchruleExit | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set | ||
) |
deinitializes branching rule
branchrule | branching rule |
set | global SCIP settings |
Definition at line 1417 of file branch.c.
References FALSE, SCIP_Branchrule::initialized, SCIP_Branchrule::name, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Branchrule::setuptime.
Referenced by SCIPsetExitPlugins().
SCIP_RETCODE SCIPbranchruleInitsol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set | ||
) |
informs branching rule that the branch and bound process is being started
branchrule | branching rule |
set | global SCIP settings |
Definition at line 1447 of file branch.c.
References SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Branchrule::setuptime.
Referenced by SCIPsetInitsolPlugins().
SCIP_RETCODE SCIPbranchruleExitsol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set | ||
) |
informs branching rule that the branch and bound process data is being freed
branchrule | branching rule |
set | global SCIP settings |
Definition at line 1471 of file branch.c.
References SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Branchrule::setuptime.
Referenced by SCIPsetInitsolPlugins().
SCIP_RETCODE SCIPbranchruleExecLPSol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_TREE * | tree, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
executes branching rule for fractional LP solution
branchrule | branching rule |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
sepastore | separation storage |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the callback method |
Definition at line 1495 of file branch.c.
References SCIP_Branchrule::branchclock, SCIP_Tree::focusnode, SCIP_Branchrule::maxbounddist, SCIP_Branchrule::maxdepth, SCIP_Stat::nactiveconssadded, SCIP_Branchrule::name, SCIP_Stat::nboundchgs, SCIP_Branchrule::nchildren, SCIP_Tree::nchildren, SCIP_Branchrule::nconssfound, SCIP_Branchrule::ncutoffs, SCIP_Branchrule::ncutsfound, SCIP_Branchrule::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Branchrule::nlpcalls, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPnodeGetLowerbound(), SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPtreeGetCurrentDepth(), and SCIPtreeGetLowerbound().
Referenced by SCIPbranchExecLP().
SCIP_RETCODE SCIPbranchruleExecExternSol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_TREE * | tree, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
executes branching rule for external branching candidates
branchrule | branching rule |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
sepastore | separation storage |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the callback method |
Definition at line 1602 of file branch.c.
References SCIP_Branchrule::branchclock, SCIP_Tree::focusnode, SCIP_Branchrule::maxbounddist, SCIP_Branchrule::maxdepth, SCIP_Stat::nactiveconss, SCIP_Branchrule::name, SCIP_Stat::nboundchgs, SCIP_Branchrule::nchildren, SCIP_Tree::nchildren, SCIP_Branchrule::nconssfound, SCIP_Branchrule::ncutoffs, SCIP_Branchrule::ncutsfound, SCIP_Branchrule::ndomredsfound, SCIP_Branchrule::nexterncalls, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPnodeGetLowerbound(), SCIPsepastoreGetNCuts(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPtreeGetCurrentDepth(), and SCIPtreeGetLowerbound().
Referenced by SCIPbranchExecExtern().
SCIP_RETCODE SCIPbranchruleExecPseudoSol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_TREE * | tree, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
executes branching rule for not completely fixed pseudo solution
branchrule | branching rule |
set | global SCIP settings |
stat | problem statistics |
tree | branch and bound tree |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the callback method |
Definition at line 1709 of file branch.c.
References SCIP_Branchrule::branchclock, SCIP_Tree::focusnode, SCIP_Branchrule::maxbounddist, SCIP_Branchrule::maxdepth, SCIP_Stat::nactiveconss, SCIP_Branchrule::name, SCIP_Stat::nboundchgs, SCIP_Branchrule::nchildren, SCIP_Tree::nchildren, SCIP_Branchrule::nconssfound, SCIP_Branchrule::ncutoffs, SCIP_Branchrule::ndomredsfound, SCIP_Stat::nholechgs, SCIP_Stat::nprobboundchgs, SCIP_Stat::nprobholechgs, SCIP_Branchrule::npseudocalls, SCIP_Bool, SCIP_BRANCHED, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_Longint, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPnodeGetLowerbound(), SCIPsetDebugMsg, SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPtreeGetCurrentDepth(), and SCIPtreeGetLowerbound().
Referenced by SCIPbranchExecPseudo().
void SCIPbranchruleSetPriority | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_SET * | set, | ||
int | priority | ||
) |
sets priority of branching rule
branchrule | branching rule |
set | global SCIP settings |
priority | new priority of the branching rule |
Definition at line 1962 of file branch.c.
References FALSE, and SCIP_Branchrule::priority.
Referenced by SCIPsetBranchrulePriority().
void SCIPbranchruleSetMaxdepth | ( | SCIP_BRANCHRULE * | branchrule, |
int | maxdepth | ||
) |
sets maximal depth level, up to which this branching rule should be used (-1 for no limit)
branchrule | branching rule |
maxdepth | new maxdepth of the branching rule |
Definition at line 1986 of file branch.c.
References SCIP_Branchrule::maxdepth.
Referenced by SCIPsetBranchruleMaxdepth().
void SCIPbranchruleSetMaxbounddist | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_Real | maxbounddist | ||
) |
sets maximal relative distance from current node's dual bound to primal bound for applying branching rule
branchrule | branching rule |
maxbounddist | new maxbounddist of the branching rule |
Definition at line 2008 of file branch.c.
References SCIP_Branchrule::maxbounddist.
Referenced by SCIPsetBranchruleMaxbounddist().
void SCIPbranchruleSetCopy | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHCOPY((*branchcopy)) | |||
) |
sets copy method of branching rule
branchrule | branching rule |
Definition at line 1831 of file branch.c.
Referenced by SCIPsetBranchruleCopy().
void SCIPbranchruleSetFree | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHFREE((*branchfree)) | |||
) |
sets destructor method of branching rule
branchrule | branching rule |
Definition at line 1842 of file branch.c.
Referenced by SCIPsetBranchruleFree().
void SCIPbranchruleSetInit | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHINIT((*branchinit)) | |||
) |
sets initialization method of branching rule
branchrule | branching rule |
Definition at line 1853 of file branch.c.
Referenced by SCIPsetBranchruleInit().
void SCIPbranchruleSetExit | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHEXIT((*branchexit)) | |||
) |
sets deinitialization method of branching rule
branchrule | branching rule |
Definition at line 1864 of file branch.c.
Referenced by SCIPsetBranchruleExit().
void SCIPbranchruleSetInitsol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHINITSOL((*branchinitsol)) | |||
) |
sets solving process initialization method of branching rule
branchrule | branching rule |
Definition at line 1875 of file branch.c.
Referenced by SCIPsetBranchruleInitsol().
void SCIPbranchruleSetExitsol | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) | |||
) |
sets solving process deinitialization method of branching rule
branchrule | branching rule |
Definition at line 1886 of file branch.c.
Referenced by SCIPsetBranchruleExitsol().
void SCIPbranchruleSetExecLp | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHEXECLP((*branchexeclp)) | |||
) |
sets branching execution method for fractional LP solutions
branchrule | branching rule |
Definition at line 1899 of file branch.c.
Referenced by SCIPsetBranchruleExecLp().
void SCIPbranchruleSetExecExt | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHEXECEXT((*branchexecext)) | |||
) |
sets branching execution method for external candidates
branchrule | branching rule |
Definition at line 1910 of file branch.c.
Referenced by SCIPsetBranchruleExecExt().
void SCIPbranchruleSetExecPs | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_DECL_BRANCHEXECPS((*branchexecps)) | |||
) |
sets branching execution method for not completely fixed pseudo solutions
branchrule | branching rule |
Definition at line 1921 of file branch.c.
Referenced by SCIPsetBranchruleExecPs().
void SCIPbranchruleEnableOrDisableClocks | ( | SCIP_BRANCHRULE * | branchrule, |
SCIP_Bool | enable | ||
) |
enables or disables all clocks of branchrule
, depending on the value of the flag
branchrule | the branching rule for which all clocks should be enabled or disabled |
enable | should the clocks of the branching rule be enabled? |
Definition at line 2020 of file branch.c.
References SCIP_Branchrule::branchclock, SCIPclockEnableOrDisable(), and SCIP_Branchrule::setuptime.
SCIP_Real SCIPbranchGetScore | ( | SCIP_SET * | set, |
SCIP_VAR * | var, | ||
SCIP_Real | downgain, | ||
SCIP_Real | upgain | ||
) |
calculates the branching score out of the gain predictions for a binary branching
set | global SCIP settings |
var | variable, of which the branching factor should be applied, or NULL |
downgain | prediction of objective gain for rounding downwards |
upgain | prediction of objective gain for rounding upwards |
Definition at line 2151 of file branch.c.
References eps, MAX, SCIP_Real, SCIPABORT, SCIPerrorMessage, SCIPsetSumepsilon(), and SCIPvarGetBranchFactor().
Referenced by SCIPbranchGetScoreMultiple(), SCIPgetAvgConflictlengthScore(), SCIPgetAvgConflictlengthScoreCurrentRun(), SCIPgetAvgConflictScore(), SCIPgetAvgConflictScoreCurrentRun(), SCIPgetAvgCutoffScore(), SCIPgetAvgCutoffScoreCurrentRun(), SCIPgetAvgInferenceScore(), SCIPgetAvgInferenceScoreCurrentRun(), SCIPgetAvgPseudocostScore(), SCIPgetAvgPseudocostScoreCurrentRun(), SCIPgetBranchScore(), SCIPgetVarAvgCutoffScore(), SCIPgetVarAvgCutoffScoreCurrentRun(), SCIPgetVarAvgInferenceCutoffScore(), SCIPgetVarAvgInferenceCutoffScoreCurrentRun(), SCIPgetVarAvgInferenceScore(), SCIPgetVarAvgInferenceScoreCurrentRun(), SCIPgetVarConflictlengthScore(), SCIPgetVarConflictlengthScoreCurrentRun(), SCIPgetVarConflictScore(), SCIPgetVarConflictScoreCurrentRun(), SCIPgetVarPseudocostScore(), and SCIPgetVarPseudocostScoreCurrentRun().
SCIP_Real SCIPbranchGetScoreMultiple | ( | SCIP_SET * | set, |
SCIP_VAR * | var, | ||
int | nchildren, | ||
SCIP_Real * | gains | ||
) |
calculates the branching score out of the gain predictions for a branching with arbitrary many children
set | global SCIP settings |
var | variable, of which the branching factor should be applied, or NULL |
nchildren | number of children that the branching will create |
gains | prediction of objective gain for each child |
Definition at line 2211 of file branch.c.
References SCIP_Real, SCIPbranchGetScore(), and SCIPsetInfinity().
Referenced by SCIPgetBranchScoreMultiple().
SCIP_Real SCIPbranchGetBranchingPoint | ( | SCIP_SET * | set, |
SCIP_TREE * | tree, | ||
SCIP_VAR * | var, | ||
SCIP_Real | suggestion | ||
) |
computes a branching point for a (not necessarily discrete) variable a suggested branching point is first projected onto the box if no point is suggested, then the value in the current LP or pseudo solution is used if this value is at infinity, then 0.0 projected onto the bounds and then moved inside the interval is used for a discrete variable, it is ensured that the returned value is fractional for a continuous variable, the parameter branching/clamp defines how far a branching point need to be from the bounds of a variable the latter is only applied if no point has been suggested, or the suggested point is not inside the variable's interval
set | global SCIP settings |
tree | branch and bound tree |
var | variable, of which the branching point should be computed |
suggestion | suggestion for branching point, or SCIP_INVALID if no suggestion |
Definition at line 2249 of file branch.c.
References MAX, REALABS, SCIP_Real, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPrelDiff(), SCIPsetEpsilon(), SCIPsetFloor(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsGE(), SCIPsetIsInfinity(), SCIPsetIsIntegral(), SCIPsetIsLE(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsetIsRelGT(), SCIPsetIsRelLT(), SCIPsetRound(), SCIPtreeHasCurrentNodeLP(), SCIPvarGetLbLocal(), SCIPvarGetSol(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPbranchExecExtern(), and SCIPgetBranchingPoint().
SCIP_RETCODE SCIPbranchExecLP | ( | BMS_BLKMEM * | blkmem, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN; if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority
blkmem | block memory for parameter settings |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
sepastore | separation storage |
branchcand | branching candidate storage |
eventqueue | event queue |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the branching (s. branch.h) |
Definition at line 2445 of file branch.c.
References branchcandCalcLPCands(), FALSE, SCIP_BranchCand::lpcands, SCIP_BranchCand::lpmaxpriority, SCIP_BranchCand::nimpllpfracs, SCIP_BranchCand::nlpcands, SCIP_BranchCand::npriolpcands, SCIP_BranchCand::pseudomaxpriority, SCIP_BRANCHED, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_REAL_MIN, SCIP_VARTYPE_CONTINUOUS, SCIP_VARTYPE_IMPLINT, SCIPbranchExecPseudo(), SCIPbranchruleExecLPSol(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetSortBranchrules(), SCIPsolveIsStopped(), SCIPtreeBranchVar(), SCIPvarGetBranchFactor(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPbranchLP(), and solveNode().
SCIP_RETCODE SCIPbranchExecExtern | ( | BMS_BLKMEM * | blkmem, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_SEPASTORE * | sepastore, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
calls branching rules to branch on an external solution; if no external branching candidates exist, the result is SCIP_DIDNOTRUN
blkmem | block memory for parameter settings |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
sepastore | separation storage |
branchcand | branching candidate storage |
eventqueue | event queue |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the branching (s. branch.h) |
Definition at line 2547 of file branch.c.
References SCIP_BranchCand::externcands, SCIP_BranchCand::externcandssol, SCIP_BranchCand::externmaxpriority, SCIP_Tree::nchildren, SCIP_BranchCand::nexterncands, SCIP_BranchCand::nprioexterncands, SCIP_BranchCand::pseudomaxpriority, SCIP_BRANCHED, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_Real, SCIP_REAL_MIN, SCIP_REDUCEDDOM, SCIPbranchExecPseudo(), SCIPbranchGetBranchingPoint(), SCIPbranchruleExecExternSol(), SCIPrelDiff(), SCIPsetDebugMsg, SCIPsetEpsilon(), SCIPsetInfinity(), SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsLT(), SCIPsetSortBranchrules(), SCIPtreeBranchVar(), SCIPvarGetBranchFactor(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), and SCIPvarGetUbLocal().
Referenced by SCIPbranchExtern(), and solveNode().
SCIP_RETCODE SCIPbranchExecPseudo | ( | BMS_BLKMEM * | blkmem, |
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | transprob, | ||
SCIP_PROB * | origprob, | ||
SCIP_TREE * | tree, | ||
SCIP_REOPT * | reopt, | ||
SCIP_LP * | lp, | ||
SCIP_BRANCHCAND * | branchcand, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_Real | cutoffbound, | ||
SCIP_Bool | allowaddcons, | ||
SCIP_RESULT * | result | ||
) |
calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN
blkmem | block memory for parameter settings |
set | global SCIP settings |
stat | problem statistics |
transprob | transformed problem after presolve |
origprob | original problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
branchcand | branching candidate storage |
eventqueue | event queue |
cutoffbound | global upper cutoff bound |
allowaddcons | should adding constraints be allowed to avoid a branching? |
result | pointer to store the result of the branching (s. branch.h) |
Definition at line 2678 of file branch.c.
References SCIP_BranchCand::npseudocands, SCIP_BranchCand::pseudocands, SCIP_BRANCHED, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_REAL_MIN, SCIP_VARTYPE_CONTINUOUS, SCIPbranchruleExecPseudoSol(), SCIPsetDebugMsg, SCIPsetIsEQ(), SCIPsetSortBranchrules(), SCIPtreeBranchVar(), SCIPvarGetBranchFactor(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetType(), and SCIPvarGetUbLocal().
Referenced by SCIPbranchExecExtern(), SCIPbranchExecLP(), SCIPbranchPseudo(), SCIPsolveCIP(), and solveNode().