IpDefaultIterateInitializer.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, 2006 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpDefaultIterateInitializer.hpp 759 2006-07-07 03:07:08Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter              IBM    2004-09-24
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 } // namespace Ipopt
00130 
00131 #endif

Generated on Fri Sep 26 07:44:11 2008 for SimTKcore by  doxygen 1.5.6