Benchmark Methodology
This document describes the rigorous methodology used for benchmarking optimization algorithms in Useful Optimizer.
Protocol Overview
Our benchmarking follows established standards from the optimization research community, particularly COCO (Comparing Continuous Optimizers) and IOHprofiler platforms.
Key Principles
- Reproducibility: Fixed random seeds for each run
- Statistical Validity: 30 independent runs per configuration
- Fair Comparison: Same budget (function evaluations) for all algorithms
- Comprehensive Testing: Multiple functions, dimensions, and metrics
Test Functions
Sphere Function
- Optimum:
- Bounds:
- Characteristics: Unimodal, separable, convex
Rosenbrock Function
- Optimum:
- Bounds:
- Characteristics: Unimodal, non-separable, ill-conditioned
Rastrigin Function
- Optimum:
- Bounds:
- Characteristics: Multi-modal, separable
Ackley Function
- Optimum:
- Bounds:
- Characteristics: Multi-modal, nearly flat outer region
Griewank Function
- Optimum:
- Bounds:
- Characteristics: Multi-modal, many local minima
Experimental Setup
Parameters
| Parameter | Value |
|---|---|
| Dimensions | 2, 10, 30 |
| Independent runs | 30 |
| Maximum iterations | 100 |
| Population size | 30 (where applicable) |
| Random seeds | 42, 43, ..., 71 |
Algorithm Settings
All algorithms use their default parameters as defined in the library, with the following exceptions:
- Population-based algorithms use
population_size=30 - All algorithms use
max_iter=100
Statistical Analysis
Friedman Test
Non-parametric test for comparing multiple algorithms across multiple functions:
where
Wilcoxon Signed-Rank Test
Pairwise comparison with Bonferroni correction:
where
ECDF Calculation
For a set of runs, the ECDF at budget
Target precisions:
Metrics Reported
Primary Metrics
- Best Fitness: Minimum fitness achieved
- Mean Fitness: Average across 30 runs
- Std Fitness: Standard deviation across runs
- Success Rate: Proportion of runs reaching target
Secondary Metrics
- Median Fitness: Robust central tendency
- Mean Time: Average wall-clock time
- Function Evaluations: Number of objective function calls
Reproducibility
All benchmark results can be reproduced using:
# Set up environment
uv sync --all-extras
# Run benchmarks
uv run python benchmarks/run_benchmark_suite.py \
--output-dir benchmarks/output
# Generate visualizations
uv run python benchmarks/generate_plots.py \
--results benchmarks/output/results.json \
--output-dir benchmarks/outputReferences
Hansen, N., et al. "COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting." arXiv:1603.08785 (2016).
Doerr, C., et al. "IOHprofiler: A Benchmarking and Profiling Tool for Iterative Optimization Heuristics." arXiv:1810.05281 (2018).
Demšar, J. "Statistical Comparisons of Classifiers over Multiple Data Sets." JMLR 7 (2006): 1-30.