• Stars
    star
    320
  • Rank 131,126 (Top 3 %)
  • Language
    Julia
  • License
    Other
  • Created almost 8 years ago
  • Updated 30 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ”๏ธManopt. jl โ€“ Optimization on Manifolds in Julia

Manopt.jl

Optimization Algorithm on Riemannian Manifolds.

Code Style: Blue CI codecov DOI DOI

For a function $f: โ„ณ โ†’ โ„$ that maps from a Riemannian manifold โ„ณ to the real line, we aim to solve

Find the minimizer p on โ„ณ, i.e. the (or a) point where f attains its minimum.

Manopt.jl provides

  • A framework to implement arbitrary optimization algorithms on Riemannian Manifolds
  • A library of optimization algorithms on Riemannian manifolds
  • an easy-to-use interface for (debug) output and recording values during an algorithm run.
  • several tools to investigate the algorithms, gradients, and optimality criteria

Getting started

In Julia you can get started by just typing

using Pkg; Pkg.add("Manopt");

and then checkout the Get Started: Optimize! tutorial.

Related packages

Manopt.jl is based on ManifoldsBase.jl, hence the algorithms can be used with any manifold following this interface for defining a Riemannian manifold.

The following packages are related to Manopt.jl

Citation

If you use Manopt.jl in your work, please cite the following

@article{Bergmann2022,
    Author    = {Ronny Bergmann},
    Doi       = {10.21105/joss.03866},
    Journal   = {Journal of Open Source Software},
    Number    = {70},
    Pages     = {3866},
    Publisher = {The Open Journal},
    Title     = {Manopt.jl: Optimization on Manifolds in {J}ulia},
    Volume    = {7},
    Year      = {2022},
}

To refer to a certain version or the source code in general we recommend to cite for example

@software{manoptjl-zenodo-mostrecent,
    Author = {Ronny Bergmann},
    Copyright = {MIT License},
    Doi = {10.5281/zenodo.4290905},
    Publisher = {Zenodo},
    Title = {Manopt.jl},
    Year = {2022},
}

for the most recent version or a corresponding version specific DOI, see the list of all versions. Note that both citations are in BibLaTeX format.

Further and Similar Packages & Links

Manopt.jl belongs to the Manopt family:

but there are also more packages providing tools on manifolds:

Did you use Manopt.jl somewhere? Let us know! We'd love to collect those here as well.