Expand description
Derivative-free global optimization (metaheuristics).
This module provides metaheuristic algorithms for black-box optimization where gradients are unavailable or the landscape is highly multimodal.
§Algorithm Categories
§Perturbative Metaheuristics
Modify complete solutions through perturbation operators:
DifferentialEvolution- Population-based, excellent for continuous HPOParticleSwarm- Swarm intelligence with velocity updatesSimulatedAnnealing- Single-point, Metropolis acceptanceGeneticAlgorithm- Selection, crossover, mutationHarmonySearch- Music-inspired memory-based optimization
§Benchmark Functions
Standard test functions for algorithm evaluation:
benchmarks- CEC 2013 benchmark suite (Sphere, Rosenbrock, Rastrigin, etc.)
§Constructive Metaheuristics (Phase 3)
Build solutions incrementally:
AntColony- Pheromone-guided constructionTabuSearch- Memory-based local search
§Search Space Abstraction
Unlike gradient-based optimizers that assume continuous spaces, metaheuristics support diverse problem representations:
use aprender::metaheuristics::SearchSpace;
// Continuous optimization (HPO)
let hpo_space = SearchSpace::continuous(5, -10.0, 10.0);
// Binary feature selection
let feature_space = SearchSpace::binary(100);
// Permutation (TSP)
let tsp_space = SearchSpace::permutation(50);§Example: Hyperparameter Optimization
use aprender::metaheuristics::{DifferentialEvolution, SearchSpace, Budget, PerturbativeMetaheuristic};
// Define search space for learning rate and regularization
let space = SearchSpace::Continuous {
dim: 2,
lower: vec![1e-5, 1e-6],
upper: vec![1e-1, 1e-2],
};
// Objective: minimize validation loss (simulated)
let objective = |params: &[f64]| {
let lr = params[0];
let reg = params[1];
// Simulated loss landscape
(lr - 0.01).powi(2) + (reg - 0.001).powi(2) + 0.1 * (lr * 100.0).sin()
};
let mut de = DifferentialEvolution::default();
let result = de.optimize(&objective, &space, Budget::Evaluations(5000));
assert!(result.objective_value < 0.1); // Reasonable tolerance for small budget§References
- Storn & Price (1997): Differential Evolution
- Kennedy & Eberhart (1995): Particle Swarm Optimization
- Kirkpatrick et al. (1983): Simulated Annealing
- Hansen (2016): CMA-ES Tutorial
Modules§
- benchmarks
- CEC 2013 Benchmark Functions for Metaheuristic Evaluation
- nas
- Neural Architecture Search (NAS) Primitives
Structs§
- AntColony
- Ant Colony Optimization (ACO) for combinatorial problems.
- BinaryGA
- Binary Genetic Algorithm
- CmaEs
- CMA-ES optimizer
- Convergence
Tracker - Convergence tracker for early stopping.
- Differential
Evolution - Differential Evolution optimizer.
- Feature
Selection Result - Result of feature selection.
- Feature
Selector - High-level feature selector using Binary GA.
- Genetic
Algorithm - Genetic Algorithm optimizer.
- Harmony
Search - Harmony Search optimizer.
- Hyperopt
Result - Result of hyperparameter optimization.
- Hyperopt
Search - High-level hyperparameter optimization interface.
- Hyperparameter
Set - A set of hyperparameter values.
- Ipop
Config - IPOP Restart configuration
- Optimization
Result - Result of a metaheuristic optimization run.
- Particle
Swarm - Particle Swarm Optimization optimizer.
- Simulated
Annealing - Simulated Annealing optimizer.
- Swap
Move - A swap move for permutation problems.
- Tabu
Search - Tabu Search for combinatorial optimization.
Enums§
- Adaptation
Strategy - Adaptation strategy for self-adaptive DE variants.
- Budget
- Budget specification for optimization runs.
- DEStrategy
- DE mutation strategy.
- Hyperparameter
- Hyperparameter definition with bounds and scaling.
- Search
Algorithm - Search algorithm backend.
- Search
Space - Universal search space abstraction.
- Selection
Criterion - Criterion for evaluating feature subsets.
- Termination
Reason - Reason for optimization termination.
Traits§
- Constructive
Metaheuristic - Trait for constructive metaheuristics that build solutions incrementally.
- Neighborhood
Search - Trait for neighborhood-based local search methods.
- Perturbative
Metaheuristic - Trait for perturbative metaheuristics.
Functions§
- rank_
features - Feature importance ranking using perturbation.
- select_
features - Convenience function for quick feature selection.