Skip to content

Mathematical optimization and machine learning framework and algorithms.

License

Notifications You must be signed in to change notification settings

justinlovinger/optimal-rs

Repository files navigation

Workflow Status

This package is experimental. Expect frequent updates to the repository with breaking changes and infrequent releases.

optimal

Mathematical optimization and machine-learning components and algorithms.

Optimal provides a framework for mathematical optimization and machine-learning from the optimization-perspective.

This package provides a relatively stable high-level API for broadly defined optimizers.

For more control over configuration, introspection of the optimization process, serialization, and specialization that may improve performance, see individual optimizer packages.

For the computation-framework powering Optimal, see computation-types.

Note: more specific support for machine-learning will be added in the future. Currently, machine-learning is supported by defining an objective-function taking model-parameters.

Examples

Minimize the "count" problem using a derivative-free optimizer:

use optimal::Binary;

println!(
    "{:?}",
    Binary::default()
        .for_(2, |point| point.iter().filter(|x| **x).count() as f64)
        .argmin()
);

Minimize the "sphere" problem using a derivative optimizer:

use optimal::RealDerivative;

println!(
    "{:?}",
    RealDerivative::default()
        .for_(
            std::iter::repeat(-10.0..=10.0).take(2),
            |point| point.iter().map(|x| x.powi(2)).sum(),
            |point| point.iter().map(|x| 2.0 * x).collect()
        )
        .argmin()
);

License: MIT

About

Mathematical optimization and machine learning framework and algorithms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages