Ipopt  3.12.12
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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 2613 2015-11-04 14:42:02Z stefan $
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 
60  virtual Number CalculateAlphaMin();
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 
121  static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
123 
124  private:
135 
137  void operator=(const PenaltyLSAcceptor&);
139 
141  Number CalcPred(Number alpha);
142 
163 
191 
199 
203 
208  };
209 
210 } // namespace Ipopt
211 
212 #endif
virtual void Reset()
Reset the acceptor.
void operator=(const PenaltyLSAcceptor &)
Overloaded Equals Operator.
Number reference_pred_
Reference predicted reduction.
Number watchdog_pred_
Predicted reduction to be compared with in watch dog.
SmartPtr< PDSystemSolver > pd_solver_
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Index max_soc_
Maximal number of second order correction steps.
SmartPtr< const Vector > reference_JacC_delta_
Product of Jacobian of equality constraint with x direction.
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps ...
Penalty function line search.
SmartPtr< const Vector > reference_JacD_delta_
Product of Jacobian of (d-s) constraint with search direction.
Base class for backtracking line search acceptors.
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
virtual void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
This class stores a list of user set options.
Number watchdog_barr_
Barrier objective function at reference point.
Number nu_
Current value of the penalty parameter.
Number resto_pred_
When called from the restoration phase, this is the required predicted reduction. ...
Number nu_init_
Initial value of penalty parameter.
PenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
Number last_nu_
Value of penalty parameter at beginning of the iteration.
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
InitializeImpl - overloaded from AlgorithmStrategyObject.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
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 CalcPred(Number alpha)
Compute predicted reduction for given step size.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Number nu_inc_
Incrememt for penalty parameter.
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
virtual ~PenaltyLSAcceptor()
Default destructor.
Index soc_method_
Second method correction method.
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
Number reference_barr_
Barrier objective function at the point with respect to which progress is to be made.
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
Number reference_dWd_
Two-sided product of search direction with complete Hessian.
Number watchdog_theta_
Constraint violation at reference point.