/home/coin/SVN-release/CoinAll-1.1.0/Cgl/src/CglOddHole/CglOddHole.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef CglOddHole_H
00004 #define CglOddHole_H
00005 
00006 #include <string>
00007 
00008 #include "CglCutGenerator.hpp"
00009 
00011 class CglOddHole : public CglCutGenerator {
00012    friend void CglOddHoleUnitTest(const OsiSolverInterface * siP,
00013                                   const std::string mpdDir );
00014  
00015 public:
00016     
00017   
00038   virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
00039                              const CglTreeInfo info = CglTreeInfo()) const;
00041 
00044 
00045 
00046 
00047   void createRowList( const OsiSolverInterface & si,
00048                       const int * possible=NULL);
00050   void createRowList(int numberRows, const int * whichRow);
00052 
00055 
00056 
00057   void createCliqueList(int numberCliques, const int * cliqueStart,
00058                      const int * cliqueMember);
00060 
00063 
00064   int numberPossible();
00066 
00068 
00069   double getMinimumViolation() const;
00070   void setMinimumViolation(double value);
00072   double getMinimumViolationPer() const;
00073   void setMinimumViolationPer(double value);
00075   int getMaximumEntries() const;
00076   void setMaximumEntries(int value);
00078 
00081 
00082   CglOddHole ();
00083  
00085   CglOddHole (
00086     const CglOddHole &);
00087 
00089   virtual CglCutGenerator * clone() const;
00090 
00092   CglOddHole &
00093     operator=(
00094     const CglOddHole& rhs);
00095   
00097   virtual
00098     ~CglOddHole ();
00099 
00101   virtual void refreshSolver(OsiSolverInterface * solver);
00103       
00104 private:
00105   
00106  // Private member methods
00107 
00108 
00111 
00112 
00113   void generateCuts(const OsiRowCutDebugger * debugger, 
00114                     const CoinPackedMatrix & rowCopy,
00115                     const double * solution, const double * dj,
00116                     OsiCuts & cs, const int * suitableRow,
00117                     const int * fixedColumn,const CglTreeInfo info,
00118                     bool packed);
00120 
00121   // Private member data
00122 
00125 
00126   int * suitableRows_;
00128   int * startClique_;
00130   int * member_;
00132   double epsilon_;  
00134   double onetol_;
00136   double minimumViolation_;
00138   double minimumViolationPer_;
00140   int maximumEntries_;
00142   int numberRows_;
00144   int numberCliques_;
00146 };
00147 
00148 //#############################################################################
00154 void CglOddHoleUnitTest(const OsiSolverInterface * siP,
00155                         const std::string mpdDir );
00156   
00157 #endif

Generated on Sun Nov 14 14:06:31 2010 for Coin-All by  doxygen 1.4.7