One way to look at the solution process for the optimization problem
is as a solver for the necessary conditions.
These are usually a set of nonlinear
partial differential equation. It is expected that one can construct efficient
solver for such a system.
The general framework is therefore the following. We have a relaxation method for
the state, costate and design variables which is a smoother (for all).
The objective is to construct what we call a *one-shot multigrid method*.
That is, a method that solves the full optimization problem in a computation
cost which is 2-3 times that of solving the constraints. This efficiency
should be independent of the number of design variables.

A two level algorithm has the form outlined below. A multilevel version of this method is essentially a recursive application of it.

`Algorithm: Two Level `

`(1) Relax (smooth) the state, adjoint and design variables`

`(2) Accelerate convergence using a coarse grid optimization problem`

The rest of this lecture will be devoted to the one-shot multigrid methods.