IpBacktrackingLSAcceptor.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: IpBacktrackingLSAcceptor.hpp 759 2006-07-07 03:07:08Z andreasw $
00006 //
00007 // Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
00008 //           Andreas Waechter                 IBM    2005-10-13
00009 //               derived file from IpFilterLineSearch.hpp
00010 
00011 #ifndef __IPBACKTRACKINGLSACCEPTOR_HPP__
00012 #define __IPBACKTRACKINGLSACCEPTOR_HPP__
00013 
00014 #include "IpAlgStrategy.hpp"
00015 
00016 namespace Ipopt
00017 {
00018 
00021   class BacktrackingLSAcceptor : public AlgorithmStrategyObject
00022   {
00023   public:
00027     BacktrackingLSAcceptor()
00028     {}
00029 
00031     virtual ~BacktrackingLSAcceptor()
00032     {}
00034 
00036     virtual bool InitializeImpl(const OptionsList& options,
00037                                 const std::string& prefix)=0;
00038 
00045     virtual void Reset()=0;
00046 
00050     virtual void InitThisLineSearch(bool in_watchdog)=0;
00051 
00056     virtual void PrepareRestoPhaseStart()=0;
00057 
00062     virtual Number CalculateAlphaMin()=0;
00063 
00071     virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)=0;
00072 
00084     virtual bool TrySecondOrderCorrection(Number alpha_primal_test,
00085                                           Number& alpha_primal,
00086                                           SmartPtr<IteratesVector>& actual_delta)=0;
00087 
00094     virtual bool TryCorrector(Number alpha_primal_test,
00095                               Number& alpha_primal,
00096                               SmartPtr<IteratesVector>& actual_delta)=0;
00097 
00103     virtual char UpdateForNextIteration(Number alpha_primal_test)=0;
00104 
00107     virtual void StartWatchDog()=0;
00108 
00111     virtual void StopWatchDog()=0;
00112 
00115     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00117 
00118   private:
00128     BacktrackingLSAcceptor(const BacktrackingLSAcceptor&);
00129 
00131     void operator=(const BacktrackingLSAcceptor&);
00133   };
00134 
00135 } // namespace Ipopt
00136 
00137 #endif

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