branch_empty.c
Go to the documentation of this file.
35 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
58 #define BRANCHRULE_DESC "branching rule for the original problem while real branching is applied in the master"
68 /** copy default SCIP branching rules in order to solve restrictions of the original problem as a subSCIP without
91 * add an original branching constraint that holds the branching decision to the corresponding node in the original problem
127 /* add those constraints to the node that enforce the branching decision in the original problem */
142 SCIP_CALL( GCGconsMasterbranchReleaseOrigbranchConss(GCGgetMasterprob(scip), scip, masterbranchchildcons) );
168 assert(boundtype == GCG_BOUNDTYPE_LOWER || boundtype == GCG_BOUNDTYPE_UPPER || boundtype == GCG_BOUNDTYPE_FIXED);
189 /** creates branch-and-bound nodes in the original problem corresponding to those in the master problem */
224 if( nchildnodes <= 0 && SCIPgetStage(masterscip) != SCIP_STAGE_SOLVED && SCIPgetNChildren(masterscip) >= 1 )
228 SCIPdebugMessage("create dummy child in origprob, because there is also a child in the master\n");
247 /* for each child, create a corresponding node in the original problem as well as an origbranch constraint */
262 if( !enforcebycons && branchrule != NULL && strcmp(SCIPbranchruleGetName(branchrule), "orig") == 0 )
268 if( SCIPnodeGetNumber(GCGconsOrigbranchGetNode(GCGconsOrigbranchGetActiveCons(scip))) != SCIPnodeGetNumber(GCGconsMasterbranchGetNode(GCGconsMasterbranchGetActiveCons(GCGgetMasterprob(scip)))) )
273 SCIPnodeGetNumber(GCGconsMasterbranchGetNode(GCGconsMasterbranchGetActiveCons(GCGgetMasterprob(scip)))));
310 /** solving process initialization method of branching rule (called when branch and bound process is about to begin) */
type definitions for branching rules in GCG projects
SCIP_CONS * GCGconsMasterbranchGetChildcons(SCIP_CONS *cons, int childnr)
Definition: cons_masterbranch.c:2449
SCIP_NODE * GCGconsOrigbranchGetNode(SCIP_CONS *cons)
Definition: cons_origbranch.c:612
int GCGconsMasterbranchGetNOrigbranchConss(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2581
branching rule for original problem in GCG while real branching is in the master
GCG interface methods.
SCIP_VAR * GCGbranchOrigGetOrigvar(GCG_BRANCHDATA *branchdata)
Definition: branch_orig.c:1088
void GCGconsMasterbranchSetOrigcons(SCIP_CONS *cons, SCIP_CONS *origcons)
Definition: cons_masterbranch.c:2483
SCIP_RETCODE SCIPincludeBranchruleEmpty(SCIP *scip)
Definition: branch_empty.c:364
SCIP_CONS ** GCGconsMasterbranchGetOrigbranchConss(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2568
GCG_BRANCHDATA * GCGconsMasterbranchGetBranchdata(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2498
SCIP_RETCODE GCGconsMasterbranchAddCopiedVarBndchg(SCIP *scip, SCIP_CONS *cons, SCIP_VAR *var, GCG_BOUNDTYPE boundtype, SCIP_Real newbound)
Definition: cons_masterbranch.c:2524
static SCIP_RETCODE applyOriginalBranching(SCIP *scip, SCIP_NODE *childnode, SCIP_CONS *masterbranchchildcons)
Definition: branch_empty.c:149
char * GCGconsMasterbranchGetName(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2391
int GCGconsMasterbranchGetNChildconss(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2434
void GCGconsOrigbranchSetMastercons(SCIP_CONS *cons, SCIP_CONS *mastercons)
Definition: cons_origbranch.c:678
static SCIP_RETCODE createBranchNodesInOrigprob(SCIP *scip, SCIP_RESULT *result)
Definition: branch_empty.c:191
branching rule for original problem in GCG
SCIP_NODE * GCGconsMasterbranchGetNode(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2404
static SCIP_RETCODE createOrigbranchConstraint(SCIP *scip, SCIP_NODE *childnode, SCIP_CONS *masterbranchchildcons)
Definition: branch_empty.c:94
SCIP_CONS * GCGconsOrigbranchGetActiveCons(SCIP *scip)
Definition: cons_origbranch.c:529
static SCIP_DECL_BRANCHEXECPS(branchExecpsEmpty)
Definition: branch_empty.c:346
static SCIP_DECL_BRANCHEXECLP(branchExeclpEmpty)
Definition: branch_empty.c:318
SCIP_BRANCHRULE * GCGconsMasterbranchGetBranchrule(SCIP_CONS *cons)
Definition: cons_masterbranch.c:2511
constraint handler for storing the branching decisions at each node of the tree
constraint handler for storing the branching decisions at each node of the tree
SCIP_Real GCGbranchOrigGetNewbound(GCG_BRANCHDATA *branchdata)
Definition: branch_orig.c:1108
SCIP_RETCODE GCGconsMasterbranchReleaseOrigbranchConss(SCIP *masterscip, SCIP *origscip, SCIP_CONS *cons)
Definition: cons_masterbranch.c:2596
GCG_BOUNDTYPE GCGbranchOrigGetBoundtype(GCG_BRANCHDATA *branchdata)
Definition: branch_orig.c:1098
SCIP_RETCODE GCGcreateConsOrigbranch(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_NODE *node, SCIP_CONS *parentcons, SCIP_BRANCHRULE *branchrule, GCG_BRANCHDATA *branchdata)
Definition: cons_origbranch.c:444
GCG relaxator.
SCIP_CONS * GCGconsMasterbranchGetActiveCons(SCIP *scip)
Definition: cons_masterbranch.c:2628
static SCIP_DECL_BRANCHEXECEXT(branchExecextEmpty)
Definition: branch_empty.c:332
Definition: branch_bpstrong.c:109
static SCIP_RETCODE includeSCIPBranchingRules(SCIP *scip)
Definition: branch_empty.c:72