-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The Riemannian Interior Point Newton Method #399
Conversation
Now more similar to rest of Manopt
step_solver! for interior point Newton now employs conjugate_gradient!, and interior_point_Newton! converges unless first iterate is not feasible
Also changed AbstractManoptProblem inputs to AbstractManoptProblem{<:TangentSpace}
Also added possibility for plotting results for visualization purposes. Added comments throughout code.
…irarchical maybe (at least seen from the main solver).
…mplementing accessors.
Co-authored-by: Mateusz Baran <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
its a bit like knitting – one can nearly do that while watching a documentation.
…iaManifolds/Manopt.jl into kellertuer/riemannian-interior-point # Conflicts: # src/solvers/difference_of_convex_algorithm.jl
Oh TR looks a bit more involved, the code is quite old and might also benefit from a bit of improvements anyways. Do you want to do that or shall I? |
I can adapt TR. |
We have all others and proper code cov. |
Oh, I introduced an ambiguity? Why did that not happen for the other solvers? I do not directly se how to resolve that. |
I've adapted TR and resolved the ambiguity. |
I am not so sure where we lost the 2 lines on TR, but the rest seems to be fine. |
…iaManifolds/Manopt.jl into kellertuer/riemannian-interior-point
…h is fine, it is internal).
Yay! I'd call this finished, but would be happy if you could approve it as well. |
I would like to take one more look at this PR tomorrow, mostly to check if there are any major performance issues or some small documentation improvements. |
Sure, If you find something and do a commit, you can also adapt the date in the changelog. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Performance is not great but to improve that I need to extend PowerManifold
a bit first. I think this would be better suited for a separate PR.
I think s well, this took quite a while to get done, so working is my first goal here, performance a next one. |
…iaManifolds/Manopt.jl into kellertuer/riemannian-interior-point
This is my (third) summer project: This is initial code for a Riemannian Interior Point Newton method based on the master thesis of @mstokkenes, where of course documentation and testing are not part of master theses, but exploring how this algorithms works and illustrating that is works.
A Matlab code for the same idea this is based on (and from the authors of the original paper) is https://github.com/GALVINLAI/RIPM, though here the notation is already much closer to that of Manopt.jl
🛣️ Roadmap
VectorialHessianFunction
s, which are newer than the original code baseis_feasible
to work in a more general sense than just for RIPM and (re-)introduceDebugFeasibility()
stepsize_objective
and for the additional check usecentrality_condition
ρ
andσ
(Section 8.1 YL) and their update