ConstrainedDFO.jl
This documentation is a work in progress and is by no means reliable yet!
ConstrainedDFO.AbstractInvertibilityBound — Type
AbstractInvertibilityBoundA formula to compute a lower bound on the invertibility_radius of a manifold.
ConstrainedDFO.AbstractTangentSolver — Type
AbstractTangentSolverAn abstract type for all solvers used to solve subproblems in tangent spaces with the DFROSolver.
ConstrainedDFO.BlackboxInstance — Type
BlackboxInstanceConstrainedDFO.BlackboxProblem — Type
BlackboxProblemConstrainedDFO.BlackboxTangentData — Type
BlackboxTangentDataA structure representing all the data expected to be returned by an AbstractTangentSolver evaluating a blackbox.
ConstrainedDFO.DFROState — Type
DFROState <: AbstractManoptSolverStateAbstractManoptSolverState dedicated to the RDFO solver.
Fields
pis the current iterate on the manifold.dis the current best tangent vector found at $T_p\mathcal{M}$.
ConstrainedDFO.EqualityManifold — Type
EqualityManifold <: AbstractManifold{ℝ}A smooth Riemannian submanifold of $\mathbb{R}^n$ defined as the set
\[ \mathcal{M}=\left\{x\in\mathbb{R}^n : h(x)=0\right\}\]
for some smooth function $h: \mathbb{R}^n\to\mathbb{R}$ such that $\nabla h(x)$ has full rank for all $x\in\mathcal{M}$.
Fields
defining_function: the function $h$ as described above.dimension: the dimension of the manifold, defined as the common dimension of its tangent spaces.
ConstrainedDFO.ExactInvertibility — Type
ExactInvertibility <: AbstractInvertibilityBoundComputes the exact value of the invertibility_radius of a retraction (if possible).
ConstrainedDFO.MADSTangentSolver — Type
MADSTangentSolver <: AbstractTangentSolverSubsolver using the Mesh Adaptive Direct Search (MADS) algorithm in tangent spaces. To be used together with the master solver DFROSolver.
Note: the implementation makes use of the interface to the NOMAD 3 software offered by NOMAD.jl
ConstrainedDFO.NOverSpectral — Type
NOverSpectral <: AbstractInvertibilityBoundComputes a lower bound on the invertibility_radius of the ProjectionRetraction as
\[ \frac{n}{\max\{\lambda(H_{h_i}(x)) : i\in\{1,...,p\}\}}.\]
with $\lambda(H_{h_i})$ the spectral radius of the Hessian matrix of the defining subfunction $h_i$ for M.
ConstrainedDFO.NOverSqrtSpectral — Type
NOverSqrtSpectral <: AbstractInvertibilityBoundComputes a lower bound on the invertibility_radius of the ProjectionRetraction as
\[ \frac{n}{\sqrt{\max\{\lambda(H_{h_i}(x)) : i\in\{1,...,p\}\}}}.\]
with $\lambda(H_{h_i})$ the spectral radius of the Hessian matrix of the defining subfunction $h_i$ for M.
ConstrainedDFO.OneOverSpectral — Type
OneOverSpectral <: AbstractInvertibilityBoundComputes a lower bound on the invertibility_radius of the ProjectionRetraction as
\[ \frac{1}{\max\{\lambda(H_{h_i}(x)) : i\in\{1,...,p\}\}}.\]
with $\lambda(H_{h_i})$ the spectral radius of the Hessian matrix of the defining subfunction $h_i$ for M.
ConstrainedDFO.OneOverSqrtSpectral — Type
OneOverSqrtSpectral <: AbstractInvertibilityBoundComputes a lower bound on the invertibility_radius of the ProjectionRetraction as
\[ \frac{1}{\sqrt{\max\{\lambda(H_{h_i}(x)) : i\in\{1,...,p\}\}}}.\]
with $\lambda(H_{h_i})$ the spectral radius of the Hessian matrix of the defining subfunction $h_i$ for M.
ConstrainedDFO.StopAfterEvaluation — Type
StopAfterEvaluation <: DFStoppingCriterionA functor for a stopping criterion to stop after a maximal number of blackbox evaluations. Fields and constructor are the same as StopAfterIteration.
ConstrainedDFO.DFROSolver — Method
DFROSolver(
M::AbstractManifold,
f::Function,
p0;
inequality_constraints::Union{Function, Nothing} = nothing,
solver::AbstractTangentSolver = MADSTangentSolver(),
max_evals::Int = 1000 * representation_size(M)[1],
stopping_criterion::DFStoppingCriterion = StopRadiusAndBudget(max_evals),
retraction_method::AbstractRetractionMethod = default_retraction_method(M),
invertibility_bound::AbstractInvertibilityBound = default_invertibility_bound(M, retraction_method),
εeqs::Float64 = 1.0e-8
)ConstrainedDFO.blackbox_wrapper_store! — Method
blackbox_wrapper_store!(TS::AbstractTangentSolver, M::AbstractManifold, p, R::AbstractRetractionMethod, f, n_ineqs::Int, g, v)Retract the tangent vector v to the manifold M and evaluate the blackbox made of the objective function f and the inequality constraints g. The results are stored within corresponding attributes of the AbstractTangentSolver.
ConstrainedDFO.default_invertibility_bound — Method
default_invertibility_bound(M::AbstractManifold; m::AbstractRetractionMethod)Return the default AbstractInvertibilityBound used to compute the invertibility_radius of $M$ when endowed with the retraction method m. For an EqualityManifold endowed with the ProjectionRetraction, defaults to NOverSpectral.
ConstrainedDFO.get_eval_budget — Method
get_eval_budget(em::AbstractEvalManager)ConstrainedDFO.get_last_subproblem_result — Method
get_last_subproblem_result(TS::AbstractTangentSolver)Retrieve all data stored within the AbstractTangentSolver object. Contains:
- values of all evaluated points within $\mathbb{R}^q$;
- associated retractions on the manifold the solver was last called on;
- associated values of the objective function and inequality constraints.
ConstrainedDFO.invertibility_radius — Method
invertibility_radius(M::AbstractManifold, p; m::AbstractRetractionMethod, ρ::AbstractInvertibilityBound)When the manifold $M$ is endowed with retraction method m at p, its invertibility radius is defined as
\[ \mathrm{inv}(p)=\sup\{\delta>0\; :\; R_p\text{ is a diffeomorphism from }B_p(0;\delta)\text{ onto its image}\}.\]
This function returns a lower bound on this quantity, computed according to ρ. If ρ is an ExactInvertibility, the exact value is returned.
When m is the ExponentialRetraction, this function falls back to the injectivity radius of $M$ at p.
ConstrainedDFO.latin_hypercube_sampling — Method
latin_hypercube_sampling(n, lb, ub, p)Perform a latin hypercube sampling with given bounds, and return p sampled points. It is assumed that bounds are well-defined.
ConstrainedDFO.solve! — Method
solve!(TS::AbstractTangentSolver, f, M::AbstractManifold, p, R::AbstractRetractionMethod, ρ::AbstractInvertibilityBound; g)Solve the subproblem
\[ \begin{array}{r l l} \min\limits_{v\in T_p\mathcal{M}} & f\circ R_p(v) \\ \mathrm{s.t.} & g\circ R_p(v) \leq 0 \end{array}\]
with the tangent solver TS. Stops whenever an iterate (i.e., a feasible improving point) is found outside of the invertibility_radius, with bound given by ρ (see AbstractInvertibilityBound).
A history of all tangent iterates, associated retractions and (f,g) values is stored within the AbstractTangentSolver object.
ConstrainedDFO.update_remaining_evals! — Method
update_remaining_evals(dem::DefaultEvalManager)