cons_origbranch.c File Reference

Detailed Description

constraint handler for storing the branching decisions at each node of the tree

Author
Gerald Gamrath
Martin Bergner

Definition in file cons_origbranch.c.

#include <assert.h>
#include <string.h>
#include "gcg.h"
#include "branch_generic.h"
#include "cons_masterbranch.h"
#include "cons_origbranch.h"
#include "scip/nodesel_bfs.h"
#include "scip/nodesel_dfs.h"
#include "scip/nodesel_estimate.h"
#include "scip/nodesel_hybridestim.h"
#include "scip/nodesel_restartdfs.h"
#include "scip/branch_allfullstrong.h"
#include "scip/branch_fullstrong.h"
#include "scip/branch_inference.h"
#include "scip/branch_mostinf.h"
#include "scip/branch_leastinf.h"
#include "scip/branch_pscost.h"
#include "scip/branch_random.h"
#include "scip/branch_relpscost.h"
#include "scip/cons_linear.h"

Go to the source code of this file.

Macros

#define CONSHDLR_NAME   "origbranch"
 
#define CONSHDLR_DESC   "store branching decision at nodes of the tree constraint handler"
 
#define CONSHDLR_ENFOPRIORITY   0
 
#define CONSHDLR_CHECKPRIORITY   2000000
 
#define CONSHDLR_EAGERFREQ   100
 
#define CONSHDLR_NEEDSCONS   TRUE
 

Functions

static SCIP_DECL_CONSFREE (consFreeOrigbranch)
 
static SCIP_DECL_CONSINITSOL (consInitsolOrigbranch)
 
static SCIP_DECL_CONSEXITSOL (consExitsolOrigbranch)
 
static SCIP_DECL_CONSEXIT (consExitOrigbranch)
 
static SCIP_DECL_CONSDELETE (consDeleteOrigbranch)
 
static SCIP_DECL_CONSACTIVE (consActiveOrigbranch)
 
static SCIP_DECL_CONSDEACTIVE (consDeactiveOrigbranch)
 
static SCIP_DECL_CONSENFOLP (consEnfolpOrigbranch)
 
static SCIP_DECL_CONSENFORELAX (consEnforeOrigbranch)
 
static SCIP_DECL_CONSENFOPS (consEnfopsOrigbranch)
 
static SCIP_DECL_CONSCHECK (consCheckOrigbranch)
 
static SCIP_DECL_CONSLOCK (consLockOrigbranch)
 
SCIP_RETCODE SCIPincludeConshdlrOrigbranch (SCIP *scip)
 
SCIP_RETCODE GCGcreateConsOrigbranch (SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_NODE *node, SCIP_CONS *parentcons, SCIP_BRANCHRULE *branchrule, GCG_BRANCHDATA *branchdata)
 
SCIP_CONS * GCGconsOrigbranchGetActiveCons (SCIP *scip)
 
void GCGconsOrigbranchGetStack (SCIP *scip, SCIP_CONS ***stack, int *nstackelements)
 
void GCGconsOrigbranchSetBranchdata (SCIP_CONS *cons, GCG_BRANCHDATA *branchdata)
 
GCG_BRANCHDATAGCGconsOrigbranchGetBranchdata (SCIP_CONS *cons)
 
SCIP_BRANCHRULE * GCGconsOrigbranchGetBranchrule (SCIP_CONS *cons)
 
SCIP_NODE * GCGconsOrigbranchGetNode (SCIP_CONS *cons)
 
SCIP_CONS * GCGconsOrigbranchGetParentcons (SCIP_CONS *cons)
 
int GCGconsOrigbranchGetNChildconss (SCIP_CONS *cons)
 
SCIP_CONS * GCGconsOrigbranchGetChildcons (SCIP_CONS *cons, int childnr)
 
void GCGconsOrigbranchSetMastercons (SCIP_CONS *cons, SCIP_CONS *mastercons)
 
SCIP_CONS * GCGconsOrigbranchGetMastercons (SCIP_CONS *cons)
 
SCIP_RETCODE GCGconsOrigbranchAddRootCons (SCIP *scip)
 
void GCGconsOrigbranchCheckConsistency (SCIP *scip)
 

Macro Definition Documentation

#define CONSHDLR_CHECKPRIORITY   2000000

priority of the constraint handler for checking feasibility

