Ipopt Documentation  
 
Loading...
Searching...
No Matches
Ipopt::BacktrackingLSAcceptor Class Referenceabstract

Base class for backtracking line search acceptors. More...

#include <IpBacktrackingLSAcceptor.hpp>

+ Inheritance diagram for Ipopt::BacktrackingLSAcceptor:

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)=0
 Implementation of the initialization method that has to be overloaded by for each derived class.
 
virtual void Reset ()=0
 Reset the acceptor.
 
virtual void InitThisLineSearch (bool in_watchdog)=0
 Initialization for the next line search.
 
virtual void PrepareRestoPhaseStart ()=0
 Method that is called before the restoration phase is called.
 
virtual Number CalculateAlphaMin ()=0
 Method returning the lower bound on the trial step sizes.
 
virtual bool CheckAcceptabilityOfTrialPoint (Number alpha_primal)=0
 Method for checking if current trial point is acceptable.
 
virtual bool TrySecondOrderCorrection (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)=0
 Try a second order correction for the constraints.
 
virtual bool TryCorrector (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)=0
 Try higher order corrector (for fast local convergence).
 
virtual char UpdateForNextIteration (Number alpha_primal_test)=0
 Method for ending the current line search.
 
virtual void StartWatchDog ()=0
 Method for setting internal data if the watchdog procedure is started.
 
virtual void StopWatchDog ()=0
 Method for setting internal data if the watchdog procedure is stopped.
 
virtual bool RestoredIterate ()
 Method for telling the BacktrackingLineSearch object that a previous iterate has been restored.
 
virtual bool NeverRestorationPhase ()
 Method called by BacktrackingLineSearch object to determine whether the restoration phase should never be called.
 
virtual bool DoFallback ()
 Method for doing a fallback approach in case no search direction could be computed.
 
virtual Number ComputeAlphaForY (Number, Number, SmartPtr< IteratesVector > &)
 Method for computing the step for the constraint multipliers in the line search acceptor method.
 
virtual bool HasComputeAlphaForY () const
 Method returning true of ComputeAlphaForY is implemented for this acceptor.
 
Constructors/Destructors
 BacktrackingLSAcceptor ()
 Constructor.
 
virtual ~BacktrackingLSAcceptor ()
 Destructor.
 
- 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.
 
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.
 
 AlgorithmStrategyObject ()
 Default Constructor.
 
virtual ~AlgorithmStrategyObject ()
 Destructor.
 
- 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.
 

Private Member Functions

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.

 BacktrackingLSAcceptor (const BacktrackingLSAcceptor &)
 Copy Constructor.
 
void operator= (const BacktrackingLSAcceptor &)
 Default Assignment Operator.
 

Additional Inherited Members

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

Detailed Description

Base class for backtracking line search acceptors.

Definition at line 18 of file IpBacktrackingLSAcceptor.hpp.

Constructor & Destructor Documentation

◆ BacktrackingLSAcceptor() [1/2]

Ipopt::BacktrackingLSAcceptor::BacktrackingLSAcceptor ( )
inline

Constructor.

Definition at line 24 of file IpBacktrackingLSAcceptor.hpp.

◆ ~BacktrackingLSAcceptor()

virtual Ipopt::BacktrackingLSAcceptor::~BacktrackingLSAcceptor ( )
inlinevirtual

Destructor.

Definition at line 28 of file IpBacktrackingLSAcceptor.hpp.

◆ BacktrackingLSAcceptor() [2/2]

Ipopt::BacktrackingLSAcceptor::BacktrackingLSAcceptor ( const BacktrackingLSAcceptor )
private

Copy Constructor.

Member Function Documentation

◆ InitializeImpl()

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

Implementation of the initialization method that has to be overloaded by for each derived class.

Implements Ipopt::AlgorithmStrategyObject.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ Reset()

virtual void Ipopt::BacktrackingLSAcceptor::Reset ( )
pure 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.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ InitThisLineSearch()

virtual void Ipopt::BacktrackingLSAcceptor::InitThisLineSearch ( bool  in_watchdog)
pure virtual

Initialization for the next line search.

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

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ PrepareRestoPhaseStart()

