branch_mostinf.c
Go to the documentation of this file.
21 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/ 39 /** compares the so far best branching candidate with a new candidate and updates best candidate, if new candidate is better */ 61 /* a branching variable candidate should either be an active problem variable or a multi-aggregated variable */ 67 /* for a multi-aggregated variable, we call updateBestCandidate function recursively with all variables in the multi-aggregation */ 81 * if this fails, then register all (unfixed) aggregation variables, thereby forgetting about candsol 95 /* for computing the branching point, we need the current bounds of the multi-aggregated variable */ 110 /* we cannot ensure that both the upper bound in the left node and the lower bound in the right node 144 * if aggrvarsol1 <= lb(multvars[i]) or aggrvarsol2 >= ub(multvars[i]), then choose the other one 192 (SCIPisGT(scip, candscore, *bestscore) || (SCIPisGE(scip, candscore, *bestscore) && obj > *bestobj))) ) 270 SCIPdebugMessage(" -> %d candidates, selected candidate %d: variable <%s> (frac=%g, obj=%g, factor=%g, score=%g)\n", 307 SCIP_CALL( SCIPgetExternBranchCands(scip, &externcands, &externcandssol, &externcandsscore, NULL, &nexterncands, NULL, NULL, NULL) ); 317 updateBestCandidate(scip, &bestcand, &bestscore, &bestobj, &bestsol, externcands[i], externcandsscore[i], externcandssol[i]); 322 SCIPerrorMessage("branchExecextMostinf failed to select a branching variable from %d candidates\n", nexterncands); 329 SCIPdebugMessage(" -> %d candidates, selected variable <%s> (infeas=%g, obj=%g, factor=%g, score=%g), branching point=%g\n", 363 SCIP_CALL( SCIPincludeBranchruleBasic(scip, &branchrule, BRANCHRULE_NAME, BRANCHRULE_DESC, BRANCHRULE_PRIORITY,
SCIP_RETCODE SCIPgetLPBranchCands(SCIP *scip, SCIP_VAR ***lpcands, SCIP_Real **lpcandssol, SCIP_Real **lpcandsfrac, int *nlpcands, int *npriolpcands, int *nfracimplvars) Definition: scip.c:33125 Definition: type_result.h:33 SCIP_RETCODE SCIPgetExternBranchCands(SCIP *scip, SCIP_VAR ***externcands, SCIP_Real **externcandssol, SCIP_Real **externcandsscore, int *nexterncands, int *nprioexterncands, int *nprioexternbins, int *nprioexternints, int *nprioexternimpls) Definition: scip.c:33241 SCIP_RETCODE SCIPbranchVar(SCIP *scip, SCIP_VAR *var, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild) Definition: scip.c:33734 Definition: struct_scip.h:53 Definition: struct_var.h:196 SCIP_Real SCIPcomputeVarLbLocal(SCIP *scip, SCIP_VAR *var) Definition: scip.c:21407 const char * SCIPbranchruleGetName(SCIP_BRANCHRULE *branchrule) Definition: branch.c:1877 SCIP_RETCODE SCIPsetBranchruleCopy(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHCOPY((*branchcopy))) Definition: scip.c:8290 Definition: struct_tree.h:122 SCIP_RETCODE SCIPincludeBranchruleMostinf(SCIP *scip) Definition: branch_mostinf.c:356 SCIP_RETCODE SCIPsetBranchruleExecLp(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECLP((*branchexeclp))) Definition: scip.c:8388 SCIP_RETCODE SCIPincludeBranchruleBasic(SCIP *scip, SCIP_BRANCHRULE **branchruleptr, const char *name, const char *desc, int priority, int maxdepth, SCIP_Real maxbounddist, SCIP_BRANCHRULEDATA *branchruledata) Definition: scip.c:8253 static SCIP_DECL_BRANCHEXECLP(branchExeclpMostinf) Definition: branch_mostinf.c:222 Definition: type_retcode.h:33 Definition: type_result.h:42 Definition: struct_branch.h:68 SCIP_RETCODE SCIPsetBranchruleExecExt(SCIP *scip, SCIP_BRANCHRULE *branchrule, SCIP_DECL_BRANCHEXECEXT((*branchexecext))) Definition: scip.c:8404 SCIP_Real SCIPcomputeVarUbLocal(SCIP *scip, SCIP_VAR *var) Definition: scip.c:21428 Definition: type_var.h:45 SCIP_Real * SCIPvarGetMultaggrScalars(SCIP_VAR *var) Definition: var.c:16849 SCIP_Real SCIPgetBranchingPoint(SCIP *scip, SCIP_VAR *var, SCIP_Real suggestion) Definition: scip.c:33628 most infeasible LP branching rule SCIP_Bool SCIPisFeasLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:41933 SCIP_Bool SCIPisFeasGE(SCIP *scip, SCIP_Real val1, SCIP_Real val2) Definition: scip.c:41959 Definition: type_result.h:45 static SCIP_DECL_BRANCHEXECEXT(branchExecextMostinf) Definition: branch_mostinf.c:283 Definition: objbranchrule.h:33 static void updateBestCandidate(SCIP *scip, SCIP_VAR **bestvar, SCIP_Real *bestscore, SCIP_Real *bestobj, SCIP_Real *bestsol, SCIP_VAR *cand, SCIP_Real candscore, SCIP_Real candsol) Definition: branch_mostinf.c:41 SCIP_RETCODE SCIPbranchVarVal(SCIP *scip, SCIP_VAR *var, SCIP_Real val, SCIP_NODE **downchild, SCIP_NODE **eqchild, SCIP_NODE **upchild) Definition: scip.c:33810 |