/home/coin/SVN-release/Cbc-2.0.0/Cbc/src/CbcHeuristicGreedy.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2005, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
00003 #ifndef CbcHeuristicGreedy_H
00004 #define CbcHeuristicGreedy_H
00005 
00006 #include "CbcHeuristic.hpp"
00010 class CbcHeuristicGreedyCover : public CbcHeuristic {
00011 public:
00012 
00013   // Default Constructor 
00014   CbcHeuristicGreedyCover ();
00015 
00016   /* Constructor with model - assumed before cuts
00017      Initial version does not do Lps
00018   */
00019   CbcHeuristicGreedyCover (CbcModel & model);
00020   
00021   // Copy constructor 
00022   CbcHeuristicGreedyCover ( const CbcHeuristicGreedyCover &);
00023    
00024   // Destructor 
00025   ~CbcHeuristicGreedyCover ();
00026   
00028   virtual CbcHeuristic * clone() const;
00030   CbcHeuristicGreedyCover & operator=(const CbcHeuristicGreedyCover& rhs);
00032   virtual void generateCpp( FILE * fp) ;
00033 
00035   virtual void setModel(CbcModel * model);
00036   
00037   using CbcHeuristic::solution ;
00048   virtual int solution(double & objectiveValue,
00049                        double * newSolution);
00051   virtual void validate() ;
00053   virtual void resetModel(CbcModel * model);
00054   /* Algorithm
00055      0 - use current upper bounds
00056      1 - use original upper bounds
00057      If 10 added perturb ratios more
00058      if 100 added round up all >=0.5
00059   */
00060   inline int algorithm() const
00061   { return algorithm_; }
00062   inline void setAlgorithm(int value)
00063   { algorithm_=value; }
00064   // Only do this many times
00065   inline int numberTimes() const
00066   { return numberTimes_; }
00067   inline void setNumberTimes(int value)
00068   { numberTimes_=value; }
00069 
00070 protected:
00071   // Data
00072 
00073   // Original matrix by column
00074   CoinPackedMatrix matrix_;
00075   // original number of rows
00076   int originalNumberRows_;
00077   /* Algorithm
00078      0 - use current upper bounds
00079      1 - use original upper bounds
00080      If 10 added perturb ratios more
00081   */
00082   int algorithm_;
00084   int numberTimes_;
00085 
00086 };
00087 
00088 
00089 class CbcHeuristicGreedyEquality : public CbcHeuristic {
00090 public:
00091 
00092   // Default Constructor 
00093   CbcHeuristicGreedyEquality ();
00094 
00095   /* Constructor with model - assumed before cuts
00096      Initial version does not do Lps
00097   */
00098   CbcHeuristicGreedyEquality (CbcModel & model);
00099   
00100   // Copy constructor 
00101   CbcHeuristicGreedyEquality ( const CbcHeuristicGreedyEquality &);
00102    
00103   // Destructor 
00104   ~CbcHeuristicGreedyEquality ();
00105   
00107   virtual CbcHeuristic * clone() const;
00109   CbcHeuristicGreedyEquality & operator=(const CbcHeuristicGreedyEquality& rhs);
00111   virtual void generateCpp( FILE * fp) ;
00112 
00114   virtual void setModel(CbcModel * model);
00115   
00116   using CbcHeuristic::solution ;
00127   virtual int solution(double & objectiveValue,
00128                        double * newSolution);
00130   virtual void validate() ;
00132   virtual void resetModel(CbcModel * model);
00133   /* Algorithm
00134      0 - use current upper bounds
00135      1 - use original upper bounds
00136      If 10 added perturb ratios more
00137      if 100 added round up all >=0.5
00138   */
00139   inline int algorithm() const
00140   { return algorithm_; }
00141   inline void setAlgorithm(int value)
00142   { algorithm_=value; }
00143   // Fraction of rhs to cover before branch and cut
00144   inline void setFraction(double value)
00145   { fraction_ = value;}
00146   inline double fraction() const
00147   { return fraction_;}
00148   // Only do this many times
00149   inline int numberTimes() const
00150   { return numberTimes_; }
00151   inline void setNumberTimes(int value)
00152   { numberTimes_=value; }
00153 protected:
00154   // Data
00155 
00156   // Original matrix by column
00157   CoinPackedMatrix matrix_;
00158   // Fraction of rhs to cover before branch and cut
00159   double fraction_;
00160   // original number of rows
00161   int originalNumberRows_;
00162   /* Algorithm
00163      0 - use current upper bounds
00164      1 - use original upper bounds
00165      If 10 added perturb ratios more
00166   */
00167   int algorithm_;
00169   int numberTimes_;
00170 
00171 };
00172 
00173 
00174 #endif

Generated on Thu May 15 22:07:39 2008 by  doxygen 1.4.7