# IpWarmStartIterateInitializer.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 Eclipse Public License.
    00004 //
    00005 // $Id: IpWarmStartIterateInitializer.hpp 1861 2010-12-21 21:34:47Z andreasw $
    00006 //
    00007 // Authors:  Carl Laird, Andreas Waechter              IBM    2005-04-01
    00008
    00009 #ifndef __IPWARMSTARTITERATEINITIALIZER_HPP__
    00010 #define __IPWARMSTARTITERATEINITIALIZER_HPP__
    00011
    00012 #include "IpIterateInitializer.hpp"
    00013 #include "IpEqMultCalculator.hpp"
    00014
    00015 namespace Ipopt
    00016 {
    00017
    00020   class WarmStartIterateInitializer: public IterateInitializer
    00021   {
    00022   public:
    00026     WarmStartIterateInitializer();
    00027
    00029     virtual ~WarmStartIterateInitializer()
    00030     {}
    00032
    00034     virtual bool InitializeImpl(const OptionsList& options,
    00035                                 const std::string& prefix);
    00036
    00039     virtual bool SetInitialIterates();
    00040
    00043     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
    00045   private:
    00055     WarmStartIterateInitializer(const WarmStartIterateInitializer&);
    00056
    00058     void operator=(const WarmStartIterateInitializer&);
    00060
    00064     Number warm_start_bound_push_;
    00066     Number warm_start_bound_frac_;
    00068     Number warm_start_slack_bound_push_;
    00070     Number warm_start_slack_bound_frac_;
    00072     Number warm_start_mult_bound_push_;
    00077     Number warm_start_mult_init_max_;
    00080     Number warm_start_target_mu_;
    00083     bool warm_start_entire_iterate_;
    00085
    00088     void process_target_mu(Number factor,
    00089                            const Vector& curr_vars,
    00090                            const Vector& curr_slacks,
    00091                            const Vector& curr_mults,
    00092                            const Matrix& P,
    00093                            SmartPtr<const Vector>& ret_vars,
    00094                            SmartPtr<const Vector>& ret_mults);
    00095
    00096     void adapt_to_target_mu(Vector& new_s,
    00097                             Vector& new_z,
    00098                             Number target_mu);
    00100   };
    00101
    00102 } // namespace Ipopt
    00103
    00104 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines