diff options
author | Harpreet | 2016-09-03 00:34:27 +0530 |
---|---|---|
committer | Harpreet | 2016-09-03 00:34:27 +0530 |
commit | 4b64cf486f5c999fd8167758cae27839f3b50848 (patch) | |
tree | d9d06639fb7fa61aef59be0363655e4747105ec7 /newstructure/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp | |
parent | d19794fb80a271a4c885ed90f97cfc12baa012f2 (diff) | |
download | FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.gz FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.tar.bz2 FOSSEE-Optim-toolbox-development-4b64cf486f5c999fd8167758cae27839f3b50848.zip |
Structure updated and intqpipopt files added
Diffstat (limited to 'newstructure/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp')
-rw-r--r-- | newstructure/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/newstructure/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp b/newstructure/thirdparty/linux/include/coin/BonStrongBranchingSolver.hpp new file mode 100644 index 0000000..087d2e7 --- /dev/null +++ b/newstructure/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 |