Ipopt  3.12.13
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$
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
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:180
Ipopt::PenaltyLSAcceptor::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
InitializeImpl - overloaded from AlgorithmStrategyObject.
Ipopt::PenaltyLSAcceptor::~PenaltyLSAcceptor
virtual ~PenaltyLSAcceptor()
Default destructor.
Ipopt::PenaltyLSAcceptor::watchdog_barr_
Number watchdog_barr_
Barrier objective function at reference point.
Definition: IpPenaltyLSAcceptor.hpp:187
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:197
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:195
Ipopt
Definition: matlabjournal.hpp:14
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::PenaltyLSAcceptor::resto_pred_
Number resto_pred_
When called from the restoration phase, this is the required predicted reduction.
Definition: IpPenaltyLSAcceptor.hpp:202
IpBacktrackingLSAcceptor.hpp
Ipopt::PenaltyLSAcceptor::soc_method_
Index soc_method_
Second method correction method.
Definition: IpPenaltyLSAcceptor.hpp:161
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:19
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:174
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:176
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:171
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::PenaltyLSAcceptor::watchdog_theta_
Number watchdog_theta_
Constraint violation at reference point.
Definition: IpPenaltyLSAcceptor.hpp:185
Ipopt::PenaltyLSAcceptor::pd_solver_
SmartPtr< PDSystemSolver > pd_solver_
Definition: IpPenaltyLSAcceptor.hpp:206
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:147
Ipopt::PenaltyLSAcceptor::nu_inc_
Number nu_inc_
Incrememt for penalty parameter.
Definition: IpPenaltyLSAcceptor.hpp:149
Ipopt::PenaltyLSAcceptor::reference_JacC_delta_
SmartPtr< const Vector > reference_JacC_delta_
Product of Jacobian of equality constraint with x direction.
Definition: IpPenaltyLSAcceptor.hpp:178
Ipopt::PenaltyLSAcceptor::reference_theta_
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
Definition: IpPenaltyLSAcceptor.hpp:168
Ipopt::PenaltyLSAcceptor::kappa_soc_
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
Definition: IpPenaltyLSAcceptor.hpp:159
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:151
Ipopt::PenaltyLSAcceptor::reference_pred_
Number reference_pred_
Reference predicted reduction.
Definition: IpPenaltyLSAcceptor.hpp:183
Ipopt::PenaltyLSAcceptor
Penalty function line search.
Definition: IpPenaltyLSAcceptor.hpp:23
Ipopt::PenaltyLSAcceptor::max_soc_
Index max_soc_
Maximal number of second order correction steps.
Definition: IpPenaltyLSAcceptor.hpp:155
Ipopt::BacktrackingLSAcceptor
Base class for backtracking line search acceptors.
Definition: IpBacktrackingLSAcceptor.hpp:21
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::PenaltyLSAcceptor::operator=
void operator=(const PenaltyLSAcceptor &)
Overloaded Equals Operator.
Ipopt::PenaltyLSAcceptor::rho_
Number rho_
Definition: IpPenaltyLSAcceptor.hpp:153
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:189
Ipopt::PenaltyLSAcceptor::PenaltyLSAcceptor
PenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.