Ipopt 3.12.10

- Main Page
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
IpAdaptiveMuUpdate.hpp
Go to the documentation of this file.
1 // Copyright (C) 2004, 2010 International Business Machines and others.
2 // All Rights Reserved.
3 // This code is published under the Eclipse Public License.
4 //
5 // $Id: IpAdaptiveMuUpdate.hpp 1861 2010-12-21 21:34:47Z andreasw $
6 //
7 // Authors: Carl Laird, Andreas Waechter IBM 2004-08-13
8
9 #ifndef __IPADAPTIVEMUUPDATE_HPP__
10 #define __IPADAPTIVEMUUPDATE_HPP__
11
12 #include "IpMuUpdate.hpp"
13 #include "IpLineSearch.hpp"
14 #include "IpMuOracle.hpp"
15 #include "IpFilter.hpp"
16 #include "IpQualityFunctionMuOracle.hpp"
17
18 namespace Ipopt
19 {
20
23 class AdaptiveMuUpdate : public MuUpdate
24 {
25 public:
29 AdaptiveMuUpdate(const SmartPtr<LineSearch>& linesearch,
30 const SmartPtr<MuOracle>& free_mu_oracle,
31 const SmartPtr<MuOracle>& fix_mu_oracle=NULL);
33 virtual ~AdaptiveMuUpdate();
35
37 virtual bool InitializeImpl(const OptionsList& options,
38 const std::string& prefix);
39
45 virtual bool UpdateBarrierParameter();
46
49 static void RegisterOptions(SmartPtr<RegisteredOptions> roptions);
51
52 private:
61
63 AdaptiveMuUpdate();
64
66 AdaptiveMuUpdate(const AdaptiveMuUpdate&);
67
69 void operator=(const AdaptiveMuUpdate&);
71
74 Number mu_max_fact_;
75 Number mu_max_;
76 Number mu_min_;
77 Number mu_target_;
78 bool mu_min_default_;
79 Number tau_min_;
80 Number adaptive_mu_safeguard_factor_; //ToDo don't need that?
81 Number adaptive_mu_monotone_init_factor_;
82 Number barrier_tol_factor_;
83 Number mu_linear_decrease_factor_;
84 Number mu_superlinear_decrease_power_;
85 QualityFunctionMuOracle::NormEnum adaptive_mu_kkt_norm_;
86 QualityFunctionMuOracle::CentralityEnum adaptive_mu_kkt_centrality_;
87 QualityFunctionMuOracle::BalancingTermEnum adaptive_mu_kkt_balancing_term_;
89 enum AdaptiveMuGlobalizationEnum
90 {
91 KKT_ERROR=0,
92 FILTER_OBJ_CONSTR,
93 NEVER_MONOTONE_MODE
94 };
96 AdaptiveMuGlobalizationEnum adaptive_mu_globalization_;
98 Number filter_max_margin_;
100 Number filter_margin_fact_;
102 Number compl_inf_tol_;
104
108 SmartPtr<LineSearch> linesearch_;
112 SmartPtr<MuOracle> free_mu_oracle_;
117 SmartPtr<MuOracle> fix_mu_oracle_;
119
122 Number init_dual_inf_;
125 Number init_primal_inf_;
126
130 void InitializeFixedMuGlobalization();
134 bool CheckSufficientProgress();
137 void RememberCurrentPointAsAccepted();
141 Number NewFixedMu();
144 Number Compute_tau_monotone(Number mu);
145
151 Number quality_function_pd_system();
152
156 Number lower_mu_safeguard();
157
159 Number max_ref_val();
160
162 Number min_ref_val();
163
165 Index num_refs_max_;
168 std::list<Number> refs_vals_;
170 Number refs_red_fact_;
171
173 Filter filter_;
176 bool restore_accepted_iterate_;
178
180 bool no_bounds_;
182 bool check_if_no_bounds_;
183
188 SmartPtr<const IteratesVector> accepted_point_;
190
191 };
192
193 } // namespace Ipopt
194
195 #endif
Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_centrality_
QualityFunctionMuOracle::CentralityEnum adaptive_mu_kkt_centrality_
Definition: IpAdaptiveMuUpdate.hpp:86
Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_norm_
QualityFunctionMuOracle::NormEnum adaptive_mu_kkt_norm_
Definition: IpAdaptiveMuUpdate.hpp:85
Ipopt::AdaptiveMuUpdate::UpdateBarrierParameter
virtual bool UpdateBarrierParameter()
Method for determining the barrier parameter for the next iteration.
Ipopt::AdaptiveMuUpdate::compl_inf_tol_
Number compl_inf_tol_
Unscaled tolerance for complementarity.
Definition: IpAdaptiveMuUpdate.hpp:102
Ipopt::AdaptiveMuUpdate::filter_
Filter filter_
Alternatively, we might also want to use a filter.
Definition: IpAdaptiveMuUpdate.hpp:173
Ipopt::AdaptiveMuUpdate::mu_linear_decrease_factor_
Number mu_linear_decrease_factor_
Definition: IpAdaptiveMuUpdate.hpp:83
Ipopt::AdaptiveMuUpdate::fix_mu_oracle_
SmartPtr< MuOracle > fix_mu_oracle_
Pointer to strategy object that is to be used for computing a suggested value for the fixed mu mode...
Definition: IpAdaptiveMuUpdate.hpp:117
Ipopt::AdaptiveMuUpdate::filter_margin_fact_
Number filter_margin_fact_
Factor for filter margin.
Definition: IpAdaptiveMuUpdate.hpp:100
Ipopt::Number
double Number
Type of all numbers.
Definition: IpTypes.hpp:17
Ipopt::AdaptiveMuUpdate::free_mu_oracle_
SmartPtr< MuOracle > free_mu_oracle_
Pointer to strategy object that is to be used for computing a suggested value of the barrier paramete...
Definition: IpAdaptiveMuUpdate.hpp:112
Ipopt::AdaptiveMuUpdate::filter_max_margin_
Number filter_max_margin_
Maximal margin in filter.
Definition: IpAdaptiveMuUpdate.hpp:98
Ipopt::AdaptiveMuUpdate::tau_min_
Number tau_min_
Definition: IpAdaptiveMuUpdate.hpp:79
Ipopt::AdaptiveMuUpdate::InitializeImpl
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Initialize method - overloaded from AlgorithmStrategyObject.
Ipopt::AdaptiveMuUpdate::adaptive_mu_monotone_init_factor_
Number adaptive_mu_monotone_init_factor_
Definition: IpAdaptiveMuUpdate.hpp:81
Ipopt::AdaptiveMuUpdate::linesearch_
SmartPtr< LineSearch > linesearch_
Line search object of the Ipopt algorithm.
Definition: IpAdaptiveMuUpdate.hpp:108
Ipopt::AdaptiveMuUpdate::min_ref_val
Number min_ref_val()
Computer the currently smallest reference value.
Ipopt::AdaptiveMuUpdate::mu_superlinear_decrease_power_
Number mu_superlinear_decrease_power_
Definition: IpAdaptiveMuUpdate.hpp:84
Ipopt::AdaptiveMuUpdate::NEVER_MONOTONE_MODE
Definition: IpAdaptiveMuUpdate.hpp:93
Ipopt::AdaptiveMuUpdate::RememberCurrentPointAsAccepted
void RememberCurrentPointAsAccepted()
Include the current point in internal memory to as accepted point.
Ipopt::AdaptiveMuUpdate::barrier_tol_factor_
Number barrier_tol_factor_
Definition: IpAdaptiveMuUpdate.hpp:82
Ipopt::AdaptiveMuUpdate::mu_max_fact_
Number mu_max_fact_
Definition: IpAdaptiveMuUpdate.hpp:74
Ipopt::AdaptiveMuUpdate::init_primal_inf_
Number init_primal_inf_
Primal infeasibility at initial point.
Definition: IpAdaptiveMuUpdate.hpp:125
Ipopt::AdaptiveMuUpdate::num_refs_max_
Index num_refs_max_
Maximal number of reference values (algorithmic parameter)
Definition: IpAdaptiveMuUpdate.hpp:165
Ipopt::AdaptiveMuUpdate::accepted_point_
SmartPtr< const IteratesVector > accepted_point_
Definition: IpAdaptiveMuUpdate.hpp:188
Ipopt::AdaptiveMuUpdate::check_if_no_bounds_
bool check_if_no_bounds_
Flag indicating whether no_bounds_ has been initialized.
Definition: IpAdaptiveMuUpdate.hpp:182
Ipopt::AdaptiveMuUpdate::adaptive_mu_kkt_balancing_term_
QualityFunctionMuOracle::BalancingTermEnum adaptive_mu_kkt_balancing_term_
Definition: IpAdaptiveMuUpdate.hpp:87
Ipopt::AdaptiveMuUpdate::mu_min_default_
bool mu_min_default_
Definition: IpAdaptiveMuUpdate.hpp:78
Ipopt::AdaptiveMuUpdate::mu_max_
Number mu_max_
Definition: IpAdaptiveMuUpdate.hpp:75
Ipopt::SmartPtr
Template class for Smart Pointers.
Definition: IpSmartPtr.hpp:172
Ipopt::AdaptiveMuUpdate::refs_red_fact_
Number refs_red_fact_
Factor requested to reduce the reference values.
Definition: IpAdaptiveMuUpdate.hpp:170
Ipopt::OptionsList
This class stores a list of user set options.
Definition: IpOptionsList.hpp:32
Ipopt::AdaptiveMuUpdate::restore_accepted_iterate_
bool restore_accepted_iterate_
Flag indicating whether the most recent accepted step should be restored, when switching to the fixed...
Definition: IpAdaptiveMuUpdate.hpp:176
Ipopt::AdaptiveMuUpdate::~AdaptiveMuUpdate
virtual ~AdaptiveMuUpdate()
Default destructor.
IpLineSearch.hpp
Ipopt::AdaptiveMuUpdate::operator=
void operator=(const AdaptiveMuUpdate &)
Overloaded Equals Operator.
Ipopt::AdaptiveMuUpdate::RegisterOptions
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
Ipopt::AdaptiveMuUpdate::mu_target_
Number mu_target_
Definition: IpAdaptiveMuUpdate.hpp:77
Ipopt::AdaptiveMuUpdate::InitializeFixedMuGlobalization
void InitializeFixedMuGlobalization()
Ipopt::AdaptiveMuUpdate::no_bounds_
bool no_bounds_
Flag indicating whether the problem has any inequality constraints.
Definition: IpAdaptiveMuUpdate.hpp:180
Ipopt::AdaptiveMuUpdate::mu_min_
Number mu_min_
Definition: IpAdaptiveMuUpdate.hpp:76
IpMuOracle.hpp
Ipopt::AdaptiveMuUpdate::AdaptiveMuGlobalizationEnum
AdaptiveMuGlobalizationEnum
enumeration for adaptive globalization
Definition: IpAdaptiveMuUpdate.hpp:89
Ipopt::Index
int Index
Type of all indices of vectors, matrices etc.
Definition: IpTypes.hpp:19
Ipopt::AdaptiveMuUpdate::adaptive_mu_safeguard_factor_
Number adaptive_mu_safeguard_factor_
Definition: IpAdaptiveMuUpdate.hpp:80
Ipopt::AdaptiveMuUpdate::init_dual_inf_
Number init_dual_inf_
Dual infeasibility at initial point.
Definition: IpAdaptiveMuUpdate.hpp:122
Ipopt::QualityFunctionMuOracle::BalancingTermEnum
BalancingTermEnum
enum for the quality function balancing term type
Definition: IpQualityFunctionMuOracle.hpp:67
Ipopt::AdaptiveMuUpdate
Non-monotone mu update.
Definition: IpAdaptiveMuUpdate.hpp:23
IpMuUpdate.hpp
Ipopt::AdaptiveMuUpdate::KKT_ERROR
Definition: IpAdaptiveMuUpdate.hpp:91
Ipopt::AdaptiveMuUpdate::FILTER_OBJ_CONSTR
Definition: IpAdaptiveMuUpdate.hpp:92
Ipopt::AdaptiveMuUpdate::Compute_tau_monotone
Number Compute_tau_monotone(Number mu)
Compute value for the fraction-to-the-boundary parameter given mu in the monotone phase...
Ipopt::Filter
Class for the filter.
Definition: IpFilter.hpp:111
Ipopt::AdaptiveMuUpdate::max_ref_val
Number max_ref_val()
Computer the currently largest reference value.
IpQualityFunctionMuOracle.hpp
Ipopt::QualityFunctionMuOracle::NormEnum
NormEnum
enum for norm type
Definition: IpQualityFunctionMuOracle.hpp:51
Ipopt::MuUpdate
Abstract Base Class for classes that implement methods for computing the barrier and fraction-to-the-...
Definition: IpMuUpdate.hpp:20
Ipopt::AdaptiveMuUpdate::CheckSufficientProgress
bool CheckSufficientProgress()
Check whether the point in the &quot;current&quot; fields offers sufficient reduction in order to remain in or ...
Ipopt::AdaptiveMuUpdate::lower_mu_safeguard
Number lower_mu_safeguard()
Method for computing a lower safeguard bound for the barrier parameter.
Ipopt::AdaptiveMuUpdate::NewFixedMu
Number NewFixedMu()
Compute the value of the fixed mu that should be used in a new fixed mu phase.
Ipopt::AdaptiveMuUpdate::adaptive_mu_globalization_
AdaptiveMuGlobalizationEnum adaptive_mu_globalization_
Flag indicating which globalization strategy should be used.
Definition: IpAdaptiveMuUpdate.hpp:96
IpFilter.hpp
Ipopt::QualityFunctionMuOracle::CentralityEnum
CentralityEnum
enum for centrality type
Definition: IpQualityFunctionMuOracle.hpp:59
Ipopt::AdaptiveMuUpdate::refs_vals_
std::list< Number > refs_vals_
Values of the currently stored reference values (norm of pd equations)
Definition: IpAdaptiveMuUpdate.hpp:168
Ipopt::AdaptiveMuUpdate::quality_function_pd_system
Number quality_function_pd_system()
Method for computing the norm of the primal dual system at the current point.
Ipopt::AdaptiveMuUpdate::AdaptiveMuUpdate
AdaptiveMuUpdate()
Default Constructor.