Public Member Functions | Protected Attributes | Private Member Functions | List of all members
BcpsBranchStrategy Class Referenceabstract

Branching strategy specifies: (1) how to select a candidate set of branching objects (2) how to compare two branching objects. More...

#include <BcpsBranchStrategy.h>

Inheritance diagram for BcpsBranchStrategy:
Inheritance graph
[legend]
Collaboration diagram for BcpsBranchStrategy:
Collaboration graph
[legend]

Public Member Functions

 BcpsBranchStrategy ()
 Default Constructor. More...
 
 BcpsBranchStrategy (BcpsModel *m)
 Useful Constructor. More...
 
virtual ~BcpsBranchStrategy ()
 Destructor. More...
 
virtual BcpsBranchStrategyclone () const =0
 Clone a branch strategy. More...
 
int getType ()
 Get type. More...
 
void setType (int t)
 Set type. More...
 
void setModel (BcpsModel *m)
 Set model. More...
 
virtual void clearBest (BcpsModel *model)
 Clear branching strategy environment before starting a new round of selecting the best branch object. More...
 
virtual int createCandBranchObjects (int numPassesLeft, double ub)
 Create a set of candidate branching objects. More...
 
virtual int betterBranchObject (BcpsBranchObject *b, BcpsBranchObject *bestSoFar)=0
 Compare branching object thisOne to bestSoFar. More...
 
virtual BcpsBranchObjectbestBranchObject ()
 Compare branching objects in branchObjects_. More...
 
int getNumBranchObjects ()
 Set/get branching objects. More...
 
void getNumBranchObjects (int num)
 Set/get branching objects. More...
 
BcpsBranchObject ** getBranchObjects ()
 Set/get branching objects. More...
 
void setBranchObjects (BcpsBranchObject **obj)
 Set/get branching objects. More...
 
BcpsBranchObjectgetBestBranchObject ()
 Set/get branching objects. More...
 
void setBestBranchObject (BcpsBranchObject *ob)
 Set/get branching objects. More...
 

Protected Attributes

int type_
 Type of branching strategy. More...
 
BcpsModelmodel_
 Pointer to model. More...
 
int numBranchObjects_
 Following members are used to store candidate branching objects. More...
 
BcpsBranchObject ** branchObjects_
 The set of candiate branching objects. More...
 
BcpsBranchObjectbestBranchObject_
 Following members are used to store information about best branching object found so far. More...
 
double bestChangeUp_
 Change up for best. More...
 
int bestNumberUp_
 Number of infeasibilities for up. More...
 
double bestChangeDown_
 Change down for best. More...
 
int bestNumberDown_
 Number of infeasibilities for down. More...
 

Private Member Functions

BcpsBranchStrategyoperator= (const BcpsBranchStrategy &rhs)
 Disable assignment operator. More...
 

Detailed Description

Branching strategy specifies: (1) how to select a candidate set of branching objects (2) how to compare two branching objects.

Definition at line 39 of file BcpsBranchStrategy.h.

Constructor & Destructor Documentation

BcpsBranchStrategy::BcpsBranchStrategy ( )
inline

Default Constructor.

Definition at line 83 of file BcpsBranchStrategy.h.

BcpsBranchStrategy::BcpsBranchStrategy ( BcpsModel m)
inline

Useful Constructor.

Definition at line 95 of file BcpsBranchStrategy.h.

virtual BcpsBranchStrategy::~BcpsBranchStrategy ( )
inlinevirtual

Destructor.

Definition at line 107 of file BcpsBranchStrategy.h.

Member Function Documentation

BcpsBranchStrategy& BcpsBranchStrategy::operator= ( const BcpsBranchStrategy rhs)
private

Disable assignment operator.

virtual BcpsBranchStrategy* BcpsBranchStrategy::clone ( ) const
pure virtual
int BcpsBranchStrategy::getType ( )
inline

Get type.

Definition at line 118 of file BcpsBranchStrategy.h.

void BcpsBranchStrategy::setType ( int  t)
inline

Set type.

Definition at line 121 of file BcpsBranchStrategy.h.

