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