Ipopt 3.12.10

- Main Page
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Ipopt::FilterLSAcceptor Class Reference

Filter line search. More...

`#include <IpFilterLSAcceptor.hpp>`

Inheritance diagram for Ipopt::FilterLSAcceptor:
[legend]

## Public Member Functions
virtual bool | InitializeImpl (const OptionsList &options, const std::string &prefix)
| InitializeImpl - overloaded from AlgorithmStrategyObject. More...
virtual void | Reset ()
| Reset the acceptor. More...
virtual void | InitThisLineSearch (bool in_watchdog)
| Initialization for the next line search. More...
virtual void | PrepareRestoPhaseStart ()
| Method that is called before the restoration phase is called. More...
virtual Number | CalculateAlphaMin ()
| Method returning the lower bound on the trial step sizes. More...
virtual bool | CheckAcceptabilityOfTrialPoint (Number alpha_primal)
| Method for checking if current trial point is acceptable. More...
virtual bool | TrySecondOrderCorrection (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
| Try a second order correction for the constraints. More...
virtual bool | TryCorrector (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
| Try higher order corrector (for fast local convergence). More...
virtual char | UpdateForNextIteration (Number alpha_primal_test)
| Method for ending the current line search. More...
virtual void | StartWatchDog ()
| Method for setting internal data if the watchdog procedure is started. More...
virtual void | StopWatchDog ()
| Method for setting internal data if the watchdog procedure is stopped. More...
Constructors/Destructors
| FilterLSAcceptor (const SmartPtr< PDSystemSolver > &pd_solver)
| Constructor. More...
virtual | ~FilterLSAcceptor ()
| Default destructor. More...
Trial Point Accepting Methods. Used internally to check certain
acceptability criteria and used externally (by the restoration phase convergence check object, for instance)
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. More...
bool | IsAcceptableToCurrentFilter (Number trial_barr, Number trial_theta) const
| Checks if a trial point is acceptable to the current filter. More...
Public Member Functions inherited from Ipopt::BacktrackingLSAcceptor
virtual bool | RestoredIterate ()
| Method for telling the BacktrackingLineSearch object that a previous iterate has been restored. More...
virtual bool | NeverRestorationPhase ()
| Method called by BacktrackingLineSearch object to determine whether the restoration phase should never be called. More...
virtual bool | DoFallback ()
| Method for doing a fallback approach in case no search direction could be computed. More...
virtual Number | ComputeAlphaForY (Number alpha_primal, Number alpha_dual, SmartPtr< IteratesVector > &delta)
| Method for computing the step for the constraint multipliers in the line search acceptor method. More...
virtual bool | HasComputeAlphaForY () const
| Method returning true of ComputeAlphaForY is implemented for this acceptor. More...
| BacktrackingLSAcceptor ()
| Constructor. More...
virtual | ~BacktrackingLSAcceptor ()
| Default destructor. More...
Public Member Functions inherited from Ipopt::AlgorithmStrategyObject
bool | Initialize (const Journalist &jnlst, IpoptNLP &ip_nlp, IpoptData &ip_data, IpoptCalculatedQuantities &ip_cq, const OptionsList &options, const std::string &prefix)
| This method is called every time the algorithm starts again - it is used to reset any internal state. More...
bool | ReducedInitialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
| Reduced version of the Initialize method, which does not require special Ipopt information. More...
| AlgorithmStrategyObject ()
| Default Constructor. More...
virtual | ~AlgorithmStrategyObject ()
| Default Destructor. More...
Public Member Functions inherited from Ipopt::ReferencedObject
| ReferencedObject ()
virtual | ~ReferencedObject ()
Index | ReferenceCount () const
void | AddRef (const Referencer *referencer) const
void | ReleaseRef (const Referencer *referencer) const

## Static Public Member Functions
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions)
| Methods for OptionsList. More...
Static Public Member Functions inherited from Ipopt::BacktrackingLSAcceptor
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions)
| Methods for OptionsList. More...

## Private Member Functions
bool | IsFtype (Number alpha_primal_test)
| Method for checking if the current step size satisfies the f-type switching condition. More...
bool | ArmijoHolds (Number alpha_primal_test)
| Method for checking the Armijo condition, given a trial step size. More...
void | AugmentFilter ()
| Augment the filter used on the current values of the barrier objective function and the contraint violation. More...
Default Compiler Generated Methods
(Hidden to avoid implicit creation/calling). These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.
| FilterLSAcceptor (const FilterLSAcceptor &)
| Copy Constructor. More...
void | operator= (const FilterLSAcceptor &)
| Overloaded Equals Operator. More...

