Go to the documentation of this file.00001
00002 #ifndef CbcPartialNodeInfo_H
00003 #define CbcPartialNodeInfo_H
00004
00005 #include <string>
00006 #include <vector>
00007
00008 #include "CoinWarmStartBasis.hpp"
00009 #include "CoinSearchTree.hpp"
00010 #include "CbcBranchBase.hpp"
00011 #include "CbcNodeInfo.hpp"
00012
00013 class OsiSolverInterface;
00014 class OsiSolverBranch;
00015
00016 class OsiCuts;
00017 class OsiRowCut;
00018 class OsiRowCutDebugger;
00019 class CoinWarmStartBasis;
00020 class CbcCountRowCut;
00021 class CbcModel;
00022 class CbcNode;
00023 class CbcSubProblem;
00024 class CbcGeneralBranchingObject;
00033 class CbcPartialNodeInfo : public CbcNodeInfo {
00034
00035 public:
00036
00042 virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
00043 CbcCountRowCut **addCuts,
00044 int ¤tNumberCuts) const ;
00045
00047 virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
00052 virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis ) const ;
00053
00054 CbcPartialNodeInfo ();
00055
00056
00057 CbcPartialNodeInfo (CbcNodeInfo * parent, CbcNode * owner,
00058 int numberChangedBounds, const int * variables,
00059 const double * boundChanges,
00060 const CoinWarmStartDiff *basisDiff) ;
00061
00062
00063 CbcPartialNodeInfo ( const CbcPartialNodeInfo &);
00064
00065
00066 ~CbcPartialNodeInfo ();
00067
00069 virtual CbcNodeInfo * clone() const;
00071 inline const CoinWarmStartDiff *basisDiff() const {
00072 return basisDiff_ ;
00073 }
00075 inline const int * variables() const {
00076 return variables_;
00077 }
00078
00079 inline const double * newBounds() const {
00080 return newBounds_;
00081 }
00083 inline int numberChangedBounds() const {
00084 return numberChangedBounds_;
00085 }
00086 protected:
00087
00088
00090 CoinWarmStartDiff *basisDiff_ ;
00092 int * variables_;
00093
00094 double * newBounds_;
00096 int numberChangedBounds_;
00097 private:
00098
00100 CbcPartialNodeInfo & operator=(const CbcPartialNodeInfo& rhs);
00101 };
00102
00103 #endif //CbcPartialNodeInfo_H
00104