Definition at line 65 of file cons_origbranch.c.

Referenced by SCIPincludeConshdlrOrigbranch().

#define CONSHDLR_DESC   "store branching decision at nodes of the tree constraint handler"

Definition at line 63 of file cons_origbranch.c.

Referenced by SCIPincludeConshdlrOrigbranch().

#define CONSHDLR_EAGERFREQ   100

frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only

Definition at line 66 of file cons_origbranch.c.

Referenced by SCIPincludeConshdlrOrigbranch().

#define CONSHDLR_ENFOPRIORITY   0

priority of the constraint handler for constraint enforcing

Definition at line 64 of file cons_origbranch.c.

Referenced by SCIPincludeConshdlrOrigbranch().

#define CONSHDLR_NEEDSCONS   TRUE

should the constraint handler be skipped, if no constraints are available?

Definition at line 69 of file cons_origbranch.c.

Referenced by SCIPincludeConshdlrOrigbranch().

Function Documentation

SCIP_RETCODE GCGconsOrigbranchAddRootCons ( SCIP *  scip)

adds initial constraint to root node

Parameters
scipSCIP data structure

Definition at line 705 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGconsOrigbranchCheckConsistency(), and GCGcreateConsOrigbranch().

Referenced by GCGconsOrigbranchGetMastercons(), and initializeMasterProblemSolve().

void GCGconsOrigbranchCheckConsistency ( SCIP *  scip)

checks the consistency of the origbranch constraints in the problem

Parameters
scipSCIP data structure

Definition at line 746 of file cons_origbranch.c.

References CONSHDLR_NAME, and GCGconsMasterbranchGetOrigcons().

Referenced by GCGconsOrigbranchAddRootCons(), SCIP_DECL_CONSINITSOL(), and SCIP_DECL_NODESELSELECT().

SCIP_CONS* GCGconsOrigbranchGetActiveCons ( SCIP *  scip)

returns the branch orig constraint of the current node, only needs the pointer to scip

Parameters
scipSCIP data structure

Definition at line 524 of file cons_origbranch.c.

References CONSHDLR_NAME, and GCGconsOrigbranchGetStack().

Referenced by createBranchNodesInOrigprob(), createOrigbranchConstraint(), GCGcreateConsOrigbranch(), GCGrelaxNewProbingnodeOrig(), initializeConsdata(), relaxExecGcgDantzigWolfe(), SCIP_DECL_CONSINITSOL(), and SCIP_DECL_NODESELSELECT().

GCG_BRANCHDATA* GCGconsOrigbranchGetBranchdata ( SCIP_CONS *  cons)

returns the branching data for a given origbranch constraint

Parameters
consorigbranch constraint for which the branching data is requested

Definition at line 580 of file cons_origbranch.c.

References GCGconsOrigbranchGetBranchrule().

Referenced by GCGconsOrigbranchSetBranchdata(), relaxExecGcgDantzigWolfe(), SCIP_DECL_BRANCHEXECPS(), and SCIP_DECL_CONSEXITSOL().

SCIP_BRANCHRULE* GCGconsOrigbranchGetBranchrule ( SCIP_CONS *  cons)

returns the branching rule for a given origbranch constraint

Parameters
consorigbranch constraint for which the branchrule is requested

Definition at line 593 of file cons_origbranch.c.

References GCGconsOrigbranchGetNode().

Referenced by GCGconsOrigbranchGetBranchdata(), relaxExecGcgDantzigWolfe(), and SCIP_DECL_BRANCHEXECPS().

SCIP_CONS* GCGconsOrigbranchGetChildcons ( SCIP_CONS *  cons,
int  childnr 
)

returns an origbranch constraint of a child of the node at which the given origbranch constraint is sticking

Parameters
consconstraint
childnrnumber of child

Definition at line 655 of file cons_origbranch.c.

References GCGconsOrigbranchSetMastercons().

Referenced by GCGconsOrigbranchGetNChildconss().

SCIP_CONS* GCGconsOrigbranchGetMastercons ( SCIP_CONS *  cons)

returns the masterbranch constraint of the node in the master program corresponding to the node at which the given origbranchbranch constraint is sticking

Parameters
consorigbranch constraint for which the corresponding masterbranch constraint is requested

Definition at line 690 of file cons_origbranch.c.

