23#ifndef BcpsBranchStrategy_h_
24#define BcpsBranchStrategy_h_
BcpsBranchObject contains the member data required when choosing branching entities and excuting actu...
void setBestBranchObject(BcpsBranchObject *ob)
BcpsBranchObject * getBestBranchObject()
void setModel(BcpsModel *m)
Set model.
double bestChangeDown_
Change down for best.
virtual void clearBest(BcpsModel *model)
Clear branching strategy environment before starting a new round of selecting the best branch object.
int getNumBranchObjects() const
Set/get branching objects.
BcpsBranchStrategy()
Default Constructor.
virtual int createCandBranchObjects(int numPassesLeft, double ub)
Create a set of candidate branching objects.
virtual BcpsBranchStrategy * clone() const =0
Clone a branch strategy.
int numBranchObjects_
Following members are used to store candidate branching objects.
BcpsBranchObject * bestBranchObject_
Following members are used to store information about best branching object found so far.
BcpsBranchObject ** branchObjects_
The set of candiate branching objects.
void setType(int t)
Set type.
int type_
Type of branching strategy.
BcpsModel * model_
Pointer to model.
virtual ~BcpsBranchStrategy()
Destructor.
virtual BcpsBranchObject * bestBranchObject()
Compare branching objects in branchObjects_.
BcpsBranchStrategy(BcpsModel *m)
Useful Constructor.
int getType() const
Get type.
void setNumBranchObjects(int num)
void setBranchObjects(BcpsBranchObject **obj)
int bestNumberUp_
Number of infeasibilities for up.
virtual int betterBranchObject(BcpsBranchObject *b, BcpsBranchObject *bestSoFar)=0
Compare branching object thisOne to bestSoFar.
int bestNumberDown_
Number of infeasibilities for down.
BcpsBranchObject ** getBranchObjects()
double bestChangeUp_
Change up for best.