From a0d9443af147e949c1e6a01ac24749d12593ec5b Mon Sep 17 00:00:00 2001 From: Harpreet Date: Sat, 3 Sep 2016 00:36:51 +0530 Subject: cbcintlinprog added --- thirdparty/linux/include/coin/CbcHeuristicRENS.hpp | 77 ++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 thirdparty/linux/include/coin/CbcHeuristicRENS.hpp (limited to 'thirdparty/linux/include/coin/CbcHeuristicRENS.hpp') diff --git a/thirdparty/linux/include/coin/CbcHeuristicRENS.hpp b/thirdparty/linux/include/coin/CbcHeuristicRENS.hpp new file mode 100644 index 0000000..6cc96fa --- /dev/null +++ b/thirdparty/linux/include/coin/CbcHeuristicRENS.hpp @@ -0,0 +1,77 @@ +// $Id: CbcHeuristicRENS.hpp 2105 2015-01-05 13:11:11Z forrest $ +// Copyright (C) 2006, International Business Machines +// Corporation and others. All Rights Reserved. +// This code is licensed under the terms of the Eclipse Public License (EPL). + +// edwin 12/5/09 carved out of CbcHeuristicRINS + +#ifndef CbcHeuristicRENS_H +#define CbcHeuristicRENS_H + +#include "CbcHeuristic.hpp" + +/** LocalSearch class + */ + +class CbcHeuristicRENS : public CbcHeuristic { +public: + + // Default Constructor + CbcHeuristicRENS (); + + /* Constructor with model - assumed before cuts + Initial version does not do Lps + */ + CbcHeuristicRENS (CbcModel & model); + + // Copy constructor + CbcHeuristicRENS ( const CbcHeuristicRENS &); + + // Destructor + ~CbcHeuristicRENS (); + + /// Clone + virtual CbcHeuristic * clone() const; + + + /// Assignment operator + CbcHeuristicRENS & operator=(const CbcHeuristicRENS& rhs); + + /// Resets stuff if model changes + virtual void resetModel(CbcModel * model); + + /// update model (This is needed if cliques update matrix etc) + virtual void setModel(CbcModel * model); + + using CbcHeuristic::solution ; + /** returns 0 if no solution, 1 if valid solution. + Sets solution values if good, sets objective value (only if good) + This does Relaxation Extension Neighborhood Search + Does not run if when_<2 and a solution exists + */ + virtual int solution(double & objectiveValue, + double * newSolution); + + /// Set type + inline void setRensType(int value) + { rensType_ = value;} + +protected: + // Data + /// Number of tries + int numberTries_; + /** Type + 0 - fix at LB + 1 - fix on dj + 2 - fix at UB as well + 3 - fix on 0.01*average dj + add 16 to allow two tries + 32 - if solution exists use to keep more variables + 64 - if priorities keep high priority + 128 - if priorities keep low priority + */ + int rensType_; +}; + +#endif + -- cgit