- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

# /home/coin/SVN-release/Ipopt-3.2.1/Ipopt/src/Algorithm/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 Common Public License.
    00004 //
    00005 // $Id: IpWarmStartIterateInitializer.hpp 759 2006-07-07 03:07:08Z 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_mult_bound_push_;
    00073     Number warm_start_mult_init_max_;
    00076     Number warm_start_target_mu_;
    00079     bool warm_start_entire_iterate_;
    00081
    00084     void process_target_mu(Number factor,
    00085                            const Vector& curr_vars,
    00086                            const Vector& curr_slacks,
    00087                            const Vector& curr_mults,
    00088                            const Matrix& P,
    00089                            SmartPtr<const Vector>& ret_vars,
    00090                            SmartPtr<const Vector>& ret_mults);
    00091
    00092     void adapt_to_target_mu(Vector& new_s,
    00093                             Vector& new_z,
    00094                             Number target_mu);
    00096   };
    00097
    00098 } // namespace Ipopt
    00099
    00100 #endif