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

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