Expand description
§blackopt
Black-box optimization in Rust. Provides a define-by-run API for hyperparameter and function optimization, supporting both single-objective and multi-objective optimization with state-of-the-art algorithms.
§Quick Start
use blackopt::{create_study, StudyDirection};
let study = create_study(None, None, None, None,
Some(StudyDirection::Minimize), None, false).unwrap();
study.optimize(|trial| {
let x = trial.suggest_float("x", -10.0, 10.0, false, None)?;
Ok(x * x)
}, Some(100), None, None).unwrap();
println!("Best value: {}", study.best_value().unwrap());§Samplers
RandomSampler— uniform random samplingTpeSampler— Tree-structured Parzen Estimator (Bergstra et al. 2011)CmaEsSampler— CMA-ES (Hansen & Ostermeier 2001)MorboSampler— MORBO trust-region Bayesian optimization (Daulton et al. 2022)NSGAIISampler— NSGA-II for multi-objective optimization (Deb et al. 2002)NSGAIIISampler— NSGA-III for many-objective optimization (Deb & Jain 2014)GridSampler— exhaustive grid searchQmcSampler— quasi-Monte Carlo sampling (Halton sequences)BruteForceSampler— brute-force enumerationPartialFixedSampler— fix some parameters while optimizing the rest
§Pruners
MedianPruner— prune trials below the median of previous trialsPercentilePruner— prune trials below a given percentileNopPruner— no pruning (default)
Re-exports§
pub use distributions::CategoricalChoice;pub use distributions::CategoricalDistribution;pub use distributions::Distribution;pub use distributions::FloatDistribution;pub use distributions::IntDistribution;pub use distributions::ParamValue;pub use error::Error;pub use error::Result;pub use importance::get_param_importances;pub use importance::FanovaEvaluator;pub use importance::ImportanceEvaluator;pub use multi_objective::crowding_distance;pub use multi_objective::dominates;pub use multi_objective::fast_non_dominated_sort;pub use multi_objective::get_pareto_front_trials;pub use multi_objective::hypervolume_2d;pub use multi_objective::is_pareto_front;pub use pruners::MedianPruner;pub use pruners::NopPruner;pub use pruners::PercentilePruner;pub use pruners::Pruner;pub use samplers::BruteForceSampler;pub use samplers::CmaEsCrossover;pub use samplers::CmaEsSampler;pub use samplers::CmaEsSamplerBuilder;pub use samplers::GridSampler;pub use samplers::MorboSampler;pub use samplers::MorboSamplerBuilder;pub use samplers::NSGAIISampler;pub use samplers::NSGAIISamplerBuilder;pub use samplers::NSGAIIISampler;pub use samplers::NSGAIIISamplerBuilder;pub use samplers::PartialFixedSampler;pub use samplers::QmcSampler;pub use samplers::RandomSampler;pub use samplers::Sampler;pub use samplers::TpeSampler;pub use samplers::TpeSamplerBuilder;pub use search_space::IntersectionSearchSpace;pub use search_space::SearchSpaceTransform;pub use storage::InMemoryStorage;pub use storage::Storage;pub use study::create_study;pub use study::FrozenStudy;pub use study::Study;pub use study::StudyDirection;pub use terminators::MaxTrialsTerminator;pub use terminators::NoImprovementTerminator;pub use terminators::TargetValueTerminator;pub use terminators::Terminator;pub use trial::FixedTrial;pub use trial::FrozenTrial;pub use trial::Trial;pub use trial::TrialState;
Modules§
- callbacks
- distributions
- error
- importance
- Parameter importance analysis.
- multi_
objective - pruners
- samplers
- search_
space - storage
- study
- terminators
- Early stopping terminators for optimization loops.
- trial