Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 1.62 KB

README.md

File metadata and controls

69 lines (53 loc) · 1.62 KB

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