## Private Attributes
Filter | filter_
| Filter with entries. More...
Filter information
Number | theta_max_
| Upper bound on infeasibility. More...
Number | theta_max_fact_
Number | theta_min_
| Infeasibility switching bound. More...
Number | theta_min_fact_
Information related to watchdog procedure
Number | reference_theta_
| Constraint violation at the point with respect to which progress is to be made. More...
Number | reference_barr_
| Barrier objective function at the point with respect to which progress is to be made. More...
Number | reference_gradBarrTDelta_
| Barrier gradient transpose search direction at the point with respect to which progress is to be made. More...
Number | watchdog_theta_
| Constraint violation at reference point. More...
Number | watchdog_barr_
| Barrier objective function at reference point. More...
Number | watchdog_gradBarrTDelta_
| Barrier gradient transpose search direction at reference point. More...
Filter reset stuff
Number | last_rejection_due_to_filter_
| True, if last rejected was due to the filter. More...
Index | count_successive_filter_rejections_
| Counter of successive iterations in which filter was reason for last rejection. More...
Index | n_filter_resets_
| Counter for the filter resets done so far. More...
Strategy objective that are used
SmartPtr< PDSystemSolver > | pd_solver_

## Parameters for the filter algorithm. Names as in the paper
enum | CorrectorTypeEnum { NO_CORRECTOR =0, AFFINE_CORRECTOR, PRIMAL_DUAL_CORRECTOR }
| enumeration for the corrector type More...
Number | eta_phi_
| More...
Number | delta_
| More...
Number | s_phi_
| More...
Number | s_theta_
| More...
Number | gamma_phi_
| More...
Number | gamma_theta_
| More...
Number | alpha_min_frac_
| More...
Index | max_soc_
| Maximal number of second order correction steps. More...
Number | kappa_soc_
| Required reduction in constraint violation before trying multiple second order correction steps . More...
Number | obj_max_inc_
| Maximal increase in objective function in orders of magnitute (log10). More...
Index | soc_method_
| Second method correction method. More...
CorrectorTypeEnum | corrector_type_
| Type of corrector steps that should be tried. More...
Number | corrector_compl_avrg_red_fact_
    parameter in heurstic that determines whether corrector step
should be tried. More...
bool | skip_corr_if_neg_curv_
| Flag indicating whether the corrector should be skipped in an iteration in which negative curvature is detected. More...
bool | skip_corr_in_monotone_mode_
| Flag indicating whether the corrector should be skipped during the monotone mu mode. More...
Index | max_filter_resets_
| maximal allowed number of filter resets. More...
Index | filter_reset_trigger_
| interation counter trigger for filter reset. More...

## Additional Inherited Members
Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const Journalist & | Jnlst () const
IpoptNLP & | IpNLP () const
IpoptData & | IpData () const
IpoptCalculatedQuantities & | IpCq () const
bool | HaveIpData () const

## Detailed Description

Filter line search.

This class implements the filter line search procedure.

Definition at line 23 of file IpFilterLSAcceptor.hpp.

## Member Enumeration Documentation

enum Ipopt::FilterLSAcceptor::CorrectorTypeEnum
| private

enumeration for the corrector type

Enumerator
NO_CORRECTOR |
AFFINE_CORRECTOR |
PRIMAL_DUAL_CORRECTOR |

Definition at line 201 of file IpFilterLSAcceptor.hpp.

## Constructor & Destructor Documentation

Ipopt::FilterLSAcceptor::FilterLSAcceptor | ( | const SmartPtr< PDSystemSolver > & | pd_solver | ) |

Constructor.

The PDSystemSolver object only needs to be provided (i.e. not NULL) if second order correction or corrector steps are to be used.

virtual Ipopt::FilterLSAcceptor::~FilterLSAcceptor | ( |  | ) |
| virtual

Default destructor.

Ipopt::FilterLSAcceptor::FilterLSAcceptor | ( | const FilterLSAcceptor & |  | ) |
| private

Copy Constructor.

## Member Function Documentation

