• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

/build/buildd/coinor-ipopt-3.8.3/Ipopt/src/Algorithm/IpPenaltyLSAcceptor.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2008 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpPenaltyLSAcceptor.hpp 1390 2009-01-06 16:55:52Z andreasw $
00006 //
00007 // Authors:  Andreas Waechter                 IBM    2008-04-04
00008 //               derived file from IpFilterLSAcceptor.hpp
00009 
00010 #ifndef __IPPENALTYLSACCEPTOR_HPP__
00011 #define __IPPENALTYLSACCEPTOR_HPP__
00012 
00013 #include "IpBacktrackingLSAcceptor.hpp"
00014 #include "IpPDSystemSolver.hpp"
00015 
00016 namespace Ipopt
00017 {
00018 
00023   class PenaltyLSAcceptor : public BacktrackingLSAcceptor
00024   {
00025   public:
00031     PenaltyLSAcceptor(const SmartPtr<PDSystemSolver>& pd_solver);
00032 
00034     virtual ~PenaltyLSAcceptor();
00036 
00038     virtual bool InitializeImpl(const OptionsList& options,
00039                                 const std::string& prefix);
00040 
00047     virtual void Reset();
00048 
00052     virtual void InitThisLineSearch(bool in_watchdog);
00053 
00057     virtual void PrepareRestoPhaseStart();
00058 
00060     virtual Number CalculateAlphaMin();
00061 
00067     virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal);
00068 
00081     virtual bool TrySecondOrderCorrection(Number alpha_primal_test,
00082                                           Number& alpha_primal,
00083                                           SmartPtr<IteratesVector>& actual_delta);
00084 
00091     virtual bool TryCorrector(Number alpha_primal_test,
00092                               Number& alpha_primal,
00093                               SmartPtr<IteratesVector>& actual_delta);
00094 
00099     virtual char UpdateForNextIteration(Number alpha_primal_test);
00100 
00103     virtual void StartWatchDog();
00104 
00107     virtual void StopWatchDog();
00108 
00115     bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta,
00116                                       bool called_from_restoration=false) const;
00118 
00121     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00123 
00124   private:
00134     PenaltyLSAcceptor(const PenaltyLSAcceptor&);
00135 
00137     void operator=(const PenaltyLSAcceptor&);
00139 
00141     Number CalcPred(Number alpha);
00142 
00147     Number nu_init_;
00149     Number nu_inc_;
00151     Number eta_;
00153     Number rho_;
00155     Index max_soc_;
00159     Number kappa_soc_;
00161 
00166     Number reference_theta_;
00169     Number reference_barr_;
00172     Number reference_gradBarrTDelta_;
00174     Number reference_dWd_;
00176     SmartPtr<const Vector> reference_JacC_delta_;
00178     SmartPtr<const Vector> reference_JacD_delta_;
00181     Number reference_pred_;
00183     Number watchdog_theta_;
00185     Number watchdog_barr_;
00187     Number watchdog_pred_;
00189 
00193     Number nu_;
00195     Number last_nu_;
00197 
00200     Number resto_pred_;
00201 
00204     SmartPtr<PDSystemSolver> pd_solver_;
00206   };
00207 
00208 } // namespace Ipopt
00209 
00210 #endif

Generated on Sat Oct 16 2010 02:54:50 by  doxygen 1.7.1