summaryrefslogtreecommitdiff
path: root/newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp')
-rw-r--r--newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp b/newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp
new file mode 100644
index 0000000..ac56a56
--- /dev/null
+++ b/newstructure/thirdparty/linux/include/coin/BonHeuristicLocalBranching.hpp
@@ -0,0 +1,59 @@
+// (C) Copyright CNRS and International Business Machines Corporation
+// All Rights Reserved.
+// This code is published under the Eclipse Public License.
+//
+// Authors :
+// Pierre Bonami, LIF Université de la Méditérannée-CNRS
+// Joao Goncalves, International Business Machines Corporation
+//
+// Date : 06/18/2008
+
+#ifndef BonHeuristicLocalBranching_H
+#define BonHeuristicLocalBranching_H
+#include "BonLocalSolverBasedHeuristic.hpp"
+
+namespace Bonmin {
+ class HeuristicLocalBranching:public LocalSolverBasedHeuristic {
+ public:
+ /** Default constructor*/
+ HeuristicLocalBranching();
+ /** Constructor with setup.*/
+ HeuristicLocalBranching(BonminSetup * setup);
+
+ /** Copy constructor.*/
+ HeuristicLocalBranching(const HeuristicLocalBranching &other);
+ /** Virtual constructor.*/
+ virtual CbcHeuristic * clone() const{
+ return new HeuristicLocalBranching(*this);
+ }
+
+ /** Destructor*/
+ virtual ~HeuristicLocalBranching();
+
+ /// Update model
+ virtual void setModel(CbcModel * model);
+
+ /// Validate model i.e. sets when_ to 0 if necessary
+ virtual void validate();
+
+ /** Runs heuristic*/
+ int solution(double & objectiveValue,
+ double * newSolution);
+
+ /** Register the options common to all local search based heuristics.*/
+ static void registerOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions);
+
+ /** Initiaize using passed options.*/
+ void Initialize(Ipopt::SmartPtr<Ipopt::OptionsList> options);
+
+ private:
+ /// How often to do (code can change)
+ int howOften_;
+ /// Number of solutions so we can do something at solution
+ int numberSolutions_;
+
+ };
+
+}/* Ends Bonmin namepace.*/
+#endif
+