- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.2.1/Ipopt/src/Algorithm/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