Detailed Description
constraint handler for storing the branching decisions at each node of the tree
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.
Data Structures | |
struct | SCIP_ConsData |
struct | SCIP_ConshdlrData |
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_BRANCHDATA * | GCGconsOrigbranchGetBranchdata (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
◆ CONSHDLR_NAME
#define CONSHDLR_NAME "origbranch" |
Definition at line 62 of file cons_origbranch.c.
◆ CONSHDLR_DESC
#define CONSHDLR_DESC "store branching decision at nodes of the tree constraint handler" |
Definition at line 63 of file cons_origbranch.c.
◆ CONSHDLR_ENFOPRIORITY
#define CONSHDLR_ENFOPRIORITY 0 |
priority of the constraint handler for constraint enforcing
Definition at line 64 of file cons_origbranch.c.
◆ CONSHDLR_CHECKPRIORITY
#define CONSHDLR_CHECKPRIORITY 2000000 |
priority of the constraint handler for checking feasibility
Definition at line 65 of file cons_origbranch.c.
◆ CONSHDLR_EAGERFREQ
#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.
◆ CONSHDLR_NEEDSCONS
#define CONSHDLR_NEEDSCONS TRUE |
should the constraint handler be skipped, if no constraints are available?
Definition at line 68 of file cons_origbranch.c.
Function Documentation
◆ SCIP_DECL_CONSFREE()
|
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.
◆ SCIP_DECL_CONSINITSOL()
|
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, and GCGconsOrigbranchCheckConsistency().
◆ SCIP_DECL_CONSEXITSOL()
|
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, and GCGconsOrigbranchGetBranchdata().
◆ SCIP_DECL_CONSEXIT()
|
static |
exit method of constraint handler (called before problem is free transformed)
Definition at line 198 of file cons_origbranch.c.
◆ SCIP_DECL_CONSDELETE()
|
static |
frees specific constraint data
Definition at line 218 of file cons_origbranch.c.
References CONSHDLR_NAME, GCGconsMasterbranchGetOrigcons(), and GCGconsMasterbranchSetOrigcons().
◆ SCIP_DECL_CONSACTIVE()
|
static |
constraint activation notification method of constraint handler
Definition at line 293 of file cons_origbranch.c.
References CONSHDLR_NAME.
◆ SCIP_DECL_CONSDEACTIVE()
|
static |
constraint deactivation notification method of constraint handler
Definition at line 334 of file cons_origbranch.c.
References CONSHDLR_NAME.
◆ SCIP_DECL_CONSENFOLP()
|
static |
lp solution enforcement method
Definition at line 362 of file cons_origbranch.c.
◆ SCIP_DECL_CONSENFORELAX()
|
static |
lp solution enforcement method
Definition at line 371 of file cons_origbranch.c.
◆ SCIP_DECL_CONSENFOPS()
|
static |
pseudo solution enforcement method
Definition at line 381 of file cons_origbranch.c.
◆ SCIP_DECL_CONSCHECK()
|
static |
solution check method
Definition at line 390 of file cons_origbranch.c.
◆ SCIP_DECL_CONSLOCK()
|
static |
variable lock method
Definition at line 399 of file cons_origbranch.c.
◆ SCIPincludeConshdlrOrigbranch()
SCIP_RETCODE SCIPincludeConshdlrOrigbranch | ( | SCIP * | scip | ) |
creates the handler for origbranch constraints and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 410 of file cons_origbranch.c.
References CONSHDLR_CHECKPRIORITY, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_NAME, and CONSHDLR_NEEDSCONS.
Referenced by SCIPincludeGcgPlugins().
◆ GCGcreateConsOrigbranch()
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
-
scip SCIP data structure cons pointer to hold the created constraint name name of constraint node the node to which this origbranch constraint belongs parentcons origbranch constraint associated with the father node branchrule the branching rule that created the b&b node the constraint belongs to branchdata branching data storing information about the branching restrictions at the corresponding node
Definition at line 444 of file cons_origbranch.c.
References CONSHDLR_NAME, and GCGbranchGenericCreateBranchdata().
Referenced by createOrigbranchConstraint(), GCGconsOrigbranchAddRootCons(), and GCGrelaxNewProbingnodeOrig().
◆ GCGconsOrigbranchGetActiveCons()
SCIP_CONS* GCGconsOrigbranchGetActiveCons | ( | SCIP * | scip | ) |
returns the branch orig constraint of the current node, only needs the pointer to scip
- Parameters
-
scip SCIP data structure
Definition at line 529 of file cons_origbranch.c.
References CONSHDLR_NAME.
Referenced by createBranchNodesInOrigprob(), createOrigbranchConstraint(), GCGrelaxNewProbingnodeOrig(), initializeConsdata(), relaxExecGcgDantzigWolfe(), SCIP_DECL_CONSINITSOL(), and SCIP_DECL_NODESELSELECT().
◆ GCGconsOrigbranchGetStack()
void GCGconsOrigbranchGetStack | ( | SCIP * | scip, |
SCIP_CONS *** | stack, | ||
int * | nstackelements | ||
) |
returns the stack and the number of elements on it
- Parameters
-
scip SCIP data structure stack return value: pointer to the stack nstackelements return value: pointer to int, for number of elements on the stack
Definition at line 549 of file cons_origbranch.c.
References CONSHDLR_NAME.
Referenced by SCIP_DECL_BRANCHEXECPS().
◆ GCGconsOrigbranchSetBranchdata()
void GCGconsOrigbranchSetBranchdata | ( | SCIP_CONS * | cons, |
GCG_BRANCHDATA * | branchdata | ||
) |
returns the branching data for a given origbranch constraint
- Parameters
-
cons origbranch constraint for which the branching data is requested branchdata branching data
Definition at line 571 of file cons_origbranch.c.
Referenced by SCIP_DECL_CONSDELETE().
◆ GCGconsOrigbranchGetBranchdata()
GCG_BRANCHDATA* GCGconsOrigbranchGetBranchdata | ( | SCIP_CONS * | cons | ) |
returns the branching data for a given origbranch constraint
- Parameters
-
cons origbranch constraint for which the branching data is requested
Definition at line 585 of file cons_origbranch.c.
Referenced by relaxExecGcgDantzigWolfe(), SCIP_DECL_BRANCHEXECPS(), and SCIP_DECL_CONSEXITSOL().
◆ GCGconsOrigbranchGetBranchrule()
SCIP_BRANCHRULE* GCGconsOrigbranchGetBranchrule | ( | SCIP_CONS * | cons | ) |
returns the branching rule for a given origbranch constraint
- Parameters
-
cons origbranch constraint for which the branchrule is requested
Definition at line 598 of file cons_origbranch.c.
Referenced by relaxExecGcgDantzigWolfe(), and SCIP_DECL_BRANCHEXECPS().
◆ GCGconsOrigbranchGetNode()
SCIP_NODE* GCGconsOrigbranchGetNode | ( | SCIP_CONS * | cons | ) |
returns the node in the B&B tree at which the given origbranch constraint is sticking
- Parameters
-
cons origbranch constraint for which the corresponding node is requested
Definition at line 612 of file cons_origbranch.c.
Referenced by createBranchNodesInOrigprob(), initializeConsdata(), and SCIP_DECL_NODESELSELECT().
◆ GCGconsOrigbranchGetParentcons()
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
-
cons origbranch constraint for which the origbranch constraint of the father node is requested
Definition at line 628 of file cons_origbranch.c.
Referenced by GCGconsMasterbranchCheckConsistency(), initializeConsdata(), and SCIP_DECL_NODESELSELECT().
◆ GCGconsOrigbranchGetNChildconss()
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
-
cons constraint
Definition at line 645 of file cons_origbranch.c.
Referenced by initializeConsdata().
◆ GCGconsOrigbranchGetChildcons()
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
-
cons constraint childnr number of child
Definition at line 660 of file cons_origbranch.c.
◆ GCGconsOrigbranchSetMastercons()
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
-
cons origbranch constraint for which the masterbranch constraint should be set mastercons masterbranch constraint corresponding to the given origbranch constraint
Definition at line 678 of file cons_origbranch.c.
Referenced by createOrigbranchConstraint(), initializeConsdata(), SCIP_DECL_CONSDELETE(), and SCIP_DECL_CONSINITSOL().
◆ GCGconsOrigbranchGetMastercons()
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
-
cons origbranch constraint for which the corresponding masterbranch constraint is requested
Definition at line 695 of file cons_origbranch.c.
Referenced by GCGconsMasterbranchCheckConsistency(), SCIP_DECL_CONSDELETE(), and SCIP_DECL_NODESELSELECT().
◆ GCGconsOrigbranchAddRootCons()
SCIP_RETCODE GCGconsOrigbranchAddRootCons | ( | SCIP * | scip | ) |
adds initial constraint to root node
- Parameters
-
scip SCIP data structure
Definition at line 710 of file cons_origbranch.c.
References CONSHDLR_NAME, GCGconsOrigbranchCheckConsistency(), and GCGcreateConsOrigbranch().
Referenced by initializeMasterProblemSolve().
◆ GCGconsOrigbranchCheckConsistency()
void GCGconsOrigbranchCheckConsistency | ( | SCIP * | scip | ) |
checks the consistency of the origbranch constraints in the problem
- Parameters
-
scip SCIP data structure
Definition at line 751 of file cons_origbranch.c.
References CONSHDLR_NAME, and GCGconsMasterbranchGetOrigcons().
Referenced by GCGconsOrigbranchAddRootCons(), SCIP_DECL_CONSINITSOL(), and SCIP_DECL_NODESELSELECT().