virtual bool Ipopt::FilterLSAcceptor::InitializeImpl | ( | const OptionsList & | options,
|  | const std::string & | prefix
| ) |  |
| virtual

InitializeImpl - overloaded from AlgorithmStrategyObject.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::FilterLSAcceptor::Reset | ( |  | ) |
| virtual

Reset the acceptor.

This function should be called if all previous information should be discarded when the line search is performed the next time. For example, this method should be called if the barrier parameter is changed.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::FilterLSAcceptor::InitThisLineSearch | ( | bool | in_watchdog | ) |
| virtual

Initialization for the next line search.

The flag in_watchdog indicates if we are currently in an active watchdog procedure.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::FilterLSAcceptor::PrepareRestoPhaseStart | ( |  | ) |
| virtual

Method that is called before the restoration phase is called.

Here, we can set up things that are required in the termination test for the restoration phase, such as augmenting a filter.

Implements Ipopt::BacktrackingLSAcceptor.

virtual Number Ipopt::FilterLSAcceptor::CalculateAlphaMin | ( |  | ) |
| virtual

Method returning the lower bound on the trial step sizes.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::FilterLSAcceptor::CheckAcceptabilityOfTrialPoint | ( | Number | alpha_primal | ) |
| virtual

Method for checking if current trial point is acceptable.

It is assumed that the delta information in ip_data is the search direction used in criteria. The primal trial point has to be set before the call.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::FilterLSAcceptor::TrySecondOrderCorrection | ( | Number | alpha_primal_test,
|  | Number & | alpha_primal,
|  | SmartPtr< IteratesVector > & | actual_delta
| ) |  |
| virtual

Try a second order correction for the constraints.

If the first trial step (with incoming alpha_primal) has been reject, this tries up to max_soc_ second order corrections for the constraints. Here, alpha_primal_test is the step size that has to be used in the filter acceptance tests. On output actual_delta_ has been set to the step including the second order correction if it has been accepted, otherwise it is unchanged. If the SOC step has been accepted, alpha_primal has the fraction-to-the-boundary value for the SOC step on output. The return value is true, if a SOC step has been accepted.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::FilterLSAcceptor::TryCorrector | ( | Number | alpha_primal_test,
|  | Number & | alpha_primal,
|  | SmartPtr< IteratesVector > & | actual_delta
| ) |  |
| virtual

Try higher order corrector (for fast local convergence).

In contrast to a second order correction step, which tries to make an unacceptable point acceptable by improving constraint violation, this corrector step is tried even if the regular primal-dual step is acceptable.

Implements Ipopt::BacktrackingLSAcceptor.

virtual char Ipopt::FilterLSAcceptor::UpdateForNextIteration | ( | Number | alpha_primal_test | ) |
| virtual

Method for ending the current line search.

When it is called, the internal data should be updates, e.g., the filter might be augmented. alpha_primal_test is the value of alpha that has been used for in the acceptence test ealier.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::FilterLSAcceptor::StartWatchDog | ( |  | ) |
| virtual

Method for setting internal data if the watchdog procedure is started.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::FilterLSAcceptor::StopWatchDog | ( |  | ) |
| virtual

Method for setting internal data if the watchdog procedure is stopped.

Implements Ipopt::BacktrackingLSAcceptor.

bool Ipopt::FilterLSAcceptor::IsAcceptableToCurrentIterate | ( | Number | trial_barr,
|  | Number | trial_theta,
|  | bool | called_from_restoration = `false`
| ) |  | const

Checks if a trial point is acceptable to the current iterate.

bool Ipopt::FilterLSAcceptor::IsAcceptableToCurrentFilter | ( | Number | trial_barr,
|  | Number | trial_theta
| ) |  | const

Checks if a trial point is acceptable to the current filter.

static void Ipopt::FilterLSAcceptor::RegisterOptions | ( | SmartPtr< RegisteredOptions > | roptions | ) |
| static

Methods for OptionsList.

void Ipopt::FilterLSAcceptor::operator= | ( | const FilterLSAcceptor & |  | ) |
| private

Overloaded Equals Operator.

bool Ipopt::FilterLSAcceptor::IsFtype | ( | Number | alpha_primal_test | ) |
| private

Method for checking if the current step size satisfies the f-type switching condition.

Here, we use the search direction stored in ip_data

