Ipopt Documentation  
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 // Authors: Andreas Waechter IBM 2008-04-04
6 // derived file from IpFilterLSAcceptor.hpp
7 
8 #ifndef __IPPENALTYLSACCEPTOR_HPP__
9 #define __IPPENALTYLSACCEPTOR_HPP__
10 
12 #include "IpPDSystemSolver.hpp"
13 
14 namespace Ipopt
15 {
16 
23 {
24 public:
27 
34  const SmartPtr<PDSystemSolver>& pd_solver
35  );
36 
38  virtual ~PenaltyLSAcceptor();
40 
41  virtual bool InitializeImpl(
42  const OptionsList& options,
43  const std::string& prefix
44  );
45 
53  virtual void Reset();
54 
60  virtual void InitThisLineSearch(
61  bool in_watchdog
62  );
63 
69  virtual void PrepareRestoPhaseStart();
70 
73 
81  Number alpha_primal);
82 
97  Number alpha_primal_test,
98  Number& alpha_primal,
99  SmartPtr<IteratesVector>& actual_delta
100  );
101 
109  virtual bool TryCorrector(
110  Number alpha_primal_test,
111  Number& alpha_primal,
112  SmartPtr<IteratesVector>& actual_delta
113  );
114 
122  Number alpha_primal_test
123  );
124 
126  virtual void StartWatchDog();
127 
129  virtual void StopWatchDog();
130 
138 
140  Number trial_barr,
141  Number trial_theta,
142  bool called_from_restoration = false
143  ) const;
145 
148  static void RegisterOptions(
150  );
152 
153 private:
164 
166  const PenaltyLSAcceptor&
167  );
168 
170  void operator=(
171  const PenaltyLSAcceptor&
172  );
174 
177  Number alpha
178  );
179 
183 
200 
203 
228 
231 
236 
240 
245 };
246 
247 } // namespace Ipopt
248 
249 #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.
Index soc_method_
Second method correction method.
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 Assignment 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)
Implementation of the initialization method that has to be overloaded by for each derived class.
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()
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:165
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:20
ipnumber Number
Type of all numbers.
Definition: IpTypes.hpp:17