IpoptInteriorWarmStarter.hpp

Go to the documentation of this file.
00001 // (C) Copyright International Business Machines Corporation 2006
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpoptInteriorWarmStarter.hpp 1 2006-07-11 14:59:53Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter               IBM    2006-03-02
00008 
00009 #ifndef __IPOPTINTERIORWARMSTARTER_HPP__
00010 #define __IPOPTINTERIORWARMSTARTER_HPP__
00011 
00012 #include "IpSmartPtr.hpp"
00013 #include "IpNLP.hpp"
00014 #include <vector>
00015 
00016 using namespace Ipopt;
00017 
00018 class IpoptInteriorWarmStarter : public ReferencedObject
00019 {
00020 public:
00025   IpoptInteriorWarmStarter(Index n, const Number* x_L, const Number* x_u,
00026       Number nlp_lower_bound_inf,
00027       Number nlp_upper_bound_inf,
00028       bool store_several_iterates);
00029 
00031   ~IpoptInteriorWarmStarter();
00033 
00037   bool UpdateStoredIterates(AlgorithmMode mode,
00038       const IpoptData& ip_data,
00039       IpoptCalculatedQuantities& ip_cq);
00040 
00043   bool Finalize();
00044 
00047   bool WarmStartIterate(Index n, const Number* x_l_new, const Number* x_u_new,
00048       IteratesVector& warm_start_iterate);
00049 
00050 private:
00060   IpoptInteriorWarmStarter();
00061 
00063   IpoptInteriorWarmStarter(const IpoptInteriorWarmStarter&);
00064 
00066   void operator=(const IpoptInteriorWarmStarter&);
00068 
00070 
00071   Number nlp_lower_bound_inf_;
00073   Number nlp_upper_bound_inf_;
00076   bool store_several_iterates_;
00078 
00084   Index n_;
00085   Number* x_l_prev_;
00086   Number* x_u_prev_;
00088 
00092   Index n_stored_iterates_;
00093   std::vector<Index> stored_iter_;
00094   std::vector<SmartPtr<const IteratesVector> > stored_iterates_;
00095   std::vector<Number> stored_mu_;
00096   std::vector<Number> stored_nlp_error_;
00097   std::vector<Number> stored_primal_inf_;
00098   std::vector<Number> stored_dual_inf_;
00099   std::vector<Number> stored_compl_;
00101 };
00102 
00103 #endif

Generated on Fri May 16 21:06:00 2008 for Bonmin by  doxygen 1.4.7