Cgl  trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
CglStored.hpp
Go to the documentation of this file.
00001 // $Id$
00002 // Copyright (C) 2005, International Business Machines
00003 // Corporation and others.  All Rights Reserved.
00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
00005 
00006 #ifndef CglStored_H
00007 #define CglStored_H
00008 
00009 #include <string>
00010 
00011 #include "CglCutGenerator.hpp"
00012 
00013 class CoinWarmStartBasis;
00014 class CglTreeProbingInfo;
00016 class CglStored : public CglCutGenerator {
00017  
00018 public:
00019     
00020   
00031   virtual void generateCuts( const OsiSolverInterface & si, OsiCuts & cs,
00032                              const CglTreeInfo info = CglTreeInfo()) const;
00034 
00039 
00040   inline void setRequiredViolation(double value)
00041   { requiredViolation_=value;}
00043   inline double getRequiredViolation() const
00044   { return requiredViolation_;}
00046   inline void setProbingInfo(CglTreeProbingInfo * info)
00047   { probingInfo_ = info;}
00049 
00052 
00053   void addCut(const OsiCuts & cs);
00055   void addCut(const OsiRowCut & cut);
00057   void addCut(double lb, double ub, const CoinPackedVector & vector);
00059   void addCut(double lb, double ub, int size, const int * colIndices, const double * elements);
00060   inline int sizeRowCuts() const
00061   { return cuts_.sizeRowCuts();}
00062   const OsiRowCut * rowCutPointer(int index) const
00063   { return cuts_.rowCutPtr(index);}
00065   void saveStuff(double bestObjective, const double * bestSolution,
00066                  const double * lower, const double * upper);
00068   inline const double * bestSolution() const
00069   { return bestSolution_;}
00071   double bestObjective() const;
00073   const double * tightLower() const
00074   { return bounds_;} 
00076   const double * tightUpper() const
00077   { return bounds_+numberColumns_;} 
00079 
00082 
00083   CglStored (int numberColumns=0);
00084  
00086   CglStored (const CglStored & rhs);
00087 
00089   CglStored (const char * fileName);
00090 
00092   virtual CglCutGenerator * clone() const;
00093 
00095   CglStored &
00096     operator=(const CglStored& rhs);
00097   
00099   virtual
00100     ~CglStored ();
00102       
00103 protected:
00104   
00105  // Protected member methods
00106 
00107   // Protected member data
00108 
00111 
00112   double requiredViolation_;
00114   CglTreeProbingInfo * probingInfo_;
00116   mutable OsiCuts cuts_;
00118   int numberColumns_;
00120   double * bestSolution_;
00122   double * bounds_;
00124 };
00125 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines