argmin
pybobyqa
Our great sponsors
argmin | pybobyqa | |
---|---|---|
2 | 1 | |
883 | 70 | |
4.4% | - | |
9.3 | 5.8 | |
3 days ago | 9 days ago | |
Rust | Python | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
argmin
-
Rust concepts I wish I learned earlier
Two things that might help Rust a lot despite the complexity is the tooling and the ecosystem. Cargo is good, the compiler is extremely helpful, and there are a lot of crates to build on for all sorts of tasks.
For example, if I need to use simulated annealing to solve an optimization problem, there already exist libraries that implement that algorithm well.[1] Unfortunately, the Haskell library for this seems to be unmaintained[2] and so does the OCaml library that I can find.[3] Similarly, Agda, Idris, and Lean 4 all seem like great languages. But not having libraries for one's tasks is a big obstacle to adoption.
Nim looks very promising. (Surprisingly so to me.) Hopefully they will succeed at gaining wider recognition and growing a healthy ecosystem.
[1] E.g., https://github.com/argmin-rs/argmin
[2] https://hackage.haskell.org/package/hmatrix-gsl-0.19.0.1 was released in 2018. (Although there are newer commits in the GitHub repo, https://github.com/haskell-numerics/hmatrix. Not too sure what is going on.)
-
Is there a library for non-linear optimization in Rust?
You might find interest in argmin, a collection of common optimization algorithms.
pybobyqa
-
Gradient-Free-Optimizers A collection of modern optimization methods in Python
I've used this, and it works nicely: https://github.com/numericalalgorithmsgroup/pybobyqa. I'd be happy if it were added to your project, then I could just use yours and have access to a bunch of alternatives with the same API.
What are some alternatives?
optimization-engine - Nonconvex embedded optimization: code generation for fast real-time optimization
Hyperactive - An optimization and data collection toolbox for convenient and fast prototyping of computationally expensive models.
ceres-solver - A large scale non-linear optimization library
tf-quant-finance - High-performance TensorFlow library for quantitative finance.
cmaes - A Rust implementation of the CMA-ES optimization algorithm.
prima - PRIMA is a package for solving general nonlinear optimization problems without using derivatives. It provides the reference implementation for Powell's derivative-free optimization methods, i.e., COBYLA, UOBYQA, NEWUOA, BOBYQA, and LINCOA. PRIMA means Reference Implementation for Powell's methods with Modernization and Amelioration, P for Powell.
Peroxide - Rust numeric library with R, MATLAB & Python syntax
PyGenetic - A multi-purpose genetic algorithm written in python
keyboard_layout_optimizer - A keyboard layout optimizer supporting multiple layers. Implemented in Rust.
WaveNCC - An app to compute the normalization coefficients of a given set of orthogonal 1D complex wave functions.
good_lp - Linear Programming for Rust, with a user-friendly API. This crate allows modeling LP problems, and lets you solve them with various solvers.
Gradient-Free-Optimizers - Simple and reliable optimization with local, global, population-based and sequential techniques in numerical discrete search spaces.