void BcpsBranchStrategy::setModel ( BcpsModel m)
inline

Set model.

Definition at line 124 of file BcpsBranchStrategy.h.

int BcpsBranchStrategy::getNumBranchObjects ( )
inline

Set/get branching objects.

Definition at line 128 of file BcpsBranchStrategy.h.

void BcpsBranchStrategy::getNumBranchObjects ( int  num)
inline

Set/get branching objects.

Definition at line 129 of file BcpsBranchStrategy.h.

BcpsBranchObject** BcpsBranchStrategy::getBranchObjects ( )
inline

Set/get branching objects.

Definition at line 130 of file BcpsBranchStrategy.h.

void BcpsBranchStrategy::setBranchObjects ( BcpsBranchObject **  obj)
inline

Set/get branching objects.

Definition at line 131 of file BcpsBranchStrategy.h.

BcpsBranchObject* BcpsBranchStrategy::getBestBranchObject ( )
inline

Set/get branching objects.

Definition at line 132 of file BcpsBranchStrategy.h.

void BcpsBranchStrategy::setBestBranchObject ( BcpsBranchObject ob)
inline

Set/get branching objects.

Definition at line 133 of file BcpsBranchStrategy.h.

virtual void BcpsBranchStrategy::clearBest ( BcpsModel model)
inlinevirtual

Clear branching strategy environment before starting a new round of selecting the best branch object.

Definition at line 138 of file BcpsBranchStrategy.h.

virtual int BcpsBranchStrategy::createCandBranchObjects ( int  numPassesLeft,
double  ub 
)
inlinevirtual
virtual int BcpsBranchStrategy::betterBranchObject ( BcpsBranchObject b,
BcpsBranchObject bestSoFar 
)
pure virtual

Compare branching object thisOne to bestSoFar.

If thisOne is better than bestObject, return branching direction(1 or -1), otherwise return 0. If bestSorFar is NULL, then always return branching direction(1 or -1).

Implemented in BlisBranchStrategyStrong, BlisBranchStrategyStrong, BlisBranchStrategyPseudo, BlisBranchStrategyRel, BlisBranchStrategyPseudo, BlisBranchStrategyRel, BlisBranchStrategyBilevel, and BlisBranchStrategyMaxInf.

virtual BcpsBranchObject* BcpsBranchStrategy::bestBranchObject ( )
virtual

Compare branching objects in branchObjects_.

Return the index of the best branching object. Also, set branch direction in the best object.

Member Data Documentation

int BcpsBranchStrategy::type_
protected

Type of branching strategy.

Definition at line 48 of file BcpsBranchStrategy.h.

BcpsModel* BcpsBranchStrategy::model_
protected

Pointer to model.

Definition at line 51 of file BcpsBranchStrategy.h.

int BcpsBranchStrategy::numBranchObjects_
protected

Following members are used to store candidate branching objects.

NOTE: They are required to be cleared before starting another round of selecting. Number of candidate branching objects.

Definition at line 58 of file BcpsBranchStrategy.h.

BcpsBranchObject** BcpsBranchStrategy::branchObjects_
protected

The set of candiate branching objects.

Definition at line 60 of file BcpsBranchStrategy.h.

BcpsBranchObject* BcpsBranchStrategy::bestBranchObject_
protected

Following members are used to store information about best branching object found so far.

NOTE: They are required to be cleared before starting another round of selecting. Best branching object found so far.

Definition at line 69 of file BcpsBranchStrategy.h.

double BcpsBranchStrategy::bestChangeUp_
protected

Change up for best.

Definition at line 71 of file BcpsBranchStrategy.h.

int BcpsBranchStrategy::bestNumberUp_
protected

Number of infeasibilities for up.

Definition at line 73 of file BcpsBranchStrategy.h.

double BcpsBranchStrategy::bestChangeDown_
protected

Change down for best.

Definition at line 75 of file BcpsBranchStrategy.h.

int BcpsBranchStrategy::bestNumberDown_
protected

Number of infeasibilities for down.

Definition at line 77 of file BcpsBranchStrategy.h.


The documentation for this class was generated from the following file: