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 /build/Bonmin/include/coin/BonTNLPSolver.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 'build/Bonmin/include/coin/BonTNLPSolver.hpp')
-rw-r--r-- | build/Bonmin/include/coin/BonTNLPSolver.hpp | 241 |
1 files changed, 0 insertions, 241 deletions
diff --git a/build/Bonmin/include/coin/BonTNLPSolver.hpp b/build/Bonmin/include/coin/BonTNLPSolver.hpp deleted file mode 100644 index 195fbad..0000000 --- a/build/Bonmin/include/coin/BonTNLPSolver.hpp +++ /dev/null @@ -1,241 +0,0 @@ -// (C) Copyright International Business Machines (IBM) 2006, 2007 -// All Rights Reserved. -// This code is published under the Eclipse Public License. -// -// Authors : -// Pierre Bonami, IBM -// -// Date : 26/09/2006 - - -#ifndef TNLPSolver_H -#define TNLPSolver_H -#include "IpTNLP.hpp" -#include "BonTMINLP2TNLP.hpp" - -//Some declarations -#include "IpOptionsList.hpp" -#include "CoinWarmStart.hpp" -#include "BonRegisteredOptions.hpp" -#include "CoinTime.hpp" -namespace Bonmin { -/** This is a generic class for calling an NLP solver to solve a TNLP. - A TNLPSolver is able to solve and resolve a problem, it has some options (stored - with Ipopt OptionList structure and registeredOptions) it produces some statistics (in SolveStatisctics and sometimes some errorCodes. -*/ -class TNLPSolver: public Ipopt::ReferencedObject{ - public: - - enum ReturnStatus /** Standard return statuses for a solver*/{ - iterationLimit = -3/** Solver reached iteration limit. */, - timeLimit = 5/** Solver reached iteration limit. */, - doesNotConverge = -8/** Algorithm does not converge.*/, - computationError = -2/** Some error was made in the computations. */, - notEnoughFreedom = -1/** not enough degrees of freedom.*/, - illDefinedProblem = -4/** The solver finds that the problem is not well defined. */, - illegalOption =-5/** An option is not valid. */, - externalException =-6/** Some unrecovered exception occured in an external tool used by the solver. */, - exception =-7/** Some unrocevered exception */, - solvedOptimal = 1/** Problem solved to an optimal solution.*/, - solvedOptimalTol =2/** Problem solved to "acceptable level of tolerance. */, - provenInfeasible =3/** Infeasibility Proven. */, - unbounded = 4/** Problem is unbounded.*/, - numReturnCodes/**Fake member to know size*/ - }; - - - -//############################################################################# - - /** We will throw this error when a problem is not solved. - Eventually store the error code from solver*/ - class UnsolvedError - { - public: - /** Constructor */ - UnsolvedError(int errorNum = -10000, - Ipopt::SmartPtr<TMINLP2TNLP> model = NULL, - std::string name="") - : - errorNum_(errorNum), - model_(model), - name_(name) - {if(name_=="") -{ -#ifndef NDEBUG - std::cerr<<"FIXME"<<std::endl; -#endif -}} - /** Print error message.*/ - void printError(std::ostream & os); - /** Get the string corresponding to error.*/ - virtual const std::string& errorName() const = 0; - /** Return the name of the solver. */ - virtual const std::string& solverName() const = 0; - /** Return error number. */ - int errorNum() const{ - return errorNum_;} - /** destructor. */ - virtual ~UnsolvedError(){} - /** write files with differences between input model and - this one */ - void writeDiffFiles(const std::string prefix=std::string()) const; - private: - /** Error code (solver dependent). */ - int errorNum_; - - /** model_ on which error occured*/ - Ipopt::SmartPtr< TMINLP2TNLP > model_; - - /** name of the model on which error occured. */ - std::string name_; - } - ; - - virtual UnsolvedError * newUnsolvedError(int num, - Ipopt::SmartPtr<TMINLP2TNLP> problem, - std::string name) = 0; - - - - /// default Constructor - TNLPSolver(); - - ///Constructor with options initialization -TNLPSolver(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions, - Ipopt::SmartPtr<Ipopt::OptionsList> options, - Ipopt::SmartPtr<Ipopt::Journalist> journalist, - const std::string & prefix); - - ///virtual copy constructor - virtual Ipopt::SmartPtr<TNLPSolver> clone() = 0; - - /// Virtual destructor - virtual ~TNLPSolver(); - - /** Initialize the TNLPSolver (read options from params_file) - */ - virtual bool Initialize(std::string params_file) = 0; - - /** Initialize the TNLPSolver (read options from istream is) - */ - virtual bool Initialize(std::istream& is) = 0; - - /** @name Solve methods */ - //@{ - /// Solves a problem expresses as a TNLP - virtual ReturnStatus OptimizeTNLP(const Ipopt::SmartPtr<Ipopt::TNLP> & tnlp) = 0; - - /// Resolves a problem expresses as a TNLP - virtual ReturnStatus ReOptimizeTNLP(const Ipopt::SmartPtr<Ipopt::TNLP> & tnlp) = 0; - - /// Set the warm start in the solver - virtual bool setWarmStart(const CoinWarmStart * warm, - Ipopt::SmartPtr<TMINLP2TNLP> tnlp) = 0; - -/// Get warm start used in last optimization - virtual CoinWarmStart * getUsedWarmStart(Ipopt::SmartPtr<TMINLP2TNLP> tnlp) const = 0; - - /// Get the warm start form the solver - virtual CoinWarmStart * getWarmStart(Ipopt::SmartPtr<TMINLP2TNLP> tnlp) const = 0; - - virtual CoinWarmStart * getEmptyWarmStart() const = 0; - - /** Check that warm start object is valid.*/ - virtual bool warmStartIsValid(const CoinWarmStart * ws) const = 0; - - /// Enable the warm start options in the solver - virtual void enableWarmStart() = 0; - - /// Disable the warm start options in the solver - virtual void disableWarmStart() = 0; - //@} - - ///Get a pointer to a journalist - Ipopt::SmartPtr<Ipopt::Journalist> journalist(){ - return journalist_;} - - ///Get a pointer to RegisteredOptions (generally used to add new ones) - Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions(){ - return roptions_;} - - /// Get the options (for getting their values). - Ipopt::SmartPtr<const Ipopt::OptionsList> options() const { - return ConstPtr(options_);} - - /// Get the options (for getting and setting their values). - Ipopt::SmartPtr<Ipopt::OptionsList> options() { - return options_;} - - /// Get the prefix - const char * prefix(){ - return prefix_.c_str(); - } - /// Register this solver options into passed roptions -static void RegisterOptions(Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions){} - - /// Get the CpuTime of the last optimization. - virtual double CPUTime() = 0; - - /// Get the iteration count of the last optimization. - virtual int IterationCount() = 0; - - - /// turn off all output from the solver - virtual void setOutputToDefault() = 0 ; - /// turn on all output from the solver - virtual void forceSolverOutput(int log_level) = 0; - /// Get the solver name - virtual std::string & solverName() = 0; - - /** Say if an optimization status for a problem which failed is recoverable - (problem may be solvable).*/ - bool isRecoverable(ReturnStatus &r); - - /** Setup for a global time limit for solver.*/ - void setup_global_time_limit(double time_limit){ - time_limit_ = time_limit + 5; - start_time_ = CoinCpuTime(); - } - - /** Say if return status is an error.*/ - bool isError(ReturnStatus &r){ - return r < 0;} - /** Error code (solver specific).*/ -virtual int errorCode() const = 0; -protected: - /** Determine if problem is of dimension zero and if it is check if solution - is feasible.*/ - bool zeroDimension(const Ipopt::SmartPtr<Ipopt::TNLP> &tnlp, - ReturnStatus &optimization_status); - - /** Initializes options and journalist.*/ - void initializeOptionsAndJournalist(); - - /** Storage of Journalist for output */ - Ipopt::SmartPtr<Ipopt::Journalist> journalist_; - - /** List of Options */ - Ipopt::SmartPtr<Ipopt::OptionsList> options_; - - /** Registered Options */ - Ipopt::SmartPtr<Bonmin::RegisteredOptions> roptions_; - - /** Prefix to use for reading bonmin's options.*/ - std::string prefix_; - /** Global start time.*/ - double start_time_; - - /** Global time limit.*/ - double time_limit_; - - /** To record default log level.*/ - int default_log_level_; - /// Copy Constructor - TNLPSolver(const TNLPSolver & other); - -}; -} -#endif - - |