Wrapping more solvers
- 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