Go to the documentation of this file.
7 #ifndef __IPQUALITYFUNCTIONMUORACLE_HPP__
8 #define __IPQUALITYFUNCTIONMUORACLE_HPP__
37 const std::string& prefix
119 const Vector& step_aff_x_L,
120 const Vector& step_aff_x_U,
121 const Vector& step_aff_s_L,
122 const Vector& step_aff_s_U,
123 const Vector& step_aff_y_c,
124 const Vector& step_aff_y_d,
125 const Vector& step_aff_z_L,
126 const Vector& step_aff_z_U,
127 const Vector& step_aff_v_L,
128 const Vector& step_aff_v_U,
129 const Vector& step_cen_x_L,
130 const Vector& step_cen_x_U,
131 const Vector& step_cen_s_L,
132 const Vector& step_cen_s_U,
133 const Vector& step_cen_y_c,
134 const Vector& step_cen_y_d,
135 const Vector& step_cen_z_L,
136 const Vector& step_cen_z_U,
137 const Vector& step_cen_v_L,
138 const Vector& step_cen_v_U
149 const Vector& step_aff_x_L,
150 const Vector& step_aff_x_U,
151 const Vector& step_aff_s_L,
152 const Vector& step_aff_s_U,
153 const Vector& step_aff_y_c,
154 const Vector& step_aff_y_d,
155 const Vector& step_aff_z_L,
156 const Vector& step_aff_z_U,
157 const Vector& step_aff_v_L,
158 const Vector& step_aff_v_U,
159 const Vector& step_cen_x_L,
160 const Vector& step_cen_x_U,
161 const Vector& step_cen_s_L,
162 const Vector& step_cen_s_U,
163 const Vector& step_cen_y_c,
164 const Vector& step_cen_y_d,
165 const Vector& step_cen_z_L,
166 const Vector& step_cen_z_U,
167 const Vector& step_cen_v_L,
168 const Vector& step_cen_v_U
SmartPtr< Vector > tmp_step_s_U_
SmartPtr< const Vector > curr_z_L_
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 (...
QualityFunctionMuOracle()
Default Constructor.
Number curr_grad_lag_s_amax_
SmartPtr< Vector > tmp_v_L_
virtual ~QualityFunctionMuOracle()
Destructor.
static void RegisterOptions(SmartPtr< RegisteredOptions > roptions)
SmartPtr< Vector > tmp_step_z_U_
Number ScaleSigma(Number sigma)
Auxiliary functions for scaling the sigma axis in the golden section procedure.
SmartPtr< Vector > tmp_step_x_L_
SmartPtr< Vector > tmp_v_U_
SmartPtr< Vector > tmp_step_x_U_
NormEnum quality_function_norm_
Norm to be used for the quality function.
BalancingTermEnum quality_function_balancing_term_
Flag indicating whether we use a balancing term in the quality function.
This file contains a base class for all exceptions and a set of macros to help with exceptions.
double Number
Type of all numbers.
Number curr_grad_lag_x_nrm2_
Number curr_d_minus_s_nrm2_
NormEnum
enum for norm type
Number curr_grad_lag_s_nrm2_
SmartPtr< Vector > tmp_slack_s_U_
SmartPtr< Vector > tmp_slack_x_U_
SmartPtr< PDSystemSolver > pd_solver_
Pointer to the object that should be used to solve the primal-dual system.
Number UnscaleSigma(Number scaled_sigma)
SmartPtr< Vector > tmp_z_L_
CentralityEnum
enum for centrality type
void operator=(const QualityFunctionMuOracle &)
Default Assignment 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)
Auxiliary function for computing the average complementarity at a point, given step sizes and step.
SmartPtr< Vector > tmp_step_v_U_
SmartPtr< const Vector > curr_v_U_
Number curr_d_minus_s_amax_
virtual bool InitializeImpl(const OptionsList &options, const std::string &prefix)
Implementation of the initialization method that has to be overloaded by for each derived class.
int Index
Type of all indices of vectors, matrices etc.
Template class for Smart Pointers.
SmartPtr< Vector > tmp_slack_s_L_
Implementation of the probing strategy for computing the barrier parameter.
SmartPtr< Vector > tmp_z_U_
CentralityEnum quality_function_centrality_
Flag indicating how centrality should be involved in the quality function.
SmartPtr< const Vector > curr_v_L_
Number curr_grad_lag_x_amax_
Index quality_function_max_section_steps_
Maximal number of bi-section steps in the golden section search for sigma.
Number curr_grad_lag_x_asum_
Number curr_grad_lag_s_asum_
Number quality_function_section_sigma_tol_
Relative tolerance for golden bi-section algorithm in sigma space.
Abstract Base Class for classes that are able to compute a suggested value of the barrier parameter t...
Number sigma_max_
Upper bound on centering parameter sigma.
SmartPtr< Vector > tmp_slack_x_L_
SmartPtr< const Vector > curr_slack_s_L_
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)
Auxiliary function performing the golden section.
Number sigma_min_
Lower bound on centering parameter sigma.
SmartPtr< const Vector > curr_z_U_
SmartPtr< const Vector > curr_slack_x_L_
SmartPtr< const Vector > curr_slack_x_U_
Number quality_function_section_qf_tol_
Relative tolerance for golden bi-section algorithm in function value space.
SmartPtr< Vector > tmp_step_v_L_
Number curr_d_minus_s_asum_
BalancingTermEnum
enum for the quality function balancing term type
This class stores a list of user set options.
SmartPtr< Vector > tmp_step_z_L_
SmartPtr< Vector > tmp_step_s_L_
SmartPtr< const Vector > curr_slack_s_U_