9 #ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__
10 #define __IPQUALITYFUNCTIONMUORACLE_HPP__
35 const std::string& prefix);
103 const Vector& step_aff_x_L,
104 const Vector& step_aff_x_U,
105 const Vector& step_aff_s_L,
106 const Vector& step_aff_s_U,
107 const Vector& step_aff_y_c,
108 const Vector& step_aff_y_d,
109 const Vector& step_aff_z_L,
110 const Vector& step_aff_z_U,
111 const Vector& step_aff_v_L,
112 const Vector& step_aff_v_U,
113 const Vector& step_cen_x_L,
114 const Vector& step_cen_x_U,
115 const Vector& step_cen_s_L,
116 const Vector& step_cen_s_U,
117 const Vector& step_cen_y_c,
118 const Vector& step_cen_y_d,
119 const Vector& step_cen_z_L,
120 const Vector& step_cen_z_U,
121 const Vector& step_cen_v_L,
122 const Vector& step_cen_v_U);
131 const Vector& step_aff_x_L,
132 const Vector& step_aff_x_U,
133 const Vector& step_aff_s_L,
134 const Vector& step_aff_s_U,
135 const Vector& step_aff_y_c,
136 const Vector& step_aff_y_d,
137 const Vector& step_aff_z_L,
138 const Vector& step_aff_z_U,
139 const Vector& step_aff_v_L,
140 const Vector& step_aff_v_U,
141 const Vector& step_cen_x_L,
142 const Vector& step_cen_x_U,
143 const Vector& step_cen_s_L,
144 const Vector& step_cen_s_U,
145 const Vector& step_cen_y_c,
146 const Vector& step_cen_y_d,
147 const Vector& step_cen_z_L,
148 const Vector& step_cen_z_U,
149 const Vector& step_cen_v_L,
150 const Vector& step_cen_v_U);
Index quality_function_max_section_steps_
Maximal number of bi-section steps in the golden section search for sigma.
SmartPtr< Vector > tmp_z_U_
Number curr_grad_lag_x_amax_
Implementation of the probing strategy for computing the barrier parameter.
SmartPtr< const Vector > curr_slack_s_L_
SmartPtr< Vector > tmp_step_z_L_
SmartPtr< Vector > tmp_step_v_U_
CentralityEnum quality_function_centrality_
Flag indicating how centrality should be involved in the quality function.
Number curr_grad_lag_x_asum_
SmartPtr< const Vector > curr_slack_s_U_
double Number
Type of all numbers.
Number sigma_max_
Upper bound on centering parameter sigma.
Number PerformGoldenSection(Number sigma_up, Number q_up, Number sigma_lo, Number q_lo, Number sigma_tol, Number qf_tol, const Vector &step_aff_x_L, const Vector &step_aff_x_U, const Vector &step_aff_s_L, const Vector &step_aff_s_U, const Vector &step_aff_y_c, const Vector &step_aff_y_d, const Vector &step_aff_z_L, const Vector &step_aff_z_U, const Vector &step_aff_v_L, const Vector &step_aff_v_U, const Vector &step_cen_x_L, const Vector &step_cen_x_U, const Vector &step_cen_s_L, const Vector &step_cen_s_U, const Vector &step_cen_y_c, const Vector &step_cen_y_d, const Vector &step_cen_z_L, const Vector &step_cen_z_U, const Vector &step_cen_v_L, const Vector &step_cen_v_U)
Auxilliary function performing the golden section.
Number quality_function_section_sigma_tol_
Relative tolerance for golden bi-section algorithm in sigma space.
SmartPtr< Vector > tmp_slack_x_L_
SmartPtr< const Vector > curr_z_U_
SmartPtr< Vector > tmp_step_s_U_
Number curr_d_minus_s_asum_
Number curr_grad_lag_s_amax_
Abstract Base Class for classes that are able to compute a suggested value of the barrier parameter t...
Number sigma_min_
Lower bound on centering parameter sigma.
SmartPtr< const Vector > curr_slack_x_L_
SmartPtr< const Vector > curr_slack_x_U_
Number ScaleSigma(Number sigma)
Auxilliary functions for scaling the sigma axis in the golden section procedure.
Template class for Smart Pointers.
This class stores a list of user set options.
SmartPtr< Vector > tmp_step_v_L_
SmartPtr< Vector > tmp_step_s_L_
Number curr_grad_lag_s_nrm2_
SmartPtr< Vector > tmp_step_z_U_
SmartPtr< Vector > tmp_v_L_
SmartPtr< const Vector > curr_z_L_
SmartPtr< Vector > tmp_v_U_
QualityFunctionMuOracle()
Default Constructor.
Number curr_d_minus_s_nrm2_
NormEnum quality_function_norm_
Norm to be used for the quality function.
SmartPtr< Vector > tmp_step_x_U_
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
overloaded from AlgorithmStrategyObject
int Index
Type of all indices of vectors, matrices etc.
Number quality_function_section_qf_tol_
Relative tolerance for golden bi-section algorithm in function value space.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
Methods for IpoptType.
BalancingTermEnum
enum for the quality function balancing term type
SmartPtr< Vector > tmp_slack_x_U_
Number curr_d_minus_s_amax_
SmartPtr< Vector > tmp_slack_s_L_
SmartPtr< Vector > tmp_z_L_
SmartPtr< const Vector > curr_v_U_
NormEnum
enum for norm type
SmartPtr< Vector > tmp_slack_s_U_
BalancingTermEnum quality_function_balancing_term_
Flag indicating whether we use a balancing term in the quality function.
Number curr_grad_lag_s_asum_
Number UnscaleSigma(Number scaled_sigma)
virtual ~QualityFunctionMuOracle()
Default destructor.
virtual bool CalculateMu(Number mu_min, Number mu_max, Number &new_mu)
Method for computing the value of the barrier parameter that could be used in the current iteration (...
SmartPtr< Vector > tmp_step_x_L_
void operator=(const QualityFunctionMuOracle &)
Overloaded Equals Operator.
Number CalculateQualityFunction(Number sigma, const Vector &step_aff_x_L, const Vector &step_aff_x_U, const Vector &step_aff_s_L, const Vector &step_aff_s_U, const Vector &step_aff_y_c, const Vector &step_aff_y_d, const Vector &step_aff_z_L, const Vector &step_aff_z_U, const Vector &step_aff_v_L, const Vector &step_aff_v_U, const Vector &step_cen_x_L, const Vector &step_cen_x_U, const Vector &step_cen_s_L, const Vector &step_cen_s_U, const Vector &step_cen_y_c, const Vector &step_cen_y_d, const Vector &step_cen_z_L, const Vector &step_cen_z_U, const Vector &step_cen_v_L, const Vector &step_cen_v_U)
Auxilliary function for computing the average complementarity at a point, given step sizes and step...
SmartPtr< PDSystemSolver > pd_solver_
Pointer to the object that should be used to solve the primal-dual system.
CentralityEnum
enum for centrality type
SmartPtr< const Vector > curr_v_L_
Number curr_grad_lag_x_nrm2_