Ipopt 3.11.9
Loading...
Searching...
No Matches
IpPenaltyLSAcceptor.hpp
Go to the documentation of this file.
1// Copyright (C) 2008 International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Eclipse Public License.
4//
5// $Id: IpPenaltyLSAcceptor.hpp 1861 2010-12-21 21:34:47Z andreasw $
6//
7// Authors: Andreas Waechter IBM 2008-04-04
8// derived file from IpFilterLSAcceptor.hpp
9
10#ifndef __IPPENALTYLSACCEPTOR_HPP__
11#define __IPPENALTYLSACCEPTOR_HPP__
12
14#include "IpPDSystemSolver.hpp"
15
16namespace Ipopt
17{
18
24 {
25 public:
32
36
38 virtual bool InitializeImpl(const OptionsList& options,
39 const std::string& prefix);
40
47 virtual void Reset();
48
52 virtual void InitThisLineSearch(bool in_watchdog);
53
57 virtual void PrepareRestoPhaseStart();
58
61
67 virtual bool CheckAcceptabilityOfTrialPoint(Number alpha_primal);
68
81 virtual bool TrySecondOrderCorrection(Number alpha_primal_test,
82 Number& alpha_primal,
83 SmartPtr<IteratesVector>& actual_delta);
84
91 virtual bool TryCorrector(Number alpha_primal_test,
92 Number& alpha_primal,
93 SmartPtr<IteratesVector>& actual_delta);
94
99 virtual char UpdateForNextIteration(Number alpha_primal_test);
100
103 virtual void StartWatchDog();
104
107 virtual void StopWatchDog();
108
115 bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta,
116 bool called_from_restoration=false) const;
118
123
124 private:
135
139
142
161
189
197
201
206 };
207
208} // namespace Ipopt
209
210#endif
Base class for backtracking line search acceptors.
This class stores a list of user set options.
Penalty function line search.
PenaltyLSAcceptor(const SmartPtr< PDSystemSolver > &pd_solver)
Constructor.
virtual void InitThisLineSearch(bool in_watchdog)
Initialization for the next line search.
Number watchdog_pred_
Predicted reduction to be compared with in watch dog.
Number reference_barr_
Barrier objective function at the point with respect to which progress is to be made.
Number CalcPred(Number alpha)
Compute predicted reduction for given step size.
void operator=(const PenaltyLSAcceptor &)
Overloaded Equals Operator.
virtual bool TryCorrector(Number alpha_primal_test, Number &alpha_primal, SmartPtr< IteratesVector > &actual_delta)
Try higher order corrector (for fast local convergence).
Number resto_pred_
When called from the restoration phase, this is the required predicted reduction.
SmartPtr< PDSystemSolver > pd_solver_
Number kappa_soc_
Required reduction in constraint violation before trying multiple second order correction steps .
Number reference_pred_
Reference predicted reduction.
virtual Number CalculateAlphaMin()
Method returning the lower bound on the trial step sizes.
Number nu_init_
Initial value of penalty parameter.
virtual void Reset()
Reset the acceptor.
Number watchdog_theta_
Constraint violation at reference point.
bool IsAcceptableToCurrentIterate(Number trial_barr, Number trial_theta, bool called_from_restoration=false) const
Checks if a trial point is acceptable to the current iterate.
Number watchdog_barr_
Barrier objective function at reference point.
SmartPtr< const Vector > reference_JacD_delta_
Product of Jacobian of (d-s) constraint with search direction.
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 void StartWatchDog()
Method for setting internal data if the watchdog procedure is started.
PenaltyLSAcceptor(const PenaltyLSAcceptor &)
Copy Constructor.
Number reference_dWd_
Two-sided product of search direction with complete Hessian.
virtual ~PenaltyLSAcceptor()
Default destructor.
SmartPtr< const Vector > reference_JacC_delta_
Product of Jacobian of equality constraint with x direction.
Number reference_theta_
Constraint violation at the point with respect to which progress is to be made.
Number nu_inc_
Incrememt for penalty parameter.
Index max_soc_
Maximal number of second order correction steps.
Number reference_gradBarrTDelta_
Barrier gradient transpose search direction at the point with respect to which progress is to be made...
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for OptionsList.
virtual void StopWatchDog()
Method for setting internal data if the watchdog procedure is stopped.
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.
Number nu_
Current value of the penalty parameter.
Number last_nu_
Value of penalty parameter at beginning of the iteration.
virtual char UpdateForNextIteration(Number alpha_primal_test)
Method for ending the current line search.
Template class for Smart Pointers.
int Index
Type of all indices of vectors, matrices etc.
Definition IpTypes.hpp:19
double Number
Type of all numbers.
Definition IpTypes.hpp:17