BlisTreeNode Class Reference

This is the class in which we are finally able to concretely define the bounding procedure. More...

#include <BlisSubTree.h>

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

List of all members.

Public Member Functions

 BlisTreeNode ()
 Default constructor.
 BlisTreeNode (BlisModel *m)
 Useful constructor.
 BlisTreeNode (AlpsNodeDesc *&desc)
 Useful constructor.
virtual ~BlisTreeNode ()
 Destructor.
void init ()
 Initilize member data when constructing a node.
AlpsTreeNodecreateNewTreeNode (AlpsNodeDesc *&desc) const
 Create a new node based on given desc.
virtual int installSubProblem (BcpsModel *mode)
 intall subproblem
virtual int process (bool isRoot=false, bool rampUp=false)
 Performing the bounding operation.
virtual int bound (BcpsModel *model)
 Bounding procedure.
virtual std::vector
< CoinTriple< AlpsNodeDesc
*, AlpsNodeStatus, double > > 
branch ()
 Takes the explicit description of the current active node and creates the children's descriptions, which contain information about how the branching is to be done.
int selectBranchObject (BlisModel *model, bool &foundSol, int numPassesLeft)
 Select a branching object based on give branching strategy.
virtual int chooseBranchingObject (BcpsModel *)
 To be defined.
int generateConstraints (BlisModel *model, OsiCuts &cutPool)
 Generate constraints.
int applyConstraints (BlisModel *model, OsiCuts &cutPool, const double *solution)
 Select and apply constraints.
int reducedCostFix (BlisModel *model)
 Fix and tighten varaibles based optimality conditions.
virtual AlpsEncodedencode () const
 Return constraint pool.
virtual AlpsKnowledgedecode (AlpsEncoded &) const
 Decode a node from an encoded object.
 BlisTreeNode ()
 Default constructor.
 BlisTreeNode (BlisModel *m)
 Useful constructor.
 BlisTreeNode (AlpsNodeDesc *&desc)
 Useful constructor.
virtual ~BlisTreeNode ()
 Destructor.
void init ()
 Initilize member data when constructing a node.
AlpsTreeNodecreateNewTreeNode (AlpsNodeDesc *&desc) const
 Create a new node based on given desc.
virtual int installSubProblem (BcpsModel *mode)
 intall subproblem
virtual int process (bool isRoot=false, bool rampUp=false)
 Performing the bounding operation.
virtual int bound (BcpsModel *model)
 Bounding procedure.
virtual std::vector
< CoinTriple< AlpsNodeDesc
*, AlpsNodeStatus, double > > 
branch ()
 Takes the explicit description of the current active node and creates the children's descriptions, which contain information about how the branching is to be done.
int selectBranchObject (BlisModel *model, bool &foundSol, int numPassesLeft)
 Select a branching object based on give branching strategy.
virtual int chooseBranchingObject (BcpsModel *)
 To be defined.
int generateConstraints (BlisModel *model, BcpsConstraintPool &conPool)
 Generate constraints.
int callHeuristics (BlisModel *model, bool onlyBeforeRoot=false)
 Call heuristic to search solutions.
void getViolatedConstraints (BlisModel *model, const double *currLpSolution, BcpsConstraintPool &conPool)
 Get violated constraints.
BlisReturnStatus applyConstraints (BlisModel *model, const double *solution, BcpsConstraintPool &conPool)
 Select and apply constraints.
BlisReturnStatus reducedCostFix (BlisModel *model)
 Fix and tighten varaibles based optimality conditions.
virtual AlpsEncodedencode () const
 Encode this node for message passing.
virtual AlpsKnowledgedecode (AlpsEncoded &) const
 Decode a node from an encoded object.



virtual void convertToExplicit ()
 Convert explicit description to difference, and vise-vesa.
virtual void convertToRelative ()
 Convert explicit description to difference, and vise-vesa.
virtual void convertToExplicit ()
 Convert explicit description to difference, and vise-vesa.
virtual void convertToRelative ()
 Convert explicit description to difference, and vise-vesa.

Private Member Functions

virtual void process ()
void branch (AlpsTreeNode &explicitNode)
 Takes the explicit description of the current active node and creates the children, adds them to the priority queue, etc.
virtual bool fathom ()
 Takes the explicit description of the current active node and decides whether or not it should be fathomed.
 BlisTreeNode (const BlisTreeNode &)
 No copy constructor, assignment operator.
BlisTreeNodeoperator= (const BlisTreeNode &)
bool parallel (BlisModel *model, OsiCuts *newCutSet, int lastNew, OsiRowCut *rowCut)
 Constraint pool.
virtual void process ()
void branch (AlpsTreeNode &explicitNode)
 Takes the explicit description of the current active node and creates the children, adds them to the priority queue, etc.
