Solving the QP subproblem is itself an iterative procedure, with the minor iterations of an SQP method being the iterations of the QP method. At each minor iteration, the constraints Ax - s = b are (conceptually) partitioned into the form
BxB + Sxs + NxN = b,
where the basis matrix B is
square and nonsingular. The elements of xB, xs and
xN are called the basic,
superbasic and nonbasic variables respectively;
they are a permutation of the elements of x and s.
At a QP solution, the basic and
superbasic variables will lie somewhere between their bounds, while the
nonbasic variables will be equal to one of their upper or lower bounds.
At each iteration, xs is regarded
as a set of independent variables that are free to move in any desired
direction, namely one that will improve the value of the QP
objective (or the sum of infeasibilities). The basic variables are then
adjusted in order to ensure that (x, s) continues to satisfy
Ax - s = b. The
number of superbasic variables (ns
say) therefore indicates the number of degrees of freedom remaining
after the constraints have been satisfied. In broad terms, ns is
a measure of how nonlinear the problem is. In particular, ns will always be zero for LP problems.
If it appears that no improvement can be made with the current definition
of B, S and N, a nonbasic variable is
selected to be added to S, and the process is repeated with the
value of ns increased
by one. At all stages, if a basic or superbasic variable encounters one
of its bounds, the variables is made nonbasic and the value of ns is decreased by one.
Associated with each of the m equality
constraints Ax - s = b are the dual variables
p. Similarly,
each variable in (x, s) has an associated reduced gradient dj .
The reduced gradients for the variables x are the quantities
g - ATp,
where g is the gradient of the QP
objective, and the reduced gradients for the slacks are the dual variables
p. The QP
subproblem is optimal if dj
0 for all nonbasic variables at their lower bounds, dj
0 for all nonbasic variables at their upper bounds, and dj =
0 for other variables, including superbasics. In practice, an approximate QP solution is found by relaxing these
conditions on dj
(see the Minor optimality tolerance described
in Section Description
of the optional parameters).