Added
- Benchmark module (
surfaces.benchmark) for structured optimizer comparison:Benchmarkclass with budget management (Compute Units), multi-seed runs, and incremental execution- Trace storage and result aggregation via accessor pattern (
results.summary,results.dataframe) - Statistical analysis: ranking, Critical Difference diagrams, multiple-comparison correction (Bonferroni, Holm, etc.)
- Expected Running Time (ERT) computation
- Progress bars and callback hooks during runs
- Parallel execution backend
- Optimizer resolution via duck typing (works with GFO, Optuna, scipy interfaces)
- Error handling via catch-feature (failed evaluations do not abort the run)
- Multi-Fidelity support:
fidelityparameter on all ML test functions controls the fraction of training data used_active_fidelitystate for inspection during runs- Fidelity is forwarded through surrogate models for approximate low-fidelity evaluation
- Hyperband / BOHB / ASHA compatible interface
- Compute Units (CU) as hardware-independent cost metric:
eval_costattribute on every test function category- Calibration helper maps wall-clock times to CU
- CU integration into CEC functions and into
collection.filter
- Multi-objective test functions (new module
algebraic.multi_objective):- ZDT1, ZDT2, ZDT3, ZDT4, ZDT6
- DTLZ1 through DTLZ7
- WFG1 through WFG9 with shared transformation primitives
n_objectivesis now an instance parameter
- Discrete / combinatorial test functions (new module
algebraic.discrete):- OneMaxFunction, LeadingOnesFunction, NKLandscapeFunction, TrapFunction, KnapsackFunction
- Shared
_base_discrete_functionbase class
- ML test function: CatBoostClassifierFunction (#19)
- Algebraic 4D test function: ColvilleFunction (closes #12, #18)
- Simulation robustness:
FuturesTimeoutErrorhandling for long-running ODE integrations - Surrogate infrastructure:
_dependenciesattribute on test functions so the surrogate collector can resolve required inputs- Dependency-aware training-data collection
- Fidelity passthrough on pretrained ONNX surrogates
_get_training_datahook for custom trainers- Improved surrogate-trainer CLI (progress, collection scripts)
- Docs:
- User guide for Benchmarking
- User guide for Multi-Fidelity
- User guide for Compute Units
- Docstrings added across new modules
Changed
- Reworked benchmark API (pre-0.9 prototype is not compatible)
- Renamed
metricparameter toobjectiveacross benchmark and statistics modules - Moved custom test function module to its new location
- BBOB internals:
x_globalattribute added and used consistently_lambda_scalemethod replaces ad-hoc scalingLattribute now drives rotation handling- RNG-based attribute initialization reworked for reproducibility
- CEC function calculation fixes across multiple functions
- Removed a duplicate optional-dependency entry in
pyproject.toml - Updated README with new examples and benchmark quickstart
- Updated CITATION.cff
- Replaced a deprecated upstream method in simulation code
Fixed
- Multiple correctness fixes in BBOB test functions
- Multiple correctness fixes in CEC functions
RLCCircuitFunctionnumerical calculation- Simulation test flakiness
What's Changed
- [Feature] Add Colville test function (closes #12) by @Jitenndra03 in #18
- Add CatBoost tabular ML test function by @3kyou1 in #19
New Contributors
- @Jitenndra03 made their first contribution in #18
- @3kyou1 made their first contribution in #19
Full Changelog: v0.8.1...v0.9.0