API — Problems & Results
Problem definition
Retro.RetroProblem — Type
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 minimizex0::T: Initial guesslb::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())Optimization result
Retro.RetroResult — Type
RetroResult{T<:Real, VT<:AbstractVector{T}}Results from trust-region optimization.
Fields
x::VT: Final solutionfx::T: Final objective function valuegx::VT: Final gradientiterations::Int: Number of iterations performedfunction_evaluations::Int: Total function evaluationsgradient_evaluations::Int: Total gradient evaluationshessian_evaluations::Int: Total Hessian evaluationstermination_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
Retro.is_successful — Function
is_successful(result::RetroResult) -> BoolReturn true if the optimizer terminated because a convergence tolerance was satisfied (:gtol, :ftol, or :xtol).
The optimize function
Retro.optimize — Function
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