Ipopt Documentation  
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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:
23 
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 
137 
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 
153  static void RegisterOptions(
156  );
158 
159 private:
169 
172  const FilterLSAcceptor&
173  );
174 
176  void operator=(
177  const FilterLSAcceptor&
178  );
180 
182 
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 
217 
248 
251  {
255  };
278 
280 
300 
303 
305 
315 
320 };
321 
322 } // namespace Ipopt
323 
324 #endif
bool IsAcceptableToCurrentFilter(Number trial_barr, Number trial_theta) const
Checks if a trial point is acceptable to the current filter.
Number watchdog_theta_
Constraint violation at reference point.
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps ...
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
FilterLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
virtual void Reset()
Reset the acceptor.
double Number
Type of all numbers.
Definition: IpTypes.hpp:15
void AugmentFilter()
Augment the filter used on the current values of the barrier objective function and the constraint vi...
Filter line search procedure.
bool IsFtype(Number alpha_primal_test)
Method for checking if the current step size satisfies the f-type switching condition.
bool ArmijoHolds(Number alpha_primal_test)
Method for checking the Armijo condition, given a trial step size.
Index max_filter_resets_
maximal allowed number of filter resets.
Base class for backtracking line search acceptors.
Number theta_min_
Infeasibility switching bound.
Index soc_method_
Second method correction method.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
bool skip_corr_if_neg_curv_
Flag indicating whether the corrector should be skipped in an iteration in which negative curvature i...
Number last_rejection_due_to_filter_
True, if last rejected was due to the filter.
Number theta_max_
Upper bound on infeasibility.
Index max_soc_
Maximal number of second order correction steps.
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:171
This class stores a list of user set options.
CorrectorTypeEnum corrector_type_
Type of corrector steps that should be tried.
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...
Filter filter_
Filter with entries.
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
CorrectorTypeEnum
enumeration for the corrector type
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:17
Index count_successive_filter_rejections_
Counter of successive iterations in which filter was reason for last rejection.
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
Number reference_barr_
Barrier objective function 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.
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
Number watchdog_gradBarrTDelta_
Barrier gradient transpose search direction at reference point.
Class for the filter.
Definition: IpFilter.hpp:134
Number watchdog_barr_
Barrier objective function at reference point.
Index n_filter_resets_
Counter for the filter resets done so far.
bool skip_corr_in_monotone_mode_
Flag indicating whether the corrector should be skipped during the monotone mu mode.
Index filter_reset_trigger_
iteration counter trigger for filter reset.
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
Number obj_max_inc_
Maximal increase in objective function in orders of magnitude (log10).
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
Number corrector_compl_avrg_red_fact_
parameter in heuristic that determines whether corrector step should be tried.
void operator=(const FilterLSAcceptor &)
Overloaded Assignment Operator.
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.
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).