API — Problems & Results

Problem definition

Retro.RetroProblemType
RetroProblem{OBJ<:AbstractObjectiveFunction, T<:AbstractVector}

Optimization problem definition for Retro.

Encapsulates an objective function, initial point, and optional box constraints.

Fields

  • objective::OBJ: Objective function to minimize
  • x0::T: Initial guess
  • lb::T: Lower bounds (defaults to -Inf)
  • ub::T: Upper bounds (defaults to +Inf)

Example

using ForwardDiff
f(x) = sum(abs2, x .- [1.0, 2.0])
prob = RetroProblem(f, [0.0, 0.0], AutoForwardDiff())
source

Optimization result

Retro.RetroResultType
RetroResult{T<:Real, VT<:AbstractVector{T}}

Results from trust-region optimization.

Fields

  • x::VT: Final solution
  • fx::T: Final objective function value
  • gx::VT: Final gradient
  • iterations::Int: Number of iterations performed
  • function_evaluations::Int: Total function evaluations
  • gradient_evaluations::Int: Total gradient evaluations
  • hessian_evaluations::Int: Total Hessian evaluations
  • termination_reason::Symbol: Reason for termination
    • :gtol: Gradient tolerance satisfied
    • :ftol: Function tolerance satisfied
    • :xtol: Step tolerance satisfied
    • :maxiter: Maximum iterations reached
    • :stagnation: Too many rejected steps
    • :tr_radius_too_small: Trust region became too small
source
Retro.is_successfulFunction
is_successful(result::RetroResult) -> Bool

Return true if the optimizer terminated because a convergence tolerance was satisfied (:gtol, :ftol, or :xtol).

source

The optimize function

Retro.optimizeFunction
optimize(prob::RetroProblem; kwargs...)

Solve the trust-region optimization problem.

Arguments

  • prob::RetroProblem: The optimization problem

Keyword Arguments

  • x0::Vector: Initial guess (default: prob.x0)
  • maxiter::Int: Maximum iterations (default: 1000)
  • display::AbstractDisplayMode: Display mode (default: Silent())
  • options::RetroOptions: Algorithm options (default: RetroOptions())
  • subspace::AbstractSubspace: Subspace method (default: TwoDimSubspace())
  • tr_solver::AbstractTRSolver: Trust-region solver (default: EigenTRSolver())
  • hessian_approximation::AbstractHessianApproximation: Hessian method (default: BFGS())

Returns

  • RetroResult: Optimization results
source