Dakota Reference Manual
Version 6.4
LargeScale Engineering Optimization and Uncertainty Analysis

Sequential Quadratic Program
This keyword is related to the topics:
Alias: none
Argument(s): none
Required/Optional  Description of Group  Dakota Keyword  Dakota Keyword Description  

Optional  verify_level  Verify the quality of analytic gradients  
Optional  function_precision  Specify the maximum precision of the analysis code responses  
Optional  linesearch_tolerance  Choose how accurately the algorithm will compute the minimum in a line search  
Optional  convergence_tolerance  Stopping criterion based on convergence of the objective function or statistics  
Optional  max_iterations  Stopping criterion based on number of iterations  
Optional  constraint_tolerance  The maximum allowable value of constraint violation still considered to be feasible  
Optional  speculative  Compute speculative gradients  
Optional  max_function_evaluations  Stopping criteria based on number of function evaluations  
Optional  scaling  Turn on scaling for variables, responses, and constraints  
Optional  linear_inequality_constraint_matrix  Define coefficients of the linear inequality constraints  
Optional  linear_inequality_lower_bounds  Define lower bounds for the linear inequality constraint  
Optional  linear_inequality_upper_bounds  Define upper bounds for the linear inequality constraint  
Optional  linear_inequality_scale_types  Specify how each linear inequality constraint is scaled  
Optional  linear_inequality_scales  Define the characteristic values to scale linear inequalities  
Optional  linear_equality_constraint_matrix  Define coefficients of the linear equalities  
Optional  linear_equality_targets  Define target values for the linear equality constraints  
Optional  linear_equality_scale_types  Specify how each linear equality constraint is scaled  
Optional  linear_equality_scales  Define the characteristic values to scale linear equalities  
Optional  model_pointer  Identifier for model block to be used by a method 
NPSOL provides an implementation of sequential quadratic programming that can be accessed with npsol_sqp
.
Stopping Criteria
The method independent controls for max_iterations
and max_function_evaluations
limit the number of major SQP iterations and the number of function evaluations that can be performed during an NPSOL optimization. The convergence_tolerance
control defines NPSOL's internal optimality tolerance which is used in evaluating if an iterate satisfies the firstorder KuhnTucker conditions for a minimum. The magnitude of convergence_tolerance
approximately specifies the number of significant digits of accuracy desired in the final objective function (e.g., convergence_tolerance
= 1.e6
will result in approximately six digits of accuracy in the final objective function). The constraint_tolerance
control defines how tightly the constraint functions are satisfied at convergence. The default value is dependent upon the machine precision of the platform in use, but is typically on the order of 1.e8
for double precision computations. Extremely small values for constraint_tolerance
may not be attainable. The output
verbosity setting controls the amount of information generated at each major SQP iteration: the silent
and quiet
settings result in only one line of diagnostic output for each major iteration and print the final optimization solution, whereas the verbose
and debug
settings add additional information on the objective function, constraints, and variables at each major iteration.
Concurrency
NPSOL is not a parallel algorithm and cannot directly take advantage of concurrent evaluations. However, if numerical_gradients
with method_source
dakota
is specified, then the finite difference function evaluations can be performed concurrently (using any of the parallel modes described in the Users Manual [5]).
An important related observation is the fact that NPSOL uses two different line searches depending on how gradients are computed. For either analytic_gradients
or numerical_gradients
with method_source
dakota
, NPSOL is placed in usersupplied gradient mode (NPSOL's "Derivative Level" is set to 3) and it uses a gradientbased line search (the assumption is that usersupplied gradients are inexpensive). On the other hand, if numerical_gradients
are selected with method_source
vendor
, then NPSOL is computing finite differences internally and it will use a valuebased line search (the assumption is that finite differencing on each line search evaluation is too expensive). The ramifications of this are: (1) performance will vary between method_source
dakota
and method_source
vendor
for numerical_gradients
, and (2) gradient speculation is unnecessary when performing optimization in parallel since the gradientbased line search in usersupplied gradient mode is already load balanced for parallel execution. Therefore, a speculative
specification will be ignored by NPSOL, and optimization with numerical gradients should select method_source
dakota
for load balanced parallel operation and method_source
vendor
for efficient serial operation.
Linear constraints
Lastly, NPSOL supports specialized handling of linear inequality and equality constraints. By specifying the coefficients and bounds of the linear inequality constraints and the coefficients and targets of the linear equality constraints, this information can be provided to NPSOL at initialization and tracked internally, removing the need for the user to provide the values of the linear constraints on every function evaluation.