Non-array manifold with JuMP/MOI
blegat opened this issue · 2 comments
In JuMP, we only define array-shaped points in manifold but as mentioned, e.g., in #264 (comment), for FixedRankMatrices
they could also be represented by their SVD.
We should make this work:
@variable(model, X in FixedRankMatrices(m, n, r))
@objective(model, Min, RiemannianFirstOrderFunction(X -> ..., (g, X) -> ...)))
Any good example of m
, n
, r
and riemannian objective and gradient we could use as test for this ?
Requires
A good example to use would be the Matrix Completion as discussed by Vandereycken in https://arxiv.org/pdf/1209.3834.pdf.
It would probably be best to add such an example directly to ManoptExamples https://github.com/JuliaManifolds/ManoptExamples.jl.
I think I understand your first line of code, you ant to allow X to be an SVDMPoint
?
I do not yet understand the second line the RiemannianFirstOrderFunction
would basically be a ManifoldGradientObjective
with slightly different signatures of cost and grad (namely leaving out the manifold - or hardcoding it in the function otherwise)?
I think I understand your first line of code, you ant to allow X to be an
SVDMPoint
?
Yes
I do not yet understand the second line the
RiemannianFirstOrderFunction
would basically be aManifoldGradientObjective
with slightly different signatures of cost and grad (namely leaving out the manifold - or hardcoding it in the function otherwise)?
Indeed, I think we can even go for #273 (comment)