Go to the documentation of this file.00001
00002 #ifndef CbcBranchToFixLots_H
00003 #define CbcBranchToFixLots_H
00004
00005 #include "CbcBranchCut.hpp"
00006 #include "CbcBranchBase.hpp"
00007 #include "OsiRowCut.hpp"
00008 #include "CoinPackedMatrix.hpp"
00009
00017 class CbcBranchToFixLots : public CbcBranchCut {
00018
00019 public:
00020
00021
00022 CbcBranchToFixLots ();
00023
00030 CbcBranchToFixLots (CbcModel * model, double djTolerance,
00031 double fractionFixed, int depth,
00032 int numberClean = 0,
00033 const char * mark = NULL,
00034 bool alwaysCreate = false);
00035
00036
00037 CbcBranchToFixLots ( const CbcBranchToFixLots &);
00038
00040 virtual CbcObject * clone() const;
00041
00042
00043 CbcBranchToFixLots & operator=( const CbcBranchToFixLots& rhs);
00044
00045
00046 ~CbcBranchToFixLots ();
00047
00052 int shallWe() const;
00053
00055 virtual double infeasibility(const OsiBranchingInformation * info,
00056 int &preferredWay) const;
00059 virtual bool canDoHeuristics() const {
00060 return true;
00061 }
00062
00064 virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
00066 virtual void redoSequenceEtc(CbcModel * model, int numberColumns, const int * originalColumns);
00067
00068
00069 protected:
00071
00073 double djTolerance_;
00075 double fractionFixed_;
00077 char * mark_;
00079 CoinPackedMatrix matrixByRow_;
00081 int depth_;
00083 int numberClean_;
00085 bool alwaysCreate_;
00086 };
00087 #endif
00088