diff options
author | Harpreet | 2016-09-03 00:36:51 +0530 |
---|---|---|
committer | Harpreet | 2016-09-03 00:36:51 +0530 |
commit | a0d9443af147e949c1e6a01ac24749d12593ec5b (patch) | |
tree | 1a1955c5482ae608fd7f618b06f4ecc6a0d39a23 /thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp | |
parent | 4b64cf486f5c999fd8167758cae27839f3b50848 (diff) | |
download | FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.gz FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.tar.bz2 FOSSEE-Optim-toolbox-development-a0d9443af147e949c1e6a01ac24749d12593ec5b.zip |
cbcintlinprog added
Diffstat (limited to 'thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp')
-rw-r--r-- | thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp b/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp new file mode 100644 index 0000000..087d2e7 --- /dev/null +++ b/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp @@ -0,0 +1,69 @@ +// Copyright (C) 2007, International Business Machines +// Corporation and others. All Rights Reserved. +// +// Author: Andreas Waechter 2007-08-20 IBM +// +#ifndef BonStrongBranchingSolver_H +#define BonStrongBranchingSolver_H + +#include "BonOsiTMINLPInterface.hpp" +#include "BonRegisteredOptions.hpp" +namespace Bonmin { + +/** This class is the base class for a solver that can be used in + * BonOsiSolverInterface to perform the strong branching solves. +*/ + +class StrongBranchingSolver : public Ipopt::ReferencedObject { + +public: + + /// Constructor from solver + StrongBranchingSolver (OsiTMINLPInterface * solver); + + /// Assignment operator + StrongBranchingSolver & operator= (const StrongBranchingSolver& rhs); + /// Copy constructor + StrongBranchingSolver(const StrongBranchingSolver& rhs); + + /// Destructor + virtual ~StrongBranchingSolver (); + + /// Called to initialize solver before a bunch of strong branching + /// solves + virtual void markHotStart(OsiTMINLPInterface* tminlp_interface) = 0; + + /// Called to solve the current TMINLP (with changed bound information) + virtual TNLPSolver::ReturnStatus solveFromHotStart(OsiTMINLPInterface* tminlp_interface) = 0; + + /// Called after all strong branching solves in a node + virtual void unmarkHotStart(OsiTMINLPInterface* tminlp_interface) = 0; + +protected: + + inline Ipopt::SmartPtr<Ipopt::Journalist>& Jnlst() + { + return jnlst_; + } + inline Ipopt::SmartPtr<Ipopt::OptionsList>& Options() + { + return options_; + } + inline Ipopt::SmartPtr<RegisteredOptions>& RegOptions() + { + return reg_options_; + } +private: + /** Default Constructor, forbiden for some reason.*/ + StrongBranchingSolver (); + + Ipopt::SmartPtr<Ipopt::Journalist> jnlst_; + Ipopt::SmartPtr<Ipopt::OptionsList> options_; + Ipopt::SmartPtr<Bonmin::RegisteredOptions> reg_options_; + + int bb_log_level_; + +}; + +} +#endif |