IpDefaultIterateInitializer.hpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __IPDEFAULTITERATEINITIALIZER_HPP__
00010 #define __IPDEFAULTITERATEINITIALIZER_HPP__
00011
00012 #include "IpIterateInitializer.hpp"
00013 #include "IpEqMultCalculator.hpp"
00014
00015 namespace Ipopt
00016 {
00017
00023 class DefaultIterateInitializer: public IterateInitializer
00024 {
00025 public:
00033 DefaultIterateInitializer
00034 (const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
00035 const SmartPtr<IterateInitializer>& warm_start_initializer);
00036
00038 virtual ~DefaultIterateInitializer()
00039 {}
00041
00043 virtual bool InitializeImpl(const OptionsList& options,
00044 const std::string& prefix);
00045
00048 virtual bool SetInitialIterates();
00049
00053 static void push_variables(const Journalist& jnlst,
00054 Number bound_push,
00055 Number bound_frac,
00056 std::string name,
00057 const Vector& orig_x,
00058 SmartPtr<const Vector>& new_x,
00059 const Vector& x_L,
00060 const Vector& x_U,
00061 const Matrix& Px_L,
00062 const Matrix& Px_U);
00063
00071 static void least_square_mults(const Journalist& jnlst,
00072 IpoptNLP& ip_nlp,
00073 IpoptData& ip_data,
00074 IpoptCalculatedQuantities& ip_cq,
00075 const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator,
00076 Number constr_mult_init_max);
00077
00078
00081 static void RegisterOptions(SmartPtr<RegisteredOptions> reg_options);
00083
00084 private:
00094 DefaultIterateInitializer();
00095
00097 DefaultIterateInitializer(const DefaultIterateInitializer&);
00098
00100 void operator=(const DefaultIterateInitializer&);
00102
00106 Number bound_push_;
00108 Number bound_frac_;
00109
00113 Number constr_mult_init_max_;
00115 Number bound_mult_init_val_;
00118 bool warm_start_init_point_;
00120
00123 SmartPtr<EqMultiplierCalculator> eq_mult_calculator_;
00124
00126 SmartPtr<IterateInitializer> warm_start_initializer_;
00127 };
00128
00129 }
00130
00131 #endif