bool Ipopt::FilterLSAcceptor::ArmijoHolds | ( | Number | alpha_primal_test | ) |
| private

Method for checking the Armijo condition, given a trial step size.

The test uses the search direction stored in ip_data, and the values of the functions at the trial point in ip_data.

void Ipopt::FilterLSAcceptor::AugmentFilter | ( |  | ) |
| private

Augment the filter used on the current values of the barrier objective function and the contraint violation.

## Member Data Documentation

Number Ipopt::FilterLSAcceptor::theta_max_
| private

Upper bound on infeasibility.

Definition at line 146 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::theta_max_fact_
| private

Definition at line 147 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::theta_min_
| private

Infeasibility switching bound.

Definition at line 150 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::theta_min_fact_
| private

Definition at line 151 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::eta_phi_
| private

Definition at line 173 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::delta_
| private

Definition at line 175 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::s_phi_
| private

Definition at line 177 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::s_theta_
| private

Definition at line 179 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::gamma_phi_
| private

Definition at line 181 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::gamma_theta_
| private

Definition at line 183 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::alpha_min_frac_
| private

Definition at line 185 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::max_soc_
| private

Maximal number of second order correction steps.

Definition at line 187 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::kappa_soc_
| private

Required reduction in constraint violation before trying multiple second order correction steps .

Definition at line 191 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::obj_max_inc_
| private

Maximal increase in objective function in orders of magnitute (log10).

If the log10(barrier objective function) is increased more than this compared to the current point, the trial point is rejected.

Definition at line 196 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::soc_method_
| private

Second method correction method.

Definition at line 198 of file IpFilterLSAcceptor.hpp.

CorrectorTypeEnum Ipopt::FilterLSAcceptor::corrector_type_
| private

Type of corrector steps that should be tried.

Definition at line 208 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::corrector_compl_avrg_red_fact_
| private

    parameter in heurstic that determines whether corrector step

should be tried.

Definition at line 211 of file IpFilterLSAcceptor.hpp.

bool Ipopt::FilterLSAcceptor::skip_corr_if_neg_curv_
| private

Flag indicating whether the corrector should be skipped in an iteration in which negative curvature is detected.

Definition at line 214 of file IpFilterLSAcceptor.hpp.

bool Ipopt::FilterLSAcceptor::skip_corr_in_monotone_mode_
| private

Flag indicating whether the corrector should be skipped during the monotone mu mode.

Definition at line 217 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::max_filter_resets_
| private

maximal allowed number of filter resets.

Definition at line 219 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::filter_reset_trigger_
| private

interation counter trigger for filter reset.

If the successive number of iterations in which the last rejected step was due to the filter, and max_filter_resets is non-zero, then the filter is reset.

Definition at line 224 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::reference_theta_
| private

Constraint violation at the point with respect to which progress is to be made.

Definition at line 231 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::reference_barr_
| private

Barrier objective function at the point with respect to which progress is to be made.

Definition at line 234 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::reference_gradBarrTDelta_
| private

Barrier gradient transpose search direction at the point with respect to which progress is to be made.

Definition at line 237 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::watchdog_theta_
| private

Constraint violation at reference point.

Definition at line 239 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::watchdog_barr_
| private

Barrier objective function at reference point.

Definition at line 241 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::watchdog_gradBarrTDelta_
| private

Barrier gradient transpose search direction at reference point.

Definition at line 243 of file IpFilterLSAcceptor.hpp.

Filter Ipopt::FilterLSAcceptor::filter_
| private

Filter with entries.

Definition at line 247 of file IpFilterLSAcceptor.hpp.

Number Ipopt::FilterLSAcceptor::last_rejection_due_to_filter_
| private

True, if last rejected was due to the filter.

Definition at line 252 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::count_successive_filter_rejections_
| private

Counter of successive iterations in which filter was reason for last rejection.

Definition at line 255 of file IpFilterLSAcceptor.hpp.

Index Ipopt::FilterLSAcceptor::n_filter_resets_
| private

Counter for the filter resets done so far.

Definition at line 257 of file IpFilterLSAcceptor.hpp.

SmartPtr<PDSystemSolver> Ipopt::FilterLSAcceptor::pd_solver_
| private

Definition at line 262 of file IpFilterLSAcceptor.hpp.

The documentation for this class was generated from the following file:

- src/Algorithm/IpFilterLSAcceptor.hpp