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

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef CglCutGenerator_H
00004 #define CglCutGenerator_H
00005 
00006 #include "OsiCuts.hpp"
00007 #include "OsiSolverInterface.hpp"
00008 #include "CglTreeInfo.hpp"
00009 
00010 //-------------------------------------------------------------------
00011 //
00012 // Abstract base class for generating cuts.
00013 //
00014 //-------------------------------------------------------------------
00016 
00021 class CglCutGenerator  {
00022   
00023 public:
00024     
00031   virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
00032                              const CglTreeInfo info = CglTreeInfo()) const=0; 
00034 
00035     
00038 
00039   CglCutGenerator (); 
00040  
00042   CglCutGenerator ( const CglCutGenerator &);
00043 
00045   virtual CglCutGenerator * clone() const = 0;
00046 
00048   CglCutGenerator & operator=(const CglCutGenerator& rhs);
00049 
00051   virtual ~CglCutGenerator ();
00052 
00063   virtual std::string generateCpp( FILE * fp) {return "";}
00064 
00066   virtual void refreshSolver(OsiSolverInterface * solver) {}
00068   
00075   inline int getAggressiveness() const
00076   { return aggressive_;}
00077 
00082   inline void setAggressiveness(int value)
00083   { aggressive_=value;}
00084 
00092   virtual bool mayGenerateRowCutsInTree() const;
00094   virtual bool needsOptimalBasis() const;
00096   
00097   // test this class
00098   //static void unitTest();
00099   
00100 // private:
00101   
00106   int aggressive_;
00107 };
00108 
00109 #endif

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