00001 /* $Id: CbcHeuristicRINS.hpp 1261 2009-10-30 12:45:20Z forrest $ */ 00002 // Copyright (C) 2006, International Business Machines 00003 // Corporation and others. All Rights Reserved. 00004 #ifndef CbcHeuristicRINS_H 00005 #define CbcHeuristicRINS_H 00006 00007 #include "CbcHeuristic.hpp" 00008 // for backward compatibility include 3 other headers 00009 #include "CbcHeuristicRENS.hpp" 00010 #include "CbcHeuristicDINS.hpp" 00011 #include "CbcHeuristicVND.hpp" 00015 class CbcHeuristicRINS : public CbcHeuristic { 00016 public: 00017 00018 // Default Constructor 00019 CbcHeuristicRINS (); 00020 00021 /* Constructor with model - assumed before cuts 00022 Initial version does not do Lps 00023 */ 00024 CbcHeuristicRINS (CbcModel & model); 00025 00026 // Copy constructor 00027 CbcHeuristicRINS ( const CbcHeuristicRINS &); 00028 00029 // Destructor 00030 ~CbcHeuristicRINS (); 00031 00033 virtual CbcHeuristic * clone() const; 00034 00035 00037 CbcHeuristicRINS & operator=(const CbcHeuristicRINS& rhs); 00038 00040 virtual void generateCpp( FILE * fp) ; 00041 00043 virtual void resetModel(CbcModel * model); 00044 00046 virtual void setModel(CbcModel * model); 00047 00048 using CbcHeuristic::solution ; 00053 virtual int solution(double & objectiveValue, 00054 double * newSolution); 00056 int solutionFix(double & objectiveValue, 00057 double * newSolution, 00058 const int * keep); 00059 00061 inline void setHowOften(int value) { 00062 howOften_ = value; 00063 } 00065 inline char * used() const { 00066 return used_; 00067 } 00069 inline void setLastNode(int value) { 00070 lastNode_ = value; 00071 } 00072 00073 protected: 00074 // Data 00075 00077 int numberSolutions_; 00079 int howOften_; 00081 int numberSuccesses_; 00083 int numberTries_; 00089 int stateOfFixing_; 00091 int lastNode_; 00093 char * used_; 00094 }; 00095 #endif 00096