Class EqualityConstrainedSQP

java.lang.Object
de.labathome.trustconstr.EqualityConstrainedSQP

public class EqualityConstrainedSQP extends Object
Byrd-Omojokun Trust-Region SQP method
  • Constructor Details

    • EqualityConstrainedSQP

      public EqualityConstrainedSQP()
  • Method Details

    • defaultScaling

      public static final LinearOperator defaultScaling(long n)
      Default scaling: returns the n x n identity, i.e. an unscaled SQP step. Mirrors scipy's default_scaling, which returns scipy.sparse.eye(n).
      Parameters:
      n - number of decision variables
      Returns:
      a LinearOperator that ignores its input and returns the identity
    • eqSQP

      public static StatefulResult eqSQP(IFunctionAndConstraint funAndConstr, IGradientAndJacobian gradAndJac, LagrangeHessian lagrHess, Matrix x0, double fun0, Matrix grad0, Matrix constr0, Matrix jac0, StoppingCriterion stopCrit, State state, double initialPenalty, double initialTrustRadius, ProjectionMethod factorizationMethod, Matrix trustLb, Matrix trustUb, LinearOperator scaling)
      Solve a nonlinear equality-constrained problem using trust-region SQP.

      Minimizes

         minimize    fun(x)
         subject to  constr(x) = 0
       
      using the Byrd-Omojokun trust-region SQP method (Lalee, Nocedal, Plantenga, 1998). Implementation details follow Byrd-Hribar-Nocedal (1999) and Nocedal & Wright, Numerical Optimization, 2nd ed. (2006), p.549.
      Parameters:
      funAndConstr - combined evaluator returning (f(x), constr(x))
      gradAndJac - combined evaluator returning (gradf(x), gradconstr(x))
      lagrHess - Hessian-of-Lagrangian (x, v) -> grad^2L(x, v)
      x0 - starting iterate (n x 1)
      fun0 - fun(x0)
      grad0 - grad(x0)
      constr0 - constr(x0) (m x 1)
      jac0 - constraint Jacobian at x0 (m x n)
      stopCrit - termination predicate, queried each outer iteration
      state - mutable iteration state to thread through and return
      initialPenalty - initial constraint penalty for the merit function
      initialTrustRadius - initial trust-region radius
      factorizationMethod - projection-Jacobian factorization method (AUGMENTED_SYSTEM / QR_FACTORIZATION / SVD_FACTORIZATION)
      trustLb - element-wise lower bounds on the SQP step
      trustUb - element-wise upper bounds on the SQP step
      scaling - diagonal-scaling operator for the trust-region step (defaultScaling(long) for the identity)
      Returns:
      populated StatefulResult