Bonmin
1.7
|
00001 // (C) Copyright International Business Machines Corporation and Carnegie Mellon University 2006 00002 // All Rights Reserved. 00003 // This code is published under the Common Public License. 00004 // 00005 // Authors : 00006 // John J. Forrest, International Business Machines Corporation 00007 // Pierre Bonami, Carnegie Mellon University, 00008 // 00009 // Date : 03/15/2006 00010 00011 #ifndef BonminCbcNode_H 00012 #define BonminCbcNode_H 00013 00014 #include "CbcNode.hpp" 00015 #include "BonRegisteredOptions.hpp" 00016 00017 00018 namespace Bonmin 00019 { 00028 class BonCbcFullNodeInfo : public CbcFullNodeInfo 00029 { 00030 00031 public: 00032 friend class BonCbcPartialNodeInfo; 00033 // Default Constructor 00034 BonCbcFullNodeInfo (); 00035 00036 // Constructor from current state 00037 BonCbcFullNodeInfo (CbcModel * model, int numberRowsAtContinuous); 00038 00039 // Copy constructor 00040 BonCbcFullNodeInfo ( const BonCbcFullNodeInfo &); 00041 00042 // Destructor 00043 ~BonCbcFullNodeInfo (); 00044 00046 virtual CbcNodeInfo * clone() const; 00047 00050 virtual void allBranchesGone(); 00051 00053 inline int getSequenceOfInfeasiblesSize() 00054 { 00055 return sequenceOfInfeasiblesSize_; 00056 } 00058 inline int getSequenceOfUnsolvedSize() 00059 { 00060 return sequenceOfUnsolvedSize_; 00061 } 00063 static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions); 00064 00065 private: 00066 /* Data values */ 00068 int sequenceOfInfeasiblesSize_; 00070 int sequenceOfUnsolvedSize_; 00071 private: 00072 00074 BonCbcFullNodeInfo & operator=(const BonCbcFullNodeInfo& rhs); 00075 }; 00076 00085 class BonCbcPartialNodeInfo : public CbcPartialNodeInfo 00086 { 00087 00088 public: 00089 // Default Constructor 00090 BonCbcPartialNodeInfo (); 00091 00092 // Constructor from current state 00093 BonCbcPartialNodeInfo (CbcModel * model, CbcNodeInfo * parent, CbcNode * owner, 00094 int numberChangedBounds,const int * variables, 00095 const double * boundChanges, 00096 const CoinWarmStartDiff *basisDiff) ; 00097 00098 // Copy constructor 00099 BonCbcPartialNodeInfo ( const BonCbcPartialNodeInfo &); 00100 00101 // Destructor 00102 ~BonCbcPartialNodeInfo (); 00103 00105 virtual CbcNodeInfo * clone() const; 00106 00109 virtual void allBranchesGone(); 00110 00112 inline int getSequenceOfInfeasiblesSize() 00113 { 00114 return sequenceOfInfeasiblesSize_; 00115 } 00117 inline int getSequenceOfUnsolvedSize() 00118 { 00119 return sequenceOfUnsolvedSize_; 00120 } 00121 private: 00122 /* Data values */ 00124 int sequenceOfInfeasiblesSize_; 00126 int sequenceOfUnsolvedSize_; 00127 private: 00128 00130 BonCbcPartialNodeInfo & operator=(const Bonmin::BonCbcPartialNodeInfo& rhs); 00131 }; 00132 } 00133 #endif