9 #ifndef __IPCGPENALTYLSACCEPTOR_HPP__
10 #define __IPCGPENALTYLSACCEPTOR_HPP__
39 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.
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()
CGPenaltyData & CGPenData()
Method to easily access CGPenalty data.
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()
Default 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.
CGPenaltyCq & CGPenCq()
Method to easily access CGPenalty calculated quantities.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
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 &)
Overloaded Equals 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_
Min step size that triggers nonmonotone method.
SmartPtr< PDSystemSolver > pd_solver_
virtual bool RestoredIterate()
Method for telling the BacktrackingLineSearch object that a previous iterate has been restored.
PiecewisePenalty PiecewisePenalty_
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)
InitializeImpl - overloaded from AlgorithmStrategyObject.
bool reset_piecewise_penalty_
Flag indicating whether PiecewisePenalty has to be initiailized.
Number reference_curr_direct_f_nrm_
IpoptAdditionalCq & AdditionalCq()
IpoptAdditionalData & AdditionalData()
Get access to additional data object.
This class stores a list of user set options.
Class for the Piecewise Penalty.
Template class for Smart Pointers.
int Index
Type of all indices of vectors, matrices etc.
double Number
Type of all numbers.