Skip to contents

Trust-region SLP on the l1 exact penalty (Fletcher and Sainz de la Maza 1989): the linearised penalty model is minimised over |p_i| <= Delta as an elastic LP solved exactly by a two-phase simplex with Bland's rule; steps with rho > 0.1 are accepted, Delta shrinks to ||p|| / 4 when rho < 0.25 and doubles when rho > 0.75 at the boundary, and mu grows tenfold while the limit is infeasible. Reaches vertex solutions finitely; first-order at non-vertex optima.

Usage

SequentialLinearProgramming(
  f,
  x0,
  grad = NULL,
  eq = list(),
  ineq = list(),
  eq_jac = NULL,
  ineq_jac = NULL,
  mu = 1,
  delta = 1,
  tol = 1e-08,
  max_iter = 500
)

Arguments

f

Objective.

x0

Starting point.

grad

Gradient of f (central differences when NULL).

eq, ineq

Lists of constraint functions (c(x) = 0 and c(x) >= 0).

eq_jac, ineq_jac

Functions returning constraint Jacobians (rows), or NULL.

mu

Initial penalty weight.

delta

Initial trust-region radius.

tol

KKT tolerance.

max_iter

Iteration cap.

Value

list(x, fun, violation, penalty, radius, n_iter, converged).

References

Fletcher, R. and Sainz de la Maza, E. (1989). Nonlinear programming and nonsmooth optimization by successive linear programming. Mathematical Programming 43, 235-256.

Examples

SequentialLinearProgramming(function(x) sum((x - 5)^2), c(0, 0),
  ineq = list(function(x) 1 - x[1], function(x) 2 - x[2]))$x
#> [1] 1 2