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 | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Ipopt::InexactLSAcceptor Class Reference

Penalty function line search for the inexact step algorithm version. More...

`#include <IpInexactLSAcceptor.hpp>`

Inheritance diagram for Ipopt::InexactLSAcceptor:
[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...
virtual Number | ComputeAlphaForY (Number alpha_primal, Number alpha_dual, SmartPtr< IteratesVector > &delta)
| Method for updating the equality constraint multipliers. More...
virtual bool | HasComputeAlphaForY () const
| Method returning true of ComputeAlphaForY is implemented for this acceptor. More...
Constructors/Destructors
| InexactLSAcceptor ()
| Constructor. More...
virtual | ~InexactLSAcceptor ()
| 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...
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...
| 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...

## Protected Member Functions
InexactData & | InexData ()
| Method to easily access Inexact data. More...
InexactCq & | InexCq ()
| Method to easily access Inexact calculated quantities. More...
Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const Journalist & | Jnlst () const
IpoptNLP & | IpNLP () const
IpoptData & | IpData () const
IpoptCalculatedQuantities & | IpCq () const
bool | HaveIpData () const

## Private Member Functions
Number | CalcPred (Number alpha)
| Compute predicted reduction for given step size. More...
void | ResetSlacks ()
    Method for resetting the slacks to be satisfying the slack
equality constraints without increasing the barrier function 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.
| InexactLSAcceptor (const InexactLSAcceptor &)
| Copy Constructor. More...
void | operator= (const InexactLSAcceptor &)
| Overloaded Equals Operator. More...

## Private Attributes
bool | in_tt2_
| Flag indicating if this is a termination test 2 iteration in which we just update the multipliers and skip the line search. More...
Number | resto_pred_
| When called from the restoration phase, this is the required predicted reduction. More...
bool | accepted_by_low_only_
| Flag indicating if the step was accepted only because of the lower penalty parameter. More...
Parameters for the penalty function algorithm.
Number | nu_init_
| Initial value of penalty parameter. More...
Number | nu_low_init_
| Initial value of lower penalty parameter. More...
Number | nu_low_fact_
| Factor in update rule for lower penalty parameter. More...
Number | nu_inc_
| Incrememt for penalty parameter. More...
Number | eta_
| More...
Number | rho_
| More...
Number | tcc_theta_
| theta factor in Tangential Component Condition More...
Number | nu_update_inf_skip_tol_
| Lower feasiblity bound to skip penalty parameter update. More...
bool | flexible_penalty_function_
| Flag indicating whether the Curtis/Nocedal flexible penalty function should be used. More...
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_pred_
| Reference predicted reduction. More...
Number | watchdog_theta_
| Constraint violation at reference point. More...
Number | watchdog_barr_
| Barrier objective function at reference point. More...
Number | watchdog_pred_
| Predicted reduction to be compared with in watch dog. More...
Penalty parameter
Number | nu_
| Current value of the penalty parameter. More...
Number | last_nu_
| Value of penalty parameter at beginning of the iteration. More...
Number | nu_low_
| Current lower value of the penalty parameter. More...
Number | last_nu_low_
| Value of lower penalty parameter at beginning of the iteration. More...
Number | inexact_decomposition_activate_tol_
| Step size threshold for activating step decomposition. More...
Number | inexact_decomposition_inactivate_tol_
| Step size threshold for inactivating step decomposition. More...

## Detailed Description

Penalty function line search for the inexact step algorithm version.

Definition at line 22 of file IpInexactLSAcceptor.hpp.

## Constructor & Destructor Documentation

Ipopt::InexactLSAcceptor::InexactLSAcceptor | ( |  | ) |

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::InexactLSAcceptor::~InexactLSAcceptor | ( |  | ) |
| virtual

Default destructor.

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

Copy Constructor.

## Member Function Documentation

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

InitializeImpl - overloaded from AlgorithmStrategyObject.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::InexactLSAcceptor::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::InexactLSAcceptor::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. Here is where the penalty parameter is updated.

Implements Ipopt::BacktrackingLSAcceptor.

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

Method that is called before the restoration phase is called.

For now, we just terminate if this is called.

Implements Ipopt::BacktrackingLSAcceptor.

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

Method returning the lower bound on the trial step sizes.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::InexactLSAcceptor::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::InexactLSAcceptor::TrySecondOrderCorrection | ( | Number | alpha_primal_test,
|  | Number & | alpha_primal,
|  | SmartPtr< IteratesVector > & | actual_delta
| ) |  |
| virtual

Try a second order correction for the constraints.

For the inexact version, this always returns false because a second order step is too expensive.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::InexactLSAcceptor::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::InexactLSAcceptor::UpdateForNextIteration | ( | Number | alpha_primal_test | ) |
| virtual

Method for ending the current line search.

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

Implements Ipopt::BacktrackingLSAcceptor.

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

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

Implements Ipopt::BacktrackingLSAcceptor.

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

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

Implements Ipopt::BacktrackingLSAcceptor.

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

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

virtual Number Ipopt::InexactLSAcceptor::ComputeAlphaForY | ( | Number | alpha_primal,
|  | Number | alpha_dual,
|  | SmartPtr< IteratesVector > & | delta
| ) |  |
| virtual

Method for updating the equality constraint multipliers.

Reimplemented from Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::InexactLSAcceptor::HasComputeAlphaForY | ( |  | ) | const
| inline virtual

Method returning true of ComputeAlphaForY is implemented for this acceptor.

Reimplemented from Ipopt::BacktrackingLSAcceptor.

Definition at line 116 of file IpInexactLSAcceptor.hpp.

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

Methods for OptionsList.

InexactData& Ipopt::InexactLSAcceptor::InexData | ( |  | ) |
| inline protected

Method to easily access Inexact data.

Definition at line 128 of file IpInexactLSAcceptor.hpp.

InexactCq& Ipopt::InexactLSAcceptor::InexCq | ( |  | ) |
| inline protected

Method to easily access Inexact calculated quantities.

Definition at line 137 of file IpInexactLSAcceptor.hpp.

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

Overloaded Equals Operator.

Number Ipopt::InexactLSAcceptor::CalcPred | ( | Number | alpha | ) |
| private

Compute predicted reduction for given step size.

void Ipopt::InexactLSAcceptor::ResetSlacks | ( |  | ) |
| private

    Method for resetting the slacks to be satisfying the slack

equality constraints without increasing the barrier function

## Member Data Documentation

Number Ipopt::InexactLSAcceptor::nu_init_
| private

Initial value of penalty parameter.

Definition at line 172 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_low_init_
| private

Initial value of lower penalty parameter.

Definition at line 174 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_low_fact_
| private

Factor in update rule for lower penalty parameter.

Definition at line 176 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_inc_
| private

Incrememt for penalty parameter.

Definition at line 178 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::eta_
| private

Definition at line 180 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::rho_
| private

Definition at line 182 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::tcc_theta_
| private

theta factor in Tangential Component Condition

Definition at line 184 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_update_inf_skip_tol_
| private

Lower feasiblity bound to skip penalty parameter update.

Definition at line 186 of file IpInexactLSAcceptor.hpp.

bool Ipopt::InexactLSAcceptor::flexible_penalty_function_
| private

Flag indicating whether the Curtis/Nocedal flexible penalty function should be used.

Definition at line 189 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::reference_theta_
| private

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

Definition at line 196 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::reference_barr_
| private

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

Definition at line 199 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::reference_pred_
| private

Reference predicted reduction.

If positive, then it is used in watch dog.

Definition at line 202 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::watchdog_theta_
| private

Constraint violation at reference point.

Definition at line 204 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::watchdog_barr_
| private

Barrier objective function at reference point.

Definition at line 206 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::watchdog_pred_
| private

Predicted reduction to be compared with in watch dog.

Definition at line 208 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_
| private

Current value of the penalty parameter.

Definition at line 214 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::last_nu_
| private

Value of penalty parameter at beginning of the iteration.

Definition at line 216 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::nu_low_
| private

Current lower value of the penalty parameter.

Definition at line 218 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::last_nu_low_
| private

Value of lower penalty parameter at beginning of the iteration.

Definition at line 220 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::inexact_decomposition_activate_tol_
| private

Step size threshold for activating step decomposition.

Definition at line 222 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::inexact_decomposition_inactivate_tol_
| private

Step size threshold for inactivating step decomposition.

Definition at line 224 of file IpInexactLSAcceptor.hpp.

bool Ipopt::InexactLSAcceptor::in_tt2_
| private

Flag indicating if this is a termination test 2 iteration in which we just update the multipliers and skip the line search.

Definition at line 230 of file IpInexactLSAcceptor.hpp.

Number Ipopt::InexactLSAcceptor::resto_pred_
| private

When called from the restoration phase, this is the required predicted reduction.

Definition at line 234 of file IpInexactLSAcceptor.hpp.

bool Ipopt::InexactLSAcceptor::accepted_by_low_only_
| private

Flag indicating if the step was accepted only because of the lower penalty parameter.

This is for output only.

Definition at line 238 of file IpInexactLSAcceptor.hpp.

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

- src/Algorithm/Inexact/IpInexactLSAcceptor.hpp