Cbc trunk
|
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 // This code is licensed under the terms of the Eclipse Public License (EPL). 00005 00006 #ifndef CbcHeuristicRINS_H 00007 #define CbcHeuristicRINS_H 00008 00009 #include "CbcHeuristic.hpp" 00010 // for backward compatibility include 3 other headers 00011 #include "CbcHeuristicRENS.hpp" 00012 #include "CbcHeuristicDINS.hpp" 00013 #include "CbcHeuristicVND.hpp" 00017 class CbcHeuristicRINS : public CbcHeuristic { 00018 public: 00019 00020 // Default Constructor 00021 CbcHeuristicRINS (); 00022 00023 /* Constructor with model - assumed before cuts 00024 Initial version does not do Lps 00025 */ 00026 CbcHeuristicRINS (CbcModel & model); 00027 00028 // Copy constructor 00029 CbcHeuristicRINS ( const CbcHeuristicRINS &); 00030 00031 // Destructor 00032 ~CbcHeuristicRINS (); 00033 00035 virtual CbcHeuristic * clone() const; 00036 00037 00039 CbcHeuristicRINS & operator=(const CbcHeuristicRINS& rhs); 00040 00042 virtual void generateCpp( FILE * fp) ; 00043 00045 virtual void resetModel(CbcModel * model); 00046 00048 virtual void setModel(CbcModel * model); 00049 00050 using CbcHeuristic::solution ; 00055 virtual int solution(double & objectiveValue, 00056 double * newSolution); 00058 int solutionFix(double & objectiveValue, 00059 double * newSolution, 00060 const int * keep); 00061 00063 inline void setHowOften(int value) { 00064 howOften_ = value; 00065 } 00067 inline char * used() const { 00068 return used_; 00069 } 00071 inline void setLastNode(int value) { 00072 lastNode_ = value; 00073 } 00074 00075 protected: 00076 // Data 00077 00079 int numberSolutions_; 00081 int howOften_; 00083 int numberSuccesses_; 00085 int numberTries_; 00091 int stateOfFixing_; 00093 int lastNode_; 00095 char * used_; 00096 }; 00097 #endif 00098