References GCGconsOrigbranchAddRootCons().

Referenced by GCGconsMasterbranchCheckConsistency(), GCGconsOrigbranchSetMastercons(), SCIP_DECL_CONSDELETE(), and SCIP_DECL_NODESELSELECT().

int GCGconsOrigbranchGetNChildconss ( SCIP_CONS *  cons)

returns the number of origbranch constraints of the children of the node at which the given origbranch constraint is sticking

Parameters
consconstraint

Definition at line 640 of file cons_origbranch.c.

References GCGconsOrigbranchGetChildcons().

Referenced by GCGconsOrigbranchGetParentcons(), and initializeConsdata().

SCIP_NODE* GCGconsOrigbranchGetNode ( SCIP_CONS *  cons)

returns the node in the B&B tree at which the given origbranch constraint is sticking

Parameters
consorigbranch constraint for which the corresponding node is requested

Definition at line 607 of file cons_origbranch.c.

References GCGconsOrigbranchGetParentcons().

Referenced by createBranchNodesInOrigprob(), GCGconsOrigbranchGetBranchrule(), initializeConsdata(), and SCIP_DECL_NODESELSELECT().

SCIP_CONS* GCGconsOrigbranchGetParentcons ( SCIP_CONS *  cons)

returns the origbranch constraint of the B&B father of the node at which the given origbranch constraint is sticking

Parameters
consorigbranch constraint for which the origbranch constraint of the father node is requested

Definition at line 623 of file cons_origbranch.c.

References GCGconsOrigbranchGetNChildconss().

Referenced by GCGconsMasterbranchCheckConsistency(), GCGconsOrigbranchGetNode(), initializeConsdata(), and SCIP_DECL_NODESELSELECT().

void GCGconsOrigbranchGetStack ( SCIP *  scip,
SCIP_CONS ***  stack,
int *  nstackelements 
)

returns the stack and the number of elements on it

Parameters
scipSCIP data structure
stackreturn value: pointer to the stack
nstackelementsreturn value: pointer to int, for number of elements on the stack

Definition at line 544 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGconsOrigbranchSetBranchdata(), and SCIP_ConshdlrData::stack.

Referenced by GCGconsOrigbranchGetActiveCons(), and SCIP_DECL_BRANCHEXECPS().

void GCGconsOrigbranchSetBranchdata ( SCIP_CONS *  cons,
GCG_BRANCHDATA branchdata 
)

returns the branching data for a given origbranch constraint

Parameters
consorigbranch constraint for which the branching data is requested
branchdatabranching data

Definition at line 566 of file cons_origbranch.c.

References GCGconsOrigbranchGetBranchdata().

Referenced by GCGconsOrigbranchGetStack(), and SCIP_DECL_CONSDELETE().

void GCGconsOrigbranchSetMastercons ( SCIP_CONS *  cons,
SCIP_CONS *  mastercons 
)

sets the masterbranch constraint of the node in the master program corresponding to the node at which the given origbranchbranch constraint is sticking

Parameters
consorigbranch constraint for which the masterbranch constraint should be set
masterconsmasterbranch constraint corresponding to the given origbranch constraint

Definition at line 673 of file cons_origbranch.c.

References GCGconsOrigbranchGetMastercons().

Referenced by createOrigbranchConstraint(), GCGconsOrigbranchGetChildcons(), initializeConsdata(), SCIP_DECL_CONSDELETE(), and SCIP_DECL_CONSINITSOL().

SCIP_RETCODE GCGcreateConsOrigbranch ( SCIP *  scip,
SCIP_CONS **  cons,
const char *  name,
SCIP_NODE *  node,
SCIP_CONS *  parentcons,
SCIP_BRANCHRULE *  branchrule,
GCG_BRANCHDATA branchdata 
)

creates and captures a origbranch constraint

Parameters
scipSCIP data structure
conspointer to hold the created constraint
namename of constraint
nodethe node to which this origbranch constraint belongs
parentconsorigbranch constraint associated with the father node
branchrulethe branching rule that created the b&b node the constraint belongs to
branchdatabranching data storing information about the branching restrictions at the corresponding node

Definition at line 443 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGbranchGenericCreateBranchdata(), and GCGconsOrigbranchGetActiveCons().