virtual void Ipopt::BacktrackingLSAcceptor::PrepareRestoPhaseStart ( )
pure 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.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ CalculateAlphaMin()

virtual Number Ipopt::BacktrackingLSAcceptor::CalculateAlphaMin ( )
pure virtual

Method returning the lower bound on the trial step sizes.

If the backtracking procedure encounters a trial step size below this value after the first trial set, it switches to the (soft) restoration phase.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ CheckAcceptabilityOfTrialPoint()

virtual bool Ipopt::BacktrackingLSAcceptor::CheckAcceptabilityOfTrialPoint ( Number  alpha_primal)
pure 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. alpha_primal is the step size which is to be used for the test; if it is zero, then this method is called during the soft restoration phase.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ TrySecondOrderCorrection()

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

Try a second order correction for the constraints.

If the first trial step (with incoming alpha_primal) has been reject, this tries second order corrections, e.g., 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.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ TryCorrector()

virtual bool Ipopt::BacktrackingLSAcceptor::TryCorrector ( Number  alpha_primal_test,
Number alpha_primal,
SmartPtr< IteratesVector > &  actual_delta 
)
pure 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.

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ UpdateForNextIteration()

virtual char Ipopt::BacktrackingLSAcceptor::UpdateForNextIteration ( Number  alpha_primal_test)
pure 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 acceptance test earlier.

Returns
a character for the info_alpha_primal_char field in IpData

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ StartWatchDog()

virtual void Ipopt::BacktrackingLSAcceptor::StartWatchDog ( )
pure virtual

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

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ StopWatchDog()

virtual void Ipopt::BacktrackingLSAcceptor::StopWatchDog ( )
pure virtual

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

Implemented in Ipopt::InexactLSAcceptor, Ipopt::FilterLSAcceptor, Ipopt::PenaltyLSAcceptor, and Ipopt::CGPenaltyLSAcceptor.

◆ RestoredIterate()

virtual bool Ipopt::BacktrackingLSAcceptor::RestoredIterate ( )
inlinevirtual

Method for telling the BacktrackingLineSearch object that a previous iterate has been restored.

Reimplemented in Ipopt::CGPenaltyLSAcceptor.

Definition at line 137 of file IpBacktrackingLSAcceptor.hpp.

◆ NeverRestorationPhase()

virtual bool Ipopt::BacktrackingLSAcceptor::NeverRestorationPhase ( )
inlinevirtual

Method called by BacktrackingLineSearch object to determine whether the restoration phase should never be called.

Reimplemented in Ipopt::CGPenaltyLSAcceptor.

Definition at line 145 of file IpBacktrackingLSAcceptor.hpp.

◆ DoFallback()

virtual bool Ipopt::BacktrackingLSAcceptor::DoFallback ( )
inlinevirtual

Method for doing a fallback approach in case no search direction could be computed.

If no such fall back option is available, return false. If possible, the new point is assumed to be in the trial fields of IpData now.

Reimplemented in Ipopt::CGPenaltyLSAcceptor.

Definition at line 157 of file IpBacktrackingLSAcceptor.hpp.

◆ ComputeAlphaForY()

virtual Number Ipopt::BacktrackingLSAcceptor::ComputeAlphaForY ( Number  ,
Number  ,
SmartPtr< IteratesVector > &   
)
inlinevirtual

Method for computing the step for the constraint multipliers in the line search acceptor method.

This is activated with choosing the option alpha_for_y=acceptor

Reimplemented in Ipopt::InexactLSAcceptor.

Definition at line 167 of file IpBacktrackingLSAcceptor.hpp.

◆ HasComputeAlphaForY()

virtual bool Ipopt::BacktrackingLSAcceptor::HasComputeAlphaForY ( ) const
inlinevirtual

Method returning true of ComputeAlphaForY is implemented for this acceptor.

Reimplemented in Ipopt::InexactLSAcceptor.

Definition at line 180 of file IpBacktrackingLSAcceptor.hpp.

◆ RegisterOptions()

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

Methods for OptionsList.

◆ operator=()

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

Default Assignment Operator.


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