source: branches/devel/Bonmin/src/CbcBonmin/BonCbcNode.hpp @ 57

Last change on this file since 57 was 57, checked in by pbonami, 13 years ago

Rename file with Bon prefix part II

  • Property svn:eol-style set to native
  • Property svn:keywords set to "Author Date Id Revision"
File size: 3.7 KB
Line 
1// (C) Copyright International Business Machines Corporation and Carnegie Mellon University 2006
2// All Rights Reserved.
3// This code is published under the Common Public License.
4//
5// Authors :
6// John J. Forrest, International Business Machines Corporation
7// Pierre Bonami, Carnegie Mellon University,
8//
9// Date : 03/15/2006
10
11#ifndef BonminCbcNode_H
12#define BonminCbcNode_H
13
14#include "CbcNode.hpp"
15
16
17namespace Bonmin{
18/** \brief Holds information for recreating a subproblem by incremental change
19           from the parent for Bonmin
20
21  A BonminBonminCbcPartialNodeInfo object contains changes to the bounds and basis, and
22  additional cuts, required to recreate a subproblem by modifying and
23  augmenting the parent subproblem.
24*/
25
26class BonCbcFullNodeInfo : public CbcFullNodeInfo
27{
28
29public:
30  friend class BonCbcPartialNodeInfo;
31  // Default Constructor
32  BonCbcFullNodeInfo ();
33
34  // Constructor from current state
35  BonCbcFullNodeInfo (CbcModel * model, int numberRowsAtContinuous);
36
37  // Copy constructor
38  BonCbcFullNodeInfo ( const BonCbcFullNodeInfo &);
39
40  // Destructor
41  ~BonCbcFullNodeInfo ();
42
43  /// Clone
44  virtual CbcNodeInfo * clone() const;
45
46  /**Method called when all direct sons have been explored to flush
47     useless warm start information.*/
48  virtual void allBranchesGone();
49
50  /** Number of consecutive infeasible parents only recorded if node is infeasible*/
51  inline int getSequenceOfInfeasiblesSize()
52  {
53    return sequenceOfInfeasiblesSize_;
54  }
55  /** Number of consecutive unsolved parents only recorded if node is infeasible*/
56  inline int getSequenceOfUnsolvedSize()
57  {
58    return sequenceOfUnsolvedSize_;
59  }
60private:
61  /* Data values */
62  /** Number of consecutive infeasible parents only recorded if node is infeasible*/
63  int sequenceOfInfeasiblesSize_;
64  /** Number of consecutive unsolved parents only recorded if node is infeasible*/
65  int sequenceOfUnsolvedSize_;
66private:
67
68  /// Illegal Assignment operator
69  BonCbcFullNodeInfo & operator=(const BonCbcFullNodeInfo& rhs);
70};
71
72/** \brief Holds information for recreating a subproblem by incremental change
73           from the parent for
74
75  A BonminCbcPartialNodeInfo object contains changes to the bounds and basis, and
76  additional cuts, required to recreate a subproblem by modifying and
77  augmenting the parent subproblem.
78*/
79
80class BonCbcPartialNodeInfo : public CbcPartialNodeInfo
81{
82
83public:
84  // Default Constructor
85  BonCbcPartialNodeInfo ();
86
87  // Constructor from current state
88  BonCbcPartialNodeInfo (CbcModel * model, CbcNodeInfo * parent, CbcNode * owner,
89      int numberChangedBounds,const int * variables,
90      const double * boundChanges,
91      const CoinWarmStartDiff *basisDiff) ;
92
93  // Copy constructor
94  BonCbcPartialNodeInfo ( const BonCbcPartialNodeInfo &);
95
96  // Destructor
97  ~BonCbcPartialNodeInfo ();
98
99  /// Clone
100  virtual CbcNodeInfo * clone() const;
101
102  /**Method called when all direct sons have been explored to flush
103     useless warm start information.*/
104  virtual void allBranchesGone();
105
106  /** Number of consecutive infeasible parents only recorded if node is infeasible*/
107  inline int getSequenceOfInfeasiblesSize()
108  {
109    return sequenceOfInfeasiblesSize_;
110  }
111  /** Number of consecutive unsolved parents only recorded if node is infeasible*/
112  inline int getSequenceOfUnsolvedSize()
113  {
114    return sequenceOfUnsolvedSize_;
115  }
116private:
117  /* Data values */
118  /** Number of consecutive infeasible parents only recorded if node is infeasible*/
119  int sequenceOfInfeasiblesSize_;
120  /** Number of consecutive unsolved parents only recorded if node is infeasible*/
121  int sequenceOfUnsolvedSize_;
122private:
123
124  /// Illegal Assignment operator
125  BonCbcPartialNodeInfo & operator=(const Bonmin::BonCbcPartialNodeInfo& rhs);
126};
127}
128#endif
Note: See TracBrowser for help on using the repository browser.