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

Penalty function line search. More...

#include <IpPenaltyLSAcceptor.hpp>

+ Inheritance diagram for Ipopt::PenaltyLSAcceptor:

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
 PenaltyLSAcceptor (const SmartPtr< PDSystemSolver > &pd_solver)
 Constructor. More...
 
virtual ~PenaltyLSAcceptor ()
 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...
 
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

Number CalcPred (Number alpha)
 Compute predicted reduction for given step size. 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.

 PenaltyLSAcceptor (const PenaltyLSAcceptor &)
 Copy Constructor. More...
 
void operator= (const PenaltyLSAcceptor &)
 Overloaded Equals Operator. More...
 

Private Attributes

Number resto_pred_
 When called from the restoration phase, this is the required predicted reduction. More...
 
Parameters for the penalty function line search

algorithm.

Names as in the filter paper

Number nu_init_
 Initial value of penalty parameter. More...
 
Number nu_inc_
 Incrememt for penalty parameter. More...
 
Number eta_
 $ \eta_{\varphi} $ More...
 
Number rho_
 $ \rho $ 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 $ \kappa_{soc}$. More...
 
Index soc_method_
 Second method correction method. 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_gradBarrTDelta_
 Barrier gradient transpose search direction at the point with respect to which progress is to be made. More...
 
Number reference_dWd_
 Two-sided product of search direction with complete Hessian. More...
 
SmartPtr< const Vectorreference_JacC_delta_
 Product of Jacobian of equality constraint with x direction. More...
 
SmartPtr< const Vectorreference_JacD_delta_
 Product of Jacobian of (d-s) constraint with search direction. 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...
 
Strategy objective that are used
SmartPtr< PDSystemSolverpd_solver_
 

Additional Inherited Members

- Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject
const JournalistJnlst () const
 
IpoptNLPIpNLP () const
 
IpoptDataIpData () const
 
IpoptCalculatedQuantitiesIpCq () const
 
bool HaveIpData () const
 

Detailed Description

Penalty function line search.

This class implements the penalty function line search procedure as proposed by Waltz, Morales, Nocedal, Orban.

Definition at line 23 of file IpPenaltyLSAcceptor.hpp.

Constructor & Destructor Documentation

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

Default destructor.

Ipopt::PenaltyLSAcceptor::PenaltyLSAcceptor ( const PenaltyLSAcceptor )
private

Copy Constructor.

Member Function Documentation

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

InitializeImpl - overloaded from AlgorithmStrategyObject.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::PenaltyLSAcceptor::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::PenaltyLSAcceptor::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::PenaltyLSAcceptor::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.

Implements Ipopt::BacktrackingLSAcceptor.

virtual Number Ipopt::PenaltyLSAcceptor::CalculateAlphaMin ( )
virtual

Method returning the lower bound on the trial step sizes.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::PenaltyLSAcceptor::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::PenaltyLSAcceptor::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 penalty function 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::PenaltyLSAcceptor::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::PenaltyLSAcceptor::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::PenaltyLSAcceptor::StartWatchDog ( )
virtual

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

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::PenaltyLSAcceptor::StopWatchDog ( )
virtual

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

Implements Ipopt::BacktrackingLSAcceptor.

bool Ipopt::PenaltyLSAcceptor::IsAcceptableToCurrentIterate ( Number  trial_barr,
Number  trial_theta,
bool  called_from_restoration = false 
) const

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

static void Ipopt::PenaltyLSAcceptor::RegisterOptions ( SmartPtr< RegisteredOptions roptions)
static

Methods for OptionsList.

void Ipopt::PenaltyLSAcceptor::operator= ( const PenaltyLSAcceptor )
private

Overloaded Equals Operator.

Number Ipopt::PenaltyLSAcceptor::CalcPred ( Number  alpha)
private

Compute predicted reduction for given step size.

Member Data Documentation

Number Ipopt::PenaltyLSAcceptor::nu_init_
private

Initial value of penalty parameter.

Definition at line 147 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::nu_inc_
private

Incrememt for penalty parameter.

Definition at line 149 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::eta_
private

$ \eta_{\varphi} $

Definition at line 151 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::rho_
private

$ \rho $

Definition at line 153 of file IpPenaltyLSAcceptor.hpp.

Index Ipopt::PenaltyLSAcceptor::max_soc_
private

Maximal number of second order correction steps.

Definition at line 155 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::kappa_soc_
private

Required reduction in constraint violation before trying multiple second order correction steps $ \kappa_{soc}$.

Definition at line 159 of file IpPenaltyLSAcceptor.hpp.

Index Ipopt::PenaltyLSAcceptor::soc_method_
private

Second method correction method.

Definition at line 161 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::reference_theta_
private

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

Definition at line 168 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::reference_barr_
private

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

Definition at line 171 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::reference_gradBarrTDelta_
private

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

Definition at line 174 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::reference_dWd_
private

Two-sided product of search direction with complete Hessian.

Definition at line 176 of file IpPenaltyLSAcceptor.hpp.

SmartPtr<const Vector> Ipopt::PenaltyLSAcceptor::reference_JacC_delta_
private

Product of Jacobian of equality constraint with x direction.

Definition at line 178 of file IpPenaltyLSAcceptor.hpp.

SmartPtr<const Vector> Ipopt::PenaltyLSAcceptor::reference_JacD_delta_
private

Product of Jacobian of (d-s) constraint with search direction.

Definition at line 180 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::reference_pred_
private

Reference predicted reduction.

If positive, then it is used in watch dog.

Definition at line 183 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::watchdog_theta_
private

Constraint violation at reference point.

Definition at line 185 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::watchdog_barr_
private

Barrier objective function at reference point.

Definition at line 187 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::watchdog_pred_
private

Predicted reduction to be compared with in watch dog.

Definition at line 189 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::nu_
private

Current value of the penalty parameter.

Definition at line 195 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::last_nu_
private

Value of penalty parameter at beginning of the iteration.

Definition at line 197 of file IpPenaltyLSAcceptor.hpp.

Number Ipopt::PenaltyLSAcceptor::resto_pred_
private

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

Definition at line 202 of file IpPenaltyLSAcceptor.hpp.

SmartPtr<PDSystemSolver> Ipopt::PenaltyLSAcceptor::pd_solver_
private

Definition at line 206 of file IpPenaltyLSAcceptor.hpp.


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