
SOS^{®} Details
Optimal Control Capability
The SOS software provides a generalpurpose tool for solving optimal control problems.
However, it is much more than just a sparse nonlinear programming package! Unique
features include:

Automatic Mesh Refinement – Mesh points and discretization method are automatically
chosen to satisfy userspecified solution accuracy.

Alternative Discretization – Ten different discretization methods are available
including Euler, Trapezoidal, Explicit RungeKutta, HermiteSimpson, Linear multistep,
and analytic propagation.

Spline Solution – The optimal solution (state and control) are represented as cubic
Bsplines, for easy interpolation and plotting.

Direct Method – It is not necessary to derive adjoint equations for most applications.

Indirect Method – If adjoint equations are available, SOS can be used to solve the
(multipoint) boundary value problem.

Path Equality and Inequality Constraints – SOS accommodates general path constraints
and does not require an apriori guess for constrained subarcs.

Automatic Sparsity Determination – The user does not need to define Jacobian and Hessian
sparsity.

RightHand Side Sparsity – The sparsity of the userspecified differential (and
algebraic) equations is automatically computed. This permits applications with hundreds
of ODEs, including applications defined by partial differential equations.

Sparse Finite Difference Derivatives – SOS automatically constructs the first and
second derivatives for the user's application.

Flexible Application Interface – User provides software to evaluate the differential
equations, path constraints and boundary conditions. SOS does the rest!

Multiple Phases – SOS can be applied to applications with multiple phases and/or paths.

Diverse Applicability – SOS has been successfully applied to problems in
 Aerospace trajectory design.
 Robot and machine tool path design.
 Chemical process control.
 Distributed parameter control of partial differential equations (PDEs).
 Chaotic differential equations.
 Delay differential equations.

SOS has been fully integrated with the Aerospace Trajectory Optimization Software (ASTOS)
and the general purpose optimal control software with graphical user interface GESOP

Nonlinear Parameter Estimation – permits solution of "inverse problems" involving
measurement data at discrete time points. Its applications include
 Orbit determination
 Trajectory Reconstruction
Nonlinear Programming Capability
The key computational kernels of the SOS library are the sparse nonlinear programming
algorithms SNLPMN and SBRNLP. For optimal control applications SNLPMN and SBRNLP are fully
integrated with the SOS software and are transparent to the control practitioner.
However, it is also possible to use SNLPMN and SBRNLP independently for applications other
than optimal control. The SNLPMN software implements a stateoftheart sequential
quadratic programming (SQP) method, using an augmented Lagrangian merit function and
safeguarded line search. SNLPMN can accommodate nonlinear equality and inequality
constraints, as well as simple bounds. The SBRNLP software implements a sparse primaldual
interior point algorithm, in conjunction with a filter method for globalization. The
outstanding performance of the software in benchmark tests has been documented. The
package supports four different levels of functionality.
Sparse NLP
Provides generalpurpose constrained optimization capability for very large applications.
Unique features include:

Sparse Quadratic Programming – SchurComplement QP Method needs only one sparse matrix
factorization, even with active set changes!

PrimalDual interior point method efficient even with many inequality constraints.

Sparse Linear Algebra – Multifrontal solution of symmetric indefinite systems with
pivoting for stability.

Arbitrary Jacobian and Hessian Sparsity – Not restricted to block diagonal or other
special form.

Quadratic Convergence – Efficient solution for very large problems. How large?
 Variables 500,000
 Constraints 500,000

No Restriction on Degrees of Freedom. Unlike reduced Hessian methods, SNLPMN and BARNLP
converge efficiently when the final active set is small or large.

Reverse Communication Format – Permits analytic and/or finite difference gradients.
Sparse Least Squares
Provides nonlinearly constrained least squares capability with all of the features of the
general sparse NLP. Unique features include:

Numerically Stable Solution – Augmented QP format avoids formation of the normal matrix.

Linear Least Squares – Special option for linearly constrained (e.g., data fitting)
applications.
Dense NLP – Simplified Usage
Provides generalpurpose constrained optimization capability for small to moderate size
applications with limited user requirements. Its features include:

User Supplies Function Box – SNLPMN or SBRNLP does the rest!

Hessian Options – QuasiNewton (SR1, BFGS, SSQN) and finite difference Newton.

Finite Difference Jacobian/gradient.
Dense NLP – Sophisticated Usage
Provides generalpurpose constrained optimization capability for small to moderate size
applications with more complex interface requirements. In addition to capabilities of the
simplified usage version, it uses a Reverse Communication Format that permits the user to
supply Jacobian and optionally Hessian information.
Sparse Finite Difference Derivatives
In addition to the optimization tools, this package provides a collection of tools for
computing first and second derivatives (Jacobian and Hessian) for sparse matrices. Unique
features include:

Number of perturbations much smaller than number of variables!

Jacobian/Hessian Evaluation – These procedures compute first and second derivative
information using sparse differences.

Index Set Construction – Given matrix sparsity, this procedure determines how to group
the variables for efficient differentiation.
Minimum Curvature Data Approximation
Multivariate tabular data can be approximated using tensor product spline functions. The
software computes spline coefficients to:

minimize the "wiggles" (curvature)

interpolate and/or approximate table data
The software is fully integrated with the sparse nonlinear programming algorithms.
