Collection of optimization algorithms and strategies.
```rust extern crate optimization;
use optimmization::{Minimizer, GradientDescent, NumericalDifferentiation, Func};
// numeric version of the Rosenbrock function let function = NumericalDifferentiation::new(Func(|x: &[f64]| { (1.0 - x[0]).powi(2) + 100.0*(x[1] - x[0].powi(2)).powi(2) }));
// we use a simple gradient descent scheme let minimizer = GradientDescent::new();
// perform the actual minimization, depending on the task this may // take some time, it may be useful to install a log sink to see // what's going on let solution = minimizer.minimize(&function, vec![-3.0, -4.0]);
println!("Found solution for Rosenbrock function at f({:?}) = {:?}", solution.position, solution.value); ```
Simply add it as a Cargo
dependency:
toml
[dependencies]
optimization = "*"
For an exhaustive documentation head over to the [API docs].
Simply download this crate, add your stuff, write some tests and create a pull request. Pretty simple! :)
shell
$ cargo test
$ cargo clippy
This software is licensed under the terms of the MIT license. Please see the LICENSE for full details.