00001
00002
00003 #ifndef CglGomory_H
00004 #define CglGomory_H
00005
00006 #include <string>
00007
00008 #include "CglCutGenerator.hpp"
00009
00010 class CoinWarmStartBasis;
00012 class CglGomory : public CglCutGenerator {
00013 friend void CglGomoryUnitTest(const OsiSolverInterface * siP,
00014 const std::string mpdDir );
00015
00016 public:
00017
00018
00032 virtual void generateCuts( const OsiSolverInterface & si,
00033 OsiCuts & cs) const;
00036 int generateCuts( const OsiRowCutDebugger * debugger,
00037 OsiCuts & cs,
00038 const CoinPackedMatrix & columnCopy,
00039 const double * objective, const double * colsol,
00040 const double * colLower, const double * colUpper,
00041 const double * rowLower, const double * rowUpper,
00042 const char * intVar ,
00043 const CoinWarmStartBasis* warm) const;
00044
00046
00049
00050 void setLimit(int limit);
00052 int getLimit() const;
00054
00059
00060 void setAway(double value);
00062 double getAway() const;
00064
00065
00068
00069 CglGomory ();
00070
00072 CglGomory (
00073 const CglGomory &);
00074
00076 CglGomory &
00077 operator=(
00078 const CglGomory& rhs);
00079
00081 virtual
00082 ~CglGomory ();
00084
00085 private:
00086
00087
00088
00089
00090
00093
00094 double away_;
00096 int limit_;
00098 };
00099
00100
00106 void CglGomoryUnitTest(const OsiSolverInterface * siP,
00107 const std::string mpdDir );
00108
00109 #endif