- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/Cgl-0.52.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