Trust Region Step Evaluation

This module provides the machinery to evaluate different trust-region( -reflective) step proposals and select among them based on to their performance according to the quadratic approximation of the objective function

Functions Summary

trust_region(x, g, hess, scaling, delta, dv, ...)

Compute a step according to the solution of the trust-region subproblem.

Functions

fides.trust_region.trust_region(x, g, hess, scaling, delta, dv, theta, lb, ub, subspace_dim, stepback_strategy, logger)[source]

Compute a step according to the solution of the trust-region subproblem. If step-back is necessary, gradient and reflected trust region step are also evaluated in terms of their performance according to the local quadratic approximation

Parameters:
  • x (numpy.ndarray) – Current values of the optimization variables

  • g (numpy.ndarray) – Objective function gradient at x

  • hess (numpy.ndarray) – (Approximate) objective function Hessian at x

  • scaling (scipy.sparse._csc.csc_matrix) – Scaling transformation according to distance to boundary

  • delta (float) – Trust region radius, note that this applies after scaling transformation

  • dv (numpy.ndarray) – derivative of scaling transformation

  • theta (float) – parameter regulating stepback

  • lb (numpy.ndarray) – lower optimization variable boundaries

  • ub (numpy.ndarray) – upper optimization variable boundaries

  • subspace_dim (fides.constants.SubSpaceDim) – Subspace dimension in which the subproblem will be solved. Larger subspaces require more compute time but can yield higher quality step proposals.

  • stepback_strategy (fides.constants.StepBackStrategy) – Strategy that is applied when the proposed step exceeds the optimization boundary.

  • logger (logging.Logger) – logging.Logger instance to be used for logging

Return type:

fides.steps.Step

Returns:

s: proposed step,