23 #ifndef BcpsTreeNode_h_ 24 #define BcpsTreeNode_h_ 30 #include "AlpsTreeNode.h" 31 #include "AlpsNodeDesc.h" 60 AlpsReturnStatus status = AlpsReturnStatusOk;
68 AlpsReturnStatus status = AlpsReturnStatusOk;
110 virtual int process(
bool isRoot =
false,
bool rampUp =
false);
119 virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> >
132 AlpsReturnStatus status = AlpsReturnStatusOk;
135 type = branchObject_->
getType();
136 encoded->writeRep(type);
137 status = branchObject_->
encode(encoded);
140 encoded->writeRep(type);
145 #if 0 // Can't docode a down(blis) branching object here. 147 AlpsReturnStatus decodeBcps(AlpsEncoded &encoded) {
148 AlpsReturnStatus status = AlpsReturnStatusOk;
150 encoded.readRep(mark);
154 status = branchObject_->
encode(encoded);
This class contain the data for a BCPS search tree node.
void setBranchObject(BcpsBranchObject *b)
Set the branching object.
virtual int bound(BcpsModel *model)=0
Bounding procedure to estimate quality of this node.
virtual int generateConstraints(BcpsModel *model, BcpsConstraintPool *conPool)
Generate constraints.
virtual int process(bool isRoot=false, bool rampUp=false)
This methods performs the processing of the node.
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 ~BcpsTreeNode()
Destructor.
virtual AlpsReturnStatus encode(AlpsEncoded *encoded) const
Pack to an encoded object.
virtual int generateVariables(BcpsModel *model, BcpsVariablePool *varPool)
Generate variables.
BcpsTreeNode()
Default constructor.
AlpsReturnStatus encodeBcps(AlpsEncoded *encoded) const
Pack Bcps portion of node into an encoded object.
virtual int installSubProblem(BcpsModel *model)=0
Extract node information (bounds, constraints, variables) from this node and load the information int...
const BcpsBranchObject * branchObject() const
Return 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.
BcpsBranchObject contains the member data required when choosing branching entities and excuting actu...
virtual int handleBoundingStatus(int status, bool &keepOn, bool &fathomed)
Handle bounding status: