This is the class in which we are finally able to concretely define the bounding procedure. More...
#include <BlisSubTree.h>
Public Member Functions | |
BlisTreeNode () | |
Default constructor. More... | |
BlisTreeNode (BlisModel *m) | |
Useful constructor. More... | |
BlisTreeNode (AlpsNodeDesc *&desc) | |
Useful constructor. More... | |
virtual | ~BlisTreeNode () |
Destructor. More... | |
void | init () |
Initilize member data when constructing a node. More... | |
AlpsTreeNode * | createNewTreeNode (AlpsNodeDesc *&desc) const |
Create a new node based on given desc. More... | |
virtual int | installSubProblem (BcpsModel *mode) |
intall subproblem More... | |
virtual int | process (bool isRoot=false, bool rampUp=false) |
Performing the bounding operation. More... | |
virtual int | bound (BcpsModel *model) |
Bounding procedure. More... | |
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. More... | |
int | selectBranchObject (BlisModel *model, bool &foundSol, int numPassesLeft) |
Select a branching object based on give branching strategy. More... | |
virtual int | chooseBranchingObject (BcpsModel *) |
To be defined. More... | |
int | generateConstraints (BlisModel *model, OsiCuts &cutPool) |
Generate constraints. More... | |
int | applyConstraints (BlisModel *model, OsiCuts &cutPool, const double *solution) |
Select and apply constraints. More... | |
int | reducedCostFix (BlisModel *model) |
Fix and tighten varaibles based optimality conditions. More... | |
virtual AlpsEncoded * | encode () const |
Return constraint pool. More... | |
virtual AlpsKnowledge * | decode (AlpsEncoded &) const |
Decode a node from an encoded object. More... | |
BlisTreeNode () | |
Default constructor. More... | |
BlisTreeNode (BlisModel *m) | |
Useful constructor. More... | |
BlisTreeNode (AlpsNodeDesc *&desc) | |
Useful constructor. More... | |
virtual | ~BlisTreeNode () |
Destructor. More... | |
void | init () |
Initilize member data when constructing a node. More... | |
AlpsTreeNode * | createNewTreeNode (AlpsNodeDesc *&desc) const |
Create a new node based on given desc. More... | |
virtual int | installSubProblem (BcpsModel *mode) |
intall subproblem More... | |
virtual int | process (bool isRoot=false, bool rampUp=false) |
Performing the bounding operation. More... | |
virtual int | bound (BcpsModel *model) |
Bounding procedure. More... | |
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. More... | |
int | selectBranchObject (BlisModel *model, bool &foundSol, int numPassesLeft) |
Select a branching object based on give branching strategy. More... | |
virtual int | chooseBranchingObject (BcpsModel *) |
To be defined. More... | |
int | generateConstraints (BlisModel *model, BcpsConstraintPool &conPool) |
Generate constraints. More... | |
int | callHeuristics (BlisModel *model, bool onlyBeforeRoot=false) |
Call heuristic to search solutions. More... | |
void | getViolatedConstraints (BlisModel *model, const double *currLpSolution, BcpsConstraintPool &conPool) |
Get violated constraints. More... | |
BlisReturnStatus | applyConstraints (BlisModel *model, const double *solution, BcpsConstraintPool &conPool) |
Select and apply constraints. More... | |
BlisReturnStatus | reducedCostFix (BlisModel *model) |
Fix and tighten varaibles based optimality conditions. More... | |
virtual AlpsEncoded * | encode () const |
Encode this node for message passing. More... | |
virtual AlpsKnowledge * | decode (AlpsEncoded &) const |
Decode a node from an encoded object. More... | |
virtual void | convertToExplicit () |
Convert explicit description to difference, and vise-vesa. More... | |
virtual void | convertToRelative () |
Convert explicit description to difference, and vise-vesa. More... | |
virtual void | convertToExplicit () |
Convert explicit description to difference, and vise-vesa. More... | |
virtual void | convertToRelative () |
Convert explicit description to difference, and vise-vesa. More... | |
![]() | |
BcpsTreeNode () | |
Default constructor. More... | |
virtual | ~BcpsTreeNode () |
Destructor. More... | |
const BcpsBranchObject * | branchObject () const |
Return the branching object. More... | |
void | setBranchObject (BcpsBranchObject *b) |
Set the branching object. More... | |
![]() | |
AlpsTreeNode () | |
virtual | ~AlpsTreeNode () |
bool | operator< (const AlpsTreeNode &compNode) |
AlpsNodeDesc * | modifyDesc () |
Access the desc so that can modify it. More... | |
AlpsNodeDesc * | getDesc () const |
void | setDesc (AlpsNodeDesc *desc) |
AlpsKnowledgeBroker * | getKnowledgeBroker () const |
Functions to access/set the knwoledge broker. More... | |
void | setKnowledgeBroker (AlpsKnowledgeBroker *kb) |
void | removeChild (AlpsTreeNode *&child) |
Remove the pointer to given child from the list of children. More... | |
void | addChild (AlpsTreeNode *&child) |
Add a child to the list of children for this node. More... | |
void | removeDescendants () |
Removes all the descendants of the node. More... | |
AlpsNodeStatus | getStatus () const |
Query/set the current status. More... | |
void | setStatus (const AlpsNodeStatus stat) |
Query/set the current status. More... | |
bool | isCandidate () const |
Query functions about specific stati. More... | |
bool | isEvaluated () const |
Query functions about specific stati. More... | |
bool | isPregnant () const |
Query functions about specific stati. More... | |
bool | isBranched () const |
Query functions about specific stati. More... | |
bool | isFathomed () const |
Query functions about specific stati. More... | |
bool | isDiscarded () const |
Query functions about specific stati. More... | |
bool | isActive () const |
Query/set node in-process indicator. More... | |
void | setActive (const bool yesno) |
Query/set node in-process indicator. More... | |
AlpsNodeIndex_t | getIndex () const |
Query/set node identifier (unique within subtree). More... | |
void | setIndex (const AlpsNodeIndex_t index) |
Query/set node identifier (unique within subtree). More... | |
int | getDepth () const |
Query/set what depth the search tree node is at. More... | |
void | setDepth (const int depth) |
Query/set what depth the search tree node is at. More... | |
double | getSolEstimate () const |
Query/set the solution estimate of the node. More... | |
void | setSolEstimate (double est) |
Query/set the solution estimate of the node. More... | |
double | getQuality () const |
Query/set the quality of the node. More... | |
void | setQuality (double quality) |
Query/set the quality of the node. More... | |
int | getNumChildren () const |
Query/set what the number of children. More... | |
void | setNumChildren (const int numChildren) |
Query/set what the number of children. More... | |
void | modifyNumChildren (const int s) |
Query/set what the number of children. More... | |
AlpsTreeNode * | getChild (const int i) const |
Query/set pointer to the ith child. More... | |
void | setChild (const int i, AlpsTreeNode *node) |
Returns a const pointer to the ith child. More... | |
AlpsTreeNode * | getParent () const |
Get/set subtree. More... | |
void | setParent (AlpsTreeNode *parent) |
Get/set subtree. More... | |
AlpsNodeIndex_t | getParentIndex () const |
Get/set the index of the parent of the node. More... | |
void | setParentIndex (AlpsNodeIndex_t index) |
Get/set the index of the parent of the node. More... | |
int | getExplicit () const |
Get/set the indication of whether the node has full or differencing description. More... | |
void | setExplicit (int fp) |
Get/set the indication of whether the node has full or differencing description. More... | |
int | getDiving () const |
If the this node is in a diving process. More... | |
void | setDiving (const bool d) |
If the this node is in a diving process. More... | |
int | getSentMark () const |
Various marks used in parallel code. More... | |
void | setSentMark (const int tf) |
Various marks used in parallel code. More... | |
![]() | |
AlpsKnowledge () | |
virtual | ~AlpsKnowledge () |
KnowledgeType | getType () |
void | setType (KnowledgeType t) |
virtual AlpsReturnStatus | encode (AlpsEncoded *encoded) |
Pack into a encode object. More... | |
AlpsEncoded * | getEncoded () const |
Get/set encoded. More... | |
void | setEncoded (AlpsEncoded *e) |
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. More... | |
virtual bool | fathom () |
Takes the explicit description of the current active node and decides whether or not it should be fathomed. More... | |
BlisTreeNode (const BlisTreeNode &) | |
No copy constructor, assignment operator. More... | |
BlisTreeNode & | operator= (const BlisTreeNode &) |
bool | parallel (BlisModel *model, OsiCuts *newCutSet, int lastNew, OsiRowCut *rowCut) |
Constraint pool. More... | |
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. More... | |
virtual bool | fathom () |
Takes the explicit description of the current active node and decides whether or not it should be fathomed. More... | |
BlisTreeNode (const BlisTreeNode &) | |
No copy constructor, assignment operator. More... | |
BlisTreeNode & | operator= (const BlisTreeNode &) |
bool | parallel (BlisModel *model, BcpsConstraintPool &conPool, int lastNew, BlisConstraint *aCon) |
Constraint pool. More... | |
double | estimateSolution (BlisModel *model, const double *lpSolution, double lpObjValue) const |
Estimate quality of a feasible solution. More... | |
Additional Inherited Members | |
![]() | |
virtual int | generateConstraints (BcpsModel *model, BcpsConstraintPool *conPool) |
Generate constraints. More... | |
virtual int | generateVariables (BcpsModel *model, BcpsVariablePool *varPool) |
Generate variables. More... | |
virtual int | handleBoundingStatus (int status, bool &keepOn, bool &fathomed) |
Handle bounding status: More... | |
AlpsReturnStatus | encodeBcps (AlpsEncoded *encoded) const |
Pack Bcps portion of node into an encoded object. More... | |
![]() | |
BcpsBranchObject * | branchObject_ |
Branching object for this node, which has information of how to execute branching. More... | |
![]() | |
bool | active_ |
The subtree own this node. More... | |
AlpsNodeIndex_t | index_ |
The unique index of the tree node (across the whole search tree). More... | |
int | depth_ |
The depth of the node (in the whole tree – the root is at depth 0). More... | |
double | solEstimate_ |
The solution estimate. More... | |
double | quality_ |
The quality of this node. More... | |
AlpsTreeNode * | parent_ |
The parent of the tree node. More... | |
AlpsNodeIndex_t | parentIndex_ |
The index of parent of the tree node. More... | |
int | numChildren_ |
The number of children. More... | |
AlpsTreeNode ** | children_ |
int | explicit_ |
Indicate whether the node description is explicit(1) or relative(0). More... | |
AlpsNodeDesc * | desc_ |
The actual description of the tree node. More... | |
AlpsNodeStatus | status_ |
The current status of the node. More... | |
AlpsKnowledgeBroker * | knowledgeBroker_ |
A pointer to the knowledge broker of the process where this node is processed. More... | |
int | sentMark_ |
Various mark used in splitting and passing subtrees. More... | |
bool | diving_ |
When processing it, if it is in the diving processing. More... | |
![]() | |
KnowledgeType | type_ |
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.
|
private |
No copy constructor, assignment operator.
|
inline |
Default constructor.
Definition at line 74 of file BlisTreeNode.h.
|
inline |
Useful constructor.
Definition at line 80 of file BlisTreeNode.h.
|
inline |
Useful constructor.
Definition at line 86 of file BlisTreeNode.h.
|
inlinevirtual |
Destructor.
Definition at line 93 of file BlisTreeNode.h.
|
private |
No copy constructor, assignment operator.
|
inline |
Default constructor.
Definition at line 79 of file BlisTreeNode.h.
|
inline |
Useful constructor.
Definition at line 85 of file BlisTreeNode.h.
|
inline |
Useful constructor.
Definition at line 91 of file BlisTreeNode.h.
|
inlinevirtual |
Destructor.
Definition at line 98 of file BlisTreeNode.h.
|
privatevirtual |
|
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.
|
privatevirtual |
Takes the explicit description of the current active node and decides whether or not it should be fathomed.
|
private |
|
private |
Constraint pool.
Variable pool. Save an explicit node description.
|
inline |
Initilize member data when constructing a node.
Definition at line 99 of file BlisTreeNode.h.
|
virtual |
Create a new node based on given desc.
Implements AlpsTreeNode.
|
virtual |
Convert explicit description to difference, and vise-vesa.
Reimplemented from AlpsTreeNode.
|
virtual |
Convert explicit description to difference, and vise-vesa.
Reimplemented from AlpsTreeNode.
|
virtual |
intall subproblem
Implements BcpsTreeNode.
|
virtual |
Performing the bounding operation.
Reimplemented from BcpsTreeNode.
|
virtual |
Bounding procedure.
Implements BcpsTreeNode.
|
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.
|
inlinevirtual |
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 |
Return constraint pool.
Return variable pool. Encode this node for message passing.
Reimplemented from AlpsKnowledge.
|
virtual |
Decode a node from an encoded object.
Reimplemented from AlpsKnowledge.
|
privatevirtual |
|
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.
|
privatevirtual |
Takes the explicit description of the current active node and decides whether or not it should be fathomed.
|
private |
|
private |
Constraint pool.
Variable pool. Save an explicit node description. Check and remove parallel constraints.
|
private |
Estimate quality of a feasible solution.
|
inline |
Initilize member data when constructing a node.
Definition at line 103 of file BlisTreeNode.h.
|
virtual |
Create a new node based on given desc.
Implements AlpsTreeNode.
|
virtual |
Convert explicit description to difference, and vise-vesa.
Reimplemented from AlpsTreeNode.
|
virtual |
Convert explicit description to difference, and vise-vesa.
Reimplemented from AlpsTreeNode.
|
virtual |
intall subproblem
Implements BcpsTreeNode.
|
virtual |
Performing the bounding operation.
Reimplemented from BcpsTreeNode.
|
virtual |
Bounding procedure.
Implements BcpsTreeNode.
|
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.
|
inlinevirtual |
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 |
Encode this node for message passing.
Reimplemented from AlpsKnowledge.
|
virtual |
Decode a node from an encoded object.
Reimplemented from AlpsKnowledge.