Ipopt Documentation  
IpFilterLSAcceptor.hpp
Go to the documentation of this file.
1 // Copyright (C) 2005, 2006 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 2005-10-13
6 // derived file from IpFilterLineSearch.hpp
7 
8 #ifndef __IPFILTERLSACCEPTOR_HPP__
9 #define __IPFILTERLSACCEPTOR_HPP__
10 
11 #include "IpFilter.hpp"
13 #include "IpPDSystemSolver.hpp"
14 
15 namespace Ipopt
16 {
17 
20 {
21 public:
31  const SmartPtr<PDSystemSolver>& pd_solver
32  );
33 
34  virtual ~FilterLSAcceptor();
36 
37  virtual bool InitializeImpl(
38  const OptionsList& options,
39  const std::string& prefix
40  );
41 
49  virtual void Reset();
50 
55  virtual void InitThisLineSearch(
56  bool in_watchdog
57  );
58 
64  virtual void PrepareRestoPhaseStart();
65 
67  virtual Number CalculateAlphaMin();
68 
75  virtual bool CheckAcceptabilityOfTrialPoint(
76  Number alpha_primal
77  );
78 
91  virtual bool TrySecondOrderCorrection(
92  Number alpha_primal_test,
93  Number& alpha_primal,
94  SmartPtr<IteratesVector>& actual_delta
95  );
96 
104  virtual bool TryCorrector(
105  Number alpha_primal_test,
106  Number& alpha_primal,
107  SmartPtr<IteratesVector>& actual_delta
108  );
109 
117  virtual char UpdateForNextIteration(
118  Number alpha_primal_test
119  );
120 
124  virtual void StartWatchDog();
125 
129  virtual void StopWatchDog();
130 
140  Number trial_barr,
141  Number trial_theta,
142  bool called_from_restoration = false
143  ) const;
144 
147  Number trial_barr,
148  Number trial_theta
149  ) const;
151 
154  static void RegisterOptions(
156  );
158 
159 private:
172  const FilterLSAcceptor&
173  );
174 
176  void operator=(
177  const FilterLSAcceptor&
178  );
180 
186 
191 
197  bool IsFtype(
198  Number alpha_primal_test
199  );
200 
207  bool ArmijoHolds(
208  Number alpha_primal_test
209  );
210 
214  void AugmentFilter();
215 
248 
251  {
255  };
278 
300 
303 
315 
320 };
321 
322 } // namespace Ipopt
323 
324 #endif
Ipopt::FilterLSAcceptor::reference_gradBarrTDelta_
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
Definition: IpFilterLSAcceptor.hpp:292
Ipopt::FilterLSAcceptor::alpha_min_frac_
Number alpha_min_frac_
Definition: IpFilterLSAcceptor.hpp:231
Ipopt::FilterLSAcceptor::TrySecondOrderCorrection
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
Ipopt::FilterLSAcceptor::operator=
void operator=(const FilterLSAcceptor &)
Overloaded Assignment Operator.
Ipopt::FilterLSAcceptor::CorrectorTypeEnum
CorrectorTypeEnum
enumeration for the corrector type
Definition: IpFilterLSAcceptor.hpp:250
Ipopt::FilterLSAcceptor::max_soc_
Index max_soc_
Maximal number of second order correction steps.
Definition: IpFilterLSAcceptor.hpp:233
Ipopt::FilterLSAcceptor::TryCorrector
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
Ipopt::FilterLSAcceptor::~FilterLSAcceptor
virtual ~FilterLSAcceptor()
Ipopt::FilterLSAcceptor::watchdog_barr_
Number watchdog_barr_
Barrier objective function at reference point.
Definition: IpFilterLSAcceptor.hpp:296
Ipopt::FilterLSAcceptor::max_filter_resets_
Index max_filter_resets_
maximal allowed number of filter resets.
Definition: IpFilterLSAcceptor.hpp:269
Ipopt::FilterLSAcceptor::ArmijoHolds
bool ArmijoHolds(Number alpha_primal_test)
Method for checking the Armijo condition, given a trial step size.
Ipopt::FilterLSAcceptor::kappa_soc_
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
Definition: IpFilterLSAcceptor.hpp:237
Ipopt::FilterLSAcceptor::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
Ipopt::FilterLSAcceptor::theta_min_
Number theta_min_
Infeasibility switching bound.
Definition: IpFilterLSAcceptor.hpp:188
Ipopt::FilterLSAcceptor::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
This file contains a base class for all exceptions and a set of macros to help with exceptions.
Definition: IpInexactAlgBuilder.hpp:13
Ipopt::FilterLSAcceptor::InitThisLineSearch
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
Ipopt::FilterLSAcceptor::corrector_compl_avrg_red_fact_
Number corrector_compl_avrg_red_fact_
parameter in heuristic that determines whether corrector step should be tried.
Definition: IpFilterLSAcceptor.hpp:259
Ipopt::FilterLSAcceptor::CalculateAlphaMin
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Ipopt::FilterLSAcceptor::NO_CORRECTOR
@ NO_CORRECTOR
Definition: IpFilterLSAcceptor.hpp:252
Ipopt::FilterLSAcceptor::IsFtype
bool IsFtype(Number alpha_primal_test)
Method for checking if the current step size satisfies the f-type switching condition.
Ipopt::FilterLSAcceptor::AFFINE_CORRECTOR
@ AFFINE_CORRECTOR
Definition: IpFilterLSAcceptor.hpp:253
IpBacktrackingLSAcceptor.hpp
Ipopt::FilterLSAcceptor::corrector_type_
CorrectorTypeEnum corrector_type_
Type of corrector steps that should be tried.
Definition: IpFilterLSAcceptor.hpp:257
Ipopt::FilterLSAcceptor::theta_min_fact_
Number theta_min_fact_
Definition: IpFilterLSAcceptor.hpp:189
Ipopt::FilterLSAcceptor::filter_
Filter filter_
Filter with entries.
Definition: IpFilterLSAcceptor.hpp:302
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
Ipopt::FilterLSAcceptor::StopWatchDog
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
Ipopt::FilterLSAcceptor::skip_corr_if_neg_curv_
bool skip_corr_if_neg_curv_
Flag indicating whether the corrector should be skipped in an iteration in which negative curvature i...
Definition: IpFilterLSAcceptor.hpp:263
Ipopt::FilterLSAcceptor::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::FilterLSAcceptor::UpdateForNextIteration
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Ipopt::FilterLSAcceptor::pd_solver_
SmartPtr< PDSystemSolver > pd_solver_
Definition: IpFilterLSAcceptor.hpp:318
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
Ipopt::FilterLSAcceptor::reference_theta_
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
Definition: IpFilterLSAcceptor.hpp:284
Ipopt::FilterLSAcceptor::s_phi_
Number s_phi_
Definition: IpFilterLSAcceptor.hpp:223
Ipopt::FilterLSAcceptor::n_filter_resets_
Index n_filter_resets_
Counter for the filter resets done so far.
Definition: IpFilterLSAcceptor.hpp:313
Ipopt::FilterLSAcceptor::AugmentFilter
void AugmentFilter()
Augment the filter used on the current values of the barrier objective function and the constraint vi...
Ipopt::FilterLSAcceptor::skip_corr_in_monotone_mode_
bool skip_corr_in_monotone_mode_
Flag indicating whether the corrector should be skipped during the monotone mu mode.
Definition: IpFilterLSAcceptor.hpp:267
IpFilter.hpp
IpPDSystemSolver.hpp
Ipopt::FilterLSAcceptor::soc_method_
Index soc_method_
Second method correction method.
Definition: IpFilterLSAcceptor.hpp:247
Ipopt::FilterLSAcceptor::PRIMAL_DUAL_CORRECTOR
@ PRIMAL_DUAL_CORRECTOR
Definition: IpFilterLSAcceptor.hpp:254
Ipopt::FilterLSAcceptor::gamma_phi_
Number gamma_phi_
Definition: IpFilterLSAcceptor.hpp:227
Ipopt::FilterLSAcceptor::watchdog_gradBarrTDelta_
Number watchdog_gradBarrTDelta_
Barrier gradient transpose search direction at reference point.
Definition: IpFilterLSAcceptor.hpp:298
Ipopt::FilterLSAcceptor::IsAcceptableToCurrentFilter
bool IsAcceptableToCurrentFilter(Number trial_barr, Number trial_theta) const
Checks if a trial point is acceptable to the current filter.
Ipopt::FilterLSAcceptor::theta_max_
Number theta_max_
Upper bound on infeasibility.
Definition: IpFilterLSAcceptor.hpp:184
Ipopt::FilterLSAcceptor::delta_
Number delta_
Definition: IpFilterLSAcceptor.hpp:221
Ipopt::FilterLSAcceptor::Reset
virtual void Reset()
Reset the acceptor.
Ipopt::FilterLSAcceptor::count_successive_filter_rejections_
Index count_successive_filter_rejections_
Counter of successive iterations in which filter was reason for last rejection.
Definition: IpFilterLSAcceptor.hpp:311
Ipopt::FilterLSAcceptor
Filter line search procedure.
Definition: IpFilterLSAcceptor.hpp:19
Ipopt::FilterLSAcceptor::eta_phi_
Number eta_phi_
Definition: IpFilterLSAcceptor.hpp:219
Ipopt::FilterLSAcceptor::CheckAcceptabilityOfTrialPoint
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
Ipopt::FilterLSAcceptor::filter_reset_trigger_
Index filter_reset_trigger_
iteration counter trigger for filter reset.
Definition: IpFilterLSAcceptor.hpp:276
Ipopt::FilterLSAcceptor::s_theta_
Number s_theta_
Definition: IpFilterLSAcceptor.hpp:225
Ipopt::BacktrackingLSAcceptor
Base class for backtracking line search acceptors.
Definition: IpBacktrackingLSAcceptor.hpp:18
Ipopt::FilterLSAcceptor::gamma_theta_
Number gamma_theta_
Definition: IpFilterLSAcceptor.hpp:229
Ipopt::FilterLSAcceptor::theta_max_fact_
Number theta_max_fact_
Definition: IpFilterLSAcceptor.hpp:185
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::FilterLSAcceptor::last_rejection_due_to_filter_
Number last_rejection_due_to_filter_
True, if last rejected was due to the filter.
Definition: IpFilterLSAcceptor.hpp:307
Ipopt::FilterLSAcceptor::FilterLSAcceptor
FilterLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
Ipopt::Filter
Class for the filter.
Definition: IpFilter.hpp:134
Ipopt::FilterLSAcceptor::watchdog_theta_
Number watchdog_theta_
Constraint violation at reference point.
Definition: IpFilterLSAcceptor.hpp:294
Ipopt::FilterLSAcceptor::obj_max_inc_
Number obj_max_inc_
Maximal increase in objective function in orders of magnitude (log10).
Definition: IpFilterLSAcceptor.hpp:245
Ipopt::FilterLSAcceptor::reference_barr_
Number reference_barr_
Barrier objective function at the point with respect to which progress is to be made.
Definition: IpFilterLSAcceptor.hpp:288
Ipopt::FilterLSAcceptor::PrepareRestoPhaseStart
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
Ipopt::FilterLSAcceptor::StartWatchDog
virtual void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.