Blis 0.94
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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:
+ Collaboration diagram for BlisTreeNode:

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, 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 AlpsEncodedencode () const
 Return constraint pool.
 
virtual AlpsReturnStatus encode (AlpsEncoded *encoded)
 Return constraint pool.
 
virtual void convertToExplicit ()
 Convert explicit description to difference, and vise-vesa.
 
virtual void convertToRelative ()
 
- Public Member Functions inherited from BcpsTreeNode
 BcpsTreeNode ()
 
virtual ~BcpsTreeNode ()
 
virtual int process (bool isRoot=false, bool rampUp=false)
 
virtual int bound (BcpsModel *model)=0
 
virtual std::vector< CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > branch ()=0
 
const BcpsBranchObjectbranchObject () const
 
void setBranchObject (BcpsBranchObject *b)
 
- Public Member Functions inherited from AlpsTreeNode
 AlpsTreeNode ()
 
virtual ~AlpsTreeNode ()
 
bool operator< (const AlpsTreeNode &compNode)
 
AlpsNodeDescmodifyDesc ()
 
AlpsNodeDescgetDesc () const
 
void setDesc (AlpsNodeDesc *desc)
 
AlpsKnowledgeBrokergetKnowledgeBroker () const
 
void setKnowledgeBroker (AlpsKnowledgeBroker *kb)
 
virtual AlpsTreeNodecreateNewTreeNode (AlpsNodeDesc *&desc) const=0
 
void removeChild (AlpsTreeNode *&child)
 
void addChild (AlpsTreeNode *&child)
 
void removeDescendants ()
 
AlpsNodeStatus getStatus () const
 
void setStatus (const AlpsNodeStatus stat)
 
bool isCandidate () const
 
bool isEvaluated () const
 
bool isPregnant () const
 
bool isBranched () const
 
bool isFathomed () const
 
bool isDiscarded () const
 
bool isActive () const
 
void setActive (const bool yesno)
 
AlpsNodeIndex_t getIndex () const
 
void setIndex (const AlpsNodeIndex_t index)
 
int getDepth () const
 
void setDepth (const int depth)
 
double getSolEstimate () const
 
void setSolEstimate (double est)
 
double getQuality () const
 
void setQuality (double quality)
 
int getNumChildren () const
 
void setNumChildren (const int numChildren)
 
void modifyNumChildren (const int s)
 
AlpsTreeNodegetChild (const int i) const
 
void setChild (const int i, AlpsTreeNode *node)
 
AlpsTreeNodegetParent () const
 
void setParent (AlpsTreeNode *parent)
 
AlpsNodeIndex_t getParentIndex () const
 
void setParentIndex (AlpsNodeIndex_t index)
 
int getExplicit () const
 
void setExplicit (int fp)
 
virtual void convertToExplicit ()
 
virtual void convertToRelative ()
 
int getSentMark () const
 
void setSentMark (const int tf)
 
AlpsNodeStatus getStatus () const
 
void setStatus (const AlpsNodeStatus stat)
 
bool isCandidate () const
 
bool isEvaluated () const
 
bool isPregnant () const
 
bool isBranched () const
 
bool isFathomed () const
 
bool isDiscarded () const
 
bool isActive () const
 
void setActive (const bool yesno)
 
AlpsNodeIndex_t getIndex () const
 
void setIndex (const AlpsNodeIndex_t index)
 
int getDepth () const
 
void setDepth (const int depth)
 
double getSolEstimate () const
 
void setSolEstimate (double est)
 
double getQuality () const
 
void setQuality (double quality)
 
int getNumChildren () const
 
void setNumChildren (const int numChildren)
 
void modifyNumChildren (const int s)
 
AlpsTreeNodegetChild (const int i) const
 
void setChild (const int i, AlpsTreeNode *node)
 
AlpsTreeNodegetParent () const
 
void setParent (AlpsTreeNode *parent)
 
AlpsNodeIndex_t getParentIndex () const
 
void setParentIndex (AlpsNodeIndex_t index)
 
int getExplicit () const
 
void setExplicit (int fp)
 
virtual void convertToExplicit ()
 
virtual void convertToRelative ()
 
int getSentMark () const
 
void setSentMark (const int tf)
 
- Public Member Functions inherited from AlpsKnowledge
 AlpsKnowledge ()
 
virtual ~AlpsKnowledge ()
 
KnowledgeType getType ()
 
void setType (KnowledgeType t)
 
virtual AlpsEncodedencode () const
 
virtual AlpsReturnStatus encode (AlpsEncoded *encoded)
 
virtual AlpsKnowledgedecode (AlpsEncoded &encoded) const
 
AlpsEncodedgetEncoded () const
 
