Cbc
trunk
|
00001 // $Id$ 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 // edwin 12/5/09 carved out of CbcHeuristicRINS 00007 00008 #ifndef CbcHeuristicDINS_H 00009 #define CbcHeuristicDINS_H 00010 00011 #include "CbcHeuristic.hpp" 00012 00013 00014 class CbcHeuristicDINS : public CbcHeuristic { 00015 public: 00016 00017 // Default Constructor 00018 CbcHeuristicDINS (); 00019 00020 /* Constructor with model - assumed before cuts 00021 Initial version does not do Lps 00022 */ 00023 CbcHeuristicDINS (CbcModel & model); 00024 00025 // Copy constructor 00026 CbcHeuristicDINS ( const CbcHeuristicDINS &); 00027 00028 // Destructor 00029 ~CbcHeuristicDINS (); 00030 00032 virtual CbcHeuristic * clone() const; 00033 00034 00036 CbcHeuristicDINS & operator=(const CbcHeuristicDINS& rhs); 00037 00039 virtual void generateCpp( FILE * fp) ; 00040 00042 virtual void resetModel(CbcModel * model); 00043 00045 virtual void setModel(CbcModel * model); 00046 00047 using CbcHeuristic::solution ; 00052 virtual int solution(double & objectiveValue, 00053 double * newSolution); 00055 int solutionFix(double & objectiveValue, 00056 double * newSolution, 00057 const int * keep); 00058 00060 inline void setHowOften(int value) { 00061 howOften_ = value; 00062 } 00064 inline void setMaximumKeep(int value) { 00065 maximumKeepSolutions_ = value; 00066 } 00068 inline void setConstraint(int value) { 00069 localSpace_ = value; 00070 } 00071 00072 protected: 00073 // Data 00074 00076 int numberSolutions_; 00078 int howOften_; 00080 int numberSuccesses_; 00082 int numberTries_; 00084 int maximumKeepSolutions_; 00086 int numberKeptSolutions_; 00088 int numberIntegers_; 00090 int localSpace_; 00092 int ** values_; 00093 }; 00094 00095 #endif 00096