The Sequential Quadratic Programming Solver

Conditions of Optimality

To facilitate discussion of the optimality conditions, we present the notation to be used for easy reference:

m
number of general nonlinear constraints, which include the linear constraints but not the bound constraints
n
dimension of x, i.e., the number of decision variables
x
iterate, i.e., the vector of n decision variables
f(x)
objective function
\nabla\!f(x)
gradient of the objective function
\nabla^2\!f(x)
Hessian matrix of the objective function
\lambda
Lagrange multiplier vector, \lambda\in{\mathbb r}^m
l(x,\lambda)
Lagrangian function of constrained problems
\nabla\!_x l(x,\lambda)
gradient of the Lagrangian function with respect to x
For x and \lambda, the superscript k is used to denote the value at the kth iteration, such as x^k, and the superscript * is used to denote their corresponding optimal values, such as \lambda^*.

We rewrite the general form of nonlinear optimization problems in the section "Overview" by grouping the equality constraints and inequality constraints. We also rewrite all the general nonlinear inequality constraints and bound constraints in one form as ``\ge'' inequality constraints. Thus we have the following:

\displaystyle\mathop{\rm minimize}_{x\in{\mathbb r}^n} & f(x) \    {\rm subjectto}& c_i(x) = 0, & i \in {\cal e} \    & c_i(x) \ge 0, & i \in {\cal i}
where \cal e is the set of indices of the equality constraints, \cal i is the set of indices of the inequality constraints, and m=|{\cal e}|+|{\cal i}|.

A point x is feasible if it satisfies all the constraints c_i(x) = 0, i\in{\cal   e}, and c_i(x) \ge 0, i\in{\cal i}. The feasible region {\cal f} consists of all the feasible points. In unconstrained cases, the feasible region {\cal f} is the entire {\mathbb r}^n space.

A feasible point x^* is a local solution of the problem if there exists a neighborhood {\cal n} of x^* such that

f(x)\ge f(x^*)\;\;{\rm forall} x\in{\cal n}\cap{\cal f}
Further, a feasible point x^* is a strict local solution if strict inequality holds in the preceding case, i.e.,
f(x) \gt f(x^*)\;\;{\rm forall} x\in{\cal n}\cap{\cal f}
A feasible point x^* is a global solution of the problem if no point in {\cal f} has a smaller function value than f(x^*), i.e.,
f(x)\ge f(x^*) \;\; {\rm for all } x\in{\cal f}

The SQP solver finds a local minimum of an optimization problem.

Unconstrained Optimization

The following conditions hold for unconstrained optimization problems:

Constrained Optimization

For constrained optimization problems, the Lagrangian function is defined as follows:
l(x,\lambda) = f(x) - \sum_{i\in{\cal e}\cup{\cal i}} \lambda_i c_i(x)
where \lambda_i,i\in{\cal e}\cup{\cal i}, are called Lagrange multipliers. \nabla\!_x l(x,\lambda) is used to denote the gradient of the Lagrangian function with respect to x, and \nabla_{\!x}^2 l(x,\lambda) is used to denote the Hessian of the Lagrangian function with respect to x. The active set at a feasible point x is defined as
{\cal a}(x)={\cal e}\cup\{i\in{\cal i}: c_i(x)=0\}

We also need the following definition before we can state the first-order and second-order necessary conditions:

We now state the theorems that are essential in the analysis and design of algorithms for constrained optimization:

Note that the set of all such z's forms the null space of matrix [\nabla\!c_i(x^*)^{\rm t} ]_{i\in{\cal a}(x*)}. Hence we can numerically check the Hessian of the Lagrangian function projected onto the null space. For a rigorous treatment of the optimality conditions, see Fletcher (1987) and Nocedal and Wright (1999).

Solver's Criteria

The SQP solver declares a solution to be optimal when all the following criteria are satisfied:

The last four points imply that the complementarity error, defined as \vert{\min (\lambda_i, c_i)}\vert, i \in {\cal i}, approaches zero as the solver progresses.

The SQP solver provides the HESCHECK option to verify that the second-order necessary conditions are also satisfied.

Previous Page | Next Page | Top of Page