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), f(x), subject to some non-linear constraints:

ci(x)=0,i=1,...,kci(x)0,i=k+1,...,m

where the objective and constraint functions are all n-dimensional.

Several facts are worth noting about problem formulation:

  1. To maximise some function g(x) we would minimise the objective f(x)=g(x).

  2. To constrain the solution such that h(x)=a we would apply the constraint h(x)a=0.

  3. To constrain the solution such that h(x)a we would apply the constraint h(x)a0.

  4. To constrain the solution such that h(x)0 we would apply the constraint h(x)0.

  5. To constrain the solution such that h(x)a we would apply the constraint ah(x)0.

The Lagrangian

VMCON is an augmented Lagrangian solver which means it uses the Lagrange multipliers, λ, of some solution to characterise the quality of the solution.

Of specific note is the Lagrangian function:

L(x,λ)=f(x)i=1mλici(x)

and the derivative of the Lagrangian function, with respect to x:

(1)XL(x,λ)=f(x)i=1mλici(x)

Initialisation of VMCON

VMCON is initialised with:

  • The objective function to minimise, f(x), as described above.

  • The constraints ci(x),i=1,...,m, as described above.

  • An initial sample point x0.

  • B: the initial Hessian approximation matrix, usually the identity matrix.

  • ϵ: the “user-supplied error tolerance”.

It should be noted that B will need to be of dimension d×d where d=max(n,m).

We also set the iteration number to 1, j=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 δj which is a vector upon which xj will lay. Solving the QPP also provides the Lagrange multipliers, λj.

The quadratic program to be minimised on iteration j is:

Q(δ)=f(xj1)+δTf(xj1)+12δTBδ

subject to

ci(xj1)Tδ+ci(xj1)=0,i=1,...,kci(xj1)Tδ+ci(xj1)0,i=k+1,...,m

The Convergence Test

The convergence test is performed on the j’th iteration after the QSP. The convergence test is the sum of two terms:

  • 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:

|f(xj1)Tδj|+i=1m|λj,ici(xj1)|<ϵ

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 B:

ξ=xjxj1
γ=XL(xj,λj)XL(xj1,λj)

which is calculated using (1).

Since we have a constrained problem, we define a further quantity:

η=θγ+(1θ)Bξ

where

θ={1,if ξTγ0.2ξTBξ0.8ξTBξξTBξξTγ,otherwise

The definition of η ensures B remains positive semi-definite, which is a prereqesite to solving the QSP.

We can then perform the BFGS update:

BNEW=BBξξTBξTBξ+ηηTξTη

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.

Yes
No
Initialisation of VMCON
j = 1
The Quadratic Programming Problem (Lagrange multipliers and search direction)
Convergence criterion met?
Exit
Line search (next evaluation point)
BFGS update
j = j + 1