/home/coin/SVN-release/CoinAll-1.1.0/Ipopt/src/Algorithm/IpRestoMinC_1Nrm.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, 2008 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpRestoMinC_1Nrm.hpp 1219 2008-04-25 18:14:35Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
00008 
00009 #ifndef __IPRESTOC_1NRM_HPP__
00010 #define __IPRESTOC_1NRM_HPP__
00011 
00012 #include "IpRestoPhase.hpp"
00013 #include "IpIpoptAlg.hpp"
00014 #include "IpEqMultCalculator.hpp"
00015 
00016 namespace Ipopt
00017 {
00018 
00022   class MinC_1NrmRestorationPhase : public RestorationPhase
00023   {
00024   public:
00033     MinC_1NrmRestorationPhase(IpoptAlgorithm& resto_alg,
00034                               const SmartPtr<EqMultiplierCalculator>& eq_mult_calculator);
00035 
00037     virtual ~MinC_1NrmRestorationPhase();
00039 
00041     virtual bool InitializeImpl(const OptionsList& options,
00042                                 const std::string& prefix);
00043 
00046     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00048 
00049   protected:
00051     virtual bool PerformRestoration();
00052 
00053   private:
00061     MinC_1NrmRestorationPhase();
00062 
00064     MinC_1NrmRestorationPhase(const MinC_1NrmRestorationPhase&);
00065 
00067     void operator=(const MinC_1NrmRestorationPhase&);
00069 
00072     SmartPtr<IpoptAlgorithm> resto_alg_;
00073     SmartPtr<EqMultiplierCalculator> eq_mult_calculator_;
00075 
00079     SmartPtr<OptionsList> resto_options_;
00080 
00083     Number constr_mult_reset_threshold_;
00087     Number bound_mult_reset_threshold_;
00091     bool expect_infeasible_problem_;
00093     Number constr_viol_tol_;
00095 
00098     Index count_restorations_;
00099 
00105     void ComputeBoundMultiplierStep(Vector& delta_z,
00106                                     const Vector& curr_z,
00107                                     const Vector& curr_slack,
00108                                     const Vector& trial_slack);
00110   };
00111 
00112 } // namespace Ipopt
00113 
00114 #endif

Generated on Sun Nov 14 14:06:35 2010 for Coin-All by  doxygen 1.4.7