branch.h
Go to the documentation of this file.
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 71 SCIP_Real** lpcandssol, /**< pointer to store the array of LP candidate solution values, or NULL */ 72 SCIP_Real** lpcandsfrac, /**< pointer to store the array of LP candidate fractionalities, or NULL */ 74 int* npriolpcands, /**< pointer to store the number of candidates with maximal priority, or NULL */ 83 SCIP_VAR*** externcands, /**< pointer to store the array of external branching candidates, or NULL */ 84 SCIP_Real** externcandssol, /**< pointer to store the array of external candidate solution values, or NULL */ 85 SCIP_Real** externcandsscore, /**< pointer to store the array of external candidate scores, or NULL */ 87 int* nprioexterncands, /**< pointer to store the number of candidates with maximal priority, or NULL */ 88 int* nprioexternbins, /**< pointer to store the number of binary candidates with maximal priority, or NULL */ 89 int* nprioexternints, /**< pointer to store the number of integer candidates with maximal priority, or NULL */ 90 int* nprioexternimpls /**< pointer to store the number of implicit integer candidates with maximal priority, 118 /** gets number of implicit integer external branching candidates with maximal branch priority */ 130 /** insert variable, its score and its solution value into the external branching candidate storage 131 * the absolute difference of the current lower and upper bounds of the variable must be at least epsilon 148 /** checks whether the given variable is contained in the candidate storage for external branching */ 161 SCIP_VAR*** pseudocands, /**< pointer to store the array of pseudo branching candidates, or NULL */ 163 int* npriopseudocands /**< pointer to store the number of candidates with maximal priority, or NULL */ 172 /** gets number of branching candidates with maximal branch priority for pseudo solution branching */ 178 /** gets number of binary branching candidates with maximal branch priority for pseudo solution branching */ 184 /** gets number of integer branching candidates with maximal branch priority for pseudo solution branching */ 190 /** gets number of implicit integer branching candidates with maximal branch priority for pseudo solution branching */ 211 /** updates branching priority of the given variable and update the pseude candidate array if needed */ 244 int maxdepth, /**< maximal depth level, up to which this branching rule should be used (or -1) */ 245 SCIP_Real maxbounddist, /**< maximal relative distance from current node's dual bound to primal bound 252 SCIP_DECL_BRANCHINITSOL((*branchinitsol)),/**< solving process initialization method of branching rule */ 253 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)),/**< solving process deinitialization method of branching rule */ 254 SCIP_DECL_BRANCHEXECLP((*branchexeclp)), /**< branching execution method for fractional LP solutions */ 255 SCIP_DECL_BRANCHEXECEXT((*branchexecext)),/**< branching execution method for external solutions */ 256 SCIP_DECL_BRANCHEXECPS((*branchexecps)), /**< branching execution method for not completely fixed pseudo solutions */ 341 /** sets maximal depth level, up to which this branching rule should be used (-1 for no limit) */ 348 /** sets maximal relative distance from current node's dual bound to primal bound for applying branching rule */ 359 SCIP_DECL_BRANCHCOPY ((*branchcopy)) /**< copy method of branching rule or NULL if you don't want to copy your plugin into sub-SCIPs */ 387 SCIP_DECL_BRANCHINITSOL((*branchinitsol)) /**< solving process initialization method of branching rule */ 394 SCIP_DECL_BRANCHEXITSOL((*branchexitsol)) /**< solving process deinitialization method of branching rule */ 401 SCIP_DECL_BRANCHEXECLP((*branchexeclp)) /**< branching execution method for fractional LP solutions */ 408 SCIP_DECL_BRANCHEXECEXT((*branchexecext)) /**< branching execution method for external candidates */ 415 SCIP_DECL_BRANCHEXECPS((*branchexecps)) /**< branching execution method for not completely fixed pseudo solutions */ 421 SCIP_BRANCHRULE* branchrule, /**< the branching rule for which all clocks should be enabled or disabled */ 438 /** calculates the branching score out of the gain predictions for a branching with arbitrary many children */ 450 * if this value is at infinity, then 0.0 projected onto the bounds and then moved inside the interval is used 452 * for a continuous variable, the parameter branching/clamp defines how far a branching point need to be from the bounds of a variable 453 * the latter is only applied if no point has been suggested, or the suggested point is not inside the variable's interval 463 /** calls branching rules to branch on an LP solution; if no fractional variables exist, the result is SCIP_DIDNOTRUN; 464 * if the branch priority of an unfixed variable is larger than the maximal branch priority of the fractional 465 * variables, pseudo solution branching is applied on the unfixed variables with maximal branch priority 485 /** calls branching rules to branch on an external solution; if no external branching candidates exist, the result is SCIP_DIDNOTRUN */ 504 /** calls branching rules to branch on a pseudo solution; if no unfixed variables exist, the result is SCIP_DIDNOTRUN */
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) Definition: branch.c:2608 void SCIPbranchruleSetFree(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHFREE((*branchfree))) Definition: branch.c:1787 int SCIPbranchcandGetNPrioExternImpls(SCIP_BRANCHCAND *branchcand) Definition: branch.c:497 type definitions for miscellaneous datastructures int SCIPbranchcandGetNPrioExternBins(SCIP_BRANCHCAND *branchcand) Definition: branch.c:477 int SCIPbranchcandGetNPseudoCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:802 Definition: struct_var.h:196 SCIP_RETCODE SCIPbranchruleExitsol(SCIP_BRANCHRULE *branchrule, SCIP_SET *set) Definition: branch.c:1416 int SCIPbranchcandGetNExternCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:457 Definition: struct_sepastore.h:37 Definition: struct_message.h:35 type definitions for global SCIP settings void SCIPbranchruleSetCopy(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHCOPY((*branchcopy))) Definition: branch.c:1776 int SCIPbranchcandGetNPrioExternCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:467 Definition: struct_prob.h:38 type definitions for return codes for SCIP methods public methods for branching rules SCIP_RETCODE SCIPbranchcandCreate(SCIP_BRANCHCAND **branchcand) Definition: branch.c:132 int SCIPbranchcandGetNPrioPseudoImpls(SCIP_BRANCHCAND *branchcand) Definition: branch.c:842 SCIP_RETCODE SCIPbranchcandGetPseudoCands(SCIP_BRANCHCAND *branchcand, SCIP_SET *set, SCIP_PROB *prob, SCIP_VAR ***pseudocands, int *npseudocands, int *npriopseudocands) Definition: branch.c:740 void SCIPbranchruleSetInit(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHINIT((*branchinit))) Definition: branch.c:1798 void SCIPbranchcandClearExternCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:649 type definitions for branching rules type definitions for problem statistics type definitions for LP management Definition: struct_set.h:56 SCIP_RETCODE SCIPbranchruleExecPseudoSol(SCIP_BRANCHRULE *branchrule, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Real cutoffbound, SCIP_Bool allowaddcons, SCIP_RESULT *result) Definition: branch.c:1654 SCIP_Bool SCIPbranchcandContainsExternCand(SCIP_BRANCHCAND *branchcand, SCIP_VAR *var) Definition: branch.c:664 int SCIPbranchcandGetNPrioExternInts(SCIP_BRANCHCAND *branchcand) Definition: branch.c:487 SCIP_RETCODE SCIPbranchruleInitsol(SCIP_BRANCHRULE *branchrule, SCIP_SET *set) Definition: branch.c:1392 SCIP_RETCODE SCIPbranchcandAddExternCand(SCIP_BRANCHCAND *branchcand, SCIP_SET *set, SCIP_VAR *var, SCIP_Real score, SCIP_Real solval) Definition: branch.c:519 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) Definition: branch.c:419 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) Definition: branch.c:384 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) Definition: branch.c:2384 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) Definition: branch.c:1440 int SCIPbranchcandGetNPrioPseudoCands(SCIP_BRANCHCAND *branchcand) Definition: branch.c:812 void SCIPbranchruleSetExecLp(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECLP((*branchexeclp))) Definition: branch.c:1844 SCIP_Real SCIPbranchGetBranchingPoint(SCIP_SET *set, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real suggestion) Definition: branch.c:2184 type definitions for problem variables type definitions for storing separated cuts void SCIPbranchruleSetInitsol(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHINITSOL((*branchinitsol))) Definition: branch.c:1820 Definition: struct_branch.h:68 type definitions for managing events 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) Definition: branch.c:1547 void SCIPbranchruleSetExecExt(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECEXT((*branchexecext))) Definition: branch.c:1855 SCIP_RETCODE SCIPbranchruleExit(SCIP_BRANCHRULE *branchrule, SCIP_SET *set) Definition: branch.c:1362 SCIP_RETCODE SCIPbranchruleInit(SCIP_BRANCHRULE *branchrule, SCIP_SET *set) Definition: branch.c:1318 SCIP_RETCODE SCIPbranchcandFree(SCIP_BRANCHCAND **branchcand) Definition: branch.c:171 SCIP_RETCODE SCIPbranchruleFree(SCIP_BRANCHRULE **branchrule, SCIP_SET *set) Definition: branch.c:1292 Definition: struct_reopt.h:113 void SCIPbranchruleSetExecPs(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECPS((*branchexecps))) Definition: branch.c:1866 type definitions for branch and bound tree void SCIPbranchruleSetMaxdepth(SCIP_BRANCHRULE *branchrule, int maxdepth) Definition: branch.c:1931 void SCIPbranchruleSetPriority(SCIP_BRANCHRULE *branchrule, SCIP_SET *set, int priority) Definition: branch.c:1907 type definitions for storing and manipulating the main problem SCIP_RETCODE SCIPbranchcandUpdateVar(SCIP_BRANCHCAND *branchcand, SCIP_SET *set, SCIP_VAR *var) Definition: branch.c:1080 int SCIPbranchcandGetNPrioExternConts(SCIP_BRANCHCAND *branchcand) Definition: branch.c:507 void SCIPbranchruleSetExit(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXIT((*branchexit))) Definition: branch.c:1809 int SCIPbranchcandGetNPrioPseudoInts(SCIP_BRANCHCAND *branchcand) Definition: branch.c:832 SCIP_Real SCIPbranchGetScoreMultiple(SCIP_SET *set, SCIP_VAR *var, int nchildren, SCIP_Real *gains) Definition: branch.c:2146 void SCIPbranchruleEnableOrDisableClocks(SCIP_BRANCHRULE *branchrule, SCIP_Bool enable) Definition: branch.c:1965 Definition: struct_lp.h:255 result codes for SCIP callback methods void SCIPbranchruleSetMaxbounddist(SCIP_BRANCHRULE *branchrule, SCIP_Real maxbounddist) Definition: branch.c:1953 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) Definition: branch.c:2486 SCIP_RETCODE SCIPbranchruleCopyInclude(SCIP_BRANCHRULE *branchrule, SCIP_SET *set) Definition: branch.c:1193 Definition: struct_stat.h:44 Definition: struct_tree.h:165 common defines and data types used in all packages of SCIP Definition: struct_event.h:204 int SCIPbranchcandGetNPrioPseudoBins(SCIP_BRANCHCAND *branchcand) Definition: branch.c:822 Definition: struct_branch.h:36 SCIP_RETCODE SCIPbranchcandRemoveVar(SCIP_BRANCHCAND *branchcand, SCIP_VAR *var) Definition: branch.c:1063 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) Definition: branch.c:1212 SCIP_RETCODE SCIPbranchcandUpdateVarBranchPriority(SCIP_BRANCHCAND *branchcand, SCIP_SET *set, SCIP_VAR *var, int branchpriority) Definition: branch.c:1120 void SCIPbranchruleSetExitsol(SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXITSOL((*branchexitsol))) Definition: branch.c:1831 SCIP_Real SCIPbranchGetScore(SCIP_SET *set, SCIP_VAR *var, SCIP_Real downgain, SCIP_Real upgain) Definition: branch.c:2096 memory allocation routines |