UFO is an interactive system for universal functional
optimization that serves for solving both dense medium-size and
sparse large-scale optimization problems. The UFO system can be
used for the following applications:
- Formulation and solution of particular optimization
- Preparation of specialized optimization routines (or
- Designing and testing new optimization methods. The UFO
system is a very useful tool for optimization algorithms
The UFO system is an open software system for solving a broad
class of optimization problems. An optimization problem solution
is processed in four phases. In the first phase the optimization
problem is specified and an optimization method is selected. This
can be made in three different ways:
- Full dialogue mode. The problem specification and the
method selection are realized by using a conversation
between the user and the UFO system.
- Batch mode. The problem specification and the method
selection are realized by using the UFO control language.
An input file written in the UFO control language has to
- Combined mode. Only a part of the specification is
written in the input file. The rest of the specification
is obtained as in the dialogue mode. This possibility is
usually the best one since the problem functions can be
defined beforehand by using a convenient text editor.
The second phase is realized by using the UFO preprocessor.
This preprocessor is written in the Fortran 77 language and its
output is a Fortran 77 control program. In the third phase, the
control program is translated by using a Fortran 77 compiler and
a final program is linked by using library modules. In the fourth
phase, the final program is executed and thus results which can
be viewed by using extensive output means are obtained. A
detailed description of the UFO system is contained in research
The UFO system can be used for solving various dense or sparse
- Unconstrained or box constrained optimization.
- Optimization with general linear constraints.
- Optimization with general nonlinear constraints.
- Nonsmooth optimization.
- Global optimization.
- Solution to systems of nonlinear functional equations.
- Solution to systems of ordinary differential equations.
Moreover, the objective function can assume various forms:
- General objective function.
- Linear or quadratic objective function.
- Sum of squares (or powers) criterion.
- Minimax criterion.
- Integral criterion containing solution to ordinary
The UFO system contains optimization methods that can be
divided into the following classes:
- Heuristic methods for small-size problems. This class
contains the pattern search method and the simplex method.
- Conjugate direction methods which use no matrices. This
class contains conjugate direction methods and variable
metric methods with limited storage based on the Strang
- Variable metric methods which use an approximation of the
Hessian matrix which is updated in each iteration.
- Variable metric methods with limited storage based on
compact representations of variable metric updates.
- Variable metric methods with limited storage based on
- Modified Newton methods which use the Hessian matrix
computed either analytically or numerically.
- Truncated Newton methods based on the difference
approximation of directional derivatives.
- Modified Gauss-Newton methods for nonlinear least squares
problems which use the normal equation matrix as an
approximation of the Hessian matrix. These methods are
also realized by using the Jacobian matrix representation.
- Quasi-Newton methods for nonlinear least square problems
and nonlinear equations.
- Quasi-Newton methods with limited storage for nonlinear
least square problems and nonlinear equations.
- Quasi-Newton and Brent methods for nonlinear equations.
- Simplex type methods for linear programming problems.
- Interior point methods for linear programming problems.
- Simplex type methods for quadratic programming problems.
- Interior point methods for quadratic programming problems.
- Proximal bundle methods for nonsmooth optimization.
- Bundle-Newton methods for nonsmooth optimization.
- Variable metric bundle methods for nonsmooth optimization.
- Recursive quadratic programming methods for dense minimax
- Recursive quadratic programming methods for dense
nonlinear programming problems.
- Inexact recursive quadratic programming methods for
sparse equality constrained problems.
- Inexact interior point methods for sparse equality and
inequality constrained problems.
- Random search methods for global optimization.
- Continuation methods for global optimization. This class
contains tunneling function methods and filled function
- Clustering methods for global optimization. This class
contains a density clustering method and a single linkage
- Multi-level methods for global optimization. Thiss class
contains a multi-level single linkage clustering method
and a multi-level mode analysis method.
These methods can be realized in various forms depending on
the stepsize selection:
- Line search methods.
- General trust region methods.
- Special trust region methods for nonlinear least squares
- Modified Marquardt methods for nonlinear least squares
- SQP filter methods for nonlinear programing problems.
Moreover, various preconditioned iterative methods can be
chosen for the direction determination.
The UFO system contains useful input and output possibilities:
- The UFO control language for batch inputs.
- Text dialogue for UNIX workstations.
- Graphic dialogue for PC computers.
- Basic and extended screen output.
- Graphic screen output for PC computers.
- Text file output.
The following figure shows an example of graphic screen output: