Cbc  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
CbcBranchToFixLots.hpp
Go to the documentation of this file.
00001 // $Id$
00002 // Copyright (C) 2004, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
00005 
00006 // Edwin 11/13/2009-- carved out of CbcBranchCut
00007 
00008 #ifndef CbcBranchToFixLots_H
00009 #define CbcBranchToFixLots_H
00010 
00011 #include "CbcBranchCut.hpp"
00012 #include "CbcBranchBase.hpp"
00013 #include "OsiRowCut.hpp"
00014 #include "CoinPackedMatrix.hpp"
00015 
00023 class CbcBranchToFixLots : public CbcBranchCut {
00024 
00025 public:
00026 
00027     // Default Constructor
00028     CbcBranchToFixLots ();
00029 
00036     CbcBranchToFixLots (CbcModel * model, double djTolerance,
00037                         double fractionFixed, int depth,
00038                         int numberClean = 0,
00039                         const char * mark = NULL,
00040                         bool alwaysCreate = false);
00041 
00042     // Copy constructor
00043     CbcBranchToFixLots ( const CbcBranchToFixLots &);
00044 
00046     virtual CbcObject * clone() const;
00047 
00048     // Assignment operator
00049     CbcBranchToFixLots & operator=( const CbcBranchToFixLots& rhs);
00050 
00051     // Destructor
00052     ~CbcBranchToFixLots ();
00053 
00058     int shallWe() const;
00059 
00061     virtual double infeasibility(const OsiBranchingInformation * info,
00062                                  int &preferredWay) const;
00065     virtual bool canDoHeuristics() const {
00066         return true;
00067     }
00068 
00070     virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
00072     virtual void redoSequenceEtc(CbcModel * model, int numberColumns, const int * originalColumns);
00073 
00074 
00075 protected:
00077 
00079     double djTolerance_;
00081     double fractionFixed_;
00083     char * mark_;
00085     CoinPackedMatrix matrixByRow_;
00087     int depth_;
00089     int numberClean_;
00091     bool alwaysCreate_;
00092 };
00093 #endif
00094 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines