Ipopt  3.11.9
IpPenaltyLSAcceptor.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpPenaltyLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Andreas Waechter IBM 2008-04-04
8 // derived file from IpFilterLSAcceptor.hpp
9 
10 #ifndef __IPPENALTYLSACCEPTOR_HPP__
11 #define __IPPENALTYLSACCEPTOR_HPP__
12 
14 #include "IpPDSystemSolver.hpp"
15 
16 namespace Ipopt
17 {
18 
24  {
25  public:
32 
34  virtual ~PenaltyLSAcceptor();
36 
38  virtual bool InitializeImpl(const OptionsList& options,
39  const std::string& prefix);
40 
47  virtual void Reset();
48 
52  virtual void InitThisLineSearch(bool in_watchdog);
53 
57  virtual void PrepareRestoPhaseStart();
58 
61 
67  virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal);
68 
81  virtual bool TrySecondOrderCorrection(Number alpha_primal_test,
82  Number& alpha_primal,
83  SmartPtr<IteratesVector>& actual_delta);
84 
91  virtual bool TryCorrector(Number alpha_primal_test,
92  Number& alpha_primal,
93  SmartPtr<IteratesVector>& actual_delta);
94 
99  virtual char UpdateForNextIteration(Number alpha_primal_test);
100 
103  virtual void StartWatchDog();
104 
107  virtual void StopWatchDog();
108 
115  bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta,
116  bool called_from_restoration=false) const;
118 
123 
124  private:
135 
139 
142 
161 
189 
197 
201 
206  };
207 
208 } // namespace Ipopt
209 
210 #endif
Base class for backtracking line search acceptors.
This class stores a list of user set options.
Penalty function line search.
PenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
Number watchdog_pred_
Predicted reduction to be compared with in watch dog.
Number reference_barr_
Barrier objective function at the point with respect to which progress is to be made.
Number CalcPred(Number alpha)
Compute predicted reduction for given step size.
void operator=(const PenaltyLSAcceptor &)
Overloaded Equals Operator.
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
Number resto_pred_
When called from the restoration phase, this is the required predicted reduction.
SmartPtr< PDSystemSolver > pd_solver_
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
Number reference_pred_
Reference predicted reduction.
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Number nu_init_
Initial value of penalty parameter.
virtual void Reset()
Reset the acceptor.
Number watchdog_theta_
Constraint violation at reference point.
bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration=false) const
Checks if a trial point is acceptable to the current iterate.
Number watchdog_barr_
Barrier objective function at reference point.
SmartPtr< const Vector > reference_JacD_delta_
Product of Jacobian of (d-s) constraint with search direction.
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
InitializeImpl - overloaded from AlgorithmStrategyObject.
virtual void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.
PenaltyLSAcceptor(const PenaltyLSAcceptor &)
Copy Constructor.
Number reference_dWd_
Two-sided product of search direction with complete Hessian.
virtual ~PenaltyLSAcceptor()
Default destructor.
SmartPtr< const Vector > reference_JacC_delta_
Product of Jacobian of equality constraint with x direction.
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
Number nu_inc_
Incrememt for penalty parameter.
Index max_soc_
Maximal number of second order correction steps.
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
Number nu_
Current value of the penalty parameter.
Number last_nu_
Value of penalty parameter at beginning of the iteration.
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:183
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
double Number
Type of all numbers.
Definition: IpTypes.hpp:17