23#ifndef BcpsTreeNode_h_
24#define BcpsTreeNode_h_
110 virtual int process(
bool isRoot =
false,
bool rampUp =
false);
119 virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> >
147 AlpsReturnStatus decodeBcps(AlpsEncoded &encoded) {
150 encoded.readRep(mark);
AlpsEncoded & writeRep(const T &value)
BcpsBranchObject contains the member data required when choosing branching entities and excuting actu...
virtual AlpsReturnStatus encode(AlpsEncoded *encoded) const
Pack to an encoded object.
This class contain the data for a BCPS search tree node.
virtual int process(bool isRoot=false, bool rampUp=false)
This methods performs the processing of the node.
const BcpsBranchObject * branchObject() const
Return the branching object.
BcpsTreeNode()
Default constructor.
virtual int installSubProblem(BcpsModel *model)=0
Extract node information (bounds, constraints, variables) from this node and load the information int...
AlpsReturnStatus encodeBcps(AlpsEncoded *encoded) const
Pack Bcps portion of node into an encoded object.
virtual int generateVariables(BcpsModel *model, BcpsVariablePool *varPool)
Generate variables.
virtual int generateConstraints(BcpsModel *model, BcpsConstraintPool *conPool)
Generate constraints.
virtual ~BcpsTreeNode()
Destructor.
virtual int bound(BcpsModel *model)=0
Bounding procedure to estimate quality of this node.
void setBranchObject(BcpsBranchObject *b)
Set the branching object.
BcpsBranchObject * branchObject_
Branching object for this node, which has information of how to execute branching.
virtual int chooseBranchingObject(BcpsModel *model)=0
Choose a branching object.
virtual std::vector< CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > branch()=0
This method must be invoked on a pregnant node (which has all the information needed to create the ch...
virtual int handleBoundingStatus(int status, bool &keepOn, bool &fathomed)
Handle bounding status: