7#ifndef __IPCGPENALTYLSACCEPTOR_HPP__
8#define __IPCGPENALTYLSACCEPTOR_HPP__
42 const std::string&
prefix);
IpoptData & IpData() const
IpoptCalculatedQuantities & IpCq() const
Base class for backtracking line search acceptors.
Class for all Chen-Goldfarb penalty method specific calculated quantities.
Class to organize all the additional data required by the Chen-Goldfarb penalty function algorithm.
Line search acceptor, based on the Chen-Goldfarb penalty function approach.
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
virtual void PrepareRestoPhaseStart()
Method that is called before the restoration phase is called.
CGPenaltyData & CGPenData()
Method to easily access CGPenalty data.
Number penalty_update_infeasibility_tol_
Tolerance for infeasibility part in penalty parameter update rule.
static bool Compare_le(Number lhs, Number rhs, Number BasVal)
Check comparison "lhs <= rhs", using machine precision based on BasVal.
Number pen_theta_max_
Upper bound on infeasibility.
Number reference_penalty_function_
Penalty function at the point with respect to which progress is to be made.
Index jump_for_tiny_step_
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
bool never_use_piecewise_penalty_ls_
Flag for whether or not use piecewise penalty line search.
CGPenaltyLSAcceptor(const CGPenaltyLSAcceptor &)
Copy Constructor.
char UpdatePenaltyParameter()
Number mult_diverg_feasibility_tol_
Check if the multpliers are diverging.
Number watchdog_penalty_function_
Penalty function at the point with respect to which progress is to be made (at watchdog point)
bool ArmijoHolds(Number alpha_primal_test)
Check if the trial point is acceptable by the Armijo condition.
Number theta_min_
Parameters deciding when the piecewise penalty acceptor shall be closed.
virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal)
Method for checking if current trial point is acceptable.
virtual ~CGPenaltyLSAcceptor()
Destructor.
virtual void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.
Number mult_diverg_y_tol_
SmartPtr< const IteratesVector > watchdog_delta_cgpen_
Backup for the Chen-Goldfarb search direction (needed in the update rule for the penalty parameter.
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Number watchdog_direct_deriv_penalty_function_
Directional derivative of penalty function at the point with respect to which progress is to be made ...
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
bool MultipliersDiverged()
CGPenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
Number eta_min_
Minimal tolerance for step part in penalty parameter update rule.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
CGPenaltyCq & CGPenCq()
Method to easily access CGPenalty calculated quantities.
bool IsAcceptableToPiecewisePenalty(Number alpha_primal_test)
Check if the trial point is acceptable to the piecewise penalty list.
Number reference_direct_deriv_penalty_function_
Directional derivative of penalty function at the point with respect to which progress is to be made.
void operator=(const CGPenaltyLSAcceptor &)
Default Assignment Operator.
Number eta_penalty_
Relaxation factor in the Armijo condition for the penalty function.
Index ls_counter_
counter for cut backs in the line search
Index counter_first_type_penalty_updates_
Counter for increases of penalty parameter.
Number piecewisepenalty_gamma_infeasi_
SmartPtr< const IteratesVector > best_iterate_
Store the iterate with best KKT error found so far.
bool accepted_by_Armijo_
Flag indicating whether the trial point is accepted by the Armijo condition or the PLPF condition.
virtual bool DoFallback()
Method for doing a fallback approach in case no search direction could be computed.
Index counter_second_type_penalty_updates_
virtual void Reset()
Reset the acceptor.
virtual bool NeverRestorationPhase()
Method for telling the BacktrackingLineSearch object that the restoration is not needed.
Index max_soc_
Maximal number of second order correction steps.
virtual bool TrySecondOrderCorrection(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try a second order correction for the constraints.
Number min_alpha_primal_
Minimal step size that triggers non-monotone method.
Number reference_theta_
Initial constraint violation.
SmartPtr< PDSystemSolver > pd_solver_
virtual bool RestoredIterate()
Method for telling the BacktrackingLineSearch object that a previous iterate has been restored.
PiecewisePenalty PiecewisePenalty_
piecewise penalty list
Number piecewisepenalty_gamma_obj_
Parameters for piecewise penalty acceptor.
Number penalty_update_compl_tol_
Tolerance for complementarity part in penalty parameter update rule.
Number curr_eta_
eta parameter
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Number best_KKT_error_
Record the lease KKT error found so far.
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
Number pen_theta_max_fact_
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
bool reset_piecewise_penalty_
Flag indicating whether PiecewisePenalty has to be initialized.
Number reference_curr_direct_f_nrm_
Templated class which stores one entry for the CachedResult class.
IpoptAdditionalCq & AdditionalCq()
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
This class stores a list of user set options.
Class for the Piecewise Penalty.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
ipindex Index
Type of all indices of vectors, matrices etc.
ipnumber Number
Type of all numbers.