Ipopt::CGPenaltyLSAcceptor Class Reference

Line search acceptor, based on the Chen-Goldfarb penalty function approach. More...

#include <IpCGPenaltyLSAcceptor.hpp>

Inheritance diagram for Ipopt::CGPenaltyLSAcceptor:

Inheritance graph
[legend]
Collaboration diagram for Ipopt::CGPenaltyLSAcceptor:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual bool InitializeImpl (const OptionsList &options, const std::string &prefix)
 InitializeImpl - overloaded from AlgorithmStrategyObject.
virtual void Reset ()
 Reset the acceptor.
virtual void InitThisLineSearch (bool in_watchdog)
 Initialization for the next line search.
virtual void PrepareRestoPhaseStart ()
 Method that is called before the restoration phase is called.
virtual Number CalculateAlphaMin ()
 Method returning the lower bound on the trial step sizes.
virtual bool CheckAcceptabilityOfTrialPoint (Number alpha_primal)
 Method for checking if current trial point is acceptable.
virtual bool TrySecondOrderCorrection (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
 Try a second order correction for the constraints.
virtual bool TryCorrector (Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
 Try higher order corrector (for fast local convergence).
virtual char UpdateForNextIteration (Number alpha_primal_test)
 Method for ending the current line search.
virtual void StartWatchDog ()
 Method for setting internal data if the watchdog procedure is started.
virtual void StopWatchDog ()
 Method for setting internal data if the watchdog procedure is stopped.
Constructors/Destructors
 CGPenaltyLSAcceptor (const SmartPtr< PDSystemSolver > &pd_solver)
 Constructor.
virtual ~CGPenaltyLSAcceptor ()
 Default destructor.

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.

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

Static Private Member Functions

static bool Compare_le (Number lhs, Number rhs, Number BasVal)
 Check comparison "lhs <= rhs", using machine precision based on BasVal.

Private Attributes

Index counter_penalty_updates_
 Counter for increases of penalty parameter.
Number curr_eta_
 eta parameter
Parameters for the penalty function algorithm.
Number eta_penalty_
 Relaxation factor in the Armijo condition for the penalty function.
Number penalty_update_infeasibility_tol_
 Tolerance for infeasibility part in penalty parameter update rule.
Number eta_min_
 Minimal tolerance for step part in penalty parameter update rule.
Number penalty_update_compl_tol_
 Tolerance for cimplementarity part in penalty parameter update rule.
Number chi_hat_
 Relaxation factor in the Armijo condition for the penalty function.
Number chi_tilde_
 Relaxation factor in the Armijo condition for the penalty function.
Number chi_cup_
 Relaxation factor in the Armijo condition for the penalty function.
Number gamma_hat_
 Relaxation factor in the Armijo condition for the penalty function.
Number gamma_tilde_
 Relaxation factor in the Armijo condition for the penalty function.
Number penalty_max_
 Relaxation factor in the Armijo condition for the penalty function.
Number epsilon_c_
 Relaxation factor in the Armijo condition for the penalty function.
Index max_soc_
 Maximal number of second order correction steps.
Number kappa_soc_
 Required reduction in constraint violation before trying multiple second order correction steps $ \kappa_{soc}$.
Information related to watchdog procedure
Number reference_penalty_function_
 Penalty function at the point with respect to which progress is to be made.
Number reference_direct_deriv_penalty_function_
 Directional derivative of penalty function at the point with respect to which progress is to be made.
Number watchdog_penalty_function_
 Penalty function at the point with respect to which progress is to be made (at watchdog point).
Number watchdog_direct_deriv_penalty_function_
 Directional derivative of penalty function at the point with respect to which progress is to be made (at watchdog point).
SmartPtr< const IteratesVectorwatchdog_delta_cgpen_
 Backup for the Chen-Goldfarb search direction (needed in the update rule for the penalty parameter.
Strategy objective that are used
SmartPtr< PDSystemSolverpd_solver_

Detailed Description

Line search acceptor, based on the Chen-Goldfarb penalty function approach.

Definition at line 20 of file IpCGPenaltyLSAcceptor.hpp.


Constructor & Destructor Documentation

Ipopt::CGPenaltyLSAcceptor::CGPenaltyLSAcceptor ( 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::CGPenaltyLSAcceptor::~CGPenaltyLSAcceptor (  )  [virtual]

Default destructor.

Ipopt::CGPenaltyLSAcceptor::CGPenaltyLSAcceptor ( const CGPenaltyLSAcceptor  )  [private]

Copy Constructor.


Member Function Documentation

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

InitializeImpl - overloaded from AlgorithmStrategyObject.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::CGPenaltyLSAcceptor::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::CGPenaltyLSAcceptor::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::CGPenaltyLSAcceptor::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::CGPenaltyLSAcceptor::CalculateAlphaMin (  )  [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 swtiches to the (soft) restoration phase.

Implements Ipopt::BacktrackingLSAcceptor.

virtual bool Ipopt::CGPenaltyLSAcceptor::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::CGPenaltyLSAcceptor::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 merit 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::CGPenaltyLSAcceptor::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::CGPenaltyLSAcceptor::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 penalty parameter might be updated. alpha_primal_test is the value of alpha that has been used for in the acceptence test ealier.

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::CGPenaltyLSAcceptor::StartWatchDog (  )  [virtual]

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

Implements Ipopt::BacktrackingLSAcceptor.

virtual void Ipopt::CGPenaltyLSAcceptor::StopWatchDog (  )  [virtual]

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

Implements Ipopt::BacktrackingLSAcceptor.

static void Ipopt::CGPenaltyLSAcceptor::RegisterOptions ( SmartPtr< RegisteredOptions roptions  )  [static]

Methods for OptionsList.

Reimplemented from Ipopt::BacktrackingLSAcceptor.

void Ipopt::CGPenaltyLSAcceptor::operator= ( const CGPenaltyLSAcceptor  )  [private]

Overloaded Equals Operator.

static bool Ipopt::CGPenaltyLSAcceptor::Compare_le ( Number  lhs,
Number  rhs,
Number  BasVal 
) [static, private]

Check comparison "lhs <= rhs", using machine precision based on BasVal.


Member Data Documentation

Number Ipopt::CGPenaltyLSAcceptor::eta_penalty_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 138 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::penalty_update_infeasibility_tol_ [private]

Tolerance for infeasibility part in penalty parameter update rule.

Definition at line 141 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::eta_min_ [private]

Minimal tolerance for step part in penalty parameter update rule.

Definition at line 144 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::penalty_update_compl_tol_ [private]

Tolerance for cimplementarity part in penalty parameter update rule.

Definition at line 147 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::chi_hat_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 148 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::chi_tilde_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 149 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::chi_cup_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 150 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::gamma_hat_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 151 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::gamma_tilde_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 152 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::penalty_max_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 153 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::epsilon_c_ [private]

Relaxation factor in the Armijo condition for the penalty function.

Definition at line 154 of file IpCGPenaltyLSAcceptor.hpp.

Index Ipopt::CGPenaltyLSAcceptor::max_soc_ [private]

Maximal number of second order correction steps.

Definition at line 156 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::kappa_soc_ [private]

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

Definition at line 160 of file IpCGPenaltyLSAcceptor.hpp.

Index Ipopt::CGPenaltyLSAcceptor::counter_penalty_updates_ [private]

Counter for increases of penalty parameter.

Definition at line 164 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::curr_eta_ [private]

eta parameter

Definition at line 167 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::reference_penalty_function_ [private]

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

Definition at line 173 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::reference_direct_deriv_penalty_function_ [private]

Directional derivative of penalty function at the point with respect to which progress is to be made.

Definition at line 176 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::watchdog_penalty_function_ [private]

Penalty function at the point with respect to which progress is to be made (at watchdog point).

Definition at line 179 of file IpCGPenaltyLSAcceptor.hpp.

Number Ipopt::CGPenaltyLSAcceptor::watchdog_direct_deriv_penalty_function_ [private]

Directional derivative of penalty function at the point with respect to which progress is to be made (at watchdog point).

Definition at line 182 of file IpCGPenaltyLSAcceptor.hpp.

SmartPtr<const IteratesVector> Ipopt::CGPenaltyLSAcceptor::watchdog_delta_cgpen_ [private]

Backup for the Chen-Goldfarb search direction (needed in the update rule for the penalty parameter.

Definition at line 185 of file IpCGPenaltyLSAcceptor.hpp.

SmartPtr<PDSystemSolver> Ipopt::CGPenaltyLSAcceptor::pd_solver_ [private]

Definition at line 190 of file IpCGPenaltyLSAcceptor.hpp.


The documentation for this class was generated from the following file:
Generated on Thu May 15 22:27:20 2008 by  doxygen 1.4.7