Sequential linear-quadratic programming

From testwiki
Jump to navigation Jump to search

Template:Refimprove

Sequential linear-quadratic programming (SLQP) is an iterative method for nonlinear optimization problems where objective function and constraints are twice continuously differentiable. Similarly to sequential quadratic programming (SQP), SLQP proceeds by solving a sequence of optimization subproblems. The difference between the two approaches is that:

  • in SQP, each subproblem is a quadratic program, with a quadratic model of the objective subject to a linearization of the constraints
  • in SLQP, two subproblems are solved at each step: a linear program (LP) used to determine an active set, followed by an equality-constrained quadratic program (EQP) used to compute the total step

This decomposition makes SLQP suitable to large-scale optimization problems, for which efficient LP and EQP solvers are available, these problems being easier to scale than full-fledged quadratic programs.

It may be considered related to, but distinct from, quasi-Newton methods.

Algorithm basics

Consider a nonlinear programming problem of the form:

minxf(x)s.t.b(x)≥0c(x)=0.

The Lagrangian for this problem is[1]

ℒ(x,λ,σ)=f(x)−λTb(x)−σTc(x),

where λ≥0 and σ are Lagrange multipliers.

LP phase

In the LP phase of SLQP, the following linear program is solved:

mindf(xk)+∇f(xk)Tds.t.b(xk)+∇b(xk)Td≥0c(xk)+∇c(xk)Td=0.

Let 𝒜k denote the active set at the optimum dLP∗ of this problem, that is to say, the set of constraints that are equal to zero at dLP∗. Denote by b𝒜k and c𝒜k the sub-vectors of b and c corresponding to elements of 𝒜k.

EQP phase

In the EQP phase of SLQP, the search direction dk of the step is obtained by solving the following equality-constrained quadratic program:

mindf(xk)+∇f(xk)Td+12dT∇xx2ℒ(xk,λk,σk)ds.t.b𝒜k(xk)+∇b𝒜k(xk)Td=0c𝒜k(xk)+∇c𝒜k(xk)Td=0.

Note that the term f(xk) in the objective functions above may be left out for the minimization problems, since it is constant.

See also

Notes

Template:Reflist

References

Template:Optimization algorithms


Template:Mathapplied-stub