Package de.labathome.trustconstr
Class TrustRegionInteriorPoint
java.lang.Object
de.labathome.trustconstr.TrustRegionInteriorPoint
Trust-region interior-point method.
References:
- Byrd, Hribar, Nocedal, "An interior point algorithm for large-scale nonlinear programming", SIAM J. Optim. 9.4 (1999): 877-900.
- Byrd, Liu, Nocedal, "On the local behavior of an interior point method for nonlinear programming", Numerical Analysis 1997 (1997): 37-56.
- Nocedal & Wright, Numerical Optimization, 2nd ed. (2006).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic StatefulResulttrustRegionInteriorPoint(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.
-
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) = 0using 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 variablesnIneq- 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 evaluatorx0- starting iterate (n x 1)fun0-fun(x0)grad0-grad(x0)constrIneq0-constr_ineq(x0)(nIneq x 1)jacIneq0- inequality Jacobian atx0(nIneq x n)constrEq0-constr_eq(x0)(nEq x 1)jacEq0- equality Jacobian atx0(nEq x n)stopCrit- termination criterion (queried each outer iteration)enforceFeasibility- per-canonical-ineq flag forcing strict feasibility in the slack rows; may benull(no enforcement)xtol- termination tolerance ontrustRadiusstate- mutable iteration state to thread through and returninitialBarrierParameter- initial value of the log-barrier coefficientinitialTolerance- initial inner-loop tolerance for the barrier subprobleminitialPenalty- initial constraint penalty for the merit functioninitialTrustRadius- initial trust-region radiusfactorizationMethod- projection-Jacobian factorization method (AUGMENTED_SYSTEM/QR_FACTORIZATION/SVD_FACTORIZATION)- Returns:
- populated
StatefulResult
-