Subsections

## Quasi-Newton

#### 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:
• exact: Use second derivatives provided by the NLP.
• limited-memory: Perform a limited-memory quasi-Newton approximation

#### 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:
• bfgs: BFGS update (with skipping)
• sr1: SR1 (not working well)

#### 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 and its default value is .

#### 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 and its default value is .

#### 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:
• scalar1: sigma = sTy/sTs
• scalar2: sigma = yTy/sTy
• scalar3: arithmetic average of scalar1 and scalar2
• scalar4: geometric average of scalar1 and scalar2
• constant: sigma = limited_memory_init_val

#### 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 and its default value is .

#### 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 and its default value is .

#### 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 and its default value is .

#### 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:
• no: use the same update as in regular iterations
• yes: use the a special update during restoration phase