/home/coin/SVN-release/Cbc-1.1.1/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   virtual void generateCpp( FILE * fp) ;
00031 
00033   virtual void setModel(CbcModel * model);
00034   
00045   virtual int solution(double & objectiveValue,
00046                        double * newSolution);
00048   virtual void validate() ;
00050   virtual void resetModel(CbcModel * model);
00051   /* Algorithm
00052      0 - use current upper bounds
00053      1 - use original upper bounds
00054      If 10 added perturb ratios more
00055      if 100 added round up all >=0.5
00056   */
00057   inline int algorithm() const
00058   { return algorithm_; };
00059   inline void setAlgorithm(int value)
00060   { algorithm_=value; };
00061   // Only do this many times
00062   inline int numberTimes() const
00063   { return numberTimes_; };
00064   inline void setNumberTimes(int value)
00065   { numberTimes_=value; };
00066 
00067 protected:
00068   // Data
00069 
00070   // Original matrix by column
00071   CoinPackedMatrix matrix_;
00072   // original number of rows
00073   int originalNumberRows_;
00074   /* Algorithm
00075      0 - use current upper bounds
00076      1 - use original upper bounds
00077      If 10 added perturb ratios more
00078   */
00079   int algorithm_;
00081   int numberTimes_;
00082 
00083 private:
00085   CbcHeuristicGreedyCover & operator=(const CbcHeuristicGreedyCover& rhs);
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   virtual void generateCpp( FILE * fp) ;
00110 
00112   virtual void setModel(CbcModel * model);
00113   
00124   virtual int solution(double & objectiveValue,
00125                        double * newSolution);
00127   virtual void validate() ;
00129   virtual void resetModel(CbcModel * model);
00130   /* Algorithm
00131      0 - use current upper bounds
00132      1 - use original upper bounds
00133      If 10 added perturb ratios more
00134      if 100 added round up all >=0.5
00135   */
00136   inline int algorithm() const
00137   { return algorithm_; };
00138   inline void setAlgorithm(int value)
00139   { algorithm_=value; };
00140   // Fraction of rhs to cover before branch and cut
00141   inline void setFraction(double value)
00142   { fraction_ = value;};
00143   inline double fraction() const
00144   { return fraction_;};
00145   // Only do this many times
00146   inline int numberTimes() const
00147   { return numberTimes_; };
00148   inline void setNumberTimes(int value)
00149   { numberTimes_=value; };
00150 protected:
00151   // Data
00152 
00153   // Original matrix by column
00154   CoinPackedMatrix matrix_;
00155   // Fraction of rhs to cover before branch and cut
00156   double fraction_;
00157   // original number of rows
00158   int originalNumberRows_;
00159   /* Algorithm
00160      0 - use current upper bounds
00161      1 - use original upper bounds
00162      If 10 added perturb ratios more
00163   */
00164   int algorithm_;
00166   int numberTimes_;
00167 
00168 private:
00170   CbcHeuristicGreedyEquality & operator=(const CbcHeuristicGreedyEquality& rhs);
00171 };
00172 
00173 
00174 #endif

Generated on Thu May 15 21:59:04 2008 by  doxygen 1.4.7