Referenced by createOrigbranchConstraint(), GCGconsOrigbranchAddRootCons(), GCGrelaxNewProbingnodeOrig(), and SCIPincludeConshdlrOrigbranch().

static SCIP_DECL_CONSACTIVE ( consActiveOrigbranch  )
static

constraint activation notification method of constraint handler

Definition at line 292 of file cons_origbranch.c.

References CONSHDLR_NAME, and SCIP_DECL_CONSDEACTIVE().

Referenced by SCIP_DECL_CONSDELETE().

static SCIP_DECL_CONSCHECK ( consCheckOrigbranch  )
static

solution check method

Definition at line 389 of file cons_origbranch.c.

References SCIP_DECL_CONSLOCK().

Referenced by SCIP_DECL_CONSENFOPS().

static SCIP_DECL_CONSDEACTIVE ( consDeactiveOrigbranch  )
static

constraint deactivation notification method of constraint handler

Definition at line 333 of file cons_origbranch.c.

References CONSHDLR_NAME, and SCIP_DECL_CONSENFOLP().

Referenced by SCIP_DECL_CONSACTIVE().

static SCIP_DECL_CONSDELETE ( consDeleteOrigbranch  )
static

frees specific constraint data

Definition at line 218 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGconsMasterbranchGetOrigcons(), GCGconsMasterbranchSetOrigcons(), and SCIP_DECL_CONSACTIVE().

Referenced by SCIP_DECL_CONSEXIT().

static SCIP_DECL_CONSENFOLP ( consEnfolpOrigbranch  )
static

lp solution enforcement method

Definition at line 361 of file cons_origbranch.c.

References SCIP_DECL_CONSENFORELAX().

Referenced by SCIP_DECL_CONSDEACTIVE().

static SCIP_DECL_CONSENFOPS ( consEnfopsOrigbranch  )
static

pseudo solution enforcement method

Definition at line 380 of file cons_origbranch.c.

References SCIP_DECL_CONSCHECK().

Referenced by SCIP_DECL_CONSENFORELAX().

static SCIP_DECL_CONSENFORELAX ( consEnforeOrigbranch  )
static

lp solution enforcement method

Definition at line 370 of file cons_origbranch.c.

References SCIP_DECL_CONSENFOPS().

Referenced by SCIP_DECL_CONSENFOLP().

static SCIP_DECL_CONSEXIT ( consExitOrigbranch  )
static

exit method of constraint handler (called before problem is free transformed)

Definition at line 198 of file cons_origbranch.c.

References SCIP_DECL_CONSDELETE().

Referenced by SCIP_DECL_CONSEXITSOL().

static SCIP_DECL_CONSEXITSOL ( consExitsolOrigbranch  )
static

solving process deinitialization method of constraint handler (called before branch and bound process data is freed)

Definition at line 163 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGconsOrigbranchGetBranchdata(), and SCIP_DECL_CONSEXIT().

Referenced by SCIP_DECL_CONSINITSOL().

static SCIP_DECL_CONSFREE ( consFreeOrigbranch  )
static

destructor of constraint handler to free constraint handler data (called when SCIP is exiting)

Definition at line 104 of file cons_origbranch.c.

References CONSHDLR_NAME, and SCIP_DECL_CONSINITSOL().

static SCIP_DECL_CONSINITSOL ( consInitsolOrigbranch  )
static

solving process initialization method of constraint handler (called when branch and bound process is about to begin)

Definition at line 132 of file cons_origbranch.c.

References CONSHDLR_NAME, GCGconsOrigbranchCheckConsistency(), and SCIP_DECL_CONSEXITSOL().

Referenced by SCIP_DECL_CONSFREE().

static SCIP_DECL_CONSLOCK ( consLockOrigbranch  )
static

variable lock method

Definition at line 398 of file cons_origbranch.c.

References SCIPincludeConshdlrOrigbranch().

Referenced by SCIP_DECL_CONSCHECK().

SCIP_RETCODE SCIPincludeConshdlrOrigbranch ( SCIP *  scip)

creates the handler for origbranch constraints and includes it in SCIP

Parameters
scipSCIP data structure

Definition at line 409 of file cons_origbranch.c.

References CONSHDLR_CHECKPRIORITY, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, and GCGcreateConsOrigbranch().

Referenced by SCIP_DECL_CONSLOCK(), and SCIPincludeGcgPlugins().