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:
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 
72  virtual Number CalculateAlphaMin();
73 
80  virtual bool CheckAcceptabilityOfTrialPoint(
81  Number alpha_primal);
82 
96  virtual bool TrySecondOrderCorrection(
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 
121  virtual char UpdateForNextIteration(
122  Number alpha_primal_test
123  );
124 
126  virtual void StartWatchDog();
127 
129  virtual void StopWatchDog();
130 
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:
166  const PenaltyLSAcceptor&
167  );
168 
170  void operator=(
171  const PenaltyLSAcceptor&
172  );
174 
177  Number alpha
178  );
179 
200 
228 
236 
240 
245 };
246 
247 } // namespace Ipopt
248 
249 #endif
Ipopt::PenaltyLSAcceptor::IsAcceptableToCurrentIterate
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.
Ipopt::PenaltyLSAcceptor::reference_JacD_delta_
SmartPtr< const Vector > reference_JacD_delta_
Product of Jacobian of (d-s) constraint with search direction.
Definition: IpPenaltyLSAcceptor.hpp:217
Ipopt::PenaltyLSAcceptor::InitializeImpl
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.
Ipopt::PenaltyLSAcceptor::~PenaltyLSAcceptor
virtual ~PenaltyLSAcceptor()
Destructor.
Ipopt::PenaltyLSAcceptor::watchdog_barr_
Number watchdog_barr_
Barrier objective function at reference point.
Definition: IpPenaltyLSAcceptor.hpp:224
Ipopt::PenaltyLSAcceptor::CalcPred
Number CalcPred(Number alpha)
Compute predicted reduction for given step size.
Ipopt::PenaltyLSAcceptor::TryCorrector
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
Ipopt::PenaltyLSAcceptor::last_nu_
Number last_nu_
Value of penalty parameter at beginning of the iteration.
Definition: IpPenaltyLSAcceptor.hpp:234
Ipopt::PenaltyLSAcceptor::StopWatchDog
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
Ipopt::PenaltyLSAcceptor::nu_
Number nu_
Current value of the penalty parameter.
Definition: IpPenaltyLSAcceptor.hpp:232
Ipopt
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Ipopt::PenaltyLSAcceptor::resto_pred_
Number resto_pred_
When called from the restoration phase, this is the required predicted reduction.
Definition: IpPenaltyLSAcceptor.hpp:239
IpBacktrackingLSAcceptor.hpp
Ipopt::PenaltyLSAcceptor::soc_method_
Index soc_method_
Second method correction method.
Definition: IpPenaltyLSAcceptor.hpp:198
Ipopt::PenaltyLSAcceptor::CalculateAlphaMin
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
Ipopt::PenaltyLSAcceptor::reference_gradBarrTDelta_
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
Definition: IpPenaltyLSAcceptor.hpp:211
Ipopt::PenaltyLSAcceptor::Reset
virtual void Reset()
Reset the acceptor.
Ipopt::PenaltyLSAcceptor::reference_dWd_
Number reference_dWd_
Two-sided product of search direction with complete Hessian.
Definition: IpPenaltyLSAcceptor.hpp:213
Ipopt::PenaltyLSAcceptor::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
Ipopt::PenaltyLSAcceptor::reference_barr_
Number reference_barr_
Barrier objective function at the point with respect to which progress is to be made.
Definition: IpPenaltyLSAcceptor.hpp:208
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Ipopt::PenaltyLSAcceptor::watchdog_theta_
Number watchdog_theta_
Constraint violation at reference point.
Definition: IpPenaltyLSAcceptor.hpp:222
Ipopt::PenaltyLSAcceptor::pd_solver_
SmartPtr< PDSystemSolver > pd_solver_
Definition: IpPenaltyLSAcceptor.hpp:243
Ipopt::PenaltyLSAcceptor::CheckAcceptabilityOfTrialPoint
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
IpPDSystemSolver.hpp
Ipopt::PenaltyLSAcceptor::nu_init_
Number nu_init_
Initial value of penalty parameter.
Definition: IpPenaltyLSAcceptor.hpp:184
Ipopt::PenaltyLSAcceptor::nu_inc_
Number nu_inc_
Incrememt for penalty parameter.
Definition: IpPenaltyLSAcceptor.hpp:186
Ipopt::PenaltyLSAcceptor::reference_JacC_delta_
SmartPtr< const Vector > reference_JacC_delta_
Product of Jacobian of equality constraint with x direction.
Definition: IpPenaltyLSAcceptor.hpp:215
Ipopt::PenaltyLSAcceptor::reference_theta_
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
Definition: IpPenaltyLSAcceptor.hpp:205
Ipopt::PenaltyLSAcceptor::kappa_soc_
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
Definition: IpPenaltyLSAcceptor.hpp:196
Ipopt::PenaltyLSAcceptor::InitThisLineSearch
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
Ipopt::PenaltyLSAcceptor::TrySecondOrderCorrection
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
Ipopt::PenaltyLSAcceptor::eta_
Number eta_
Definition: IpPenaltyLSAcceptor.hpp:188
Ipopt::PenaltyLSAcceptor::reference_pred_
Number reference_pred_
Reference predicted reduction.
Definition: IpPenaltyLSAcceptor.hpp:220
Ipopt::PenaltyLSAcceptor
Penalty function line search.
Definition: IpPenaltyLSAcceptor.hpp:22
Ipopt::PenaltyLSAcceptor::max_soc_
Index max_soc_
Maximal number of second order correction steps.
Definition: IpPenaltyLSAcceptor.hpp:192
Ipopt::BacktrackingLSAcceptor
Base class for backtracking line search acceptors.
Definition: IpBacktrackingLSAcceptor.hpp:18
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::PenaltyLSAcceptor::operator=
void operator=(const PenaltyLSAcceptor &)
Overloaded Assignment Operator.
Ipopt::PenaltyLSAcceptor::rho_
Number rho_
Definition: IpPenaltyLSAcceptor.hpp:190
Ipopt::PenaltyLSAcceptor::UpdateForNextIteration
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Ipopt::PenaltyLSAcceptor::PrepareRestoPhaseStart
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
Ipopt::PenaltyLSAcceptor::StartWatchDog
virtual void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.
Ipopt::PenaltyLSAcceptor::watchdog_pred_
Number watchdog_pred_
Predicted reduction to be compared with in watch dog.
Definition: IpPenaltyLSAcceptor.hpp:226
Ipopt::PenaltyLSAcceptor::PenaltyLSAcceptor
PenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.