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

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

Generated on Tue Jan 19 03:02:15 2010 by  doxygen 1.4.7