Dip  0.92.4
BcpsDecompTreeNode.h
Go to the documentation of this file.
1 //===========================================================================//
2 // This file is part of the Decomp Solver Framework. //
3 // //
4 // Decomp is distributed under the Common Public License as part of the //
5 // COIN-OR repository (http://www.coin-or.org). //
6 // //
7 // Author: Matthew Galati, SAS Institute Inc. (matthew.galati@sas.com) //
8 // //
9 // Copyright (C) 2002-2007, Lehigh University, Matthew Galati, and Ted Ralphs//
10 // All Rights Reserved. //
11 //===========================================================================//
12 
13 #ifndef BcpsDecompTreeNode_h_
14 #define BcpsDecompTreeNode_h_
15 
16 //THINK: gardner discussion about interface class to hide the details
17 //only show use the virtual methods
18 
19 //===========================================================================//
20 #include "Alps.h"
21 #include "BcpsTreeNode.h"
22 
23 //===========================================================================//
24 class AlpsTreeNode;
25 class AlpsNodeDesc;
26 
27 //===========================================================================//
28 //---
29 //--- BcpsDecompTreeNode is derived from BcpsTreeNode
30 //--- BcpsTreeNode virtual methods that must be derived:
31 //--- (1) chooseBranchingObject (pure virtual)
32 //--- (2) installSubProblem (pure virtual)
33 //--- (3) bound (pure virtual)
34 //--- (4) branch (pure virtual)
35 //--- BcpsTreeNode virtual methods that should be derived:
36 //--- (1) generateConstraints (does nothing)
37 //--- (2) generateVariables (does nothing)
38 //--- (3) handleBoundingStatus (does nothing)
39 //--- (4) process (the meat of the algo?)
40 //--- BcpsTreeNode is derived from AlpsTreeNode
41 //--- AlpsTreeNode virtual methods that must be derived:
42 //--- (1) createNewTreeNode (pure virtual)
43 //--- (2) process (pure virtual)
44 //--- (3) branch (pure virtual)
45 //--- AlpsTreeNode virtual methods that should be derived:
46 //--- (1) convertToExplicit() (does nothing)
47 //--- (2) convertToRelative() (does nothing)
48 //---
49 
50 //===========================================================================//
51 class BcpsDecompTreeNode : public BcpsTreeNode {
52  private:
54  static const char * m_classTag;
55 
58 
59  private:
60  //---
61  //--- disable default copy constructor
62  //---
65 
66  public:
69  : BcpsTreeNode()
70  {
71  }
72 
75  }
76 
77  //---
78  //--- pure virtual functions from BcpsTreeNode or AlpsTreeNode
79  //---
80 
83 
85  int chooseBranchingObject(BcpsModel * model);
86 
88  int installSubProblem(BcpsModel * model);
89 
91  int bound(BcpsModel * model);
92 
93  //point direct to DECOMP?
95  int process(bool isRoot, bool rampUp);
96 
101  std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> > branch();
102 };
103 
104 #endif
std::vector< CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > branch()
Takes the explicit description of the current active node and creates the children&#39;s descriptions...
int installSubProblem(BcpsModel *model)
intall subproblem
int chooseBranchingObject(BcpsModel *model)
To be defined.
BcpsDecompTreeNode()
Default constructor.
int bound(BcpsModel *model)
Bounding procedure.
virtual ~BcpsDecompTreeNode()
Destructor.
This class holds one node of the search tree.
Definition: AlpsTreeNode.h:50
AlpsTreeNode * createNewTreeNode(AlpsNodeDesc *&desc) const
Create a new node based on given desc.
int process(bool isRoot, bool rampUp)
Performing the bounding operation.
BcpsDecompTreeNode & operator=(const BcpsDecompTreeNode &)
static const char * m_classTag
class tag for debugging
A class to refer to the description of a search tree node.
Definition: AlpsNodeDesc.h:35