Detailed Description
branching rule based on vanderbeck's generic branching scheme
Definition in file branch_generic.c.
#include "branch_generic.h"
#include "relax_gcg.h"
#include "cons_masterbranch.h"
#include "cons_origbranch.h"
#include "pricer_gcg.h"
#include "scip/cons_linear.h"
#include "type_branchgcg.h"
#include "gcg.h"
#include "cons_integralorig.h"
#include "gcgsort.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 <assert.h>
#include <string.h>
Go to the source code of this file.
Data Structures | |
struct | GCG_BranchData |
struct | GCG_Record |
Macros | |
#define | BRANCHRULE_NAME "generic" |
#define | BRANCHRULE_DESC "generic branching rule by Vanderbeck" |
#define | BRANCHRULE_PRIORITY -100 |
#define | BRANCHRULE_MAXDEPTH -1 |
#define | BRANCHRULE_MAXBOUNDDIST 1.0 |
#define | EVENTHDLR_NAME "genericbranchvaradd" |
#define | EVENTHDLR_DESC "event handler for adding a new generated mastervar into the right branching constraints by using Vanderbecks generic branching scheme" |
#define | branchFreeGeneric NULL |
#define | branchExitGeneric NULL |
#define | branchInitsolGeneric NULL |
#define | branchExitsolGeneric NULL |
Typedefs | |
typedef struct GCG_Record | GCG_RECORD |
Functions | |
static SCIP_Real | getGeneratorEntry (SCIP_VAR *mastervar, SCIP_VAR *origvar) |
static SCIP_RETCODE | addVarToMasterbranch (SCIP *scip, SCIP_VAR *mastervar, GCG_BRANCHDATA *branchdata, SCIP_Bool *added) |
static SCIP_RETCODE | createDirectBranchingCons (SCIP *scip, SCIP_NODE *node, GCG_BRANCHDATA *branchdata) |
static SCIP_RETCODE | createBranchingCons (SCIP *scip, SCIP_NODE *node, GCG_BRANCHDATA *branchdata) |
static | SCIP_DECL_EVENTINITSOL (eventInitsolGenericbranchvaradd) |
static | SCIP_DECL_EVENTEXITSOL (eventExitsolGenericbranchvaradd) |
static | SCIP_DECL_EVENTEXEC (eventExecGenericbranchvaradd) |
static SCIP_RETCODE | InitIndexSet (SCIP *scip, SCIP_VAR **F, int Fsize, SCIP_VAR ***IndexSet, int *IndexSetSize) |
static SCIP_Real | GetMedian (SCIP *scip, SCIP_Real *array, int arraysize, SCIP_Real min) |
static | GCG_DECL_SORTPTRCOMP (ptrcomp) |
static SCIP_RETCODE | LexicographicSort (SCIP *scip, GCG_STRIP **array, int arraysize) |
static int | ILOcomp (SCIP *scip, SCIP_VAR *mastervar1, SCIP_VAR *mastervar2, GCG_COMPSEQUENCE **C, int NBoundsequences, int *sequencesizes, int p) |
static | SCIP_DECL_SORTPTRCOMP (ptrilocomp) |
static SCIP_RETCODE | InducedLexicographicSort (SCIP *scip, GCG_STRIP **array, int arraysize, GCG_COMPSEQUENCE **C, int NBoundsequences, int *sequencesizes) |
static SCIP_RETCODE | partition (SCIP *scip, SCIP_VAR **J, int *Jsize, SCIP_Longint *priority, SCIP_VAR **F, int Fsize, SCIP_VAR **origvar, SCIP_Real *median) |
static SCIP_RETCODE | addToRecord (SCIP *scip, GCG_RECORD *record, GCG_COMPSEQUENCE *S, int Ssize) |
static SCIP_RETCODE | Separate (SCIP *scip, SCIP_VAR **F, int Fsize, SCIP_VAR **IndexSet, int IndexSetSize, GCG_COMPSEQUENCE *S, int Ssize, GCG_RECORD *record) |
static SCIP_RETCODE | ChoseS (SCIP *scip, GCG_RECORD **record, GCG_COMPSEQUENCE **S, int *Ssize) |
static int | computeNewSequence (int Csize, int p, SCIP_VAR *origvar, int *sequencesizes, GCG_COMPSEQUENCE **C, GCG_COMPSEQUENCE **CopyC, int *newsequencesizes, GCG_COMPSENSE sense) |
static double | computeAlpha (SCIP *scip, int Fsize, GCG_COMPSENSE isense, double ivalue, SCIP_VAR *origvar, SCIP_VAR **F) |
static SCIP_RETCODE | Explore (SCIP *scip, GCG_COMPSEQUENCE **C, int Csize, int *sequencesizes, int p, SCIP_VAR **F, int Fsize, SCIP_VAR **IndexSet, int IndexSetSize, GCG_COMPSEQUENCE **S, int *Ssize, GCG_RECORD *record) |
static SCIP_RETCODE | ChooseSeparateMethod (SCIP *scip, SCIP_VAR **F, int Fsize, GCG_COMPSEQUENCE **S, int *Ssize, GCG_COMPSEQUENCE **C, int Csize, int *CompSizes, int blocknr, SCIP_BRANCHRULE *branchrule, SCIP_RESULT *result, int **checkedblocks, int *ncheckedblocks, GCG_STRIP ****checkedblockssortstrips, int **checkedblocksnsortstrips) |
static | GCG_DECL_BRANCHDATADELETE (branchDataDeleteGeneric) |
static SCIP_Bool | checkchildconsS (SCIP *scip, SCIP_Real lhs, GCG_COMPSEQUENCE *childS, int childSsize, SCIP_CONS *parentcons, int childBlocknr) |
static SCIP_Bool | pruneChildNodeByDominanceGeneric (SCIP *scip, SCIP_Real lhs, GCG_COMPSEQUENCE *childS, int childSsize, SCIP_CONS *masterbranchcons, int childBlocknr) |
static SCIP_RETCODE | initNodeBranchdata (SCIP *scip, GCG_BRANCHDATA **nodebranchdata, int blocknr) |
static SCIP_RETCODE | createChildNodesGeneric (SCIP *scip, SCIP_BRANCHRULE *branchrule, GCG_COMPSEQUENCE *S, int Ssize, int blocknr, SCIP_CONS *masterbranchcons, SCIP_RESULT *result) |
static SCIP_RETCODE | branchDirectlyOnMastervar (SCIP *scip, SCIP_VAR *mastervar, SCIP_BRANCHRULE *branchrule) |
SCIP_RETCODE | GCGbranchGenericInitbranch (SCIP *masterscip, SCIP_BRANCHRULE *branchrule, SCIP_RESULT *result, int **checkedblocks, int *ncheckedblocks, GCG_STRIP ****checkedblockssortstrips, int **checkedblocksnsortstrips) |
static SCIP_RETCODE | GCGincludeMasterCopyPlugins (SCIP *scip) |
static | SCIP_DECL_BRANCHCOPY (branchCopyGeneric) |
static | GCG_DECL_BRANCHACTIVEMASTER (branchActiveMasterGeneric) |
static | GCG_DECL_BRANCHDEACTIVEMASTER (branchDeactiveMasterGeneric) |
static | GCG_DECL_BRANCHPROPMASTER (branchPropMasterGeneric) |
static | SCIP_DECL_BRANCHEXECLP (branchExeclpGeneric) |
static | SCIP_DECL_BRANCHEXECEXT (branchExecextGeneric) |
static | SCIP_DECL_BRANCHEXECPS (branchExecpsGeneric) |
static | SCIP_DECL_BRANCHINIT (branchInitGeneric) |
SCIP_RETCODE | SCIPincludeBranchruleGeneric (SCIP *scip) |
SCIP_RETCODE | GCGbranchGenericCreateBranchdata (SCIP *scip, GCG_BRANCHDATA **branchdata) |
GCG_COMPSEQUENCE * | GCGbranchGenericBranchdataGetConsS (GCG_BRANCHDATA *branchdata) |
int | GCGbranchGenericBranchdataGetConsSsize (GCG_BRANCHDATA *branchdata) |
int | GCGbranchGenericBranchdataGetConsblocknr (GCG_BRANCHDATA *branchdata) |
SCIP_CONS * | GCGbranchGenericBranchdataGetMastercons (GCG_BRANCHDATA *branchdata) |
SCIP_Bool | GCGisBranchruleGeneric (SCIP_BRANCHRULE *branchrule) |
Macro Definition Documentation
◆ BRANCHRULE_NAME
#define BRANCHRULE_NAME "generic" |
Definition at line 69 of file branch_generic.c.
◆ BRANCHRULE_DESC
#define BRANCHRULE_DESC "generic branching rule by Vanderbeck" |
Definition at line 70 of file branch_generic.c.
◆ BRANCHRULE_PRIORITY
#define BRANCHRULE_PRIORITY -100 |
Definition at line 71 of file branch_generic.c.
◆ BRANCHRULE_MAXDEPTH
#define BRANCHRULE_MAXDEPTH -1 |
Definition at line 72 of file branch_generic.c.
◆ BRANCHRULE_MAXBOUNDDIST
#define BRANCHRULE_MAXBOUNDDIST 1.0 |
Definition at line 73 of file branch_generic.c.
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "genericbranchvaradd" |
Definition at line 76 of file branch_generic.c.
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "event handler for adding a new generated mastervar into the right branching constraints by using Vanderbecks generic branching scheme" |
Definition at line 77 of file branch_generic.c.
◆ branchFreeGeneric
#define branchFreeGeneric NULL |
Definition at line 108 of file branch_generic.c.
◆ branchExitGeneric
#define branchExitGeneric NULL |
Definition at line 109 of file branch_generic.c.
◆ branchInitsolGeneric
#define branchInitsolGeneric NULL |
Definition at line 110 of file branch_generic.c.
◆ branchExitsolGeneric
#define branchExitsolGeneric NULL |
Definition at line 111 of file branch_generic.c.
Typedef Documentation
◆ GCG_RECORD
typedef struct GCG_Record GCG_RECORD |
Definition at line 101 of file branch_generic.c.
Function Documentation
◆ getGeneratorEntry()
|
static |
computes the generator of mastervar for the entry in origvar
- Returns
- entry of the generator corresponding to origvar
- Parameters
-
mastervar current mastervariable origvar corresponding origvar
Definition at line 117 of file branch_generic.c.
References GCGmasterVarGetNOrigvars(), GCGmasterVarGetOrigvals(), and GCGmasterVarGetOrigvars().
Referenced by addVarToMasterbranch(), computeAlpha(), createChildNodesGeneric(), Explore(), GCG_DECL_SORTPTRCOMP(), ILOcomp(), partition(), and Separate().
◆ addVarToMasterbranch()
|
static |
adds a variable to a branching constraint
- Parameters
-
scip SCIP data structure mastervar the variable to add branchdata branching data structure where the variable should be added added whether the variable was added
Definition at line 147 of file branch_generic.c.
References GCG_COMPSENSE_GE, GCGbranchGenericBranchdataGetConsblocknr(), GCGbranchGenericBranchdataGetConsS(), GCGbranchGenericBranchdataGetConsSsize(), GCGbranchGenericBranchdataGetMastercons(), GCGisMasterVarInBlock(), GCGvarGetBlock(), and getGeneratorEntry().
Referenced by GCG_DECL_BRANCHACTIVEMASTER(), and SCIP_DECL_EVENTEXEC().
◆ createDirectBranchingCons()
|
static |
creates the constraint for branching directly on a master variable
- Parameters
-
scip SCIP data structure node node to add constraint branchdata branching data structure
Definition at line 206 of file branch_generic.c.
References ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_BranchData::consblocknr, GCG_BranchData::consS, GCG_BranchData::consSsize, GCG_COMPSENSE_GE, GCGvarIsMaster(), GCG_BranchData::mastercons, and ComponentBoundSequence::sense.
Referenced by branchDirectlyOnMastervar().
◆ createBranchingCons()
|
static |
creates the constraint for branching directly on a master variable
- Parameters
-
scip SCIP data structure node node to add constraint branchdata branching data structure
Definition at line 240 of file branch_generic.c.
References GCG_BranchData::consSsize, GCG_BranchData::lhs, and GCG_BranchData::mastercons.
Referenced by createChildNodesGeneric().
◆ SCIP_DECL_EVENTINITSOL()
|
static |
solving process initialization method of event handler (called when branch and bound process is about to begin)
Definition at line 266 of file branch_generic.c.
References EVENTHDLR_NAME.
◆ SCIP_DECL_EVENTEXITSOL()
|
static |
solving process deinitialization method of event handler (called before branch and bound process data is freed)
Definition at line 280 of file branch_generic.c.
References EVENTHDLR_NAME.
◆ SCIP_DECL_EVENTEXEC()
|
static |
execution method of event handler
Definition at line 294 of file branch_generic.c.
References addVarToMasterbranch(), EVENTHDLR_NAME, GCGbranchGenericBranchdataGetConsblocknr(), GCGbranchGenericBranchdataGetConsS(), GCGbranchGenericBranchdataGetConsSsize(), GCGconsMasterbranchGetActiveCons(), GCGconsMasterbranchGetBranchdata(), GCGconsMasterbranchGetBranchrule(), GCGconsMasterbranchGetParentcons(), GCGisBranchruleGeneric(), GCGmasterGetOrigprob(), GCGmasterVarIsLinking(), GCGvarGetBlock(), and GCGvarIsMaster().
◆ InitIndexSet()
|
static |
method for initializing the set of respected indices
- Parameters
-
scip SCIP data structure F array of fractional mastervars Fsize number of fractional mastervars IndexSet set to initialize IndexSetSize size of the index set
Definition at line 376 of file branch_generic.c.
References GCGmasterVarGetNOrigvars(), and GCGmasterVarGetOrigvars().
Referenced by ChooseSeparateMethod().
◆ GetMedian()
|
static |
method for calculating the median over all fractional components values using the quickselect algorithm (or a variant of it)
This method will change the array
- Returns
- median or if the median is the minimum return ceil(arithm middle)
- Parameters
-
scip SCIP data structure array array to find the median in (will be destroyed) arraysize size of the array min minimum of array
Definition at line 458 of file branch_generic.c.
Referenced by partition(), and Separate().
◆ GCG_DECL_SORTPTRCOMP()
|
static |
comparefunction for lexicographical sort
Definition at line 527 of file branch_generic.c.
References GCGmasterVarIsLinking(), GCGvarGetBlock(), getGeneratorEntry(), and GCG_Strip::mastervar.
◆ LexicographicSort()
|
static |
lexicographical sort using scipsort This method will change the array
- Parameters
-
scip SCIP data structure array array to sort (will be changed) arraysize size of the array
Definition at line 580 of file branch_generic.c.
References GCGsortPtr().
Referenced by InducedLexicographicSort().
◆ ILOcomp()
|
static |
compare function for ILO: returns 1 if bd1 < bd2 else -1 with respect to bound sequence
- Parameters
-
scip SCIP data structure mastervar1 first strip mastervar2 second strip C component bound sequence to compare with NBoundsequences size of the bound sequence sequencesizes sizes of the bound sequences p current depth in C
Definition at line 600 of file branch_generic.c.
References ComponentBoundSequence::bound, GCG_Strip::C, ComponentBoundSequence::component, GCG_Strip::Csize, GCG_COMPSENSE_GE, getGeneratorEntry(), GCG_Strip::mastervar, GCG_Strip::scip, GCG_Strip::sequencesizes, and GCG_Record::sequencesizes.
Referenced by SCIP_DECL_SORTPTRCOMP().
◆ SCIP_DECL_SORTPTRCOMP()
|
static |
comparefunction for induced lexicographical sort
Definition at line 779 of file branch_generic.c.
References GCG_Strip::C, GCG_Strip::Csize, ILOcomp(), GCG_Strip::mastervar, GCG_Strip::scip, and GCG_Strip::sequencesizes.
◆ InducedLexicographicSort()
|
static |
induced lexicographical sort
- Parameters
-
scip SCIP ptr array array of strips to sort in ILO arraysize size of the array C current set o comp bound sequences NBoundsequences size of C sequencesizes sizes of the sequences in C
Definition at line 795 of file branch_generic.c.
References GCG_Strip::C, GCG_Strip::Csize, LexicographicSort(), GCG_Strip::scip, GCG_Strip::sequencesizes, and GCG_Record::sequencesizes.
Referenced by ChooseSeparateMethod().
◆ partition()
|
static |
partitions the strip according to the priority
- Parameters
-
scip SCIP data structure J array of variables which belong to the discriminating components Jsize pointer to the number of discriminating components priority branching priorities F set of fractional solutions satisfying bounds Fsize size of list of fractional solutions satisfying bounds origvar pointer to store the variable which belongs to a discriminating component with maximum priority median pointer to store the median of fractional solutions satisfying bounds
Definition at line 832 of file branch_generic.c.
References getGeneratorEntry(), and GetMedian().
Referenced by gcg::DETPROBDATA::addConsPartition(), gcg::DETPROBDATA::addVarPartition(), gcg::GraphAlgorithms< T >::computekMetric(), gcg::GraphAlgorithms< T >::computeMincut(), gcg::GraphAlgorithms< T >::computeSoed(), gcg::ColumnGraph< T >::createDecompFromPartition(), gcg::RowGraph< T >::createDecompFromPartition(), gcg::HyperrowcolGraph< T >::createDecompFromPartition(), gcg::HyperrowGraph< T >::createDecompFromPartition(), gcg::HypercolGraph< T >::createDecompFromPartition(), gcg::RowGraph< T >::createPartialdecFromPartition(), gcg::HyperrowcolGraph< T >::createPartialdecFromPartition(), gcg::HyperrowGraph< T >::createPartialdecFromPartition(), gcg::HypercolGraph< T >::createPartialdecFromPartition(), DEC_DECL_CONSCLASSIFY(), DEC_DECL_VARCLASSIFY(), GCGconshdlrDecompCalcCandidatesNBlocks(), GCGwriteCls(), gcg::DETPROBDATA::printPartitionInformation(), gcg::Hypergraph< T >::readPartition(), gcg::Graph< T >::readPartition(), Separate(), gcg::PARTIALDECOMP::setConsPartitionStatistics(), gcg::Hypergraph< T >::setPartition(), gcg::Graph< T >::setPartition(), and gcg::PARTIALDECOMP::setVarPartitionStatistics().
◆ addToRecord()
|
static |
add identified sequence to record
- Parameters
-
scip SCIP data structure record record of identified sequences S bound restriction sequence Ssize size of bound restriction sequence
Definition at line 908 of file branch_generic.c.
References ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_Record::record, and ComponentBoundSequence::sense.
Referenced by Explore(), and Separate().
◆ Separate()
|
static |
separation at the root node
- Parameters
-
scip SCIP data structure F fractional strips respecting bound restrictions Fsize size of the strips IndexSet index set IndexSetSize size of index set S ordered set of bound restrictions Ssize size of the ordered set record identified bound sequences
Definition at line 948 of file branch_generic.c.
References addToRecord(), ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_COMPSENSE_GE, GCG_COMPSENSE_LT, GCGgetMasterprob(), getGeneratorEntry(), GetMedian(), partition(), GCG_Record::record, and ComponentBoundSequence::sense.
Referenced by ChooseSeparateMethod(), and Explore().
◆ ChoseS()
|
static |
choose a component bound sequence to create branching
- Parameters
-
scip SCIP data structure record candidate of bound sequences S pointer to return chosen bound sequence Ssize size of the chosen bound sequence
Definition at line 1252 of file branch_generic.c.
Referenced by ChooseSeparateMethod().
◆ computeNewSequence()
|
static |
updates the new set of sequences C in CopyC and the corresponding size array newsequencesizes returns the size of CopyC
- Parameters
-
Csize size of the sequence p index of node origvar another index generatorentry sequencesizes size of the sequences C original sequence CopyC new sequence newsequencesizes output parameter for the new sequence sense sense of the comparison
Definition at line 1324 of file branch_generic.c.
References GCG_Record::sequencesizes.
Referenced by Explore().
◆ computeAlpha()
|
static |
auxilary function to compute alpha for given index
- Parameters
-
scip SCIP data structure Fsize size of F isense sense of the bound for origvar ivalue value of the bound for origvar origvar index of the variable F current fractional mastervars
Definition at line 1356 of file branch_generic.c.
References GCG_COMPSENSE_GE, GCG_COMPSENSE_LT, GCGgetMasterprob(), and getGeneratorEntry().
Referenced by Explore().
◆ Explore()
|
static |
separation at a node other than the root node
- Parameters
-
scip SCIP data structure C array of component bounds sequences Csize number of component bounds sequences sequencesizes array of sizes of component bounds sequences p depth of recursive call F strip of fractional columns Fsize size of the strips IndexSet array of original variables which belong to the fractional master columns IndexSetSize number of original variables which belong to fractional master columns. Note that IndexSetSize >= Fsize S component sequences Ssize length of component sequences record array of sets of component bounds which we might use for separation
Definition at line 1386 of file branch_generic.c.
References addToRecord(), ComponentBoundSequence::bound, ComponentBoundSequence::component, computeAlpha(), computeNewSequence(), GCG_COMPSENSE_GE, GCG_COMPSENSE_LT, GCGgetMasterprob(), getGeneratorEntry(), GCG_Record::record, ComponentBoundSequence::sense, Separate(), and GCG_Record::sequencesizes.
Referenced by ChooseSeparateMethod().
◆ ChooseSeparateMethod()
|
static |
callup method for seperate decides whether Separate or Explore should be done
- Parameters
-
scip SCIP data structure F strip of fractional columns Fsize size of the strips S array of existing bound sequences Ssize size of existing bound sequences C array of component bounds sequences Csize number of component bounds sequences CompSizes array of sizes of component bounds sequences blocknr id of the pricing problem (or block) in which we want to branch branchrule branching rule result pointer to store the result of the branching call checkedblocks array to store which blocks have been checked ncheckedblocks number of blocks that have beend checked checkedblockssortstrips sorted strips of checked blocks checkedblocksnsortstrips size of the strips
Definition at line 1695 of file branch_generic.c.
References GCG_Strip::C, ChoseS(), GCG_Strip::Csize, Explore(), GCGbranchGenericInitbranch(), GCGgetMasterprob(), GCGgetNPricingprobs(), GCGisMasterVarInBlock(), InducedLexicographicSort(), InitIndexSet(), GCG_Strip::mastervar, GCG_Record::record, GCG_Strip::scip, Separate(), and GCG_Strip::sequencesizes.
Referenced by GCGbranchGenericInitbranch().
◆ GCG_DECL_BRANCHDATADELETE()
|
static |
callback deletion method for branching data
Definition at line 1875 of file branch_generic.c.
References GCGgetMasterprob().
◆ checkchildconsS()
|
static |
check method for pruning ChildS directly on childnodes
- Returns
- TRUE if node is pruned
- Parameters
-
scip SCIP data structure lhs lhs for childnode which is checkes to be pruned childS component bound sequence defining the childnode childSsize size of component bound sequence parentcons constraint of parent node in B&B tree childBlocknr number of the block for the child node
Definition at line 1920 of file branch_generic.c.
References ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_BranchData::consblocknr, GCG_BranchData::consS, GCG_BranchData::consSsize, GCGconsMasterbranchGetBranchdata(), GCGconsMasterbranchGetBranchrule(), GCGconsMasterbranchGetChildcons(), GCGconsMasterbranchGetNChildconss(), GCG_BranchData::lhs, and ComponentBoundSequence::sense.
Referenced by pruneChildNodeByDominanceGeneric().
◆ pruneChildNodeByDominanceGeneric()
|
static |
check method for pruning ChildS indirectly by parentnodes retrun TRUE if node is pruned
- Parameters
-
scip SCIP data structure lhs lhs for childnode which is checkes to be pruned childS Component Bound Sequence defining the childnode childSsize size of component bound sequence masterbranchcons master branching constraint childBlocknr number of the block for the childnode
Definition at line 1981 of file branch_generic.c.
References checkchildconsS(), GCGconsMasterbranchGetBranchdata(), GCGconsMasterbranchGetBranchrule(), and GCGconsMasterbranchGetParentcons().
Referenced by createChildNodesGeneric().
◆ initNodeBranchdata()
|
static |
initialize branchdata at the node
- Parameters
-
scip SCIP data structure nodebranchdata branching data to set blocknr block we are branching in
Definition at line 2030 of file branch_generic.c.
Referenced by branchDirectlyOnMastervar(), and createChildNodesGeneric().
◆ createChildNodesGeneric()
|
static |
for given component bound sequence S, create |S|+1 Vanderbeck branching nodes
- Parameters
-
scip SCIP data structure branchrule branching rule S Component Bound Sequence defining the nodes Ssize size of S blocknr number of the block masterbranchcons current masterbranchcons result pointer to store the result of the branching call
Definition at line 2051 of file branch_generic.c.
References ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_BranchData::consS, GCG_BranchData::consSsize, createBranchingCons(), GCG_COMPSENSE_GE, GCG_COMPSENSE_LT, GCGconsMasterbranchGetActiveCons(), GCGcreateConsMasterbranch(), GCGgetMasterprob(), GCGgetNIdenticalBlocks(), GCGisMasterVarInBlock(), getGeneratorEntry(), initNodeBranchdata(), GCG_BranchData::lhs, GCG_BranchData::maxconsS, pruneChildNodeByDominanceGeneric(), and ComponentBoundSequence::sense.
Referenced by GCGbranchGenericInitbranch().
◆ branchDirectlyOnMastervar()
|
static |
branching on copied origvar directly in master
- Parameters
-
scip SCIP data structure mastervar master variable branchrule branching rule
Definition at line 2294 of file branch_generic.c.
References ComponentBoundSequence::bound, ComponentBoundSequence::component, GCG_BranchData::consS, GCG_BranchData::consSsize, createDirectBranchingCons(), GCG_COMPSENSE_GE, GCG_COMPSENSE_LT, GCGconsMasterbranchGetActiveCons(), GCGcreateConsMasterbranch(), GCGgetMasterprob(), initNodeBranchdata(), GCG_BranchData::maxconsS, and ComponentBoundSequence::sense.
Referenced by GCGbranchGenericInitbranch().
◆ GCGbranchGenericInitbranch()
SCIP_RETCODE GCGbranchGenericInitbranch | ( | SCIP * | masterscip, |
SCIP_BRANCHRULE * | branchrule, | ||
SCIP_RESULT * | result, | ||
int ** | checkedblocks, | ||
int * | ncheckedblocks, | ||
GCG_STRIP **** | checkedblockssortstrips, | ||
int ** | checkedblocksnsortstrips | ||
) |
prepares information for using the generic branching scheme
- Parameters
-
masterscip SCIP data structure branchrule branching rule result pointer to store the result of the branching call checkedblocks blocks that have been checked ncheckedblocks number of checked blocks checkedblockssortstrips sorted strips of checked blocks checkedblocksnsortstrips sizes of the strips
Definition at line 2367 of file branch_generic.c.
References ComponentBoundSequence::bound, branchDirectlyOnMastervar(), ChooseSeparateMethod(), ComponentBoundSequence::component, GCG_BranchData::consblocknr, GCG_BranchData::consS, GCG_BranchData::consSsize, createChildNodesGeneric(), GCGconsMasterbranchGetActiveCons(), GCGconsMasterbranchGetBranchdata(), GCGconsMasterbranchGetBranchrule(), GCGconsMasterbranchGetParentcons(), GCGgetBlockRepresentative(), GCGgetNPricingprobs(), GCGisMasterVarInBlock(), GCGmasterGetOrigprob(), GCGmasterVarIsArtificial(), GCGmasterVarIsLinking(), GCGoriginalVarGetMastervars(), GCGoriginalVarGetNMastervars(), GCGpricerExistRays(), GCGrelaxGetCurrentOrigSol(), GCGvarGetBlock(), GCGvarIsMaster(), ComponentBoundSequence::sense, and GCG_Record::sequencesizes.
Referenced by ChooseSeparateMethod(), and SCIP_DECL_BRANCHEXECLP().
◆ GCGincludeMasterCopyPlugins()
|
static |
- Parameters
-
scip SCIP data structure
Definition at line 2733 of file branch_generic.c.
Referenced by SCIP_DECL_BRANCHCOPY().
◆ SCIP_DECL_BRANCHCOPY()
|
static |
copy method for master branching rule
Definition at line 2754 of file branch_generic.c.
References GCGincludeMasterCopyPlugins().
◆ GCG_DECL_BRANCHACTIVEMASTER()
|
static |
callback activation method
Definition at line 2764 of file branch_generic.c.
References addVarToMasterbranch(), GCGisMaster(), and GCGvarIsMaster().
◆ GCG_DECL_BRANCHDEACTIVEMASTER()
|
static |
callback deactivation method
Definition at line 2805 of file branch_generic.c.
References GCGisMaster().
◆ GCG_DECL_BRANCHPROPMASTER()
|
static |
callback propagation method
Definition at line 2823 of file branch_generic.c.
◆ SCIP_DECL_BRANCHEXECLP()
|
static |
branching execution method for fractional LP solutions
Definition at line 2837 of file branch_generic.c.
References BRANCHRULE_NAME, GCGbranchGenericInitbranch(), GCGisMasterSetCovering(), GCGisMasterSetPartitioning(), GCGmasterGetOrigprob(), GCGrelaxGetCurrentOrigSol(), and GCGrelaxIsOrigSolFeasible().
◆ SCIP_DECL_BRANCHEXECEXT()
|
static |
branching execution method for relaxation solutions
Definition at line 2895 of file branch_generic.c.
◆ SCIP_DECL_BRANCHEXECPS()
|
static |
branching execution method for not completely fixed pseudo solutions
Definition at line 2909 of file branch_generic.c.
References BRANCHRULE_NAME.
◆ SCIP_DECL_BRANCHINIT()
|
static |
initialization method of branching rule (called after problem was transformed)
Definition at line 2938 of file branch_generic.c.
References GCGmasterGetOrigprob(), and GCGrelaxIncludeBranchrule().
◆ SCIPincludeBranchruleGeneric()
SCIP_RETCODE SCIPincludeBranchruleGeneric | ( | SCIP * | scip | ) |
creates the generic branching rule and includes it in SCIP
- Parameters
-
scip SCIP data structure
Definition at line 2955 of file branch_generic.c.
References branchExitGeneric, branchExitsolGeneric, branchFreeGeneric, branchInitsolGeneric, BRANCHRULE_DESC, BRANCHRULE_MAXBOUNDDIST, BRANCHRULE_MAXDEPTH, BRANCHRULE_NAME, BRANCHRULE_PRIORITY, EVENTHDLR_DESC, EVENTHDLR_NAME, and GCGconsIntegralorigAddBranchrule().
Referenced by GCGincludeMasterPlugins().
◆ GCGbranchGenericCreateBranchdata()
SCIP_RETCODE GCGbranchGenericCreateBranchdata | ( | SCIP * | scip, |
GCG_BRANCHDATA ** | branchdata | ||
) |
initializes branchdata
- Parameters
-
scip SCIP data structure branchdata branching data to initialize
Definition at line 2989 of file branch_generic.c.
Referenced by GCGcreateConsOrigbranch().
◆ GCGbranchGenericBranchdataGetConsS()
GCG_COMPSEQUENCE* GCGbranchGenericBranchdataGetConsS | ( | GCG_BRANCHDATA * | branchdata | ) |
get component bound sequence
- Parameters
-
branchdata branching data
Definition at line 3009 of file branch_generic.c.
References GCG_BranchData::consS.
Referenced by addVarToMasterbranch(), and SCIP_DECL_EVENTEXEC().
◆ GCGbranchGenericBranchdataGetConsSsize()
int GCGbranchGenericBranchdataGetConsSsize | ( | GCG_BRANCHDATA * | branchdata | ) |
get size of component bound sequence
- Parameters
-
branchdata branching data
Definition at line 3018 of file branch_generic.c.
References GCG_BranchData::consSsize.
Referenced by addVarToMasterbranch(), and SCIP_DECL_EVENTEXEC().
◆ GCGbranchGenericBranchdataGetConsblocknr()
int GCGbranchGenericBranchdataGetConsblocknr | ( | GCG_BRANCHDATA * | branchdata | ) |
get id of pricing problem (or block) to which the constraint belongs
- Parameters
-
branchdata branching data
Definition at line 3027 of file branch_generic.c.
References GCG_BranchData::consblocknr.
Referenced by addVarToMasterbranch(), and SCIP_DECL_EVENTEXEC().
◆ GCGbranchGenericBranchdataGetMastercons()
SCIP_CONS* GCGbranchGenericBranchdataGetMastercons | ( | GCG_BRANCHDATA * | branchdata | ) |
get master constraint
- Parameters
-
branchdata branching data
Definition at line 3036 of file branch_generic.c.
References GCG_BranchData::mastercons.
Referenced by addVarToMasterbranch().
◆ GCGisBranchruleGeneric()
SCIP_Bool GCGisBranchruleGeneric | ( | SCIP_BRANCHRULE * | branchrule | ) |
returns true when the branch rule is the generic branchrule
- Parameters
-
branchrule branchrule to check
Definition at line 3045 of file branch_generic.c.
References BRANCHRULE_NAME.
Referenced by ObjPricerGcg::pricingLoop(), and SCIP_DECL_EVENTEXEC().