virtual bool fathom ()
 Takes the explicit description of the current active node and decides whether or not it should be fathomed.
 BlisTreeNode (const BlisTreeNode &)
 No copy constructor, assignment operator.
BlisTreeNodeoperator= (const BlisTreeNode &)
bool parallel (BlisModel *model, BcpsConstraintPool &conPool, int lastNew, BlisConstraint *aCon)
 Constraint pool.
double estimateSolution (BlisModel *model, const double *lpSolution, double lpObjValue) const
 Estimate quality of a feasible solution.

Detailed Description

This is the class in which we are finally able to concretely define the bounding procedure.

Here we can assume that we have an LP solver and that the objects are cuts and variables, etc.

Definition at line 34 of file BlisSubTree.h.


Constructor & Destructor Documentation

BlisTreeNode::BlisTreeNode ( const BlisTreeNode  )  [private]

No copy constructor, assignment operator.

BlisTreeNode::BlisTreeNode (  )  [inline]

Default constructor.

Definition at line 75 of file BlisTreeNode.h.

BlisTreeNode::BlisTreeNode ( BlisModel m  )  [inline]

Useful constructor.

Definition at line 81 of file BlisTreeNode.h.

BlisTreeNode::BlisTreeNode ( AlpsNodeDesc *&  desc  )  [inline]

Useful constructor.

Definition at line 87 of file BlisTreeNode.h.

virtual BlisTreeNode::~BlisTreeNode (  )  [inline, virtual]

Destructor.

Definition at line 94 of file BlisTreeNode.h.

BlisTreeNode::BlisTreeNode ( const BlisTreeNode  )  [private]

No copy constructor, assignment operator.

BlisTreeNode::BlisTreeNode (  )  [inline]

Default constructor.

Definition at line 79 of file BlisTreeNode.h.

BlisTreeNode::BlisTreeNode ( BlisModel m  )  [inline]

Useful constructor.

Definition at line 85 of file BlisTreeNode.h.

BlisTreeNode::BlisTreeNode ( AlpsNodeDesc *&  desc  )  [inline]

Useful constructor.

Definition at line 91 of file BlisTreeNode.h.

virtual BlisTreeNode::~BlisTreeNode (  )  [inline, virtual]

Destructor.

Definition at line 98 of file BlisTreeNode.h.


Member Function Documentation

virtual void BlisTreeNode::process (  )  [private, virtual]
void BlisTreeNode::branch ( AlpsTreeNode explicitNode  )  [private]

Takes the explicit description of the current active node and creates the children, adds them to the priority queue, etc.

Most likely, the node description will contain information about how the branching is to be done.

virtual bool BlisTreeNode::fathom (  )  [private, virtual]

Takes the explicit description of the current active node and decides whether or not it should be fathomed.

BlisTreeNode& BlisTreeNode::operator= ( const BlisTreeNode  )  [private]

Reimplemented from AlpsTreeNode.

bool BlisTreeNode::parallel ( BlisModel model,
OsiCuts newCutSet,
int  lastNew,
OsiRowCut rowCut 
) [private]

Constraint pool.

Variable pool. Save an explicit node description.

void BlisTreeNode::init (  )  [inline]

Initilize member data when constructing a node.

Definition at line 100 of file BlisTreeNode.h.

AlpsTreeNode* BlisTreeNode::createNewTreeNode ( AlpsNodeDesc *&  desc  )  const [virtual]

Create a new node based on given desc.

Implements AlpsTreeNode.

virtual void BlisTreeNode::convertToExplicit (  )  [virtual]

Convert explicit description to difference, and vise-vesa.

Reimplemented from AlpsTreeNode.

virtual void BlisTreeNode::convertToRelative (  )  [virtual]

Convert explicit description to difference, and vise-vesa.

Reimplemented from AlpsTreeNode.

virtual int BlisTreeNode::installSubProblem ( BcpsModel mode  )  [virtual]

intall subproblem

Implements BcpsTreeNode.

virtual int BlisTreeNode::process ( bool  isRoot = false,
bool  rampUp = false 
) [virtual]

Performing the bounding operation.

Reimplemented from BcpsTreeNode.

virtual int BlisTreeNode::bound ( BcpsModel model  )  [virtual]

Bounding procedure.

Implements BcpsTreeNode.

virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> > BlisTreeNode::branch (  )  [virtual]

Takes the explicit description of the current active node and creates the children's descriptions, which contain information about how the branching is to be done.

The stati of the children are AlpsNodeStatusCandidate.

Implements BcpsTreeNode.

int BlisTreeNode::selectBranchObject ( BlisModel model,
bool &  foundSol,
int  numPassesLeft 
)

Select a branching object based on give branching strategy.

virtual int BlisTreeNode::chooseBranchingObject ( BcpsModel  )  [inline, virtual]

To be defined.

Implements BcpsTreeNode.

Definition at line 136 of file BlisTreeNode.h.

