BacktrackingLineSearch Class Reference

#include <IpBacktrackingLineSearch.hpp>

Inheritance diagram for BacktrackingLineSearch:

LineSearch AlgorithmStrategyObject ReferencedObject

List of all members.


Detailed Description

General implementation of a backtracking line search.

This class can be used to perform the filter line search procedure or other procedures. The BacktrackingLSAcceptor is used to determine whether trial points are acceptable (e.g., based on a filter or other methods).

This backtracking line search knows of a restoration phase (which is called when the trial step size becomes too small or no search direction could be computed). It also has the notion of a "soft restoration phase," which uses the regular steps but decides on the acceptability based on other measures than the regular ones (e.g., reduction of the PD error instead of acceptability to a filter mechanism).

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 InitializeImpl - overloaded from AlgorithmStrategyObject.
virtual void FindAcceptableTrialPoint ()
 Perform the line search.
virtual void Reset ()
 Reset the line search.
virtual void SetRigorousLineSearch (bool rigorous)
 Set flag indicating whether a very rigorous line search should be performed.
virtual bool CheckSkippedLineSearch ()
 Check if the line search procedure didn't accept a new iterate during the last call of FindAcceptableTrialPoint().
virtual bool ActivateFallbackMechanism ()
 Activate fallback mechanism.
Constructors/Destructors
 BacktrackingLineSearch (const SmartPtr< BacktrackingLSAcceptor > &acceptor, const SmartPtr< RestorationPhase > &resto_phase, const SmartPtr< ConvergenceCheck > &conv_check)
 Constructor.
virtual ~BacktrackingLineSearch ()
 Default destructor.

Static Public Member Functions

static void RegisterOptions (SmartPtr< RegisteredOptions > roptions)
 Methods for OptionsList.


Constructor & Destructor Documentation

BacktrackingLineSearch ( const SmartPtr< BacktrackingLSAcceptor > &  acceptor,
const SmartPtr< RestorationPhase > &  resto_phase,
const SmartPtr< ConvergenceCheck > &  conv_check 
)

Constructor.

The acceptor implements the acceptance test for the line search. The PDSystemSolver object only needs to be provided (i.e. not NULL) if second order correction is to be used. The ConvergenceCheck object is used to determine whether the current iterate is acceptable (for example, the restoration phase is not started if the acceptability level has been reached). If conv_check is NULL, we assume that the current iterate is not acceptable (in the sense of the acceptable_tol option).

References DBG_ASSERT, DBG_START_FUN, and Ipopt::IsValid().

~BacktrackingLineSearch (  )  [virtual]

Default destructor.

References DBG_START_FUN.


Member Function Documentation

bool InitializeImpl ( const OptionsList options,
const std::string &  prefix 
) [virtual]

void FindAcceptableTrialPoint (  )  [virtual]

void Reset (  )  [virtual]

Reset the line search.

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 LineSearch.

References DBG_START_FUN.

Referenced by BacktrackingLineSearch::InitializeImpl().

virtual void SetRigorousLineSearch ( bool  rigorous  )  [inline, virtual]

Set flag indicating whether a very rigorous line search should be performed.

If this flag is set to true, the line search algorithm might decide to abort the line search and not to accept a new iterate. If the line search decided not to accept a new iterate, the return value of CheckSkippedLineSearch() is true at the next call. For example, in the non-monotone barrier parameter update procedure, the filter algorithm should not switch to the restoration phase in the free mode; instead, the algorithm should swtich to the fixed mode.

Implements LineSearch.

virtual bool CheckSkippedLineSearch (  )  [inline, virtual]

Check if the line search procedure didn't accept a new iterate during the last call of FindAcceptableTrialPoint().

Implements LineSearch.

bool ActivateFallbackMechanism (  )  [virtual]

Activate fallback mechanism.

Return false, if that is not possible.

Implements LineSearch.

References AlgorithmStrategyObject::IpData(), Ipopt::IsNull(), Ipopt::J_DETAILED, Ipopt::J_LINE_SEARCH, AlgorithmStrategyObject::Jnlst(), and Journalist::Printf().

void RegisterOptions ( SmartPtr< RegisteredOptions roptions  )  [static]

Methods for OptionsList.

Referenced by Ipopt::RegisterOptions_Algorithm().


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

Generated on Fri Sep 26 07:44:25 2008 for SimTKcore by  doxygen 1.5.6