Class TrustRegionInteriorPoint

java.lang.Object
de.labathome.trustconstr.TrustRegionInteriorPoint

public class TrustRegionInteriorPoint extends Object
Trust-region interior-point method.

References:

  1. Byrd, Hribar, Nocedal, "An interior point algorithm for large-scale nonlinear programming", SIAM J. Optim. 9.4 (1999): 877-900.
  2. Byrd, Liu, Nocedal, "On the local behavior of an interior point method for nonlinear programming", Numerical Analysis 1997 (1997): 37-56.
  3. Nocedal & Wright, Numerical Optimization, 2nd ed. (2006).
  • Constructor Details

    • TrustRegionInteriorPoint

      public TrustRegionInteriorPoint()
  • Method Details

    • trustRegionInteriorPoint

      public static StatefulResult trustRegionInteriorPoint(ToDoubleBiFunction<Matrix,Object> fun, BiFunction<Matrix,Object,Matrix> grad, LagrangeHessian lagrHess, int nVars, int nIneq, int nEq, Constraint constr, Jacobian jac, Matrix x0, double fun0, Matrix grad0, Matrix constrIneq0, Matrix jacIneq0, Matrix constrEq0, Matrix jacEq0, GlobalStoppingCriteria stopCrit, boolean[] enforceFeasibility, double xtol, State state, double initialBarrierParameter, double initialTolerance, double initialPenalty, double initialTrustRadius, ProjectionMethod factorizationMethod)
      Trust-region interior-point solve.

      Minimizes

         minimize    fun(x)
         subject to  constr_ineq(x) <= 0
                     constr_eq(x)   =  0
       
      using the algorithm of Byrd-Hribar-Nocedal (1999).
      Parameters:
      fun - objective (x, args) -> f(x)
      grad - gradient (x, args) -> gradf(x)
      lagrHess - Hessian-of-Lagrangian (x, vEq, vIneq) -> grad^2L(x, v)
      nVars - number of decision variables
      nIneq - number of canonical inequality rows (c(x) <= 0)
      nEq - number of canonical equality rows (c(x) = 0)
      constr - combined-constraint evaluator that returns (eq, ineq)
      jac - combined-constraint Jacobian evaluator
      x0 - starting iterate (n x 1)
      fun0 - fun(x0)
      grad0 - grad(x0)
      constrIneq0 - constr_ineq(x0) (nIneq x 1)
      jacIneq0 - inequality Jacobian at x0 (nIneq x n)
      constrEq0 - constr_eq(x0) (nEq x 1)
      jacEq0 - equality Jacobian at x0 (nEq x n)
      stopCrit - termination criterion (queried each outer iteration)
      enforceFeasibility - per-canonical-ineq flag forcing strict feasibility in the slack rows; may be null (no enforcement)
      xtol - termination tolerance on trustRadius
      state - mutable iteration state to thread through and return
      initialBarrierParameter - initial value of the log-barrier coefficient
      initialTolerance - initial inner-loop tolerance for the barrier subproblem
      initialPenalty - initial constraint penalty for the merit function
      initialTrustRadius - initial trust-region radius
      factorizationMethod - projection-Jacobian factorization method (AUGMENTED_SYSTEM / QR_FACTORIZATION / SVD_FACTORIZATION)
      Returns:
      populated StatefulResult