• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinor-cbc-2.5.0/Cbc/src/CbcHeuristicGreedy.hpp

Go to the documentation of this file.
00001 /* $Id: CbcHeuristicGreedy.hpp 1432 2010-02-07 19:33:53Z bjarni $ */
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     }
00064     inline void setAlgorithm(int value) {
00065         algorithm_ = value;
00066     }
00067     // Only do this many times
00068     inline int numberTimes() const {
00069         return numberTimes_;
00070     }
00071     inline void setNumberTimes(int value) {
00072         numberTimes_ = value;
00073     }
00074 
00075 protected:
00077     void gutsOfConstructor(CbcModel * model);
00078     // Data
00079 
00080     // Original matrix by column
00081     CoinPackedMatrix matrix_;
00082     // original number of rows
00083     int originalNumberRows_;
00084     /* Algorithm
00085        0 - use current upper bounds
00086        1 - use original upper bounds
00087        If 10 added perturb ratios more
00088     */
00089     int algorithm_;
00091     int numberTimes_;
00092 
00093 };
00094 
00095 
00096 class CbcHeuristicGreedyEquality : public CbcHeuristic {
00097 public:
00098 
00099     // Default Constructor
00100     CbcHeuristicGreedyEquality ();
00101 
00102     /* Constructor with model - assumed before cuts
00103        Initial version does not do Lps
00104     */
00105     CbcHeuristicGreedyEquality (CbcModel & model);
00106 
00107     // Copy constructor
00108     CbcHeuristicGreedyEquality ( const CbcHeuristicGreedyEquality &);
00109 
00110     // Destructor
00111     ~CbcHeuristicGreedyEquality ();
00112 
00114     virtual CbcHeuristic * clone() const;
00116     CbcHeuristicGreedyEquality & operator=(const CbcHeuristicGreedyEquality& rhs);
00118     virtual void generateCpp( FILE * fp) ;
00119 
00121     virtual void setModel(CbcModel * model);
00122 
00123     using CbcHeuristic::solution ;
00134     virtual int solution(double & objectiveValue,
00135                          double * newSolution);
00137     virtual void validate() ;
00139     virtual void resetModel(CbcModel * model);
00140     /* Algorithm
00141        0 - use current upper bounds
00142        1 - use original upper bounds
00143        If 10 added perturb ratios more
00144        if 100 added round up all >=0.5
00145     */
00146     inline int algorithm() const {
00147         return algorithm_;
00148     }
00149     inline void setAlgorithm(int value) {
00150         algorithm_ = value;
00151     }
00152     // Fraction of rhs to cover before branch and cut
00153     inline void setFraction(double value) {
00154         fraction_ = value;
00155     }
00156     inline double fraction() const {
00157         return fraction_;
00158     }
00159     // Only do this many times
00160     inline int numberTimes() const {
00161         return numberTimes_;
00162     }
00163     inline void setNumberTimes(int value) {
00164         numberTimes_ = value;
00165     }
00166 protected:
00168     void gutsOfConstructor(CbcModel * model);
00169     // Data
00170 
00171     // Original matrix by column
00172     CoinPackedMatrix matrix_;
00173     // Fraction of rhs to cover before branch and cut
00174     double fraction_;
00175     // original number of rows
00176     int originalNumberRows_;
00177     /* Algorithm
00178        0 - use current upper bounds
00179        1 - use original upper bounds
00180        If 10 added perturb ratios more
00181     */
00182     int algorithm_;
00184     int numberTimes_;
00185 
00186 };
00187 
00188 
00189 #endif
00190 

Generated on Sat Oct 23 2010 23:46:55 by  doxygen 1.7.1