Dip  0.95.0
AlpsDecompTreeNode.h
Go to the documentation of this file.
1 //===========================================================================//
2 // This file is part of the DIP Solver Framework. //
3 // //
4 // DIP is distributed under the Eclipse Public License as part of the //
5 // COIN-OR repository (http://www.coin-or.org). //
6 // //
7 // Authors: Matthew Galati, SAS Institute Inc. (matthew.galati@sas.com) //
8 // Ted Ralphs, Lehigh University (ted@lehigh.edu) //
9 // Jiadong Wang, Lehigh University (jiw408@lehigh.edu) //
10 // //
11 // Copyright (C) 2002-2019, Lehigh University, Matthew Galati, Ted Ralphs //
12 // All Rights Reserved. //
13 //===========================================================================//
14 
15 #ifndef AlpsDecompTreeNode_h_
16 #define AlpsDecompTreeNode_h_
17 
18 //===========================================================================//
19 #include "Alps.h"
20 #include "AlpsTreeNode.h"
21 
22 //===========================================================================//
23 class AlpsNodeDesc;
24 class AlpsDecompModel;
25 
26 //===========================================================================//
28 private:
30  std::string m_classTag;
31 
32  std::vector< std::pair<int, double> > downBranchLB_;
33  std::vector< std::pair<int, double> > downBranchUB_;
34  std::vector< std::pair<int, double> > upBranchLB_;
35  std::vector< std::pair<int, double> > upBranchUB_;
36 
37 public:
40  AlpsTreeNode(),
41  m_classTag ("ALPSTN")
42 
43  {
44  //quality_ = -ALPS_OBJ_MAX;//MVG?
45  }
46 
48  virtual ~AlpsDecompTreeNode() {
49  }
50 
51  bool checkIncumbent(AlpsDecompModel* model,
52  const DecompSolution* decompSol);
53 
54  //---
55  //--- pure virtual functions from AlpsTreeNode or AlpsTreeNode
56  //---
57 
60 
62  int chooseBranchingObject(AlpsModel* model);
63 
64 
65  //point direct to DECOMP?
67  int process(bool isRoot = false, bool rampUp = false);
68 
73  std::vector< CoinTriple<AlpsNodeDesc*, AlpsNodeStatus, double> > branch();
74 
75 };
76 
77 #endif
AlpsDecompTreeNode::chooseBranchingObject
int chooseBranchingObject(AlpsModel *model)
To be defined.
AlpsDecompTreeNode::~AlpsDecompTreeNode
virtual ~AlpsDecompTreeNode()
Destructor.
Definition: AlpsDecompTreeNode.h:48
AlpsModel
AlpsDecompTreeNode::AlpsDecompTreeNode
AlpsDecompTreeNode()
Default constructor.
Definition: AlpsDecompTreeNode.h:39
AlpsDecompModel
Derivation of AlpsModel for DECOMP.
Definition: AlpsDecompModel.h:64
DecompSolution
Definition: DecompSolution.h:19
AlpsDecompTreeNode::createNewTreeNode
AlpsTreeNode * createNewTreeNode(AlpsNodeDesc *&desc) const
Create a new node based on given desc.
AlpsTreeNode
AlpsDecompTreeNode::process
int process(bool isRoot=false, bool rampUp=false)
Performing the bounding operation.
AlpsDecompTreeNode::checkIncumbent
bool checkIncumbent(AlpsDecompModel *model, const DecompSolution *decompSol)
AlpsNodeDesc
AlpsTreeNode.h
Alps.h
AlpsDecompTreeNode::branch
std::vector< CoinTriple< AlpsNodeDesc *, AlpsNodeStatus, double > > branch()
Takes the explicit description of the current active node and creates the children's descriptions,...
AlpsDecompTreeNode
Definition: AlpsDecompTreeNode.h:27