SimpleSolvers
SimpleSolvers.BisectionState
SimpleSolvers.OptimizationAlgorithm
SimpleSolvers.Options
SimpleSolvers.QuadraticState
GeometricBase.value
GeometricBase.value
GeometricBase.value
GeometricBase.value
SimpleSolvers.derivative
SimpleSolvers.derivative
SimpleSolvers.derivative!
SimpleSolvers.derivative!!
SimpleSolvers.gradient
SimpleSolvers.gradient
SimpleSolvers.gradient!
SimpleSolvers.gradient!!
SimpleSolvers.isaOptimizationAlgorithm
SimpleSolvers.linesearch_objective
SimpleSolvers.linesearch_objective
SimpleSolvers.update!
SimpleSolvers.value!
SimpleSolvers.value!
SimpleSolvers.value!!
SimpleSolvers.value!!
SimpleSolvers.BisectionState
— Typesimple bisection line search
SimpleSolvers.OptimizationAlgorithm
— TypeAn OptimizationAlgorithm
is a datastructe that is used to dispatch on different algorithms.
It needs to implement three important methods,
initialize!(alg::OptimizationAlgorithm, ::AbstractVector)
update!(alg::OptimizationAlgorithm, ::AbstractVector)
solver_step!(::AbstractVector, alg::OptimizationAlgorithm)
that initialize and update the state of the algorithm and perform an actual optimization step.
Further the following convenience methods should be implemented,
objective(alg::OptimizationAlgorithm)
gradient(alg::OptimizationAlgorithm)
hessian(alg::OptimizationAlgorithm)
linesearch(alg::OptimizationAlgorithm)
which return the objective to optimize, its gradient and (approximate) Hessian as well as the linesearch algorithm used in conjunction with the optimization algorithm if any.
SimpleSolvers.Options
— TypeConfigurable options with defaults (values 0 and NaN indicate unlimited):
x_abstol::Real = -Inf,
x_reltol::Real = 2eps(),
f_abstol::Real = 1e-50,
f_reltol::Real = 2eps(),
f_mindec::Real = 1e-4,
g_restol::Real = sqrt(eps()),
x_abstol_break::Real = Inf,
x_reltol_break::Real = Inf,
f_abstol_break::Real = Inf,
f_reltol_break::Real = Inf,
g_restol_break::Real = Inf,
f_calls_limit::Int = 0,
g_calls_limit::Int = 0,
h_calls_limit::Int = 0,
allow_f_increases::Bool = true,
min_iterations::Int = 0,
max_iterations::Int = 1_000,
warn_iterations::Int = max_iterations,
show_trace::Bool = false,
store_trace::Bool = false,
extended_trace::Bool = false,
show_every::Int = 1,
verbosity::Int = 1
SimpleSolvers.QuadraticState
— TypeQuadratic Polynomial line search
GeometricBase.value
— MethodEvaluates the objective value at x
. Returns f(x)
, but does not store the value in obj.f
GeometricBase.value
— MethodGet the most recently evaluated objective value of obj
.
GeometricBase.value
— MethodEvaluates the objective value at x
. Returns f(x)
, but does not store the value in obj.F
GeometricBase.value
— MethodGet the most recently evaluated objective value of obj
.
SimpleSolvers.derivative!!
— MethodForce (re-)evaluation of the derivative of the objective at x
. Returns f'(x)
and stores the derivative in obj.D
SimpleSolvers.derivative!
— MethodEvaluates the derivative of the objective at x
. Returns f'(x)
and stores the derivative in obj.D
SimpleSolvers.derivative
— MethodEvaluates the derivative of the objective at x
. Returns f'(x)
, but does not store the derivative in obj.D
SimpleSolvers.derivative
— MethodGet the most recently evaluated derivative of the objective of obj
.
SimpleSolvers.gradient!!
— MethodForce (re-)evaluation of the gradient at x
. Returns ∇f(x) and stores the value in obj.g
.
SimpleSolvers.gradient!
— MethodEvaluates the gradient at x
. Returns ∇f(x) and stores the value in obj.g
.
SimpleSolvers.gradient
— MethodEvaluates the gradient at x
. This does not update obj.g
or obj.x_g
.
SimpleSolvers.gradient
— MethodGet the most recently evaluated gradient of obj
.
SimpleSolvers.isaOptimizationAlgorithm
— MethodVerifies if an object implements the OptimizationAlgorithm
interface.
SimpleSolvers.linesearch_objective
— Methodcreate univariate objective for linesearch algorithm
SimpleSolvers.linesearch_objective
— Methodcreate univariate objective for linesearch algorithm
SimpleSolvers.update!
— Methodcompute objective and gradient at new solution and update result
SimpleSolvers.value!!
— MethodForce (re-)evaluation of the objective at x
. Returns f(x)
and stores the value in obj.f
SimpleSolvers.value!!
— MethodForce (re-)evaluation of the objective value at x
. Returns f(x)
and stores the value in obj.F
SimpleSolvers.value!
— MethodEvaluates the objective at x
. Returns f(x)
and stores the value in obj.f
SimpleSolvers.value!
— MethodEvaluates the objective value at x
. Returns f(x)
and stores the value in obj.F