Dip
0.95.0
src
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
//===========================================================================//
27
class
AlpsDecompTreeNode
:
public
AlpsTreeNode
{
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
:
39
AlpsDecompTreeNode
() :
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
59
AlpsTreeNode
*
createNewTreeNode
(
AlpsNodeDesc
*& desc)
const
;
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
Generated by
1.8.17