esa / esa/pagmo2

Wrapping more solvers

Open
#77 3 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
C++
Stars
935
Forks
186
PR merge metrics
No merged PRs in 30d

Description

A dump of solvers/algorithms that might be useful to have in pagmo:

- [x] https://projects.coin-or.org/Ipopt ipopt (this was available in pagmo 1.x, potential issues compiling it on windows as it requires a fortran compiler) (#92)
- [ ] https://www.ime.usp.br/~egbirgin/tango/codes.php#algencan Algencan (GPL) An nlp solver (classic alternative to ipopt, fully open but fortran with C API). I actually downloaded it and the interface looks very similar to IPOPT. Should be easy to develop the pagmo/pygmo interface.
- [ ] https://www.gerad.ca/nomad/Project/Home.html Nomad a minlp solver (not many of this type and fully open!)
- [ ] https://www.gnu.org/software/gsl/manual/html_node/Multidimensional-Minimization.html the GSL minimisers (these were available in pagmo 1.x)
- [x] https://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html the scipy solvers (these were available in pagmo 1.x, python-only)
- [ ] http://ceres-solver.org/ the ceres solver (unsure about the degree of overlap with pagmo's domain)
- [ ] https://github.com/PatWie/CppNumericalSolvers collection of C++ solvers (first time I hear of this)
- [ ] NSGA III - An open sorce cpp implementation can be found here http://web.ntnu.edu.tw/~tcchiang/publications/nsga3cpp/nsga3cpp.htm (though unofficial)

A couple of LBFGS implementations:
- [ ] https://yixuan.cos.name/LBFGSpp/
- [ ] http://www.chokkan.org/software/liblbfgs/

Contributor guide

No contributing guide indexed for this repository

Research direction

The issue is a broad list of possible solver integrations, including Algencan, Nomad, GSL, Ceres, C++ Numerical Solvers, NSGA-III, and LBFGS implementations. Start by comparing the unchecked options with the existing IPOPT and SciPy integrations, then choose and scope one solver while checking its license, language, and build requirements; done means a defined wrapper target with its integration and testing work identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, fortran, python
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.