Skip to content

Releases: SimonBlanke/Surfaces

v0.9.0

18 Apr 19:01

Choose a tag to compare

Added

  • Benchmark module (surfaces.benchmark) for structured optimizer comparison:
    • Benchmark class 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:
    • fidelity parameter on all ML test functions controls the fraction of training data used
    • _active_fidelity state 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_cost attribute 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_objectives is now an instance parameter
  • Discrete / combinatorial test functions (new module algebraic.discrete):
    • OneMaxFunction, LeadingOnesFunction, NKLandscapeFunction, TrapFunction, KnapsackFunction
    • Shared _base_discrete_function base class
  • ML test function: CatBoostClassifierFunction (#19)
  • Algebraic 4D test function: ColvilleFunction (closes #12, #18)
  • Simulation robustness: FuturesTimeoutError handling for long-running ODE integrations
  • Surrogate infrastructure:
    • _dependencies attribute on test functions so the surrogate collector can resolve required inputs
    • Dependency-aware training-data collection
    • Fidelity passthrough on pretrained ONNX surrogates
    • _get_training_data hook 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 metric parameter to objective across benchmark and statistics modules
  • Moved custom test function module to its new location
  • BBOB internals:
    • x_global attribute added and used consistently
    • _lambda_scale method replaces ad-hoc scaling
    • L attribute 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
  • RLCCircuitFunction numerical calculation
  • Simulation test flakiness

What's Changed

New Contributors

Full Changelog: v0.8.1...v0.9.0

v0.8.1

01 Mar 13:26

Choose a tag to compare

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_dependencies to decorator pattern
  • Names are now generated automatically at class definition time (removed _name_ attribute)
  • Reworked how optional dependencies are handled
  • Moved default_bounds to spec
  • Refactored multi-objective test functions
  • Readded objective parameter to multi-objective functions

Fixed

  • Fixed example in README
  • Fixed documentation links

What's Changed

New Contributors

Full Changelog: v0.7.1...v0.8.1

v0.7.1

16 Jan 05:53

Choose a tag to compare

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

09 May 11:53

Choose a tag to compare

version/0.4.0

delete file