24#ifndef BlisTreeNode_h_
25#define BlisTreeNode_h_
29#include "AlpsNodeDesc.h"
31#include "BcpsObjectPool.h"
32#include "BcpsTreeNode.h"
34#include "BcpsNodeDesc.h"
68 BcpsConstraintPool &conPool,
74 const double *lpSolution,
75 double lpObjValue)
const;
122 virtual int process(
bool isRoot =
false,
bool rampUp =
false);
125 virtual int bound(BcpsModel *model);
131 virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> >
156 const double *currLpSolution,
157 BcpsConstraintPool & conPool);
161 const double *solution,
162 BcpsConstraintPool & conPool);
173 using AlpsKnowledge::encode ;
178 virtual AlpsKnowledge*
decode(AlpsEncoded&)
const;
This is the class in which we are finally able to concretely define the bounding procedure.
virtual void convertToRelative()
virtual int bound(BcpsModel *model)
Bounding procedure.
int generateConstraints(BlisModel *model, BcpsConstraintPool &conPool)
Generate constraints.
AlpsTreeNode * createNewTreeNode(AlpsNodeDesc *&desc) const
Create a new node based on given desc.
int selectBranchObject(BlisModel *model, bool &foundSol, int numPassesLeft)
Select a branching object based on give branching strategy.
BlisTreeNode(AlpsNodeDesc *&desc)
Useful constructor.
virtual int process(bool isRoot=false, bool rampUp=false)
Performing the bounding operation.
virtual int installSubProblem(BcpsModel *mode)
intall subproblem
virtual int chooseBranchingObject(BcpsModel *)
To be defined.
BlisReturnStatus reducedCostFix(BlisModel *model)
Fix and tighten varaibles based optimality conditions.
virtual ~BlisTreeNode()
Destructor.
virtual AlpsKnowledge * decode(AlpsEncoded &) const
Decode a node from an encoded object.
void getViolatedConstraints(BlisModel *model, const double *currLpSolution, BcpsConstraintPool &conPool)
Get violated constraints.
BlisTreeNode()
Default constructor.
BlisTreeNode(BlisModel *m)
Useful constructor.
BlisReturnStatus applyConstraints(BlisModel *model, const double *solution, BcpsConstraintPool &conPool)
Select and apply constraints.
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.
virtual void convertToExplicit()
Convert explicit description to difference, and vise-vesa.
int callHeuristics(BlisModel *model, bool onlyBeforeRoot=false)
Call heuristic to search solutions.
virtual AlpsEncoded * encode() const
Encode this node for message passing.