Cbc trunk
|
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 CbcBranchAllDifferent_H 00009 #define CbcBranchAllDifferent_H 00010 00011 #include "CbcBranchBase.hpp" 00012 #include "OsiRowCut.hpp" 00013 #include "CoinPackedMatrix.hpp" 00014 #include "CbcBranchCut.hpp" 00015 00022 class CbcBranchAllDifferent : public CbcBranchCut { 00023 00024 public: 00025 00026 // Default Constructor 00027 CbcBranchAllDifferent (); 00028 00031 CbcBranchAllDifferent (CbcModel * model, int number, const int * which); 00032 00033 // Copy constructor 00034 CbcBranchAllDifferent ( const CbcBranchAllDifferent &); 00035 00037 virtual CbcObject * clone() const; 00038 00039 // Assignment operator 00040 CbcBranchAllDifferent & operator=( const CbcBranchAllDifferent& rhs); 00041 00042 // Destructor 00043 ~CbcBranchAllDifferent (); 00044 00046 virtual double infeasibility(const OsiBranchingInformation * info, 00047 int &preferredWay) const; 00048 00050 virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ; 00051 00052 00053 protected: 00055 00057 int numberInSet_; 00059 int * which_; 00060 }; 00061 #endif 00062