ConstrainedDFO.jl

This documentation is a work in progress and is by no means reliable yet!

ConstrainedDFO.EqualityManifoldType
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.
source
ConstrainedDFO.MADSTangentSolverType
MADSTangentSolver <: AbstractTangentSolver

Subsolver 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

source
ConstrainedDFO.StopAfterEvaluationType
StopAfterEvaluation <: DFStoppingCriterion

A functor for a stopping criterion to stop after a maximal number of blackbox evaluations. Fields and constructor are the same as StopAfterIteration.

source
ConstrainedDFO.DFROSolverMethod
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
)
source
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.

source
ConstrainedDFO.get_last_subproblem_resultMethod
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.
source
ConstrainedDFO.invertibility_radiusMethod
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.

source
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.

source