Cgl trunk
|
00001 // Copyright (C) 2005, International Business Machines 00002 // Corporation and others. All Rights Reserved. 00003 // This code is licensed under the terms of the Eclipse Public License (EPL). 00004 00005 #ifndef CglAllDifferent_H 00006 #define CglAllDifferent_H 00007 00008 #include <string> 00009 00010 #include "CglCutGenerator.hpp" 00011 00020 class CglAllDifferent : public CglCutGenerator { 00021 00022 public: 00023 00024 00029 virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs, 00030 const CglTreeInfo info = CglTreeInfo()) const; 00032 00033 00036 00037 CglAllDifferent (); 00038 00040 CglAllDifferent(int numberSets, const int * starts, const int * which); 00041 00043 CglAllDifferent ( 00044 const CglAllDifferent &); 00045 00047 virtual CglCutGenerator * clone() const; 00048 00050 CglAllDifferent & 00051 operator=( 00052 const CglAllDifferent& rhs); 00053 00055 virtual 00056 ~CglAllDifferent (); 00058 virtual std::string generateCpp( FILE * fp); 00059 00061 virtual void refreshSolver(OsiSolverInterface * solver); 00069 virtual bool mayGenerateRowCutsInTree() const 00070 { return false;} 00072 00074 00075 inline void setLogLevel(int value) 00076 { logLevel_=value;} 00078 inline int getLogLevel() const 00079 { return logLevel_;} 00081 inline void setMaxLook(int value) 00082 { maxLook_=value;} 00084 inline int getMaxLook() const 00085 { return maxLook_;} 00087 00088 private: 00089 00090 // Private member methods 00093 00094 00095 // Private member data 00096 00099 00100 int numberSets_; 00102 int numberDifferent_; 00104 int maxLook_; 00106 int logLevel_; 00108 int * start_; 00110 int * which_; 00112 int * originalWhich_; 00114 }; 00115 #endif