/home/coin/SVN-release/Ipopt-3.3.2/Ipopt/src/Algorithm/IpBacktrackingLSAcceptor.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2004, 2007 International Business Machines and others.
00002 // All Rights Reserved.
00003 // This code is published under the Common Public License.
00004 //
00005 // $Id: IpBacktrackingLSAcceptor.hpp 1020 2007-06-24 04:06:59Z 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     virtual bool RestoredIterate()
00116     {
00117       return false;
00118     }
00119 
00122     virtual bool NeverRestorationPhase()
00123     {
00124       return false;
00125     }
00126 
00129     static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
00131 
00132   private:
00142     BacktrackingLSAcceptor(const BacktrackingLSAcceptor&);
00143 
00145     void operator=(const BacktrackingLSAcceptor&);
00147   };
00148 
00149 } // namespace Ipopt
00150 
00151 #endif

Generated on Thu May 15 22:27:51 2008 by  doxygen 1.4.7