24 #ifndef BlisTreeNode_h_
25 #define BlisTreeNode_h_
29 #include "AlpsNodeDesc.h"
31 #include "BcpsObjectPool.h"
32 #include "BcpsTreeNode.h"
34 #include "BcpsNodeDesc.h"
67 BcpsConstraintPool &conPool,
73 const double *lpSolution,
74 double lpObjValue)
const;
121 virtual int process(
bool isRoot =
false,
bool rampUp =
false);
124 virtual int bound(BcpsModel *model);
130 virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> >
155 const double *currLpSolution,
156 BcpsConstraintPool & conPool);
160 const double *solution,
161 BcpsConstraintPool & conPool);
172 using AlpsKnowledge::encode ;
174 virtual AlpsEncoded*
encode()
const;
177 virtual AlpsKnowledge*
decode(AlpsEncoded&)
const;
virtual int bound(BcpsModel *model)
Bounding procedure.
virtual void convertToRelative()
virtual AlpsEncoded * encode() const
Encode this node for message passing.
virtual void convertToExplicit()
Convert explicit description to difference, and vise-vesa.
BlisTreeNode(BlisModel *m)
Useful constructor.
virtual ~BlisTreeNode()
Destructor.
virtual AlpsKnowledge * decode(AlpsEncoded &) const
Decode a node from an encoded object.
This is the class in which we are finally able to concretely define the bounding procedure.
virtual int chooseBranchingObject(BcpsModel *)
To be defined.
virtual std::vector< CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > branch()
Takes the explicit description of the current active node and creates the children's descriptions...
void init()
Initilize member data when constructing a node.
int callHeuristics(BlisModel *model, bool onlyBeforeRoot=false)
Call heuristic to search solutions.
int selectBranchObject(BlisModel *model, bool &foundSol, int numPassesLeft)
Select a branching object based on give branching strategy.
virtual int installSubProblem(BcpsModel *mode)
intall subproblem
void getViolatedConstraints(BlisModel *model, const double *currLpSolution, BcpsConstraintPool &conPool)
Get violated constraints.
BlisTreeNode(AlpsNodeDesc *&desc)
Useful constructor.
BlisReturnStatus applyConstraints(BlisModel *model, const double *solution, BcpsConstraintPool &conPool)
Select and apply constraints.
BlisTreeNode()
Default constructor.
int generateConstraints(BlisModel *model, BcpsConstraintPool &conPool)
Generate constraints.
BlisReturnStatus reducedCostFix(BlisModel *model)
Fix and tighten varaibles based optimality conditions.
AlpsTreeNode * createNewTreeNode(AlpsNodeDesc *&desc) const
Create a new node based on given desc.