The VMCON Algorithm¶
VMCON aims to solve a nonlinearly constrained problem (general nonlinear programming problem), specifically, minimising an objective function subject to several nonlinear constraints.
The Problem¶
Also called the general non-linear programming problem, we want to minimise an objective function (figure of merit),
where the objective and constraint functions are all
Several facts are worth noting about problem formulation:
To maximise some function
we would minimise the objective .To constrain the solution such that
we would apply the constraint .To constrain the solution such that
we would apply the constraint .To constrain the solution such that
we would apply the constraint .To constrain the solution such that
we would apply the constraint .
The Lagrangian¶
VMCON is an augmented Lagrangian solver which means it uses the Lagrange multipliers,
Of specific note is the Lagrangian function:
and the derivative of the Lagrangian function, with respect to
Initialisation of VMCON¶
VMCON is initialised with:
The objective function to minimise,
, as described above.The constraints
, as described above.An initial sample point
. : the initial Hessian approximation matrix, usually the identity matrix. : the “user-supplied error tolerance”.
It should be noted that
We also set the iteration number to 1,
The Quadratic Programming Problem¶
The Quadratic Programming Probelm (QPP) will also be known as the Quadratic Sub-Problem (QSP) because it forms only a part of the VMCON algorithm–with the other half being the Augmented Lagrangian.
The QPP provides the search direction
The quadratic program to be minimised on iteration
subject to
The Convergence Test¶
The convergence test is performed on the
The predicted change in magnitude of the objective function.
The complimentary error; where the complimentary error being 0 would mean that a specific constraint is at equality or the Lagrange multipliers are 0.
This is encapsulated in the equation:
The Line Search¶
The line search helps to mitigate poor initial conditions. It does this by searching in a line along the ‘search direction’
On the
On subsequent iterations:
The line search iterates for a maximum of 10 steps and exits if the chosen value of
or the so-called Kovari condition, which was an ad-hoc break condition in the PROCESS implementation of VMCON, therefore does not appear in the paper:
Once the line search exits, we have found our optimal value and
On each iteration of the line search, we revise
The Broyden-Fletcher-Goldfarb-Shanno (BFGS) Quasi-Newton Update¶
The final stage of an iteration of the VMCON optimiser is to update the Hessian approximation via a BFGS update.
For an unconstrained problem, we use the following differences to update
which is calculated using (1).
Since we have a constrained problem, we define a further quantity:
where
The definition of
We can then perform the BFGS update:
The VMCON Algorithm¶
This page covers the mathematics and theory behind the VMCON algorithm. For completeness, the following flow diagram demonstrates how the algorithm is implemented at a high level.