Option | type | B-BB | B-OA | B-QG | B-Hyb | |||
sb | S | + | + | + | + | |||
Barrier Parameter Update | ||||||||
---|---|---|---|---|---|---|---|---|
adaptive_mu_globalization | S | + | + | + | + | |||
adaptive_mu_kkt_norm_type | S | + | + | + | + | |||
adaptive_mu_kkterror_red_fact | F | + | + | + | + | |||
adaptive_mu_kkterror_red_iters | I | + | + | + | + | |||
adaptive_mu_monotone_init_factor | F | + | + | + | + | |||
adaptive_mu_restore_previous_iterate | S | + | + | + | + | |||
barrier_tol_factor | F | + | + | + | + | |||
filter_margin_fact | F | + | + | + | + | |||
filter_max_margin | F | + | + | + | + | |||
fixed_mu_oracle | S | + | + | + | + | |||
mu_allow_fast_monotone_decrease | S | + | + | + | + | |||
mu_init | F | + | + | + | + | |||
mu_linear_decrease_factor | F | + | + | + | + | |||
mu_max | F | + | + | + | + | |||
mu_max_fact | F | + | + | + | + | |||
mu_min | F | + | + | + | + | |||
mu_oracle | S | + | + | + | + | |||
mu_strategy | S | + | + | + | + | |||
mu_superlinear_decrease_power | F | + | + | + | + | |||
quality_function_balancing_term | S | + | + | + | + | |||
quality_function_centrality | S | + | + | + | + | |||
quality_function_max_section_steps | I | + | + | + | + | |||
quality_function_norm_type | S | + | + | + | + | |||
quality_function_section_qf_tol | F | + | + | + | + | |||
quality_function_section_sigma_tol | F | + | + | + | + | |||
sigma_max | F | + | + | + | + | |||
sigma_min | F | + | + | + | + | |||
tau_min | F | + | + | + | + | |||
Convergence | ||||||||
acceptable_compl_inf_tol | F | + | + | + | + | |||
acceptable_constr_viol_tol | F | + | + | + | + | |||
acceptable_dual_inf_tol | F | + | + | + | + | |||
acceptable_iter | I | + | + | + | + | |||
acceptable_obj_change_tol | F | + | + | + | + | |||
acceptable_tol | F | + | + | + | + | |||
compl_inf_tol | F | + | + | + | + | |||
constr_viol_tol | F | + | + | + | + | |||
diverging_iterates_tol | F | + | + | + | + | |||
dual_inf_tol | F | + | + | + | + | |||
max_cpu_time | F | + | + | + | + | |||
max_iter | I | + | + | + | + | |||
mu_target | F | + | + | + | + | |||
s_max | F | + | + | + | + | |||
tol | F | + | + | + | + | |||
Derivative Checker | ||||||||
derivative_test | S | + | + | + | + | |||
derivative_test_first_index | I | + | + | + | + | |||
derivative_test_perturbation | F | + | + | + | + | |||
derivative_test_print_all | S | + | + | + | + | |||
derivative_test_tol | F | + | + | + | + | |||
findiff_perturbation | F | + | + | + | + | |||
jacobian_approximation | S | + | + | + | + | |||
point_perturbation_radius | F | + | + | + | + | |||
Hessian Approximation | ||||||||
hessian_approximation | S | + | + | + | + | |||
hessian_approximation_space | S | + | + | + | + | |||
limited_memory_aug_solver | S | + | + | + | + | |||
limited_memory_init_val | F | + | + | + | + | |||
limited_memory_init_val_max | F | + | + | + | + | |||
limited_memory_init_val_min | F | + | + | + | + | |||
limited_memory_initialization | S | + | + | + | + | |||
limited_memory_max_history | I | + | + | + | + | |||
limited_memory_max_skipping | I | + | + | + | + | |||
limited_memory_special_for_resto | S | + | + | + | + | |||
limited_memory_update_type | S | + | + | + | + | |||
Initialization | ||||||||
bound_frac | F | + | + | + | + | |||
bound_mult_init_method | S | + | + | + | + | |||
bound_mult_init_val | F | + | + | + | + | |||
bound_push | F | + | + | + | + | |||
constr_mult_init_max | F | + | + | + | + | |||
least_square_init_duals | S | + | + | + | + | |||
least_square_init_primal | S | + | + | + | + | |||
slack_bound_frac | F | + | + | + | + | |||
slack_bound_push | F | + | + | + | + | |||
Line Search | ||||||||
accept_after_max_steps | I | + | + | + | + | |||
accept_every_trial_step | S | + | + | + | + | |||
alpha_for_y | S | + | + | + | + | |||
alpha_for_y_tol | F | + | + | + | + | |||
alpha_min_frac | F | + | + | + | + | |||
alpha_red_factor | F | + | + | + | + | |||
constraint_violation_norm_type | S | + | + | + | + | |||
corrector_compl_avrg_red_fact | F | + | + | + | + | |||
corrector_type | S | + | + | + | + | |||
delta | F | + | + | + | + | |||
eta_phi | F | + | + | + | + | |||
filter_reset_trigger | I | + | + | + | + | |||
gamma_phi | F | + | + | + | + | |||
gamma_theta | F | + | + | + | + | |||
kappa_sigma | F | + | + | + | + | |||
kappa_soc | F | + | + | + | + | |||
line_search_method | S | + | + | + | + | |||
max_filter_resets | I | + | + | + | + | |||
max_soc | I | + | + | + | + | |||
nu_inc | F | + | + | + | + | |||
nu_init | F | + | + | + | + | |||
obj_max_inc | F | + | + | + | + | |||
recalc_y | S | + | + | + | + | |||
recalc_y_feas_tol | F | + | + | + | + | |||
rho | F | + | + | + | + | |||
s_phi | F | + | + | + | + | |||
s_theta | F | + | + | + | + | |||
skip_corr_if_neg_curv | S | + | + | + | + | |||
skip_corr_in_monotone_mode | S | + | + | + | + | |||
slack_move | F | + | + | + | + | |||
theta_max_fact | F | + | + | + | + | |||
theta_min_fact | F | + | + | + | + | |||
tiny_step_tol | F | + | + | + | + | |||
tiny_step_y_tol | F | + | + | + | + | |||
watchdog_shortened_iter_trigger | I | + | + | + | + | |||
watchdog_trial_iter_max | I | + | + | + | + | |||
Linear Solver | ||||||||
linear_scaling_on_demand | S | + | + | + | + | |||
linear_solver | S | + | + | + | + | |||
linear_system_scaling | S | + | + | + | + | |||
MA27 Linear Solver | ||||||||
ma27_ignore_singularity | S | + | + | + | + | |||
ma27_la_init_factor | F | + | + | + | + | |||
ma27_liw_init_factor | F | + | + | + | + | |||
ma27_meminc_factor | F | + | + | + | + | |||
ma27_pivtol | F | + | + | + | + | |||
ma27_pivtolmax | F | + | + | + | + | |||
ma27_skip_inertia_check | S | + | + | + | + | |||
MA28 Linear Solver | ||||||||
ma28_pivtol | F | + | + | + | + | |||
MA57 Linear Solver | ||||||||
ma57_automatic_scaling | S | + | + | + | + | |||
ma57_block_size | I | + | + | + | + | |||
ma57_node_amalgamation | I | + | + | + | + | |||
ma57_pivot_order | I | + | + | + | + | |||
ma57_pivtol | F | + | + | + | + | |||
ma57_pivtolmax | F | + | + | + | + | |||
ma57_pre_alloc | F | + | + | + | + | |||
ma57_small_pivot_flag | I | + | + | + | + | |||
MA77 Linear Solver | ||||||||
ma77_buffer_lpage | I | + | + | + | + | |||
ma77_buffer_npage | I | + | + | + | + | |||
ma77_file_size | I | + | + | + | + | |||
ma77_maxstore | I | + | + | + | + | |||
ma77_nemin | I | + | + | + | + | |||
ma77_order | S | + | + | + | + | |||
ma77_print_level | I | + | + | + | + | |||
ma77_small | F | + | + | + | + | |||
ma77_static | F | + | + | + | + | |||
ma77_u | F | + | + | + | + | |||
ma77_umax | F | + | + | + | + | |||
MA86 Linear Solver | ||||||||
ma86_nemin | I | + | + | + | + | |||
ma86_order | S | + | + | + | + | |||
ma86_print_level | I | + | + | + | + | |||
ma86_scaling | S | + | + | + | + | |||
ma86_small | F | + | + | + | + | |||
ma86_static | F | + | + | + | + | |||
ma86_u | F | + | + | + | + | |||
ma86_umax | F | + | + | + | + | |||
MA97 Linear Solver | ||||||||
ma97_nemin | I | + | + | + | + | |||
ma97_order | S | + | + | + | + | |||
ma97_print_level | I | + | + | + | + | |||
ma97_scaling | S | + | + | + | + | |||
ma97_scaling1 | S | + | + | + | + | |||
ma97_scaling2 | S | + | + | + | + | |||
ma97_scaling3 | S | + | + | + | + | |||
ma97_small | F | + | + | + | + | |||
ma97_solve_blas3 | S | + | + | + | + | |||
ma97_switch1 | S | + | + | + | + | |||
ma97_switch2 | S | + | + | + | + | |||
ma97_switch3 | S | + | + | + | + | |||
ma97_u | F | + | + | + | + | |||
ma97_umax | F | + | + | + | + | |||
Mumps Linear Solver | ||||||||
mumps_dep_tol | F | + | + | + | + | |||
mumps_mem_percent | I | + | + | + | + | |||
mumps_permuting_scaling | I | + | + | + | + | |||
mumps_pivot_order | I | + | + | + | + | |||
mumps_pivtol | F | + | + | + | + | |||
mumps_pivtolmax | F | + | + | + | + | |||
mumps_scaling | I | + | + | + | + | |||
NLP | ||||||||
bound_relax_factor | F | + | + | + | + | |||
check_derivatives_for_naninf | S | + | + | + | + | |||
dependency_detection_with_rhs | S | + | + | + | + | |||
dependency_detector | S | + | + | + | + | |||
fixed_variable_treatment | S | + | + | + | + | |||
hessian_constant | S | + | + | + | + | |||
honor_original_bounds | S | + | + | + | + | |||
jac_c_constant | S | + | + | + | + | |||
jac_d_constant | S | + | + | + | + | |||
kappa_d | F | + | + | + | + | |||
nlp_lower_bound_inf | F | + | + | + | + | |||
nlp_upper_bound_inf | F | + | + | + | + | |||
num_linear_variables | I | + | + | + | + | |||
NLP Scaling | ||||||||
nlp_scaling_constr_target_gradient | F | + | + | + | + | |||
nlp_scaling_max_gradient | F | + | + | + | + | |||
nlp_scaling_method | S | + | + | + | + | |||
nlp_scaling_min_value | F | + | + | + | + | |||
nlp_scaling_obj_target_gradient | F | + | + | + | + | |||
obj_scaling_factor | F | + | + | + | + | |||
Output | ||||||||
file_print_level | I | + | + | + | + | |||
inf_pr_output | S | + | + | + | + | |||
option_file_name | S | + | + | + | + | |||
output_file | S | + | + | + | + | |||
print_frequency_iter | I | + | + | + | + | |||
print_frequency_time | F | + | + | + | + | |||
print_info_string | S | + | + | + | + | |||
print_level | I | + | + | + | + | |||
print_options_documentation | S | + | + | + | + | |||
print_timing_statistics | S | + | + | + | + | |||
print_user_options | S | + | + | + | + | |||
replace_bounds | S | + | + | + | + | |||
skip_finalize_solution_call | S | + | + | + | + | |||
Pardiso Linear Solver | ||||||||
pardiso_iter_coarse_size | I | + | + | + | + | |||
pardiso_iter_dropping_factor | F | + | + | + | + | |||
pardiso_iter_dropping_schur | F | + | + | + | + | |||
pardiso_iter_inverse_norm_factor | F | + | + | + | + | |||
pardiso_iter_max_levels | I | + | + | + | + | |||
pardiso_iter_max_row_fill | I | + | + | + | + | |||
pardiso_iter_relative_tol | F | + | + | + | + | |||
pardiso_iterative | S | + | + | + | + | |||
pardiso_matching_strategy | S | + | + | + | + | |||
pardiso_max_droptol_corrections | I | + | + | + | + | |||
pardiso_max_iter | I | + | + | + | + | |||
pardiso_msglvl | I | + | + | + | + | |||
pardiso_out_of_core_power | I | + | + | + | + | |||
pardiso_redo_symbolic_fact_only_if_inertia_wrong | S | + | + | + | + | |||
pardiso_repeated_perturbation_means_singular | S | + | + | + | + | |||
pardiso_skip_inertia_check | S | + | + | + | + | |||
Restoration Phase | ||||||||
bound_mult_reset_threshold | F | + | + | + | + | |||
constr_mult_reset_threshold | F | + | + | + | + | |||
evaluate_orig_obj_at_resto_trial | S | + | + | + | + | |||
expect_infeasible_problem | S | + | + | + | + | |||
expect_infeasible_problem_ctol | F | + | + | + | + | |||
expect_infeasible_problem_ytol | F | + | + | + | + | |||
max_resto_iter | I | + | + | + | + | |||
max_soft_resto_iters | I | + | + | + | + | |||
required_infeasibility_reduction | F | + | + | + | + | |||
resto_failure_feasibility_threshold | F | + | + | + | + | |||
resto_penalty_parameter | F | + | + | + | + | |||
resto_proximity_weight | F | + | + | + | + | |||
soft_resto_pderror_reduction_factor | F | + | + | + | + | |||
start_with_resto | S | + | + | + | + | |||
Step Calculation | ||||||||
fast_step_computation | S | + | + | + | + | |||
first_hessian_perturbation | F | + | + | + | + | |||
jacobian_regularization_exponent | F | + | + | + | + | |||
jacobian_regularization_value | F | + | + | + | + | |||
max_hessian_perturbation | F | + | + | + | + | |||
max_refinement_steps | I | + | + | + | + | |||
mehrotra_algorithm | S | + | + | + | + | |||
min_hessian_perturbation | F | + | + | + | + | |||
min_refinement_steps | I | + | + | + | + | |||
neg_curv_test_tol | F | + | + | + | + | |||
perturb_always_cd | S | + | + | + | + | |||
perturb_dec_fact | F | + | + | + | + | |||
perturb_inc_fact | F | + | + | + | + | |||
perturb_inc_fact_first | F | + | + | + | + | |||
residual_improvement_factor | F | + | + | + | + | |||
residual_ratio_max | F | + | + | + | + | |||
residual_ratio_singular | F | + | + | + | + | |||
Uncategorized | ||||||||
warm_start_target_mu | F | + | + | + | + | |||
Undocumented | ||||||||
adaptive_mu_safeguard_factor | F | + | + | + | + | |||
chi_cup | F | + | + | + | + | |||
chi_hat | F | + | + | + | + | |||
chi_tilde | F | + | + | + | + | |||
delta_y_max | F | + | + | + | + | |||
epsilon_c | F | + | + | + | + | |||
eta_min | F | + | + | + | + | |||
eta_penalty | F | + | + | + | + | |||
fast_des_fact | F | + | + | + | + | |||
gamma_hat | F | + | + | + | + | |||
gamma_tilde | F | + | + | + | + | |||
kappa_x_dis | F | + | + | + | + | |||
kappa_y_dis | F | + | + | + | + | |||
magic_steps | S | + | + | + | + | |||
min_alpha_primal | F | + | + | + | + | |||
mult_diverg_feasibility_tol | F | + | + | + | + | |||
mult_diverg_y_tol | F | + | + | + | + | |||
never_use_fact_cgpen_direction | S | + | + | + | + | |||
never_use_piecewise_penalty_ls | S | + | + | + | + | |||
pen_des_fact | F | + | + | + | + | |||
pen_init_fac | F | + | + | + | + | |||
pen_theta_max_fact | F | + | + | + | + | |||
penalty_init_max | F | + | + | + | + | |||
penalty_init_min | F | + | + | + | + | |||
penalty_max | F | + | + | + | + | |||
penalty_update_compl_tol | F | + | + | + | + | |||
penalty_update_infeasibility_tol | F | + | + | + | + | |||
piecewisepenalty_gamma_infeasi | F | + | + | + | + | |||
piecewisepenalty_gamma_obj | F | + | + | + | + | |||
print_options_latex_mode | S | + | + | + | + | |||
suppress_all_output | S | + | + | + | + | |||
theta_min | F | + | + | + | + | |||
vartheta | F | + | + | + | + | |||
wsmp_iterative | S | + | + | + | + | |||
Warm Start | ||||||||
warm_start_bound_frac | F | + | + | + | + | |||
warm_start_bound_push | F | + | + | + | + | |||
warm_start_entire_iterate | S | + | + | + | + | |||
warm_start_init_point | S | + | + | + | + | |||
warm_start_mult_bound_push | F | + | + | + | + | |||
warm_start_mult_init_max | F | + | + | + | + | |||
warm_start_same_structure | S | + | + | + | + | |||
warm_start_slack_bound_frac | F | + | + | + | + | |||
warm_start_slack_bound_push | F | + | + | + | + |
sb:
The default value for this string option is ”no”.
Possible values:
adaptive_mu_globalization:
Globalization strategy for the adaptive mu selection mode.
To achieve global convergence of the adaptive version, the algorithm has to switch to
the monotone mode (Fiacco-McCormick approach) when convergence does not seem
to appear. This option sets the criterion used to decide when to do this switch. (Only
used if option ”mu_strategy” is chosen as ”adaptive”.) The default value for this
string option is ”obj-constr-filter”.
Possible values:
adaptive_mu_kkt_norm_type:
Norm used for the KKT error in the adaptive mu globalization strategies.
When computing the KKT error for the globalization strategies, the norm
to be used is specified with this option. Note, this options is also used in
the QualityFunctionMuOracle. The default value for this string option is
”2-norm-squared”.
Possible values:
adaptive_mu_kkterror_red_fact:
Sufficient decrease factor for ”kkt-error” globalization strategy.
For the ”kkt-error” based globalization strategy, the error must decrease by
this factor to be deemed sufficient decrease. The valid range for this real
option is 0 < adaptive_mu_kkterror_red_fact < 1 and its default value is
0.9999.
adaptive_mu_kkterror_red_iters:
Maximum number of iterations requiring sufficient progress.
For the ”kkt-error” based globalization strategy, sufficient progress must be made for
”adaptive_mu_kkterror_red_iters” iterations. If this number of iterations is exceeded,
the globalization strategy switches to the monotone mode. The valid range for this
integer option is 0 ≤ adaptive_mu_kkterror_red_iters < +inf and its default value
is 4.
adaptive_mu_monotone_init_factor:
Determines the initial value of the barrier parameter when switching to the
monotone mode.
When the globalization strategy for the adaptive barrier algorithm switches to the
monotone mode and fixed_mu_oracle is chosen as ”average_compl”, the barrier
parameter is set to the current average complementarity times the value of
”adaptive_mu_monotone_init_factor”. The valid range for this real option is
0 < adaptive_mu_monotone_init_factor < +inf and its default value is
0.8.
adaptive_mu_restore_previous_iterate:
Indicates if the previous iterate should be restored if the monotone mode is
entered.
When the globalization strategy for the adaptive barrier algorithm switches to the
monotone mode, it can either start from the most recent iterate (no), or from the last
iterate that was accepted (yes). The default value for this string option is ”no”.
Possible values:
barrier_tol_factor:
Factor for mu in barrier stop test.
The convergence tolerance for each barrier problem in the monotone mode is the
value of the barrier parameter times ”barrier_tol_factor”. This option is
also used in the adaptive mu strategy during the monotone mode. (This is
kappa_epsilon in implementation paper). The valid range for this real option is
0 < barrier_tol_factor < +inf and its default value is 10.
filter_margin_fact:
Factor determining width of margin for obj-constr-filter adaptive globalization
strategy.
When using the adaptive globalization strategy, ”obj-constr-filter”, sufficient progress for
a filter entry is defined as follows: (new obj) ¡ (filter obj) - filter_margin_fact*(new
constr-viol) OR (new constr-viol) ¡ (filter constr-viol) - filter_margin_fact*(new
constr-viol). For the description of the ”kkt-error-filter” option see ”filter_max_margin”.
The valid range for this real option is 0 < filter_margin_fact < 1 and its default
value is 1 ⋅ 10-05.
filter_max_margin:
Maximum width of margin in obj-constr-filter adaptive globalization strategy.
The valid range for this real option is 0 < filter_max_margin < +inf and its
default value is 1.
fixed_mu_oracle:
Oracle for the barrier parameter when switching to fixed mode.
Determines how the first value of the barrier parameter should be computed when
switching to the ”monotone mode” in the adaptive strategy. (Only considered if
”adaptive” is selected for option ”mu_strategy”.) The default value for this string
option is ”average_compl”.
Possible values:
mu_allow_fast_monotone_decrease:
Allow skipping of barrier problem if barrier test is already met.
If set to ”no”, the algorithm enforces at least one iteration per barrier problem, even
if the barrier test is already met for the updated barrier parameter. The default value
for this string option is ”yes”.
Possible values:
mu_init:
Initial value for the barrier parameter.
This option determines the initial value for the barrier parameter (mu). It is only
relevant in the monotone, Fiacco-McCormick version of the algorithm. (i.e., if
”mu_strategy” is chosen as ”monotone”) The valid range for this real option is
0 < mu_init < +inf and its default value is 0.1.
mu_linear_decrease_factor:
Determines linear decrease rate of barrier parameter.
For the Fiacco-McCormick update procedure the new barrier parameter mu is
obtained by taking the minimum of mu*”mu_linear_decrease_factor” and musuperlinear_decrease_power”. (This is kappa_mu in implementation paper.) This
option is also used in the adaptive mu strategy during the monotone mode. The valid
range for this real option is 0 < mu_linear_decrease_factor < 1 and its default
value is 0.2.
mu_max:
Maximum value for barrier parameter.
This option specifies an upper bound on the barrier parameter in the adaptive mu
selection mode. If this option is set, it overwrites the effect of mu_max_fact. (Only
used if option ”mu_strategy” is chosen as ”adaptive”.) The valid range for this real
option is 0 < mu_max < +inf and its default value is 100000.
mu_max_fact:
Factor for initialization of maximum value for barrier parameter.
This option determines the upper bound on the barrier parameter. This upper bound
is computed as the average complementarity at the initial point times the value of
this option. (Only used if option ”mu_strategy” is chosen as ”adaptive”.) The valid
range for this real option is 0 < mu_max_fact < +inf and its default value is
1000.
mu_min:
Minimum value for barrier parameter.
This option specifies the lower bound on the barrier parameter in the adaptive
mu selection mode. By default, it is set to the minimum of 1e-11 and
min(”tol”,”compl_inf_tol”)/(”barrier_tol_factor”+1), which should be a reasonable
value. (Only used if option ”mu_strategy” is chosen as ”adaptive”.) The valid
range for this real option is 0 < mu_min < +inf and its default value is
1 ⋅ 10-11.
mu_oracle:
Oracle for a new barrier parameter in the adaptive strategy.
Determines how a new barrier parameter is computed in each ”free-mode” iteration
of the adaptive barrier parameter strategy. (Only considered if ”adaptive” is
selected for option ”mu_strategy”). The default value for this string option is
”quality-function”.
Possible values:
mu_strategy:
Update strategy for barrier parameter.
Determines which barrier parameter update strategy is to be used. The default value
for this string option is ”monotone”.
Possible values:
mu_superlinear_decrease_power:
Determines superlinear decrease rate of barrier parameter.
For the Fiacco-McCormick update procedure the new barrier parameter mu is
obtained by taking the minimum of mu*”mu_linear_decrease_factor” and musuperlinear_decrease_power”. (This is theta_mu in implementation paper.) This
option is also used in the adaptive mu strategy during the monotone mode. The valid
range for this real option is 1 < mu_superlinear_decrease_power < 2 and its default
value is 1.5.
quality_function_balancing_term:
The balancing term included in the quality function for centrality.
This determines whether a term is added to the quality function that penalizes
situations where the complementarity is much smaller than dual and primal
infeasibilities. (Only used if option ”mu_oracle” is set to ”quality-function”.) The
default value for this string option is ”none”.
Possible values:
quality_function_centrality:
The penalty term for centrality that is included in quality function.
This determines whether a term is added to the quality function to penalize deviation
from centrality with respect to complementarity. The complementarity measure here
is the xi in the Loqo update rule. (Only used if option ”mu_oracle” is set
to ”quality-function”.) The default value for this string option is ”none”.
Possible values:
quality_function_max_section_steps:
Maximum number of search steps during direct search procedure determining the
optimal centering parameter.
The golden section search is performed for the quality function based mu oracle.
(Only used if option ”mu_oracle” is set to ”quality-function”.) The valid range for
this integer option is 0 ≤ quality_function_max_section_steps < +inf and its
default value is 8.
quality_function_norm_type:
Norm used for components of the quality function.
(Only used if option ”mu_oracle” is set to ”quality-function”.) The default value for
this string option is ”2-norm-squared”.
Possible values:
quality_function_section_qf_tol:
Tolerance for the golden section search procedure determining the optimal
centering parameter (in the function value space).
The golden section search is performed for the quality function based mu oracle.
(Only used if option ”mu_oracle” is set to ”quality-function”.) The valid range for
this real option is 0 ≤ quality_function_section_qf_tol < 1 and its default value is
0.
quality_function_section_sigma_tol:
Tolerance for the section search procedure determining the optimal centering
parameter (in sigma space).
The golden section search is performed for the quality function based mu oracle.
(Only used if option ”mu_oracle” is set to ”quality-function”.) The valid range for
this real option is 0 ≤ quality_function_section_sigma_tol < 1 and its default value
is 0.01.
sigma_max:
Maximum value of the centering parameter.
This is the upper bound for the centering parameter chosen by the quality function
based barrier parameter update. (Only used if option ”mu_oracle” is set to
”quality-function”.) The valid range for this real option is 0 < sigma_max < +inf
and its default value is 100.
sigma_min:
Minimum value of the centering parameter.
This is the lower bound for the centering parameter chosen by the quality function
based barrier parameter update. (Only used if option ”mu_oracle” is set to
”quality-function”.) The valid range for this real option is 0 ≤ sigma_min < +inf
and its default value is 1 ⋅ 10-06.
tau_min:
Lower bound on fraction-to-the-boundary parameter tau.
(This is tau_min in the implementation paper.) This option is also used in the
adaptive mu strategy during the monotone mode. The valid range for this real option
is 0 < tau_min < 1 and its default value is 0.99.
acceptable_compl_inf_tol:
”Acceptance” threshold for the complementarity conditions.
Absolute tolerance on the complementarity. ”Acceptable” termination requires
that the max-norm of the (unscaled) complementarity is less than this
threshold; see also acceptable_tol. The valid range for this real option is
0 < acceptable_compl_inf_tol < +inf and its default value is 0.01.
acceptable_constr_viol_tol:
”Acceptance” threshold for the constraint violation.
Absolute tolerance on the constraint violation. ”Acceptable” termination
requires that the max-norm of the (unscaled) constraint violation is less
than this threshold; see also acceptable_tol. The valid range for this real
option is 0 < acceptable_constr_viol_tol < +inf and its default value is
0.01.
acceptable_dual_inf_tol:
”Acceptance” threshold for the dual infeasibility.
Absolute tolerance on the dual infeasibility. ”Acceptable” termination requires
that the (max-norm of the unscaled) dual infeasibility is less than this
threshold; see also acceptable_tol. The valid range for this real option is
0 < acceptable_dual_inf_tol < +inf and its default value is 1 ⋅ 10+10.
acceptable_iter:
Number of ”acceptable” iterates before triggering termination.
If the algorithm encounters this many successive ”acceptable” iterates (see
”acceptable_tol”), it terminates, assuming that the problem has been solved to best
possible accuracy given round-off. If it is set to zero, this heuristic is disabled. The
valid range for this integer option is 0 ≤ acceptable_iter < +inf and its default value
is 15.
acceptable_obj_change_tol:
”Acceptance” stopping criterion based on objective function change.
If the relative change of the objective function (scaled by Max(1,—f(x)—)) is less
than this value, this part of the acceptable tolerance termination is satisfied; see
also acceptable_tol. This is useful for the quasi-Newton option, which has
trouble to bring down the dual infeasibility. The valid range for this real
option is 0 ≤ acceptable_obj_change_tol < +inf and its default value is
1 ⋅ 10+20.
acceptable_tol:
”Acceptable” convergence tolerance (relative).
Determines which (scaled) overall optimality error is considered to be ”acceptable.”
There are two levels of termination criteria. If the usual ”desired” tolerances (see tol,
dual_inf_tol etc) are satisfied at an iteration, the algorithm immediately terminates
with a success message. On the other hand, if the algorithm encounters
”acceptable_iter” many iterations in a row that are considered ”acceptable”, it will
terminate before the desired convergence tolerance is met. This is useful in cases
where the algorithm might not be able to achieve the ”desired” level of accuracy. The
valid range for this real option is 0 < acceptable_tol < +inf and its default value is
1 ⋅ 10-06.
compl_inf_tol:
Desired threshold for the complementarity conditions.
Absolute tolerance on the complementarity. Successful termination requires that the
max-norm of the (unscaled) complementarity is less than this threshold. The valid
range for this real option is 0 < compl_inf_tol < +inf and its default value is
0.0001.
constr_viol_tol:
Desired threshold for the constraint violation.
Absolute tolerance on the constraint violation. Successful termination requires that
the max-norm of the (unscaled) constraint violation is less than this threshold. The
valid range for this real option is 0 < constr_viol_tol < +inf and its default value is
0.0001.
diverging_iterates_tol:
Threshold for maximal value of primal iterates.
If any component of the primal iterates exceeded this value (in absolute terms), the
optimization is aborted with the exit message that the iterates seem to be diverging.
The valid range for this real option is 0 < diverging_iterates_tol < +inf and its
default value is 1 ⋅ 10+20.
dual_inf_tol:
Desired threshold for the dual infeasibility.
Absolute tolerance on the dual infeasibility. Successful termination requires that the
max-norm of the (unscaled) dual infeasibility is less than this threshold. The valid
range for this real option is 0 < dual_inf_tol < +inf and its default value is
1.
max_cpu_time:
Maximum number of CPU seconds.
A limit on CPU seconds that Ipopt can use to solve one problem. If during the
convergence check this limit is exceeded, Ipopt will terminate with a corresponding
error message. The valid range for this real option is 0 < max_cpu_time < +inf and
its default value is 1 ⋅ 10+06.
max_iter:
Maximum number of iterations.
The algorithm terminates with an error message if the number of iterations exceeded
this number. The valid range for this integer option is 0 ≤ max_iter < +inf and its
default value is 3000.
mu_target:
Desired value of complementarity.
Usually, the barrier parameter is driven to zero and the termination test for
complementarity is measured with respect to zero complementarity. However, in some
cases it might be desired to have Ipopt solve barrier problem for strictly positive
value of the barrier parameter. In this case, the value of ”mu_target” specifies the
final value of the barrier parameter, and the termination tests are then defined with
respect to the barrier problem for this value of the barrier parameter. The valid
range for this real option is 0 ≤ mu_target < +inf and its default value is
0.
s_max:
Scaling threshold for the NLP error.
(See paragraph after Eqn. (6) in the implementation paper.) The valid range for this
real option is 0 < s_max < +inf and its default value is 100.
tol:
Desired convergence tolerance (relative).
Determines the convergence tolerance for the algorithm. The algorithm terminates
successfully, if the (scaled) NLP error becomes smaller than this value, and if
the (absolute) criteria according to ”dual_inf_tol”, ”primal_inf_tol”, and
”compl_inf_tol” are met. (This is epsilon_tol in Eqn. (6) in implementation paper).
See also ”acceptable_tol” as a second termination criterion. Note, some other
algorithmic features also use this quantity to determine thresholds etc. The
valid range for this real option is 0 < tol < +inf and its default value is
1 ⋅ 10-08.
derivative_test:
Enable derivative checker
If this option is enabled, a (slow!) derivative test will be performed before the
optimization. The test is performed at the user provided starting point and marks
derivative values that seem suspicious The default value for this string option is
”none”.
Possible values:
derivative_test_first_index:
Index of first quantity to be checked by derivative checker
If this is set to -2, then all derivatives are checked. Otherwise, for the first derivative
test it specifies the first variable for which the test is done (counting starts at 0). For
second derivatives, it specifies the first constraint for which the test is done; counting
of constraint indices starts at 0, and -1 refers to the objective function Hessian. The
valid range for this integer option is -2 ≤ derivative_test_first_index < +inf and
its default value is -2.
derivative_test_perturbation:
Size of the finite difference perturbation in derivative test.
This determines the relative perturbation of the variable entries. The valid range for
this real option is 0 < derivative_test_perturbation < +inf and its default value is
1 ⋅ 10-08.
derivative_test_print_all:
Indicates whether information for all estimated derivatives should be printed.
Determines verbosity of derivative checker. The default value for this string option is
”no”.
Possible values:
derivative_test_tol:
Threshold for indicating wrong derivative.
If the relative deviation of the estimated derivative from the given one is larger than
this value, the corresponding derivative is marked as wrong. The valid range for
this real option is 0 < derivative_test_tol < +inf and its default value is
0.0001.
findiff_perturbation:
Size of the finite difference perturbation for derivative approximation.
This determines the relative perturbation of the variable entries. The valid range for
this real option is 0 < findiff_perturbation < +inf and its default value is
1 ⋅ 10-07.
jacobian_approximation:
Specifies technique to compute constraint Jacobian
The default value for this string option is ”exact”.
Possible values:
point_perturbation_radius:
Maximal perturbation of an evaluation point.
If a random perturbation of a points is required, this number indicates the maximal
perturbation. This is for example used when determining the center point at which
the finite difference derivative test is executed. The valid range for this real
option is 0 ≤ point_perturbation_radius < +inf and its default value is
10.
hessian_approximation:
Indicates what Hessian information is to be used.
This determines which kind of information for the Hessian of the Lagrangian function
is used by the algorithm. The default value for this string option is ”exact”.
Possible values:
hessian_approximation_space:
Indicates in which subspace the Hessian information is to be approximated.
The default value for this string option is ”nonlinear-variables”.
Possible values:
limited_memory_aug_solver:
Strategy for solving the augmented system for low-rank Hessian.
The default value for this string option is ”sherman-morrison”.
Possible values:
limited_memory_init_val:
Value for B0 in low-rank update.
The starting matrix in the low rank update, B0, is chosen to be this multiple of the
identity in the first iteration (when no updates have been performed yet), and is
constantly chosen as this value, if ”limited_memory_initialization” is ”constant”. The
valid range for this real option is 0 < limited_memory_init_val < +inf and its
default value is 1.
limited_memory_init_val_max:
Upper bound on value for B0 in low-rank update.
The starting matrix in the low rank update, B0, is chosen to be this multiple of the
identity in the first iteration (when no updates have been performed yet), and is
constantly chosen as this value, if ”limited_memory_initialization” is ”constant”. The
valid range for this real option is 0 < limited_memory_init_val_max < +inf and its
default value is 1 ⋅ 10+08.
limited_memory_init_val_min:
Lower bound on value for B0 in low-rank update.
The starting matrix in the low rank update, B0, is chosen to be this multiple of the
identity in the first iteration (when no updates have been performed yet), and is
constantly chosen as this value, if ”limited_memory_initialization” is ”constant”. The
valid range for this real option is 0 < limited_memory_init_val_min < +inf and its
default value is 1 ⋅ 10-08.
limited_memory_initialization:
Initialization strategy for the limited memory quasi-Newton approximation.
Determines how the diagonal Matrix B_0 as the first term in the limited memory
approximation should be computed. The default value for this string option is
”scalar1”.
Possible values:
limited_memory_max_history:
Maximum size of the history for the limited quasi-Newton Hessian approximation.
This option determines the number of most recent iterations that are taken into
account for the limited-memory quasi-Newton approximation. The valid range for
this integer option is 0 ≤ limited_memory_max_history < +inf and its default
value is 6.
limited_memory_max_skipping:
Threshold for successive iterations where update is skipped.
If the update is skipped more than this number of successive iterations,
we quasi-Newton approximation is reset. The valid range for this integer
option is 1 ≤ limited_memory_max_skipping < +inf and its default value is
2.
limited_memory_special_for_resto:
Determines if the quasi-Newton updates should be special during the restoration
phase.
Until Nov 2010, Ipopt used a special update during the restoration phase, but it
turned out that this does not work well. The new default uses the regular update
procedure and it improves results. If for some reason you want to get back to the
original update, set this option to ”yes”. The default value for this string option is
”no”.
Possible values:
limited_memory_update_type:
Quasi-Newton update formula for the limited memory approximation.
Determines which update formula is to be used for the limited-memory quasi-Newton
approximation. The default value for this string option is ”bfgs”.
Possible values:
bound_frac:
Desired minimum relative distance from the initial point to bound.
Determines how much the initial point might have to be modified in order to be
sufficiently inside the bounds (together with ”bound_push”). (This is kappa_2 in
Section 3.6 of implementation paper.) The valid range for this real option is
0 < bound_frac ≤ 0.5 and its default value is 0.01.
bound_mult_init_method:
Initialization method for bound multipliers
This option defines how the iterates for the bound multipliers are initialized. If
”constant” is chosen, then all bound multipliers are initialized to the value of
”bound_mult_init_val”. If ”mu-based” is chosen, the each value is initialized to the
the value of ”mu_init” divided by the corresponding slack variable. This latter option
might be useful if the starting point is close to the optimal solution. The default
value for this string option is ”constant”.
Possible values:
bound_mult_init_val:
Initial value for the bound multipliers.
All dual variables corresponding to bound constraints are initialized to this value.
The valid range for this real option is 0 < bound_mult_init_val < +inf and its
default value is 1.
bound_push:
Desired minimum absolute distance from the initial point to bound.
Determines how much the initial point might have to be modified in order to be
sufficiently inside the bounds (together with ”bound_frac”). (This is kappa_1 in
Section 3.6 of implementation paper.) The valid range for this real option is
0 < bound_push < +inf and its default value is 0.01.
constr_mult_init_max:
Maximum allowed least-square guess of constraint multipliers.
Determines how large the initial least-square guesses of the constraint multipliers are
allowed to be (in max-norm). If the guess is larger than this value, it is discarded and
all constraint multipliers are set to zero. This options is also used when
initializing the restoration phase. By default, ”resto.constr_mult_init_max” (the
one used in RestoIterateInitializer) is set to zero. The valid range for this
real option is 0 ≤ constr_mult_init_max < +inf and its default value is
1000.
least_square_init_duals:
Least square initialization of all dual variables
If set to yes, Ipopt tries to compute least-square multipliers (considering ALL dual
variables). If successful, the bound multipliers are possibly corrected to be at least
bound_mult_init_val. This might be useful if the user doesn’t know anything
about the starting point, or for solving an LP or QP. This overwrites option
”bound_mult_init_method”. The default value for this string option is ”no”.
Possible values:
least_square_init_primal:
Least square initialization of the primal variables
If set to yes, Ipopt ignores the user provided point and solves a least square problem
for the primal variables (x and s), to fit the linearized equality and inequality
constraints. This might be useful if the user doesn’t know anything about the
starting point, or for solving an LP or QP. The default value for this string option is
”no”.
Possible values:
slack_bound_frac:
Desired minimum relative distance from the initial slack to bound.
Determines how much the initial slack variables might have to be modified in order
to be sufficiently inside the inequality bounds (together with ”slack_bound_push”).
(This is kappa_2 in Section 3.6 of implementation paper.) The valid range
for this real option is 0 < slack_bound_frac ≤ 0.5 and its default value is
0.01.
slack_bound_push:
Desired minimum absolute distance from the initial slack to bound.
Determines how much the initial slack variables might have to be modified in order
to be sufficiently inside the inequality bounds (together with ”slack_bound_frac”).
(This is kappa_1 in Section 3.6 of implementation paper.) The valid range for
this real option is 0 < slack_bound_push < +inf and its default value is
0.01.
accept_after_max_steps:
Accept a trial point after maximal this number of steps.
Even if it does not satisfy line search conditions. The valid range for this integer
option is -1 ≤ accept_after_max_steps < +inf and its default value is
-1.
accept_every_trial_step:
Always accept the first trial step.
Setting this option to ”yes” essentially disables the line search and makes the
algorithm take aggressive steps, without global convergence guarantees. The default
value for this string option is ”no”.
Possible values:
alpha_for_y:
Method to determine the step size for constraint multipliers.
This option determines how the step size (alpha_y) will be calculated when updating
the constraint multipliers. The default value for this string option is ”primal”.
Possible values:
alpha_for_y_tol:
Tolerance for switching to full equality multiplier steps.
This is only relevant if ”alpha_for_y” is chosen ”primal-and-full” or ”dual-and-full”.
The step size for the equality constraint multipliers is taken to be one if the
max-norm of the primal step is less than this tolerance. The valid range
for this real option is 0 ≤ alpha_for_y_tol < +inf and its default value is
10.
alpha_min_frac:
Safety factor for the minimal step size (before switching to restoration phase).
(This is gamma_alpha in Eqn. (20) in the implementation paper.) The valid
range for this real option is 0 < alpha_min_frac < 1 and its default value is
0.05.
alpha_red_factor:
Fractional reduction of the trial step size in the backtracking line search.
At every step of the backtracking line search, the trial step size is reduced by this
factor. The valid range for this real option is 0 < alpha_red_factor < 1 and its
default value is 0.5.
constraint_violation_norm_type:
Norm to be used for the constraint violation in the line search.
Determines which norm should be used when the algorithm computes the constraint
violation in the line search. The default value for this string option is ”1-norm”.
Possible values:
corrector_compl_avrg_red_fact:
Complementarity tolerance factor for accepting corrector step (unsupported!).
This option determines the factor by which complementarity is allowed to
increase for a corrector step to be accepted. The valid range for this real
option is 0 < corrector_compl_avrg_red_fact < +inf and its default value is
1.
corrector_type:
The type of corrector steps that should be taken (unsupported!).
If ”mu_strategy” is ”adaptive”, this option determines what kind of corrector
steps should be tried. The default value for this string option is ”none”.
Possible values:
delta:
Multiplier for constraint violation in the switching rule.
(See Eqn. (19) in the implementation paper.) The valid range for this real option is
0 < delta < +inf and its default value is 1.
eta_phi:
Relaxation factor in the Armijo condition.
(See Eqn. (20) in the implementation paper) The valid range for this real option is
0 < eta_phi < 0.5 and its default value is 1 ⋅ 10-08.
filter_reset_trigger:
Number of iterations that trigger the filter reset.
If the filter reset heuristic is active and the number of successive iterations in which
the last rejected trial step size was rejected because of the filter, the filter is reset.
The valid range for this integer option is 1 ≤ filter_reset_trigger < +inf and its
default value is 5.
gamma_phi:
Relaxation factor in the filter margin for the barrier function.
(See Eqn. (18a) in the implementation paper.) The valid range for this real option is
0 < gamma_phi < 1 and its default value is 1 ⋅ 10-08.
gamma_theta:
Relaxation factor in the filter margin for the constraint violation.
(See Eqn. (18b) in the implementation paper.) The valid range for this real option is
0 < gamma_theta < 1 and its default value is 1 ⋅ 10-05.
kappa_sigma:
Factor limiting the deviation of dual variables from primal estimates.
If the dual variables deviate from their primal estimates, a correction is performed.
(See Eqn. (16) in the implementation paper.) Setting the value to less than 1 disables
the correction. The valid range for this real option is 0 < kappa_sigma < +inf and
its default value is 1 ⋅ 10+10.
kappa_soc:
Factor in the sufficient reduction rule for second order correction.
This option determines how much a second order correction step must reduce the
constraint violation so that further correction steps are attempted. (See Step A-5.9 of
Algorithm A in the implementation paper.) The valid range for this real option is
0 < kappa_soc < +inf and its default value is 0.99.
line_search_method:
Globalization method used in backtracking line search
Only the ”filter” choice is officially supported. But sometimes, good results might be
obtained with the other choices. The default value for this string option is ”filter”.
Possible values:
max_filter_resets:
Maximal allowed number of filter resets
A positive number enables a heuristic that resets the filter, whenever in more
than ”filter_reset_trigger” successive iterations the last rejected trial steps
size was rejected because of the filter. This option determine the maximal
number of resets that are allowed to take place. The valid range for this
integer option is 0 ≤ max_filter_resets < +inf and its default value is
5.
max_soc:
Maximum number of second order correction trial steps at each iteration.
Choosing 0 disables the second order corrections. (This is p of Step A-5.9 of
Algorithm A in the implementation paper.) The valid range for this integer option is
0 ≤ max_soc < +inf and its default value is 4.
nu_inc:
Increment of the penalty parameter.
The valid range for this real option is 0 < nu_inc < +inf and its default value is
0.0001.
nu_init:
Initial value of the penalty parameter.
The valid range for this real option is 0 < nu_init < +inf and its default value is
1 ⋅ 10-06.
obj_max_inc:
Determines the upper bound on the acceptable increase of barrier objective
function.
Trial points are rejected if they lead to an increase in the barrier objective
function by more than obj_max_inc orders of magnitude. The valid range
for this real option is 1 < obj_max_inc < +inf and its default value is
5.
recalc_y:
Tells the algorithm to recalculate the equality and inequality multipliers as least
square estimates.
This asks the algorithm to recompute the multipliers, whenever the current
infeasibility is less than recalc_y_feas_tol. Choosing yes might be helpful
in the quasi-Newton option. However, each recalculation requires an extra
factorization of the linear system. If a limited memory quasi-Newton option is
chosen, this is used by default. The default value for this string option is ”no”.
Possible values:
recalc_y_feas_tol:
Feasibility threshold for recomputation of multipliers.
If recalc_y is chosen and the current infeasibility is less than this value,
then the multipliers are recomputed. The valid range for this real option is
0 < recalc_y_feas_tol < +inf and its default value is 1 ⋅ 10-06.
rho:
Value in penalty parameter update formula.
The valid range for this real option is 0 < rho < 1 and its default value is
0.1.
s_phi:
Exponent for linear barrier function model in the switching rule.
(See Eqn. (19) in the implementation paper.) The valid range for this real option is
1 < s_phi < +inf and its default value is 2.3.
s_theta:
Exponent for current constraint violation in the switching rule.
(See Eqn. (19) in the implementation paper.) The valid range for this real option is
1 < s_theta < +inf and its default value is 1.1.
skip_corr_if_neg_curv:
Skip the corrector step in negative curvature iteration (unsupported!).
The corrector step is not tried if negative curvature has been encountered during the
computation of the search direction in the current iteration. This option is only used
if ”mu_strategy” is ”adaptive”. The default value for this string option is ”yes”.
Possible values:
skip_corr_in_monotone_mode:
Skip the corrector step during monotone barrier parameter mode (unsupported!).
The corrector step is not tried if the algorithm is currently in the monotone mode
(see also option ”barrier_strategy”).This option is only used if ”mu_strategy” is
”adaptive”. The default value for this string option is ”yes”.
Possible values:
slack_move:
Correction size for very small slacks.
Due to numerical issues or the lack of an interior, the slack variables might become
very small. If a slack becomes very small compared to machine precision, the
corresponding bound is moved slightly. This parameter determines how large the
move should be. Its default value is mach_eps. (See also end of Section 3.5 in
implementation paper - but actual implementation might be somewhat different.)
The valid range for this real option is 0 ≤ slack_move < +inf and its default value is
1.81899 ⋅ 10-12.
theta_max_fact:
Determines upper bound for constraint violation in the filter.
The algorithmic parameter theta_max is determined as theta_max_fact
times the maximum of 1 and the constraint violation at initial point. Any
point with a constraint violation larger than theta_max is unacceptable
to the filter (see Eqn. (21) in the implementation paper). The valid range
for this real option is 0 < theta_max_fact < +inf and its default value is
10000.
theta_min_fact:
Determines constraint violation threshold in the switching rule.
The algorithmic parameter theta_min is determined as theta_min_fact times the
maximum of 1 and the constraint violation at initial point. The switching rules treats
an iteration as an h-type iteration whenever the current constraint violation is larger
than theta_min (see paragraph before Eqn. (19) in the implementation paper). The
valid range for this real option is 0 < theta_min_fact < +inf and its default value is
0.0001.
tiny_step_tol:
Tolerance for detecting numerically insignificant steps.
If the search direction in the primal variables (x and s) is, in relative terms for each
component, less than this value, the algorithm accepts the full step without line
search. If this happens repeatedly, the algorithm will terminate with a corresponding
exit message. The default value is 10 times machine precision. The valid range
for this real option is 0 ≤ tiny_step_tol < +inf and its default value is
2.22045 ⋅ 10-15.
tiny_step_y_tol:
Tolerance for quitting because of numerically insignificant steps.
If the search direction in the primal variables (x and s) is, in relative terms for each
component, repeatedly less than tiny_step_tol, and the step in the y variables is
smaller than this threshold, the algorithm will terminate. The valid range
for this real option is 0 ≤ tiny_step_y_tol < +inf and its default value is
0.01.
watchdog_shortened_iter_trigger:
Number of shortened iterations that trigger the watchdog.
If the number of successive iterations in which the backtracking line search did not
accept the first trial point exceeds this number, the watchdog procedure is activated.
Choosing ”0” here disables the watchdog procedure. The valid range for this integer
option is 0 ≤ watchdog_shortened_iter_trigger < +inf and its default value is
10.
watchdog_trial_iter_max:
Maximum number of watchdog iterations.
This option determines the number of trial iterations allowed before the watchdog
procedure is aborted and the algorithm returns to the stored point. The valid range
for this integer option is 1 ≤ watchdog_trial_iter_max < +inf and its default value
is 3.
linear_scaling_on_demand:
Flag indicating that linear scaling is only done if it seems required.
This option is only important if a linear scaling method (e.g., mc19) is used. If you
choose ”no”, then the scaling factors are computed for every linear system from the
start. This can be quite expensive. Choosing ”yes” means that the algorithm will
start the scaling method only when the solutions to the linear system seem not good,
and then use it until the end. The default value for this string option is ”yes”.
Possible values:
linear_solver:
Linear solver used for step computations.
Determines which linear algebra package is to be used for the solution of the
augmented linear system (for obtaining the search directions). Note, the code must
have been compiled with the linear solver you want to choose. Depending on your
Ipopt installation, not all options are available. The default value for this string
option is ”ma27”.
Possible values:
linear_system_scaling:
Method for scaling the linear system.
Determines the method used to compute symmetric scaling factors for the augmented
system (see also the ”linear_scaling_on_demand” option). This scaling is independent
of the NLP problem scaling. By default, MC19 is only used if MA27 or MA57
are selected as linear solvers. This value is only available if Ipopt has been
compiled with MC19. The default value for this string option is ”mc19”.
Possible values:
ma27_ignore_singularity:
Enables MA27’s ability to solve a linear system even if the matrix is singular.
Setting this option to ”yes” means that Ipopt will call MA27 to compute
solutions for right hand sides, even if MA27 has detected that the matrix is
singular (but is still able to solve the linear system). In some cases this might
be better than using Ipopt’s heuristic of small perturbation of the lower
diagonal of the KKT matrix. The default value for this string option is ”no”.
Possible values:
ma27_la_init_factor:
Real workspace memory for MA27.
The initial real workspace memory = la_init_factor * memory required by unfactored
system. Ipopt will increase the workspace size by meminc_factor if required. This
option is only available if Ipopt has been compiled with MA27. The valid range for
this real option is 1 ≤ ma27_la_init_factor < +inf and its default value is
5.
ma27_liw_init_factor:
Integer workspace memory for MA27.
The initial integer workspace memory = liw_init_factor * memory required by
unfactored system. Ipopt will increase the workspace size by meminc_factor if
required. This option is only available if Ipopt has been compiled with MA27. The
valid range for this real option is 1 ≤ ma27_liw_init_factor < +inf and its default
value is 5.
ma27_meminc_factor:
Increment factor for workspace size for MA27.
If the integer or real workspace is not large enough, Ipopt will increase its size by this
factor. This option is only available if Ipopt has been compiled with MA27. The valid
range for this real option is 1 ≤ ma27_meminc_factor < +inf and its default value
is 2.
ma27_pivtol:
Pivot tolerance for the linear solver MA27.
A smaller number pivots for sparsity, a larger number pivots for stability. This
option is only available if Ipopt has been compiled with MA27. The valid
range for this real option is 0 < ma27_pivtol < 1 and its default value is
1 ⋅ 10-08.
ma27_pivtolmax:
Maximum pivot tolerance for the linear solver MA27.
Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the
linear system. This option is only available if Ipopt has been compiled with MA27.
The valid range for this real option is 0 < ma27_pivtolmax < 1 and its default value
is 0.0001.
ma27_skip_inertia_check:
Always pretend inertia is correct.
Setting this option to ”yes” essentially disables inertia check. This option makes the
algorithm non-robust and easily fail, but it might give some insight into the
necessity of inertia control. The default value for this string option is ”no”.
Possible values:
ma28_pivtol:
Pivot tolerance for linear solver MA28.
This is used when MA28 tries to find the dependent constraints. The valid
range for this real option is 0 < ma28_pivtol ≤ 1 and its default value is
0.01.
ma57_automatic_scaling:
Controls MA57 automatic scaling
This option controls the internal scaling option of MA57. For higher reliability of the
MA57 solver, you may want to set this option to yes. This is ICNTL(15) in MA57.
The default value for this string option is ”no”.
Possible values:
ma57_block_size:
Controls block size used by Level 3 BLAS in MA57BD
This is ICNTL(11) in MA57. The valid range for this integer option is
1 ≤ ma57_block_size < +inf and its default value is 16.
ma57_node_amalgamation:
Node amalgamation parameter
This is ICNTL(12) in MA57. The valid range for this integer option is
1 ≤ ma57_node_amalgamation < +inf and its default value is 16.
ma57_pivot_order:
Controls pivot order in MA57
This is ICNTL(6) in MA57. The valid range for this integer option is
0 ≤ ma57_pivot_order ≤ 5 and its default value is 5.
ma57_pivtol:
Pivot tolerance for the linear solver MA57.
A smaller number pivots for sparsity, a larger number pivots for stability. This
option is only available if Ipopt has been compiled with MA57. The valid
range for this real option is 0 < ma57_pivtol < 1 and its default value is
1 ⋅ 10-08.
ma57_pivtolmax:
Maximum pivot tolerance for the linear solver MA57.
Ipopt may increase pivtol as high as ma57_pivtolmax to get a more accurate solution
to the linear system. This option is only available if Ipopt has been compiled with
MA57. The valid range for this real option is 0 < ma57_pivtolmax < 1 and its
default value is 0.0001.
ma57_pre_alloc:
Safety factor for work space memory allocation for the linear solver MA57.
If 1 is chosen, the suggested amount of work space is used. However, choosing a larger
number might avoid reallocation if the suggest values do not suffice. This option
is only available if Ipopt has been compiled with MA57. The valid range
for this real option is 1 ≤ ma57_pre_alloc < +inf and its default value is
1.05.
ma57_small_pivot_flag:
If set to 1, then when small entries defined by CNTL(2) are detected
they are removed and the corresponding pivots placed at the end of the
factorization. This can be particularly efficient if the matrix is highly rank deficient.
This is ICNTL(16) in MA57. The valid range for this integer option is
0 ≤ ma57_small_pivot_flag ≤ 1 and its default value is 0.
ma77_buffer_lpage:
Number of scalars per MA77 buffer page
Number of scalars per an in-core buffer in the out-of-core solver MA77.
Must be at most ma77_file_size. The valid range for this integer option is
1 ≤ ma77_buffer_lpage < +inf and its default value is 4096.
ma77_buffer_npage:
Number of pages that make up MA77 buffer
Number of pages of size buffer_lpage that exist in-core for the out-of-core solver
MA77. The valid range for this integer option is 1 ≤ ma77_buffer_npage < +inf
and its default value is 1600.
ma77_file_size:
Target size of each temporary file for MA77, scalars per type
MA77 uses many temporary files, this option controls the size of each one. It is
measured in the number of entries (int or double), NOT bytes. The valid range for
this integer option is 1 ≤ ma77_file_size < +inf and its default value is
2097152.
ma77_maxstore:
Maximum storage size for MA77 in-core mode
If greater than zero, the maximum size of factors stored in core before out-of-core mode
is invoked. The valid range for this integer option is 0 ≤ ma77_maxstore < +inf and
its default value is 0.
ma77_nemin:
Node Amalgamation parameter
Two nodes in elimination tree are merged if result has fewer than ma77_nemin
variables. The valid range for this integer option is 1 ≤ ma77_nemin < +inf and its
default value is 8.
ma77_order:
Controls type of ordering used by HSL_MA77
This option controls ordering for the solver HSL_MA77. The default value for this
string option is ”metis”.
Possible values:
ma77_print_level:
Debug printing level for the linear solver MA77
The valid range for this integer option is -inf < ma77_print_level < +inf and its
default value is -1.
ma77_small:
Zero Pivot Threshold
Any pivot less than ma77_small is treated as zero. The valid range for this real
option is 0 ≤ ma77_small < +inf and its default value is 1 ⋅ 10-20.
ma77_static:
Static Pivoting Threshold
See MA77 documentation. Either ma77_static=0.0 or ma77_static¿ma77_small.
ma77_static=0.0 disables static pivoting. The valid range for this real option is
0 ≤ ma77_static < +inf and its default value is 0.
ma77_u:
Pivoting Threshold
See MA77 documentation. The valid range for this real option is 0 ≤ ma77_u ≤ 0.5
and its default value is 1 ⋅ 10-08.
ma77_umax:
Maximum Pivoting Threshold
Maximum value to which u will be increased to improve quality. The valid
range for this real option is 0 ≤ ma77_umax ≤ 0.5 and its default value is
0.0001.
ma86_nemin:
Node Amalgamation parameter
Two nodes in elimination tree are merged if result has fewer than ma86_nemin
variables. The valid range for this integer option is 1 ≤ ma86_nemin < +inf and its
default value is 32.
ma86_order:
Controls type of ordering used by HSL_MA86
This option controls ordering for the solver HSL_MA86. The default value for this
string option is ”auto”.
Possible values:
ma86_print_level:
Debug printing level for the linear solver MA86
The valid range for this integer option is -inf < ma86_print_level < +inf and its
default value is -1.
ma86_scaling:
Controls scaling of matrix
This option controls scaling for the solver HSL_MA86. The default value for this
string option is ”mc64”.
Possible values:
ma86_small:
Zero Pivot Threshold
Any pivot less than ma86_small is treated as zero. The valid range for this real
option is 0 ≤ ma86_small < +inf and its default value is 1 ⋅ 10-20.
ma86_static:
Static Pivoting Threshold
See MA86 documentation. Either ma86_static=0.0 or ma86_static¿ma86_small.
ma86_static=0.0 disables static pivoting. The valid range for this real option is
0 ≤ ma86_static < +inf and its default value is 0.
ma86_u:
Pivoting Threshold
See MA86 documentation. The valid range for this real option is 0 ≤ ma86_u ≤ 0.5
and its default value is 1 ⋅ 10-08.
ma86_umax:
Maximum Pivoting Threshold
Maximum value to which u will be increased to improve quality. The valid
range for this real option is 0 ≤ ma86_umax ≤ 0.5 and its default value is
0.0001.
ma97_nemin:
Node Amalgamation parameter
Two nodes in elimination tree are merged if result has fewer than ma97_nemin
variables. The valid range for this integer option is 1 ≤ ma97_nemin < +inf and its
default value is 8.
ma97_order:
Controls type of ordering used by HSL_MA97
The default value for this string option is ”auto”.
Possible values:
ma97_print_level:
Debug printing level for the linear solver MA97
The valid range for this integer option is -inf < ma97_print_level < +inf and its
default value is 0.
ma97_scaling:
Specifies strategy for scaling in HSL_MA97 linear solver
The default value for this string option is ”dynamic”.
Possible values:
ma97_scaling1:
First scaling.
If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch1.
If ma97_switch2 is triggered it is disabled. The default value for this string option is
”mc64”.
Possible values:
ma97_scaling2:
Second scaling.
If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch2.
If ma97_switch3 is triggered it is disabled. The default value for this string option is
”mc64”.
Possible values:
ma97_scaling3:
Third scaling.
If ma97_scaling=dynamic, this scaling is used according to the trigger ma97_switch3.
The default value for this string option is ”mc64”.
Possible values:
ma97_small:
Zero Pivot Threshold
Any pivot less than ma97_small is treated as zero. The valid range for this real
option is 0 ≤ ma97_small < +inf and its default value is 1 ⋅ 10-20.
ma97_solve_blas3:
Controls if blas2 or blas3 routines are used for solve
The default value for this string option is ”no”.
Possible values:
ma97_switch1:
First switch, determine when ma97_scaling1 is enabled.
If ma97_scaling=dynamic, ma97_scaling1 is enabled according to this condition. If
ma97_switch2 occurs this option is henceforth ignored. The default value for this
string option is ”od_hd_reuse”.
Possible values:
ma97_switch2:
Second switch, determine when ma97_scaling2 is enabled.
If ma97_scaling=dynamic, ma97_scaling2 is enabled according to this condition. If
ma97_switch3 occurs this option is henceforth ignored. The default value for this
string option is ”never”.
Possible values:
ma97_switch3:
Third switch, determine when ma97_scaling3 is enabled.
If ma97_scaling=dynamic, ma97_scaling3 is enabled according to this condition. The
default value for this string option is ”never”.
Possible values:
ma97_u:
Pivoting Threshold
See MA97 documentation. The valid range for this real option is 0 ≤ ma97_u ≤ 0.5
and its default value is 1 ⋅ 10-08.
ma97_umax:
Maximum Pivoting Threshold
See MA97 documentation. The valid range for this real option is 0 ≤ ma97_umax ≤ 0.5
and its default value is 0.0001.
mumps_dep_tol:
Pivot threshold for detection of linearly dependent constraints in MUMPS.
When MUMPS is used to determine linearly dependent constraints, this is
determines the threshold for a pivot to be considered zero. This is CNTL(3) in
MUMPS. The valid range for this real option is -inf < mumps_dep_tol < +inf and
its default value is 0.
mumps_mem_percent:
Percentage increase in the estimated working space for MUMPS.
In MUMPS when significant extra fill-in is caused by numerical pivoting,
larger values of mumps_mem_percent may help use the workspace more
efficiently. On the other hand, if memory requirement are too large at the
very beginning of the optimization, choosing a much smaller value for this
option, such as 5, might reduce memory requirements. The valid range for this
integer option is 0 ≤ mumps_mem_percent < +inf and its default value is
1000.
mumps_permuting_scaling:
Controls permuting and scaling in MUMPS
This is ICNTL(6) in MUMPS. The valid range for this integer option is
0 ≤ mumps_permuting_scaling ≤ 7 and its default value is 7.
mumps_pivot_order:
Controls pivot order in MUMPS
This is ICNTL(7) in MUMPS. The valid range for this integer option is
0 ≤ mumps_pivot_order ≤ 7 and its default value is 7.
mumps_pivtol:
Pivot tolerance for the linear solver MUMPS.
A smaller number pivots for sparsity, a larger number pivots for stability. This
option is only available if Ipopt has been compiled with MUMPS. The valid
range for this real option is 0 ≤ mumps_pivtol ≤ 1 and its default value is
1 ⋅ 10-06.
mumps_pivtolmax:
Maximum pivot tolerance for the linear solver MUMPS.
Ipopt may increase pivtol as high as pivtolmax to get a more accurate solution to the
linear system. This option is only available if Ipopt has been compiled with MUMPS.
The valid range for this real option is 0 ≤ mumps_pivtolmax ≤ 1 and its default
value is 0.1.
mumps_scaling:
Controls scaling in MUMPS
This is ICNTL(8) in MUMPS. The valid range for this integer option is
-2 ≤ mumps_scaling ≤ 77 and its default value is 77.
bound_relax_factor:
Factor for initial relaxation of the bounds.
Before start of the optimization, the bounds given by the user are relaxed. This
option sets the factor for this relaxation. If it is set to zero, then then bounds
relaxation is disabled. (See Eqn.(35) in implementation paper.) The valid range for
this real option is 0 ≤ bound_relax_factor < +inf and its default value is
1 ⋅ 10-08.
check_derivatives_for_naninf:
Indicates whether it is desired to check for Nan/Inf in derivative matrices
Activating this option will cause an error if an invalid number is detected in the
constraint Jacobians or the Lagrangian Hessian. If this is not activated, the
test is skipped, and the algorithm might proceed with invalid numbers and
fail. If test is activated and an invalid number is detected, the matrix is
written to output with print_level corresponding to J_MORE_DETAILED; so
beware of large output! The default value for this string option is ”no”.
Possible values:
dependency_detection_with_rhs:
Indicates if the right hand sides of the constraints should be considered during
dependency detection
The default value for this string option is ”no”.
Possible values:
dependency_detector:
Indicates which linear solver should be used to detect linearly dependent equality
constraints.
The default and available choices depend on how Ipopt has been compiled. This is
experimental and does not work well. The default value for this string option is
”none”.
Possible values:
fixed_variable_treatment:
Determines how fixed variables should be handled.
The main difference between those options is that the starting point in the
”make_constraint” case still has the fixed variables at their given values,
whereas in the case ”make_parameter” the functions are always evaluated with
the fixed values for those variables. Also, for ”relax_bounds”, the fixing
bound constraints are relaxed (according to” bound_relax_factor”). For both
”make_constraints” and ”relax_bounds”, bound multipliers are computed for the
fixed variables. The default value for this string option is ”make_parameter”.
Possible values:
hessian_constant:
Indicates whether the problem is a quadratic problem
Activating this option will cause Ipopt to ask for the Hessian of the Lagrangian
function only once from the NLP and reuse this information later. The default value
for this string option is ”no”.
Possible values:
honor_original_bounds:
Indicates whether final points should be projected into original bounds.
Ipopt might relax the bounds during the optimization (see, e.g., option
”bound_relax_factor”). This option determines whether the final point should be
projected back into the user-provide original bounds after the optimization. The
default value for this string option is ”yes”.
Possible values:
jac_c_constant:
Indicates whether all equality constraints are linear
Activating this option will cause Ipopt to ask for the Jacobian of the equality
constraints only once from the NLP and reuse this information later. The default
value for this string option is ”no”.
Possible values:
jac_d_constant:
Indicates whether all inequality constraints are linear
Activating this option will cause Ipopt to ask for the Jacobian of the inequality
constraints only once from the NLP and reuse this information later. The default
value for this string option is ”no”.
Possible values:
kappa_d:
Weight for linear damping term (to handle one-sided bounds).
(see Section 3.7 in implementation paper.) The valid range for this real option is
0 ≤ kappa_d < +inf and its default value is 1 ⋅ 10-05.
nlp_lower_bound_inf:
any bound less or equal this value will be considered -inf (i.e. not lower bounded).
The valid range for this real option is -inf < nlp_lower_bound_inf < +inf and its
default value is -1 ⋅ 10+19.
nlp_upper_bound_inf:
any bound greater or this value will be considered +inf (i.e. not upper bounded).
The valid range for this real option is -inf < nlp_upper_bound_inf < +inf and its
default value is 1 ⋅ 10+19.
num_linear_variables:
Number of linear variables
When the Hessian is approximated, it is assumed that the first num_linear_variables
variables are linear. The Hessian is then not approximated in this space. If the
get_number_of_nonlinear_variables method in the TNLP is implemented, this option is
ignored. The valid range for this integer option is 0 ≤ num_linear_variables < +inf
and its default value is 0.
nlp_scaling_constr_target_gradient:
Target value for constraint function gradient size.
If a positive number is chosen, the scaling factor the constraint functions is computed
so that the gradient has the max norm of the given size at the starting point. This
overrides nlp_scaling_max_gradient for the constraint functions. The valid range for
this real option is 0 ≤ nlp_scaling_constr_target_gradient < +inf and its default
value is 0.
nlp_scaling_max_gradient:
Maximum gradient after NLP scaling.
This is the gradient scaling cut-off. If the maximum gradient is above this
value, then gradient based scaling will be performed. Scaling parameters are
calculated to scale the maximum gradient back to this value. (This is g_max in
Section 3.8 of the implementation paper.) Note: This option is only used if
”nlp_scaling_method” is chosen as ”gradient-based”. The valid range for this real
option is 0 < nlp_scaling_max_gradient < +inf and its default value is
100.
nlp_scaling_method:
Select the technique used for scaling the NLP.
Selects the technique used for scaling the problem internally before it is solved. For
user-scaling, the parameters come from the NLP. If you are using AMPL, they can be
specified through suffixes (”scaling_factor”) The default value for this string option is
”gradient-based”.
Possible values:
nlp_scaling_min_value:
Minimum value of gradient-based scaling values.
This is the lower bound for the scaling factors computed by gradient-based scaling
method. If some derivatives of some functions are huge, the scaling factors will
otherwise become very small, and the (unscaled) final constraint violation,
for example, might then be significant. Note: This option is only used if
”nlp_scaling_method” is chosen as ”gradient-based”. The valid range for this
real option is 0 ≤ nlp_scaling_min_value < +inf and its default value is
1 ⋅ 10-08.
nlp_scaling_obj_target_gradient:
Target value for objective function gradient size.
If a positive number is chosen, the scaling factor the objective function is computed
so that the gradient has the max norm of the given size at the starting point. This
overrides nlp_scaling_max_gradient for the objective function. The valid range for
this real option is 0 ≤ nlp_scaling_obj_target_gradient < +inf and its default value
is 0.
obj_scaling_factor:
Scaling factor for the objective function.
This option sets a scaling factor for the objective function. The scaling is seen
internally by Ipopt but the unscaled objective is reported in the console output. If
additional scaling parameters are computed (e.g. user-scaling or gradient-based),
both factors are multiplied. If this value is chosen to be negative, Ipopt will maximize
the objective function instead of minimizing it. The valid range for this
real option is -inf < obj_scaling_factor < +inf and its default value is
1.
file_print_level:
Verbosity level for output file.
NOTE: This option only works when read from the ipopt.opt options file! Determines
the verbosity level for the file specified by ”output_file”. By default it is the same as
”print_level”. The valid range for this integer option is 0 ≤ file_print_level ≤ 12 and
its default value is 5.
inf_pr_output:
Determines what value is printed in the ”inf_pr” output column.
Ipopt works with a reformulation of the original problem, where slacks are introduced
and the problem might have been scaled. The choice ”internal” prints out the
constraint violation of this formulation. With ”original” the true constraint violation
in the original NLP is printed. The default value for this string option is ”original”.
Possible values:
option_file_name:
File name of options file (to overwrite default).
By default, the name of the Ipopt options file is ”ipopt.opt” - or something else
if specified in the IpoptApplication::Initialize call. If this option is set by
SetStringValue BEFORE the options file is read, it specifies the name of the options
file. It does not make any sense to specify this option within the options file. The
default value for this string option is ””.
Possible values:
output_file:
File name of desired output file (leave unset for no file output).
NOTE: This option only works when read from the ipopt.opt options file! An output
file with this name will be written (leave unset for no file output). The verbosity level
is by default set to ”print_level”, but can be overridden with ”file_print_level”. The
file name is changed to use only small letters. The default value for this string option
is ””.
Possible values:
print_frequency_iter:
Determines at which iteration frequency the summarizing iteration output line
should be printed.
Summarizing iteration output is printed every print_frequency_iter iterations, if at
least print_frequency_time seconds have passed since last output. The valid range for
this integer option is 1 ≤ print_frequency_iter < +inf and its default value is
1.
print_frequency_time:
Determines at which time frequency the summarizing iteration output line should
be printed.
Summarizing iteration output is printed if at least print_frequency_time seconds have
passed since last output and the iteration number is a multiple of print_frequency_iter.
The valid range for this real option is 0 ≤ print_frequency_time < +inf and its
default value is 0.
print_info_string:
Enables printing of additional info string at end of iteration output.
This string contains some insider information about the current iteration. For details,
look for ”Diagnostic Tags” in the Ipopt documentation. The default value for this
string option is ”no”.
Possible values:
print_level:
Output verbosity level.
Sets the default verbosity level for console output. The larger this value the more
detailed is the output. The valid range for this integer option is 0 ≤ print_level ≤ 12
and its default value is 5.
print_options_documentation:
Switch to print all algorithmic options.
If selected, the algorithm will print the list of all available algorithmic options with
some documentation before solving the optimization problem. The default value for
this string option is ”no”.
Possible values:
print_timing_statistics:
Switch to print timing statistics.
If selected, the program will print the CPU usage (user time) for selected tasks. The
default value for this string option is ”no”.
Possible values:
print_user_options:
Print all options set by the user.
If selected, the algorithm will print the list of all options set by the user including
their values and whether they have been used. In some cases this information might
be incorrect, due to the internal program flow. The default value for this string
option is ”no”.
Possible values:
replace_bounds:
Indicates if all variable bounds should be replaced by inequality constraints
This option must be set for the inexact algorithm The default value for this string
option is ”no”.
Possible values:
skip_finalize_solution_call:
Indicates if call to NLP::FinalizeSolution after optimization should be suppressed
In some Ipopt applications, the user might want to call the FinalizeSolution method
separately. Setting this option to ”yes” will cause the IpoptApplication object to
suppress the default call to that method. The default value for this string option is
”no”.
Possible values:
pardiso_iter_coarse_size:
Maximum Size of Coarse Grid Matrix
DPARM(3) The valid range for this integer option is 1 ≤ pardiso_iter_coarse_size < +inf
and its default value is 5000.
pardiso_iter_dropping_factor:
dropping value for incomplete factor
DPARM(5) The valid range for this real option is 0 < pardiso_iter_dropping_factor < 1
and its default value is 0.5.
pardiso_iter_dropping_schur:
dropping value for sparsify schur complement factor
DPARM(6) The valid range for this real option is 0 < pardiso_iter_dropping_schur < 1
and its default value is 0.1.
pardiso_iter_inverse_norm_factor:
DPARM(8) The valid range for this real option is 1 < pardiso_iter_inverse_norm_factor < +inf
and its default value is 5 ⋅ 10+06.
pardiso_iter_max_levels:
Maximum Size of Grid Levels
DPARM(4) The valid range for this integer option is 1 ≤ pardiso_iter_max_levels < +inf
and its default value is 10.
pardiso_iter_max_row_fill:
max fill for each row
DPARM(7) The valid range for this integer option is 1 ≤ pardiso_iter_max_row_fill < +inf
and its default value is 10000000.
pardiso_iter_relative_tol:
Relative Residual Convergence
DPARM(2) The valid range for this real option is 0 < pardiso_iter_relative_tol < 1
and its default value is 1 ⋅ 10-06.
pardiso_iterative:
Switch on iterative solver in Pardiso library
The default value for this string option is ”no”.
Possible values:
pardiso_matching_strategy:
Matching strategy to be used by Pardiso
This is IPAR(13) in Pardiso manual. This option is only available if Ipopt has been
compiled with Pardiso. The default value for this string option is ”complete+2x2”.
Possible values:
pardiso_max_droptol_corrections:
Maximal number of decreases of drop tolerance during one solve.
This is relevant only for iterative Pardiso options. The valid range for this integer
option is 1 ≤ pardiso_max_droptol_corrections < +inf and its default value is
4.
pardiso_max_iter:
Maximum number of Krylov-Subspace Iteration
DPARM(1) The valid range for this integer option is 1 ≤ pardiso_max_iter < +inf
and its default value is 500.
pardiso_msglvl:
Pardiso message level
This determines the amount of analysis output from the Pardiso solver. This is
MSGLVL in the Pardiso manual. The valid range for this integer option is
0 ≤ pardiso_msglvl < +inf and its default value is 0.
pardiso_out_of_core_power:
Enables out-of-core variant of Pardiso
Setting this option to a positive integer k makes Pardiso work in the out-of-core variant
where the factor is split in 2 subdomains. This is IPARM(50) in the Pardiso
manual. This option is only available if Ipopt has been compiled with Pardiso. The
valid range for this integer option is 0 ≤ pardiso_out_of_core_power < +inf and its
default value is 0.
pardiso_redo_symbolic_fact_only_if_inertia_wrong:
Toggle for handling case when elements were perturbed by Pardiso.
This option is only available if Ipopt has been compiled with Pardiso. The default
value for this string option is ”no”.
Possible values:
pardiso_repeated_perturbation_means_singular:
Interpretation of perturbed elements.
This option is only available if Ipopt has been compiled with Pardiso. The default
value for this string option is ”no”.
Possible values:
pardiso_skip_inertia_check:
Always pretend inertia is correct.
Setting this option to ”yes” essentially disables inertia check. This option makes the
algorithm non-robust and easily fail, but it might give some insight into the
necessity of inertia control. The default value for this string option is ”no”.
Possible values:
bound_mult_reset_threshold:
Threshold for resetting bound multipliers after the restoration phase.
After returning from the restoration phase, the bound multipliers are updated with a
Newton step for complementarity. Here, the change in the primal variables during the
entire restoration phase is taken to be the corresponding primal Newton step.
However, if after the update the largest bound multiplier exceeds the threshold
specified by this option, the multipliers are all reset to 1. The valid range for this real
option is 0 ≤ bound_mult_reset_threshold < +inf and its default value is
1000.
constr_mult_reset_threshold:
Threshold for resetting equality and inequality multipliers after restoration phase.
After returning from the restoration phase, the constraint multipliers are
recomputed by a least square estimate. This option triggers when those
least-square estimates should be ignored. The valid range for this real option is
0 ≤ constr_mult_reset_threshold < +inf and its default value is 0.
evaluate_orig_obj_at_resto_trial:
Determines if the original objective function should be evaluated at restoration
phase trial points.
Setting this option to ”yes” makes the restoration phase algorithm evaluate the
objective function of the original problem at every trial point encountered during the
restoration phase, even if this value is not required. In this way, it is guaranteed that
the original objective function can be evaluated without error at all accepted iterates;
otherwise the algorithm might fail at a point where the restoration phase accepts an
iterate that is good for the restoration phase problem, but not the original
problem. On the other hand, if the evaluation of the original objective is
expensive, this might be costly. The default value for this string option is ”yes”.
Possible values:
expect_infeasible_problem:
Enable heuristics to quickly detect an infeasible problem.
This options is meant to activate heuristics that may speed up the infeasibility
determination if you expect that there is a good chance for the problem to be
infeasible. In the filter line search procedure, the restoration phase is called more
quickly than usually, and more reduction in the constraint violation is enforced
before the restoration phase is left. If the problem is square, this option
is enabled automatically. The default value for this string option is ”no”.
Possible values:
expect_infeasible_problem_ctol:
Threshold for disabling ”expect_infeasible_problem” option.
If the constraint violation becomes smaller than this threshold, the
”expect_infeasible_problem” heuristics in the filter line search are disabled. If
the problem is square, this options is set to 0. The valid range for this real
option is 0 ≤ expect_infeasible_problem_ctol < +inf and its default value is
0.001.
expect_infeasible_problem_ytol:
Multiplier threshold for activating ”expect_infeasible_problem” option.
If the max norm of the constraint multipliers becomes larger than this value and
”expect_infeasible_problem” is chosen, then the restoration phase is entered. The
valid range for this real option is 0 < expect_infeasible_problem_ytol < +inf and
its default value is 1 ⋅ 10+08.
max_resto_iter:
Maximum number of successive iterations in restoration phase.
The algorithm terminates with an error message if the number of iterations
successively taken in the restoration phase exceeds this number. The valid range for
this integer option is 0 ≤ max_resto_iter < +inf and its default value is
3000000.
max_soft_resto_iters:
Maximum number of iterations performed successively in soft restoration phase.
If the soft restoration phase is performed for more than so many iterations
in a row, the regular restoration phase is called. The valid range for this
integer option is 0 ≤ max_soft_resto_iters < +inf and its default value is
10.
required_infeasibility_reduction:
Required reduction of infeasibility before leaving restoration phase.
The restoration phase algorithm is performed, until a point is found that is
acceptable to the filter and the infeasibility has been reduced by at least
the fraction given by this option. The valid range for this real option is
0 ≤ required_infeasibility_reduction < 1 and its default value is 0.9.
resto_failure_feasibility_threshold:
Threshold for primal infeasibility to declare failure of restoration phase.
If the restoration phase is terminated because of the ”acceptable” termination
criteria and the primal infeasibility is smaller than this value, the restoration
phase is declared to have failed. The default value is 1e2*tol, where tol is
the general termination tolerance. The valid range for this real option is
0 ≤ resto_failure_feasibility_threshold < +inf and its default value is
0.
resto_penalty_parameter:
Penalty parameter in the restoration phase objective function.
This is the parameter rho in equation (31a) in the Ipopt implementation paper. The
valid range for this real option is 0 < resto_penalty_parameter < +inf and its
default value is 1000.
resto_proximity_weight:
Weighting factor for the proximity term in restoration phase objective.
This determines how the parameter zera in equation (29a) in the implementation
paper is computed. zeta here is resto_proximity_weight*sqrt(mu), where
mu is the current barrier parameter. The valid range for this real option is
0 ≤ resto_proximity_weight < +inf and its default value is 1.
soft_resto_pderror_reduction_factor:
Required reduction in primal-dual error in the soft restoration phase.
The soft restoration phase attempts to reduce the primal-dual error with
regular steps. If the damped primal-dual step (damped only to satisfy the
fraction-to-the-boundary rule) is not decreasing the primal-dual error by at least
this factor, then the regular restoration phase is called. Choosing ”0” here
disables the soft restoration phase. The valid range for this real option is
0 ≤ soft_resto_pderror_reduction_factor < +inf and its default value is
0.9999.
start_with_resto:
Tells algorithm to switch to restoration phase in first iteration.
Setting this option to ”yes” forces the algorithm to switch to the feasibility
restoration phase in the first iteration. If the initial point is feasible, the algorithm
will abort with a failure. The default value for this string option is ”no”.
Possible values:
fast_step_computation:
Indicates if the linear system should be solved quickly.
If set to yes, the algorithm assumes that the linear system that is solved to obtain the
search direction, is solved sufficiently well. In that case, no residuals are computed,
and the computation of the search direction is a little faster. The default value for
this string option is ”no”.
Possible values:
first_hessian_perturbation:
Size of first x-s perturbation tried.
The first value tried for the x-s perturbation in the inertia correction scheme.(This is
delta_0 in the implementation paper.) The valid range for this real option is
0 < first_hessian_perturbation < +inf and its default value is 0.0001.
jacobian_regularization_exponent:
Exponent for mu in the regularization for rank-deficient constraint Jacobians.
(This is kappa_c in the implementation paper.) The valid range for this real option is
0 ≤ jacobian_regularization_exponent < +inf and its default value is
0.25.
jacobian_regularization_value:
Size of the regularization for rank-deficient constraint Jacobians.
(This is bar delta_c in the implementation paper.) The valid range for this real
option is 0 ≤ jacobian_regularization_value < +inf and its default value is
1 ⋅ 10-08.
max_hessian_perturbation:
Maximum value of regularization parameter for handling negative curvature.
In order to guarantee that the search directions are indeed proper descent directions,
Ipopt requires that the inertia of the (augmented) linear system for the step
computation has the correct number of negative and positive eigenvalues. The idea is
that this guides the algorithm away from maximizers and makes Ipopt more likely
converge to first order optimal points that are minimizers. If the inertia is not
correct, a multiple of the identity matrix is added to the Hessian of the Lagrangian in
the augmented system. This parameter gives the maximum value of the
regularization parameter. If a regularization of that size is not enough, the
algorithm skips this iteration and goes to the restoration phase. (This is
delta_wax in the implementation paper.) The valid range for this real
option is 0 < max_hessian_perturbation < +inf and its default value is
1 ⋅ 10+20.
max_refinement_steps:
Maximum number of iterative refinement steps per linear system solve.
Iterative refinement (on the full unsymmetric system) is performed for each right
hand side. This option determines the maximum number of iterative refinement
steps. The valid range for this integer option is 0 ≤ max_refinement_steps < +inf
and its default value is 10.
mehrotra_algorithm:
Indicates if we want to do Mehrotra’s algorithm.
If set to yes, Ipopt runs as Mehrotra’s predictor-corrector algorithm. This works
usually very well for LPs and convex QPs. This automatically disables the line
search, and chooses the (unglobalized) adaptive mu strategy with the ”probing”
oracle, and uses ”corrector_type=affine” without any safeguards; you should not set
any of those options explicitly in addition. Also, unless otherwise specified, the values
of ”bound_push”, ”bound_frac”, and ”bound_mult_init_val” are set more aggressive,
and sets ”alpha_for_y=bound_mult”. The default value for this string option is ”no”.
Possible values:
min_hessian_perturbation:
Smallest perturbation of the Hessian block.
The size of the perturbation of the Hessian block is never selected smaller than this
value, unless no perturbation is necessary. (This is delta_win in implementation
paper.) The valid range for this real option is 0 ≤ min_hessian_perturbation < +inf
and its default value is 1 ⋅ 10-20.
min_refinement_steps:
Minimum number of iterative refinement steps per linear system solve.
Iterative refinement (on the full unsymmetric system) is performed for each
right hand side. This option determines the minimum number of iterative
refinements (i.e. at least ”min_refinement_steps” iterative refinement steps
are enforced per right hand side.) The valid range for this integer option is
0 ≤ min_refinement_steps < +inf and its default value is 1.
neg_curv_test_tol:
Tolerance for heuristic to ignore wrong inertia.
If positive, incorrect inertia in the augmented system is ignored, and we test if the
direction is a direction of positive curvature. This tolerance determines when
the direction is considered to be sufficiently positive. The valid range for
this real option is 0 < neg_curv_test_tol < +inf and its default value is
0.
perturb_always_cd:
Active permanent perturbation of constraint linearization.
This options makes the delta_c and delta_d perturbation be used for the
computation of every search direction. Usually, it is only used when the
iteration matrix is singular. The default value for this string option is ”no”.
Possible values:
perturb_dec_fact:
Decrease factor for x-s perturbation.
The factor by which the perturbation is decreased when a trial value is deduced from
the size of the most recent successful perturbation. (This is kappa_w in the
implementation paper.) The valid range for this real option is 0 < perturb_dec_fact < 1
and its default value is 0.333333.
perturb_inc_fact:
Increase factor for x-s perturbation.
The factor by which the perturbation is increased when a trial value was not
sufficient - this value is used for the computation of all perturbations except for the
first. (This is kappa_w in the implementation paper.) The valid range for
this real option is 1 < perturb_inc_fact < +inf and its default value is
8.
perturb_inc_fact_first:
Increase factor for x-s perturbation for very first perturbation.
The factor by which the perturbation is increased when a trial value was not
sufficient - this value is used for the computation of the very first perturbation and
allows a different value for for the first perturbation than that used for the remaining
perturbations. (This is bar_kappa_w in the implementation paper.) The valid
range for this real option is 1 < perturb_inc_fact_first < +inf and its default value
is 100.
residual_improvement_factor:
Minimal required reduction of residual test ratio in iterative refinement.
If the improvement of the residual test ratio made by one iterative refinement step is
not better than this factor, iterative refinement is aborted. The valid range for this
real option is 0 < residual_improvement_factor < +inf and its default value is
1.
residual_ratio_max:
Iterative refinement tolerance
Iterative refinement is performed until the residual test ratio is less than this
tolerance (or until ”max_refinement_steps” refinement steps are performed). The
valid range for this real option is 0 < residual_ratio_max < +inf and its default
value is 1 ⋅ 10-10.
residual_ratio_singular:
Threshold for declaring linear system singular after failed iterative refinement.
If the residual test ratio is larger than this value after failed iterative refinement, the
algorithm pretends that the linear system is singular. The valid range for this
real option is 0 < residual_ratio_singular < +inf and its default value is
1 ⋅ 10-05.
warm_start_target_mu:
Unsupported!
The valid range for this real option is -inf < warm_start_target_mu < +inf and
its default value is 0.
adaptive_mu_safeguard_factor:
The valid range for this real option is 0 ≤ adaptive_mu_safeguard_factor < +inf
and its default value is 0.
chi_cup:
LIFENG WRITES THIS.
The valid range for this real option is 0 < chi_cup < +inf and its default value is
1.5.
chi_hat:
LIFENG WRITES THIS.
The valid range for this real option is 0 < chi_hat < +inf and its default value is
2.
chi_tilde:
LIFENG WRITES THIS.
The valid range for this real option is 0 < chi_tilde < +inf and its default value is
5.
delta_y_max:
a parameter used to check if the fast direction can be used asthe line search
direction (for Chen-Goldfarb line search).
The valid range for this real option is 0 < delta_y_max < +inf and its default value
is 1 ⋅ 10+12.
epsilon_c:
LIFENG WRITES THIS.
The valid range for this real option is 0 < epsilon_c < +inf and its default value is
0.01.
eta_min:
LIFENG WRITES THIS.
The valid range for this real option is 0 < eta_min < +inf and its default value is
10.
eta_penalty:
Relaxation factor in the Armijo condition for the penalty function.
The valid range for this real option is 0 < eta_penalty < 0.5 and its default value is
1 ⋅ 10-08.
fast_des_fact:
a parameter used to check if the fast direction can be used asthe line search
direction (for Chen-Goldfarb line search).
The valid range for this real option is 0 < fast_des_fact < +inf and its default
value is 0.1.
gamma_hat:
LIFENG WRITES THIS.
The valid range for this real option is 0 < gamma_hat < +inf and its default value
is 0.04.
gamma_tilde:
LIFENG WRITES THIS.
The valid range for this real option is 0 < gamma_tilde < +inf and its default value
is 4.
kappa_x_dis:
a parameter used to check if the fast direction can be used asthe line search
direction (for Chen-Goldfarb line search).
The valid range for this real option is 0 < kappa_x_dis < +inf and its default value
is 100.
kappa_y_dis:
a parameter used to check if the fast direction can be used asthe line search
direction (for Chen-Goldfarb line search).
The valid range for this real option is 0 < kappa_y_dis < +inf and its default value
is 10000.
magic_steps:
Enables magic steps.
DOESN’T REALLY WORK YET! The default value for this string option is ”no”.
Possible values:
min_alpha_primal:
LIFENG WRITES THIS.
The valid range for this real option is 0 < min_alpha_primal < +inf and its default
value is 1 ⋅ 10-13.
mult_diverg_feasibility_tol:
tolerance for deciding if the multipliers are diverging
The valid range for this real option is 0 < mult_diverg_feasibility_tol < +inf and
its default value is 1 ⋅ 10-07.
mult_diverg_y_tol:
tolerance for deciding if the multipliers are diverging
The valid range for this real option is 0 < mult_diverg_y_tol < +inf and its default
value is 1 ⋅ 10+08.
never_use_fact_cgpen_direction:
Toggle to switch off the fast Chen-Goldfarb direction
The default value for this string option is ”no”.
Possible values:
never_use_piecewise_penalty_ls:
Toggle to switch off the piecewise penalty method
The default value for this string option is ”no”.
Possible values:
pen_des_fact:
a parameter used in penalty parameter computation (for Chen-Goldfarb line
search).
The valid range for this real option is 0 < pen_des_fact < +inf and its default value
is 0.2.
pen_init_fac:
a parameter used to choose initial penalty parameterswhen the regularized
Newton method is used.
The valid range for this real option is 0 < pen_init_fac < +inf and its default value
is 50.
pen_theta_max_fact:
Determines upper bound for constraint violation in the filter.
The algorithmic parameter theta_max is determined as theta_max_fact
times the maximum of 1 and the constraint violation at initial point. Any
point with a constraint violation larger than theta_max is unacceptable to
the filter (see Eqn. (21) in implementation paper). The valid range for this
real option is 0 < pen_theta_max_fact < +inf and its default value is
10000.
penalty_init_max:
Maximal value for the intial penalty parameter (for Chen-Goldfarb line search).
The valid range for this real option is 0 < penalty_init_max < +inf and its default
value is 100000.
penalty_init_min:
Minimal value for the intial penalty parameter for line search(for Chen-Goldfarb
line search).
The valid range for this real option is 0 < penalty_init_min < +inf and its default
value is 1.
penalty_max:
Maximal value for the penalty parameter (for Chen-Goldfarb line search).
The valid range for this real option is 0 < penalty_max < +inf and its default value
is 1 ⋅ 10+30.
penalty_update_compl_tol:
LIFENG WRITES THIS.
The valid range for this real option is 0 < penalty_update_compl_tol < +inf and its
default value is 10.
penalty_update_infeasibility_tol:
Threshold for infeasibility in penalty parameter update test.
If the new constraint violation is smaller than this tolerance, the penalty
parameter is not increased. The valid range for this real option is
0 < penalty_update_infeasibility_tol < +inf and its default value is 1 ⋅ 10-09.
piecewisepenalty_gamma_infeasi:
LIFENG WRITES THIS.
The valid range for this real option is 0 < piecewisepenalty_gamma_infeasi < +inf
and its default value is 1 ⋅ 10-13.
piecewisepenalty_gamma_obj:
LIFENG WRITES THIS.
The valid range for this real option is 0 < piecewisepenalty_gamma_obj < +inf and
its default value is 1 ⋅ 10-13.
print_options_latex_mode:
Undocumented
Undocumented The default value for this string option is ”no”.
Possible values:
suppress_all_output:
Undocumented
Undocumented The default value for this string option is ”no”.
Possible values:
theta_min:
LIFENG WRITES THIS.
The valid range for this real option is 0 < theta_min < +inf and its default value is
1 ⋅ 10-06.
vartheta:
a parameter used to check if the fast direction can be used asthe line search
direction (for Chen-Goldfarb line search).
The valid range for this real option is 0 < vartheta < +inf and its default value is
0.5.
wsmp_iterative:
Switches to iterative solver in WSMP.
EXPERIMENTAL! The default value for this string option is ”no”.
Possible values:
warm_start_bound_frac:
same as bound_frac for the regular initializer.
The valid range for this real option is 0 < warm_start_bound_frac ≤ 0.5 and its
default value is 0.001.
warm_start_bound_push:
same as bound_push for the regular initializer.
The valid range for this real option is 0 < warm_start_bound_push < +inf and its
default value is 0.001.
warm_start_entire_iterate:
Tells algorithm whether to use the GetWarmStartIterate method in the NLP.
The default value for this string option is ”no”.
Possible values:
warm_start_init_point:
Warm-start for initial point
Indicates whether this optimization should use a warm start initialization,
where values of primal and dual variables are given (e.g., from a previous
optimization of a related problem.) The default value for this string option is ”no”.
Possible values:
warm_start_mult_bound_push:
same as mult_bound_push for the regular initializer.
The valid range for this real option is 0 < warm_start_mult_bound_push < +inf
and its default value is 0.001.
warm_start_mult_init_max:
Maximum initial value for the equality multipliers.
The valid range for this real option is -inf < warm_start_mult_init_max < +inf
and its default value is 1 ⋅ 10+06.
warm_start_same_structure:
Indicates whether a problem with a structure identical to the previous one is to
be solved.
If ”yes” is chosen, then the algorithm assumes that an NLP is now to be solved,
whose structure is identical to one that already was considered (with the same NLP
object). The default value for this string option is ”no”.
Possible values:
warm_start_slack_bound_frac:
same as slack_bound_frac for the regular initializer.
The valid range for this real option is 0 < warm_start_slack_bound_frac ≤ 0.5 and
its default value is 0.001.
warm_start_slack_bound_push:
same as slack_bound_push for the regular initializer.
The valid range for this real option is 0 < warm_start_slack_bound_push < +inf
and its default value is 0.001.