Package: OPT++

The OPT++ library [MOHW07] contains primarily gradient-based nonlinear programming optimizers for unconstrained, bound-constrained, and nonlinearly constrained minimization: Polak-Ribiere conjugate gradient (Dakota’s optpp_cg method), quasi-Newton (Dakota’s optpp_q_newton method), finite difference Newton (Dakota’s optpp_fd_newton method), and full Newton (Dakota’s optpp_newton method).

The conjugate gradient method is strictly unconstrained, and each of the Newton-based methods are automatically bound to the appropriate OPT++ algorithm based on the user constraint specification (unconstrained, bound-constrained, or generally-constrained). In the generally-constrained case, the Newton methods use a nonlinear interior-point approach to manage the constraints. The library also contains a direct search algorithm, PDS (parallel direct search, Dakota’s optpp_pds method), which supports bound constraints.

Controls

-# max_iterations -# max_function_evaluations -# convergence_tolerance -# output -# speculative

Concurrency

OPT++’s gradient-based methods are not parallel algorithms and cannot directly take advantage of concurrent function evaluations. However, if numerical_gradients with method_source dakota is specified, a parallel Dakota configuration can utilize concurrent evaluations for the finite difference gradient computations.

Constraints

Linear constraint specifications are supported by each of the Newton methods ( optpp_newton, optpp_q_newton, optpp_fd_newton, and optpp_g_newton)

optpp_cg must be unconstrained

optpp_pds can be, at most, bound-constrained.