int BlisTreeNode::generateConstraints ( BlisModel model,
OsiCuts cutPool 
)

Generate constraints.

int BlisTreeNode::applyConstraints ( BlisModel model,
OsiCuts cutPool,
const double *  solution 
)

Select and apply constraints.

int BlisTreeNode::reducedCostFix ( BlisModel model  ) 

Fix and tighten varaibles based optimality conditions.

virtual AlpsEncoded* BlisTreeNode::encode (  )  const [virtual]

Return constraint pool.

Return variable pool. Encode this node for message passing.

Reimplemented from AlpsKnowledge.

virtual AlpsKnowledge* BlisTreeNode::decode ( AlpsEncoded  )  const [virtual]

Decode a node from an encoded object.

Reimplemented from AlpsKnowledge.

virtual void BlisTreeNode::process (  )  [private, virtual]
void BlisTreeNode::branch ( AlpsTreeNode explicitNode  )  [private]

Takes the explicit description of the current active node and creates the children, adds them to the priority queue, etc.

Most likely, the node description will contain information about how the branching is to be done.

virtual bool BlisTreeNode::fathom (  )  [private, virtual]

Takes the explicit description of the current active node and decides whether or not it should be fathomed.

BlisTreeNode& BlisTreeNode::operator= ( const BlisTreeNode  )  [private]

Reimplemented from AlpsTreeNode.

bool BlisTreeNode::parallel ( BlisModel model,
BcpsConstraintPool conPool,
int  lastNew,
BlisConstraint aCon 
) [private]

Constraint pool.

Variable pool. Save an explicit node description. Check and remove parallel constraints.

double BlisTreeNode::estimateSolution ( BlisModel model,
const double *  lpSolution,
double  lpObjValue 
) const [private]

Estimate quality of a feasible solution.

void BlisTreeNode::init (  )  [inline]

Initilize member data when constructing a node.

Definition at line 103 of file BlisTreeNode.h.

AlpsTreeNode* BlisTreeNode::createNewTreeNode ( AlpsNodeDesc *&  desc  )  const [virtual]

Create a new node based on given desc.

Implements AlpsTreeNode.

virtual void BlisTreeNode::convertToExplicit (  )  [virtual]

Convert explicit description to difference, and vise-vesa.

Reimplemented from AlpsTreeNode.

virtual void BlisTreeNode::convertToRelative (  )  [virtual]

Convert explicit description to difference, and vise-vesa.

Reimplemented from AlpsTreeNode.

virtual int BlisTreeNode::installSubProblem ( BcpsModel mode  )  [virtual]

intall subproblem

Implements BcpsTreeNode.

virtual int BlisTreeNode::process ( bool  isRoot = false,
bool  rampUp = false 
) [virtual]

Performing the bounding operation.

Reimplemented from BcpsTreeNode.

virtual int BlisTreeNode::bound ( BcpsModel model  )  [virtual]

Bounding procedure.

Implements BcpsTreeNode.

virtual std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> > BlisTreeNode::branch (  )  [virtual]

Takes the explicit description of the current active node and creates the children's descriptions, which contain information about how the branching is to be done.

The stati of the children are AlpsNodeStatusCandidate.

Implements BcpsTreeNode.

int BlisTreeNode::selectBranchObject ( BlisModel model,
bool &  foundSol,
int  numPassesLeft 
)

Select a branching object based on give branching strategy.

virtual int BlisTreeNode::chooseBranchingObject ( BcpsModel  )  [inline, virtual]

To be defined.

Implements BcpsTreeNode.

Definition at line 139 of file BlisTreeNode.h.

int BlisTreeNode::generateConstraints ( BlisModel model,
BcpsConstraintPool conPool 
)

Generate constraints.

int BlisTreeNode::callHeuristics ( BlisModel model,
bool  onlyBeforeRoot = false 
)

Call heuristic to search solutions.

0: no solution; 1: found solutions; 2: fathom this node. onlyBeforeRoot is for heuristics like feasibility pump.

void BlisTreeNode::getViolatedConstraints ( BlisModel model,
const double *  currLpSolution,
BcpsConstraintPool conPool 
)

Get violated constraints.

BlisReturnStatus BlisTreeNode::applyConstraints ( BlisModel model,
const double *  solution,
BcpsConstraintPool conPool 
)

Select and apply constraints.

BlisReturnStatus BlisTreeNode::reducedCostFix ( BlisModel model  ) 

Fix and tighten varaibles based optimality conditions.

virtual AlpsEncoded* BlisTreeNode::encode (  )  const [virtual]

Encode this node for message passing.

Reimplemented from AlpsKnowledge.

virtual AlpsKnowledge* BlisTreeNode::decode ( AlpsEncoded  )  const [virtual]

Decode a node from an encoded object.

Reimplemented from AlpsKnowledge.


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

Generated on 15 Mar 2015 for Coin-All by  doxygen 1.6.1