/build/buildd/coinor-cbc-2.5.0/Cbc/src/CbcBranchAllDifferent.hpp
Go to the documentation of this file.
00001 // Edwin 11/13/2009-- carved out of CbcBranchCut
00002 #ifndef CbcBranchAllDifferent_H
00003 #define CbcBranchAllDifferent_H
00004 
00005 #include "CbcBranchBase.hpp"
00006 #include "OsiRowCut.hpp"
00007 #include "CoinPackedMatrix.hpp"
00008 #include "CbcBranchCut.hpp"
00009 
00016 class CbcBranchAllDifferent : public CbcBranchCut {
00017 
00018 public:
00019 
00020     // Default Constructor
00021     CbcBranchAllDifferent ();
00022 
00025     CbcBranchAllDifferent (CbcModel * model, int number, const int * which);
00026 
00027     // Copy constructor
00028     CbcBranchAllDifferent ( const CbcBranchAllDifferent &);
00029 
00031     virtual CbcObject * clone() const;
00032 
00033     // Assignment operator
00034     CbcBranchAllDifferent & operator=( const CbcBranchAllDifferent& rhs);
00035 
00036     // Destructor
00037     ~CbcBranchAllDifferent ();
00038 
00040     virtual double infeasibility(const OsiBranchingInformation * info,
00041                                  int &preferredWay) const;
00042 
00044     virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
00045 
00046 
00047 protected:
00049 
00051     int numberInSet_;
00053     int * which_;
00054 };
00055 #endif
00056