Releases: SimonBlanke/Surfaces
Releases · SimonBlanke/Surfaces
v0.9.0
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
v0.8.1
Added
- Ensemble test functions: StackingEnsembleFunction, VotingEnsembleFunction, WeightedAveragingFunction
- BaseTabularEnsemble base class for ensemble methods
- MutualInfoFeatureSelectionFunction for feature selection optimization
- PolynomialFeatureTransformationFunction for polynomial feature engineering
- FeatureScalingPipelineFunction for scaling pipeline optimization
- XGBoostClassifierFunction for tabular ML
- LightGBMRegressorFunction and LightGBMClassifierFunction
- ShekelFunction (algebraic ND)
- Tests for CEC 2013 and CEC 2017 benchmarks
- Interface compliance and template method contract tests
- ML test function discovery for automated test coverage
- Developer guide in documentation
- CONTRIBUTING.md with contribution guidelines
Changed
- Refactored test functions into template method pattern
- Reworked test-function methods into accessor pattern
- Changed
check_dependenciesto decorator pattern - Names are now generated automatically at class definition time (removed
_name_attribute) - Reworked how optional dependencies are handled
- Moved
default_boundsto spec - Refactored multi-objective test functions
- Readded
objectiveparameter to multi-objective functions
Fixed
- Fixed example in README
- Fixed documentation links
What's Changed
- Add LightGBM Regressor and Classifier test function by @ZohaibHassan16 in #14
- Add shekel funcfix by @ZohaibHassan16 in #16
- [Feature] Add XGBoost classifier test-function for tabular ML by @Shruti1128 in #17
New Contributors
- @ZohaibHassan16 made their first contribution in #14
- @Shruti1128 made their first contribution in #17
Full Changelog: v0.7.1...v0.8.1
v0.7.1
Fixed
- Windows-specific path handling error
- Bug in surrogate models
- Storage test issues
Changed
- Restructured ML test function directory layout
- Updated pre-commit configuration
Full Changelog: version/0.4.0...v0.7.1
v0.4.0
version/0.4.0 delete file