Cbc trunk
CbcBranchAllDifferent.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 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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines