/home/coin/SVN-release/CoinAll-1.1.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:
00072   void gutsOfConstructor(CbcModel * model);
00073   // Data
00074 
00075   // Original matrix by column
00076   CoinPackedMatrix matrix_;
00077   // original number of rows
00078   int originalNumberRows_;
00079   /* Algorithm
00080      0 - use current upper bounds
00081      1 - use original upper bounds
00082      If 10 added perturb ratios more
00083   */
00084   int algorithm_;
00086   int numberTimes_;
00087 
00088 };
00089 
00090 
00091 class CbcHeuristicGreedyEquality : public CbcHeuristic {
00092 public:
00093 
00094   // Default Constructor 
00095   CbcHeuristicGreedyEquality ();
00096 
00097   /* Constructor with model - assumed before cuts
00098      Initial version does not do Lps
00099   */
00100   CbcHeuristicGreedyEquality (CbcModel & model);
00101   
00102   // Copy constructor 
00103   CbcHeuristicGreedyEquality ( const CbcHeuristicGreedyEquality &);
00104    
00105   // Destructor 
00106   ~CbcHeuristicGreedyEquality ();
00107   
00109   virtual CbcHeuristic * clone() const;
00111   CbcHeuristicGreedyEquality & operator=(const CbcHeuristicGreedyEquality& rhs);
00113   virtual void generateCpp( FILE * fp) ;
00114 
00116   virtual void setModel(CbcModel * model);
00117   
00118   using CbcHeuristic::solution ;
00129   virtual int solution(double & objectiveValue,
00130                        double * newSolution);
00132   virtual void validate() ;
00134   virtual void resetModel(CbcModel * model);
00135   /* Algorithm
00136      0 - use current upper bounds
00137      1 - use original upper bounds
00138      If 10 added perturb ratios more
00139      if 100 added round up all >=0.5
00140   */
00141   inline int algorithm() const
00142   { return algorithm_; }
00143   inline void setAlgorithm(int value)
00144   { algorithm_=value; }
00145   // Fraction of rhs to cover before branch and cut
00146   inline void setFraction(double value)
00147   { fraction_ = value;}
00148   inline double fraction() const
00149   { return fraction_;}
00150   // Only do this many times
00151   inline int numberTimes() const
00152   { return numberTimes_; }
00153   inline void setNumberTimes(int value)
00154   { numberTimes_=value; }
00155 protected:
00157   void gutsOfConstructor(CbcModel * model);
00158   // Data
00159 
00160   // Original matrix by column
00161   CoinPackedMatrix matrix_;
00162   // Fraction of rhs to cover before branch and cut
00163   double fraction_;
00164   // original number of rows
00165   int originalNumberRows_;
00166   /* Algorithm
00167      0 - use current upper bounds
00168      1 - use original upper bounds
00169      If 10 added perturb ratios more
00170   */
00171   int algorithm_;
00173   int numberTimes_;
00174 
00175 };
00176 
00177 
00178 #endif

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