Cbc trunk
CbcHeuristicVND.hpp
Go to the documentation of this file.
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 CbcHeuristicVND_H
00009 #define CbcHeuristicVND_H
00010 
00011 #include "CbcHeuristic.hpp"
00012 
00013 
00017 class CbcHeuristicVND : public CbcHeuristic {
00018 public:
00019 
00020     // Default Constructor
00021     CbcHeuristicVND ();
00022 
00023     /* Constructor with model - assumed before cuts
00024        Initial version does not do Lps
00025     */
00026     CbcHeuristicVND (CbcModel & model);
00027 
00028     // Copy constructor
00029     CbcHeuristicVND ( const CbcHeuristicVND &);
00030 
00031     // Destructor
00032     ~CbcHeuristicVND ();
00033 
00035     virtual CbcHeuristic * clone() const;
00036 
00037 
00039     CbcHeuristicVND & operator=(const CbcHeuristicVND& 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 double * baseSolution() const {
00068         return baseSolution_;
00069     }
00070 
00071 protected:
00072     // Data
00073 
00075     int numberSolutions_;
00077     int howOften_;
00079     int numberSuccesses_;
00081     int numberTries_;
00083     int lastNode_;
00085     int stepSize_;
00086     int k_;
00087     int kmax_;
00088     int nDifferent_;
00090     double * baseSolution_;
00091 };
00092 
00093 #endif
00094 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines