Additionally, we derive a number of results which help in the efficient numerical implementation of this theory. These include methods for refining the discretization mesh, formulas for computing estimates of integration errors and errors of numerical solutions obtained for optimal control problems, and a method for dealing with oscillations that arise in the numerical solution of singular optimal control problems. These results are of great practical importance in solving optimal control problems.
We also present, and prove convergence results for, a family of numerical optimization algorithm for solving a class of optimization problems that arise from the discretization of optimal control problems with control bounds. This family of algorithms is based upon a projection operator and a decomposition of search directions into two parts: one part for the unconstrained subspace and another for the constrained subspace. This decomposition allows the correct active constraint set to be rapidly identified and the rate of convergence properties associated with an appropriate unconstrained search direction, such as those produced by a limited memory quasi-Newton or conjugate-gradient method, to be realized for the constrained problem. The algorithm is extremely efficient and can readily solve problems involving thousands of decision variables. A manual for RIOTS is included.
The theory we have developed provides the foundation for our software package RIOTS. This is a group of programs and utilities, written mostly in C and designed as a toolbox for Matlab, that provides an interactive environment for solving a very broad class of optimal control problems. A manual describing the use and operation of RIOTS is included in this dissertation. We believe RIOTS to be one of the most accurate and efficient programs currently available for solving optimal control problems.
It is shown that in solving discrete time optimal control problems that result from Runge-Kutta integration, a non-Euclidean inner product and norm must be used on the control space to avoid potentially serious ill-conditioning effects.