void setEncoded (AlpsEncoded *e)
 

Additional Inherited Members

- Protected Member Functions inherited from BcpsTreeNode
virtual int generateConstraints (BcpsModel *model, BcpsConstraintPool *conPool)
 
virtual int generateVariables (BcpsModel *model, BcpsVariablePool *varPool)
 
virtual int chooseBranchingObject (BcpsModel *model)=0
 
virtual int installSubProblem (BcpsModel *model)=0
 
virtual int handleBoundingStatus (int status, bool &keepOn, bool &fathomed)
 
AlpsReturnStatus encodeBcps (AlpsEncoded *encoded) const
 
- Protected Attributes inherited from BcpsTreeNode
BcpsBranchObjectbranchObject_
 
- Protected Attributes inherited from AlpsTreeNode
bool active_
 
AlpsNodeIndex_t index_
 
int depth_
 
double solEstimate_
 
double quality_
 
AlpsTreeNodeparent_
 
AlpsNodeIndex_t parentIndex_
 
int numChildren_
 
AlpsTreeNode ** children_
 
int explicit_
 
AlpsNodeDescdesc_
 
AlpsNodeStatus status_
 
AlpsKnowledgeBrokerknowledgeBroker_
 
int sentMark_
 
- Protected Attributes inherited from AlpsKnowledge
KnowledgeType type_
 

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 33 of file BlisSubTree.h.

Constructor & Destructor Documentation

◆ BlisTreeNode() [1/3]

BlisTreeNode::BlisTreeNode ( )
inline

Default constructor.

Definition at line 79 of file BlisTreeNode.h.

◆ BlisTreeNode() [2/3]

BlisTreeNode::BlisTreeNode ( BlisModel m)
inline

Useful constructor.

Definition at line 85 of file BlisTreeNode.h.

◆ BlisTreeNode() [3/3]

BlisTreeNode::BlisTreeNode ( AlpsNodeDesc *&  desc)
inline

Useful constructor.

Definition at line 91 of file BlisTreeNode.h.

◆ ~BlisTreeNode()

virtual BlisTreeNode::~BlisTreeNode ( )
inlinevirtual

Destructor.

Definition at line 98 of file BlisTreeNode.h.

Member Function Documentation

◆ init()

void BlisTreeNode::init ( )
inline

Initilize member data when constructing a node.

Definition at line 103 of file BlisTreeNode.h.

◆ createNewTreeNode()

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

Create a new node based on given desc.

Implements AlpsTreeNode.

◆ convertToExplicit()

virtual void BlisTreeNode::convertToExplicit ( )
virtual

Convert explicit description to difference, and vise-vesa.

Reimplemented from AlpsTreeNode.

◆ convertToRelative()

virtual void BlisTreeNode::convertToRelative ( )
virtual

Reimplemented from AlpsTreeNode.

◆ installSubProblem()

virtual int BlisTreeNode::installSubProblem ( BcpsModel mode)
virtual

intall subproblem

Implements BcpsTreeNode.

◆ process()

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

Performing the bounding operation.

Reimplemented from BcpsTreeNode.

◆ bound()

virtual int BlisTreeNode::bound ( BcpsModel model)
virtual

Bounding procedure.

Implements BcpsTreeNode.

◆ branch()

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.

◆ selectBranchObject()

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

Select a branching object based on give branching strategy.

◆ chooseBranchingObject()

virtual int BlisTreeNode::chooseBranchingObject ( BcpsModel )
inlinevirtual

To be defined.

Implements BcpsTreeNode.

Definition at line 139 of file BlisTreeNode.h.

◆ generateConstraints()

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

Generate constraints.

◆ callHeuristics()

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.

◆ getViolatedConstraints()

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

Get violated constraints.

◆ applyConstraints()

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

Select and apply constraints.

◆ reducedCostFix()

BlisReturnStatus BlisTreeNode::reducedCostFix ( BlisModel model)

Fix and tighten varaibles based optimality conditions.

◆ encode() [1/3]

virtual AlpsEncoded * BlisTreeNode::encode ( ) const
virtual

Encode this node for message passing.

Reimplemented from AlpsKnowledge.

◆ decode()

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

Decode a node from an encoded object.

Reimplemented from AlpsKnowledge.

◆ encode() [2/3]

virtual AlpsEncoded * AlpsKnowledge::encode ( ) const
virtual

Return constraint pool.

Return variable pool.

Reimplemented from AlpsKnowledge.

◆ encode() [3/3]

virtual AlpsReturnStatus AlpsKnowledge::encode ( AlpsEncoded encoded)
virtual

Return constraint pool.

Return variable pool.

Reimplemented from AlpsKnowledge.


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