Skip to main content

Module metaheuristics

Module metaheuristics 

Source
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:

§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 construction
  • TabuSearch - 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
ConvergenceTracker
Convergence tracker for early stopping.
DifferentialEvolution
Differential Evolution optimizer.
FeatureSelectionResult
Result of feature selection.
FeatureSelector
High-level feature selector using Binary GA.
GeneticAlgorithm
Genetic Algorithm optimizer.
HarmonySearch
Harmony Search optimizer.
HyperoptResult
Result of hyperparameter optimization.
HyperoptSearch
High-level hyperparameter optimization interface.
HyperparameterSet
A set of hyperparameter values.
IpopConfig
IPOP Restart configuration
OptimizationResult
Result of a metaheuristic optimization run.
ParticleSwarm
Particle Swarm Optimization optimizer.
SimulatedAnnealing
Simulated Annealing optimizer.
SwapMove
A swap move for permutation problems.
TabuSearch
Tabu Search for combinatorial optimization.

Enums§

AdaptationStrategy
Adaptation strategy for self-adaptive DE variants.
Budget
Budget specification for optimization runs.
DEStrategy
DE mutation strategy.
Hyperparameter
Hyperparameter definition with bounds and scaling.
SearchAlgorithm
Search algorithm backend.
SearchSpace
Universal search space abstraction.
SelectionCriterion
Criterion for evaluating feature subsets.
TerminationReason
Reason for optimization termination.

Traits§

ConstructiveMetaheuristic
Trait for constructive metaheuristics that build solutions incrementally.
NeighborhoodSearch
Trait for neighborhood-based local search methods.
PerturbativeMetaheuristic
Trait for perturbative metaheuristics.

Functions§

rank_features
Feature importance ranking using perturbation.
select_features
Convenience function for quick feature selection.