Non-monotone mu update. More...
#include <IpAdaptiveMuUpdate.hpp>
Static Public Member Functions | |
static void | RegisterOptions (SmartPtr< RegisteredOptions > roptions) |
Methods for IpoptType. | |
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. | |
AdaptiveMuUpdate () | |
Default Constructor. | |
AdaptiveMuUpdate (const AdaptiveMuUpdate &) | |
Copy Constructor. | |
void | operator= (const AdaptiveMuUpdate &) |
Default Assignment Operator. | |
Private Attributes | |
Number | init_dual_inf_ |
Dual infeasibility at initial point. | |
Number | init_primal_inf_ |
Primal infeasibility at initial point. | |
bool | no_bounds_ |
Flag indicating whether the problem has any inequality constraints. | |
bool | check_if_no_bounds_ |
Flag indicating whether no_bounds_ has been initialized. | |
Strategy objects | |
SmartPtr< LineSearch > | linesearch_ |
Line search object of the Ipopt algorithm. | |
SmartPtr< MuOracle > | free_mu_oracle_ |
Pointer to strategy object that is to be used for computing a suggested value of the barrier parameter in the free mu mode. | |
SmartPtr< MuOracle > | fix_mu_oracle_ |
Pointer to strategy object that is to be used for computing a suggested value for the fixed mu mode. | |
Most recent accepted point in free mode, from which | |
fixed mode should be started. | |
SmartPtr< const IteratesVector > | accepted_point_ |
Algorithmic parameters | |
enum | AdaptiveMuGlobalizationEnum { KKT_ERROR = 0 , FILTER_OBJ_CONSTR , NEVER_MONOTONE_MODE } |
enumeration for adaptive globalization More... | |
Number | mu_max_fact_ |
Number | mu_max_ |
Number | mu_min_ |
Number | mu_target_ |
bool | mu_min_default_ |
Number | tau_min_ |
Number | adaptive_mu_safeguard_factor_ |
Number | adaptive_mu_monotone_init_factor_ |
Number | barrier_tol_factor_ |
Number | mu_linear_decrease_factor_ |
Number | mu_superlinear_decrease_power_ |
QualityFunctionMuOracle::NormEnum | adaptive_mu_kkt_norm_ |
QualityFunctionMuOracle::CentralityEnum | adaptive_mu_kkt_centrality_ |
QualityFunctionMuOracle::BalancingTermEnum | adaptive_mu_kkt_balancing_term_ |
AdaptiveMuGlobalizationEnum | adaptive_mu_globalization_ |
Flag indicating which globalization strategy should be used. | |
Number | filter_max_margin_ |
Maximal margin in filter. | |
Number | filter_margin_fact_ |
Factor for filter margin. | |
Number | compl_inf_tol_ |
Unscaled tolerance for complementarity. | |
Methods and data defining the outer globalization | |
strategy (might be a strategy object later). | |
Index | num_refs_max_ |
Maximal number of reference values (algorithmic parameter) | |
std::list< Number > | refs_vals_ |
Values of the currently stored reference values (norm of pd equations) | |
Number | refs_red_fact_ |
Factor requested to reduce the reference values. | |
Filter | filter_ |
Alternatively, we might also want to use a filter. | |
bool | restore_accepted_iterate_ |
Flag indicating whether the most recent accepted step should be restored, when switching to the fixed mode. | |
void | InitializeFixedMuGlobalization () |
bool | CheckSufficientProgress () |
Check whether the point in the "current" fields offers sufficient reduction in order to remain in or switch to the free mu mode. | |
void | RememberCurrentPointAsAccepted () |
Include the current point in internal memory to as accepted point. | |
Number | NewFixedMu () |
Compute the value of the fixed mu that should be used in a new fixed mu phase. | |
Number | Compute_tau_monotone (Number mu) |
Compute value for the fraction-to-the-boundary parameter given mu in the monotone phase. | |
Number | quality_function_pd_system () |
Method for computing the norm of the primal dual system at the current point. | |
Number | lower_mu_safeguard () |
Method for computing a lower safeguard bound for the barrier parameter. | |
Number | max_ref_val () |
Computer the currently largest reference value. | |
Number | min_ref_val () |
Computer the currently smallest reference value. | |
Additional Inherited Members | |
Protected Member Functions inherited from Ipopt::AlgorithmStrategyObject | |
const Journalist & | Jnlst () const |
IpoptNLP & | IpNLP () const |
IpoptData & | IpData () const |
IpoptCalculatedQuantities & | IpCq () const |
bool | HaveIpData () const |
Non-monotone mu update.
Definition at line 20 of file IpAdaptiveMuUpdate.hpp.
enumeration for adaptive globalization
Enumerator | |
---|---|
KKT_ERROR | |
FILTER_OBJ_CONSTR | |
NEVER_MONOTONE_MODE |
Definition at line 98 of file IpAdaptiveMuUpdate.hpp.
Ipopt::AdaptiveMuUpdate::AdaptiveMuUpdate | ( | const SmartPtr< LineSearch > & | linesearch, |
const SmartPtr< MuOracle > & | free_mu_oracle, | ||
const SmartPtr< MuOracle > & | fix_mu_oracle = NULL |
||
) |
Constructor.
|
virtual |
Destructor.
|
private |
Default Constructor.
|
private |
Copy Constructor.
|
virtual |
Initialize method - overloaded from AlgorithmStrategyObject.
Implements Ipopt::MuUpdate.
Method for determining the barrier parameter for the next iteration.
When the optimality error for the current barrier parameter is less than a tolerance, the barrier parameter is reduced, and the Reset method of the LineSearch object linesearch is called.
Implements Ipopt::MuUpdate.
|
static |
Methods for IpoptType.
|
private |
Default Assignment Operator.
|
private |
|
private |
Check whether the point in the "current" fields offers sufficient reduction in order to remain in or switch to the free mu mode.
|
private |
Include the current point in internal memory to as accepted point.
|
private |
Compute the value of the fixed mu that should be used in a new fixed mu phase.
This method is called at the beginning of a new fixed mu phase.
Compute value for the fraction-to-the-boundary parameter given mu in the monotone phase.
|
private |
Method for computing the norm of the primal dual system at the current point.
For consistency, this is computed in the same way as the quality function is computed. This is the quantities used in the nonmonontone KKT reduction globalization.
|
private |
Method for computing a lower safeguard bound for the barrier parameter.
For now, this is related to primal and dual infeasibility.
|
private |
Computer the currently largest reference value.
|
private |
Computer the currently smallest reference value.
|
private |
Definition at line 83 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 84 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 85 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 86 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 87 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 88 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 89 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 90 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 91 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 92 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 93 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 94 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 95 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 96 of file IpAdaptiveMuUpdate.hpp.
|
private |
Flag indicating which globalization strategy should be used.
Definition at line 105 of file IpAdaptiveMuUpdate.hpp.
|
private |
Maximal margin in filter.
Definition at line 107 of file IpAdaptiveMuUpdate.hpp.
|
private |
Factor for filter margin.
Definition at line 109 of file IpAdaptiveMuUpdate.hpp.
|
private |
Unscaled tolerance for complementarity.
Definition at line 111 of file IpAdaptiveMuUpdate.hpp.
|
private |
Pointer to strategy object that is to be used for computing a suggested value of the barrier parameter in the free mu mode.
Definition at line 121 of file IpAdaptiveMuUpdate.hpp.
Pointer to strategy object that is to be used for computing a suggested value for the fixed mu mode.
If NULL, the current average complementarity is used.
Definition at line 127 of file IpAdaptiveMuUpdate.hpp.
|
private |
Dual infeasibility at initial point.
A negative value means that this quantity has not yet been initialized.
Definition at line 135 of file IpAdaptiveMuUpdate.hpp.
|
private |
Primal infeasibility at initial point.
A negative value means that this quantity has not yet been initialized.
Definition at line 141 of file IpAdaptiveMuUpdate.hpp.
|
private |
Maximal number of reference values (algorithmic parameter)
Definition at line 192 of file IpAdaptiveMuUpdate.hpp.
|
private |
Values of the currently stored reference values (norm of pd equations)
Definition at line 194 of file IpAdaptiveMuUpdate.hpp.
|
private |
Factor requested to reduce the reference values.
Definition at line 196 of file IpAdaptiveMuUpdate.hpp.
|
private |
Alternatively, we might also want to use a filter.
Definition at line 199 of file IpAdaptiveMuUpdate.hpp.
|
private |
Flag indicating whether the most recent accepted step should be restored, when switching to the fixed mode.
Definition at line 203 of file IpAdaptiveMuUpdate.hpp.
|
private |
Flag indicating whether the problem has any inequality constraints.
Definition at line 207 of file IpAdaptiveMuUpdate.hpp.
|
private |
Flag indicating whether no_bounds_ has been initialized.
Definition at line 209 of file IpAdaptiveMuUpdate.hpp.
|
private |
Definition at line 215 of file IpAdaptiveMuUpdate.hpp.