dfbench 0.2.1__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dfbench-0.2.1 → dfbench-0.2.2}/.gitignore +5 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/PKG-INFO +23 -15
- {dfbench-0.2.1 → dfbench-0.2.2}/README.md +20 -14
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Algorithm-Status.md +7 -7
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Algorithms.md +120 -119
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Architecture-Overview.md +16 -16
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Benchmarking.md +13 -13
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/FAQ.md +6 -6
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Home.md +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Implementing-a-New-Algorithm.md +24 -24
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Installation.md +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Metrics-Reference.md +26 -26
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Objective-API-Reference.md +47 -45
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Problems.md +33 -33
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Storage-and-Checkpointing.md +19 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Testing.md +14 -13
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/Utilities-and-Helpers.md +6 -6
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/algorithm-status/main.typ +8 -8
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/algorithm-status/template.typ +12 -12
- {dfbench-0.2.1 → dfbench-0.2.2}/pyproject.toml +3 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/__init__.py +2 -2
- dfbench-0.2.2/src/dfbench/algorithms/__init__.py +262 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/_dfo_common.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/_scipy_common.py +10 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/nelder_mead.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/omads_mads.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/pdfo/lincoa.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/pdfo/newuoa.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/pdfo/uobyqa.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/powell.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/pybobyqa.py +5 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/__init__.py +0 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/cmaes_sep_cma.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/evosax_es.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/evox_es.py +23 -17
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/evox_pso.py +10 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/jax_es.py +12 -12
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/nevergrad/_common.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/nevergrad/ngopt.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/nevergrad/oneplusone.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/nevergrad/tbpsa.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/pycma_cmaes.py +5 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/generative/vae_sampling.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/global_search/__init__.py +2 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/global_search/basin_hopping.py +8 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/global_search/dual_annealing.py +7 -1
- {dfbench-0.2.1/src/dfbench/algorithms/evolutionary → dfbench-0.2.2/src/dfbench/algorithms/global_search}/random_search.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/__init__.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/adam_gd.py +6 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/custom_jax.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/lbfgs_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/na_adam_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/_common.py +8 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adabelief.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adadelta.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adafactor.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adagrad.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adamax.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adamaxw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adamw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/adan.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/amsgrad.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/lamb.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/lion.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/lookahead.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/nadam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/nadamw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/noisy_sgd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/novograd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/oadam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/ogd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/polyak_sgd.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/radam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/rmsprop.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/rprop.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/sam.py +2 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/schedule_free_adam.py +1 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/sgd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/sign.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/sm3.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/sophia.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/yogi.py +1 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax_lbfgs.py +9 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/sa_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/_common.py +12 -6
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/sr1.py +6 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/__init__.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/ax_baxus.py +9 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/ax_saasbo.py +9 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/__init__.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/_botorch_common.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_bo.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_gebo.py +10 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_linebo.py +10 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_qkg.py +9 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_qnei.py +10 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_rembo.py +11 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/botorch/botorch_turbo.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/hebo_bo.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/restir.py +10 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/smac_bo.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/surrogate_based/turbo_lbfgs.py +19 -8
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/utils/gp.py +6 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/utils/initial_design.py +6 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/utils/misc.py +7 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/algorithm.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/display.py +5 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/objective.py +52 -33
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/problem.py +5 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/exporter.py +58 -16
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/manager.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/saveconfig.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/serializers.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/state.py +18 -18
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/base_problem.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/uifo/uifo_problem.py +9 -9
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/voyager/constrained_voyager_problem.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/voyager/voyager_problem.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/voyager/voyager_tuning_problem.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/slow/test_algorithms_integration.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/slow/test_benchmark_full.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/slow/test_problems_full.py +6 -6
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_algorithm_protocol.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_algorithms_uniform.py +7 -7
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_algorithms_unit.py +11 -9
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_api_imports.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_benchmark_smoke.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_cma_family.py +5 -5
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_config.py +10 -10
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_dfo_algorithms.py +1 -1
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_display.py +12 -12
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_init_env.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_metrics.py +16 -16
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_objective_invariants.py +22 -22
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_objective_penalty_fn.py +3 -3
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_objective_randomness.py +9 -9
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_problem_bounds_overrides.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_problem_protocol.py +4 -4
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_problem_spec.py +2 -2
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_storage.py +33 -9
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_utils.py +5 -5
- dfbench-0.2.1/src/dfbench/algorithms/__init__.py +0 -221
- {dfbench-0.2.1 → dfbench-0.2.2}/LICENSE +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/docs/_Sidebar.md +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/derivative_free/pdfo/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/evolutionary/nevergrad/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/optax/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/bfgs.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/cobyla.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/cobyqa.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/dogleg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/lbfgsb.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/newton_cg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/nonlinear_cg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/slsqp.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/tnc.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/trust_constr.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/trust_krylov.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/gradient_based/scipy/trust_ncg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/utils/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/algorithms/utils/weighted_acq.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/benchmark/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/benchmark/benchmark.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/benchmark/metrics.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/_init_env.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/config.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/backends.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/storage/resolver.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/core/utils.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/uifo/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/src/dfbench/problems/voyager/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/conftest.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/slow/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_bo_batch.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_custom_jax_batch.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_objective_space_mode.py +0 -0
- {dfbench-0.2.1 → dfbench-0.2.2}/tests/test_scipy_wrapper.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dfbench
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Differometor Benchmark - Optimization algorithms and problem definitions
|
|
5
5
|
Project-URL: Homepage, https://github.com/artificial-scientist-lab/Differometor-Benchmark
|
|
6
6
|
Project-URL: Repository, https://github.com/artificial-scientist-lab/Differometor-Benchmark
|
|
@@ -34,6 +34,7 @@ Requires-Dist: cmaes>=0.10.0; extra == 'all'
|
|
|
34
34
|
Requires-Dist: evosax>=0.1.6; extra == 'all'
|
|
35
35
|
Requires-Dist: evox>=1.3.0; extra == 'all'
|
|
36
36
|
Requires-Dist: gpytorch>=1.14; extra == 'all'
|
|
37
|
+
Requires-Dist: hebo>=0.3.2; extra == 'all'
|
|
37
38
|
Requires-Dist: nevergrad>=1.0.12; extra == 'all'
|
|
38
39
|
Requires-Dist: omads>=2408.0; extra == 'all'
|
|
39
40
|
Requires-Dist: optax>=0.2.6; extra == 'all'
|
|
@@ -54,6 +55,7 @@ Provides-Extra: bo
|
|
|
54
55
|
Requires-Dist: ax-platform>=1.2.4; extra == 'bo'
|
|
55
56
|
Requires-Dist: botorch>=0.16.1; extra == 'bo'
|
|
56
57
|
Requires-Dist: gpytorch>=1.14; extra == 'bo'
|
|
58
|
+
Requires-Dist: hebo>=0.3.2; extra == 'bo'
|
|
57
59
|
Requires-Dist: torch>=2.9.1; extra == 'bo'
|
|
58
60
|
Provides-Extra: cuda12
|
|
59
61
|
Requires-Dist: jax[cuda12]==0.9.0.1; extra == 'cuda12'
|
|
@@ -93,6 +95,12 @@ Description-Content-Type: text/markdown
|
|
|
93
95
|
|
|
94
96
|
# Differometor Benchmark
|
|
95
97
|
|
|
98
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
99
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
100
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
101
|
+
[](https://github.com/astral-sh/ruff)
|
|
102
|
+
[](https://github.com/artificial-scientist-lab/Differometor-Benchmark/actions/workflows/tests.yaml)
|
|
103
|
+
|
|
96
104
|
A benchmarking framework for optimization algorithms on gravitational-wave detector design problems, built on top of the [Differometor](https://github.com/artificial-scientist-lab/Differometor) simulator.
|
|
97
105
|
|
|
98
106
|
> **For detailed documentation, see the [Wiki](https://github.com/artificial-scientist-lab/Differometor-Benchmark/wiki).**
|
|
@@ -135,7 +143,7 @@ obj.plot_loss()
|
|
|
135
143
|
obj.save_run_to_file("my_run.npz")
|
|
136
144
|
```
|
|
137
145
|
|
|
138
|
-
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints
|
|
146
|
+
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints, you might be burning mirrors.)
|
|
139
147
|
|
|
140
148
|
### Evaluation Methods
|
|
141
149
|
|
|
@@ -157,8 +165,8 @@ The problems are JAX-based and differentiable up to second order. Use whichever
|
|
|
157
165
|
```python
|
|
158
166
|
from dfbench import t2j, j2t
|
|
159
167
|
|
|
160
|
-
params_jax = t2j(params_torch) # Torch
|
|
161
|
-
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX
|
|
168
|
+
params_jax = t2j(params_torch) # Torch -> JAX
|
|
169
|
+
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX -> Torch
|
|
162
170
|
```
|
|
163
171
|
|
|
164
172
|
This adds negligible overhead compared to the objective function itself.
|
|
@@ -226,8 +234,8 @@ OptimizationAlgorithm.optimize()
|
|
|
226
234
|
│
|
|
227
235
|
▼
|
|
228
236
|
┌───────────┐ records losses, params, grads, timestamps
|
|
229
|
-
│ Objective │
|
|
230
|
-
└─────┬─────┘ bounded
|
|
237
|
+
│ Objective │ ──> enforces time / eval budgets
|
|
238
|
+
└─────┬─────┘ bounded <-> unbounded sigmoid transform
|
|
231
239
|
│
|
|
232
240
|
▼
|
|
233
241
|
ContinuousProblem (VoyagerProblem, VoyagerTuningProblem, ConstrainedVoyagerProblem, UIFOProblem)
|
|
@@ -250,15 +258,15 @@ src/dfbench/
|
|
|
250
258
|
│ ├── problem.py # ContinuousProblem ABC + ProblemSpec
|
|
251
259
|
│ ├── algorithm.py # OptimizationAlgorithm ABC + AlgorithmType enum
|
|
252
260
|
│ ├── objective.py # Objective wrapper (central piece)
|
|
253
|
-
│ └── utils.py # torch
|
|
261
|
+
│ └── utils.py # torch<->jax conversion, inverse sigmoid
|
|
254
262
|
├── algorithms/
|
|
255
263
|
│ ├── derivative_free/ # OMADS, PDFO/Py-BOBYQA, NelderMead, Powell
|
|
256
|
-
│ ├── global_search/ # SciPy BasinHopping, DualAnnealing
|
|
257
|
-
│ ├── evolutionary/ #
|
|
264
|
+
│ ├── global_search/ # RandomSearch, SciPy BasinHopping, DualAnnealing
|
|
265
|
+
│ ├── evolutionary/ # EvoxPSO, EvoxES, Nevergrad, CMA family
|
|
258
266
|
│ ├── gradient_based/
|
|
259
267
|
│ │ ├── optax/ # 34 Optax-based optimizers (OptaxAdam, OptaxLAMB, ...)
|
|
260
|
-
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP,
|
|
261
|
-
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD
|
|
268
|
+
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP, ...)
|
|
269
|
+
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD->L-BFGS, ...)
|
|
262
270
|
│ │ └── *.py # Custom-loop algorithms (AdamGD, LBFGSGD, SAGD, NAAdamGD, OptaxLBFGS)
|
|
263
271
|
│ ├── surrogate_based/
|
|
264
272
|
│ │ ├── botorch/ # BotorchBO, BotorchTuRBO, BotorchqNEI, BotorchqKG,
|
|
@@ -369,7 +377,7 @@ The interface is designed to make this as simple as possible. You write the opti
|
|
|
369
377
|
|
|
370
378
|
1. Subclass `OptimizationAlgorithm`
|
|
371
379
|
2. Declare `algorithm_str` and `algorithm_type`
|
|
372
|
-
3. Implement `optimize(objective, ...)
|
|
380
|
+
3. Implement `optimize(objective, ...) -> None`
|
|
373
381
|
4. Use `Objective` for all function evaluations
|
|
374
382
|
5. The `Objective` is mutated in place, thereby no return is needed
|
|
375
383
|
|
|
@@ -392,7 +400,7 @@ class MyAlgorithm(OptimizationAlgorithm):
|
|
|
392
400
|
"""My optimization algorithm."""
|
|
393
401
|
|
|
394
402
|
algorithm_str = "my_algorithm"
|
|
395
|
-
algorithm_type = AlgorithmType.
|
|
403
|
+
algorithm_type = AlgorithmType.GLOBAL_SEARCH # match one of the algorithms/ subfolders
|
|
396
404
|
|
|
397
405
|
def __init__(self, batch_size: int = 50) -> None:
|
|
398
406
|
"""Algorithm-level meta-parameters that don't change between runs."""
|
|
@@ -513,7 +521,6 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
513
521
|
| `BFGS`, `LBFGSB`, `NonlinearCG`, `NewtonCG` | Gradient | Classical SciPy gradient and quasi-Newton methods |
|
|
514
522
|
| `TrustNCG`, `TrustKrylov`, `TrustConstr`, `Dogleg`, `SR1` | Gradient | Trust-region and constrained SciPy methods |
|
|
515
523
|
| `TNC`, `SLSQP`, `COBYQA`, `COBYLA` | Gradient | Bounded physical-space SciPy solvers |
|
|
516
|
-
| `RandomSearch` | Evolutionary | Unbiased baseline, no hyperparameters |
|
|
517
524
|
| `EvoxPSO` | Evolutionary | Swarm intelligence, many variants (CLPSO, CSO, ...) |
|
|
518
525
|
| `EvoxES` | Evolutionary | CMA-ES, OpenES, XNES, and more (EvoX backend) |
|
|
519
526
|
| `PyCMACMAES` | Evolutionary | Vanilla CMA-ES (pycma backend) |
|
|
@@ -529,6 +536,7 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
529
536
|
| `OmadsMADS`, `OmadsOrthoMADS` | Derivative-Free | MADS / OrthoMADS direct search (OMADS) |
|
|
530
537
|
| `PDFOUOBYQA`, `PDFONEWUOA`, `PDFOLINCOA`, `PyBOBYQA` | Derivative-Free | Powell-style trust-region DFO (PDFO + Py-BOBYQA) |
|
|
531
538
|
| `NelderMead`, `Powell` | Derivative-Free | SciPy classical simplex / direction-set search |
|
|
539
|
+
| `RandomSearch` | Global Search | Unbiased, derivative-free global search baseline, no hyperparameters |
|
|
532
540
|
| `BasinHopping`, `DualAnnealing` | Global Search | SciPy stochastic global optimization |
|
|
533
541
|
| `NevergradOnePlusOne`, `NevergradTBPSA`, `NevergradNGOpt` | Evolutionary | Nevergrad rugged-landscape baselines |
|
|
534
542
|
| `BotorchBO` | Surrogate | Sample-efficient Bayesian Optimization |
|
|
@@ -557,7 +565,7 @@ Reference implementations worth reading:
|
|
|
557
565
|
- `gradient_based/adam_gd.py`: gradient-based pattern (custom loop)
|
|
558
566
|
- `gradient_based/optax/adam.py`: Optax wrapper pattern (minimal subclass)
|
|
559
567
|
- `gradient_based/scipy/_common.py`: shared SciPy wrapper, caching, and budget handling
|
|
560
|
-
- `
|
|
568
|
+
- `global_search/random_search.py`: simplest batched example
|
|
561
569
|
- `evolutionary/evox_es.py`: wrapping an external library (EvoX/PyTorch)
|
|
562
570
|
- `evolutionary/pycma_cmaes.py`: wrapping pycma (ask/tell, restart strategies)
|
|
563
571
|
- `evolutionary/jax_es.py`: native JAX ES without external library
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
# Differometor Benchmark
|
|
5
5
|
|
|
6
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
7
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
8
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
9
|
+
[](https://github.com/astral-sh/ruff)
|
|
10
|
+
[](https://github.com/artificial-scientist-lab/Differometor-Benchmark/actions/workflows/tests.yaml)
|
|
11
|
+
|
|
6
12
|
A benchmarking framework for optimization algorithms on gravitational-wave detector design problems, built on top of the [Differometor](https://github.com/artificial-scientist-lab/Differometor) simulator.
|
|
7
13
|
|
|
8
14
|
> **For detailed documentation, see the [Wiki](https://github.com/artificial-scientist-lab/Differometor-Benchmark/wiki).**
|
|
@@ -45,7 +51,7 @@ obj.plot_loss()
|
|
|
45
51
|
obj.save_run_to_file("my_run.npz")
|
|
46
52
|
```
|
|
47
53
|
|
|
48
|
-
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints
|
|
54
|
+
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints, you might be burning mirrors.)
|
|
49
55
|
|
|
50
56
|
### Evaluation Methods
|
|
51
57
|
|
|
@@ -67,8 +73,8 @@ The problems are JAX-based and differentiable up to second order. Use whichever
|
|
|
67
73
|
```python
|
|
68
74
|
from dfbench import t2j, j2t
|
|
69
75
|
|
|
70
|
-
params_jax = t2j(params_torch) # Torch
|
|
71
|
-
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX
|
|
76
|
+
params_jax = t2j(params_torch) # Torch -> JAX
|
|
77
|
+
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX -> Torch
|
|
72
78
|
```
|
|
73
79
|
|
|
74
80
|
This adds negligible overhead compared to the objective function itself.
|
|
@@ -136,8 +142,8 @@ OptimizationAlgorithm.optimize()
|
|
|
136
142
|
│
|
|
137
143
|
▼
|
|
138
144
|
┌───────────┐ records losses, params, grads, timestamps
|
|
139
|
-
│ Objective │
|
|
140
|
-
└─────┬─────┘ bounded
|
|
145
|
+
│ Objective │ ──> enforces time / eval budgets
|
|
146
|
+
└─────┬─────┘ bounded <-> unbounded sigmoid transform
|
|
141
147
|
│
|
|
142
148
|
▼
|
|
143
149
|
ContinuousProblem (VoyagerProblem, VoyagerTuningProblem, ConstrainedVoyagerProblem, UIFOProblem)
|
|
@@ -160,15 +166,15 @@ src/dfbench/
|
|
|
160
166
|
│ ├── problem.py # ContinuousProblem ABC + ProblemSpec
|
|
161
167
|
│ ├── algorithm.py # OptimizationAlgorithm ABC + AlgorithmType enum
|
|
162
168
|
│ ├── objective.py # Objective wrapper (central piece)
|
|
163
|
-
│ └── utils.py # torch
|
|
169
|
+
│ └── utils.py # torch<->jax conversion, inverse sigmoid
|
|
164
170
|
├── algorithms/
|
|
165
171
|
│ ├── derivative_free/ # OMADS, PDFO/Py-BOBYQA, NelderMead, Powell
|
|
166
|
-
│ ├── global_search/ # SciPy BasinHopping, DualAnnealing
|
|
167
|
-
│ ├── evolutionary/ #
|
|
172
|
+
│ ├── global_search/ # RandomSearch, SciPy BasinHopping, DualAnnealing
|
|
173
|
+
│ ├── evolutionary/ # EvoxPSO, EvoxES, Nevergrad, CMA family
|
|
168
174
|
│ ├── gradient_based/
|
|
169
175
|
│ │ ├── optax/ # 34 Optax-based optimizers (OptaxAdam, OptaxLAMB, ...)
|
|
170
|
-
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP,
|
|
171
|
-
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD
|
|
176
|
+
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP, ...)
|
|
177
|
+
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD->L-BFGS, ...)
|
|
172
178
|
│ │ └── *.py # Custom-loop algorithms (AdamGD, LBFGSGD, SAGD, NAAdamGD, OptaxLBFGS)
|
|
173
179
|
│ ├── surrogate_based/
|
|
174
180
|
│ │ ├── botorch/ # BotorchBO, BotorchTuRBO, BotorchqNEI, BotorchqKG,
|
|
@@ -279,7 +285,7 @@ The interface is designed to make this as simple as possible. You write the opti
|
|
|
279
285
|
|
|
280
286
|
1. Subclass `OptimizationAlgorithm`
|
|
281
287
|
2. Declare `algorithm_str` and `algorithm_type`
|
|
282
|
-
3. Implement `optimize(objective, ...)
|
|
288
|
+
3. Implement `optimize(objective, ...) -> None`
|
|
283
289
|
4. Use `Objective` for all function evaluations
|
|
284
290
|
5. The `Objective` is mutated in place, thereby no return is needed
|
|
285
291
|
|
|
@@ -302,7 +308,7 @@ class MyAlgorithm(OptimizationAlgorithm):
|
|
|
302
308
|
"""My optimization algorithm."""
|
|
303
309
|
|
|
304
310
|
algorithm_str = "my_algorithm"
|
|
305
|
-
algorithm_type = AlgorithmType.
|
|
311
|
+
algorithm_type = AlgorithmType.GLOBAL_SEARCH # match one of the algorithms/ subfolders
|
|
306
312
|
|
|
307
313
|
def __init__(self, batch_size: int = 50) -> None:
|
|
308
314
|
"""Algorithm-level meta-parameters that don't change between runs."""
|
|
@@ -423,7 +429,6 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
423
429
|
| `BFGS`, `LBFGSB`, `NonlinearCG`, `NewtonCG` | Gradient | Classical SciPy gradient and quasi-Newton methods |
|
|
424
430
|
| `TrustNCG`, `TrustKrylov`, `TrustConstr`, `Dogleg`, `SR1` | Gradient | Trust-region and constrained SciPy methods |
|
|
425
431
|
| `TNC`, `SLSQP`, `COBYQA`, `COBYLA` | Gradient | Bounded physical-space SciPy solvers |
|
|
426
|
-
| `RandomSearch` | Evolutionary | Unbiased baseline, no hyperparameters |
|
|
427
432
|
| `EvoxPSO` | Evolutionary | Swarm intelligence, many variants (CLPSO, CSO, ...) |
|
|
428
433
|
| `EvoxES` | Evolutionary | CMA-ES, OpenES, XNES, and more (EvoX backend) |
|
|
429
434
|
| `PyCMACMAES` | Evolutionary | Vanilla CMA-ES (pycma backend) |
|
|
@@ -439,6 +444,7 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
439
444
|
| `OmadsMADS`, `OmadsOrthoMADS` | Derivative-Free | MADS / OrthoMADS direct search (OMADS) |
|
|
440
445
|
| `PDFOUOBYQA`, `PDFONEWUOA`, `PDFOLINCOA`, `PyBOBYQA` | Derivative-Free | Powell-style trust-region DFO (PDFO + Py-BOBYQA) |
|
|
441
446
|
| `NelderMead`, `Powell` | Derivative-Free | SciPy classical simplex / direction-set search |
|
|
447
|
+
| `RandomSearch` | Global Search | Unbiased, derivative-free global search baseline, no hyperparameters |
|
|
442
448
|
| `BasinHopping`, `DualAnnealing` | Global Search | SciPy stochastic global optimization |
|
|
443
449
|
| `NevergradOnePlusOne`, `NevergradTBPSA`, `NevergradNGOpt` | Evolutionary | Nevergrad rugged-landscape baselines |
|
|
444
450
|
| `BotorchBO` | Surrogate | Sample-efficient Bayesian Optimization |
|
|
@@ -467,7 +473,7 @@ Reference implementations worth reading:
|
|
|
467
473
|
- `gradient_based/adam_gd.py`: gradient-based pattern (custom loop)
|
|
468
474
|
- `gradient_based/optax/adam.py`: Optax wrapper pattern (minimal subclass)
|
|
469
475
|
- `gradient_based/scipy/_common.py`: shared SciPy wrapper, caching, and budget handling
|
|
470
|
-
- `
|
|
476
|
+
- `global_search/random_search.py`: simplest batched example
|
|
471
477
|
- `evolutionary/evox_es.py`: wrapping an external library (EvoX/PyTorch)
|
|
472
478
|
- `evolutionary/pycma_cmaes.py`: wrapping pycma (ask/tell, restart strategies)
|
|
473
479
|
- `evolutionary/jax_es.py`: native JAX ES without external library
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
## `EvoxES
|
|
21
|
+
## `EvoxES`: Multi-Algorithm Wrapper (on `main`)
|
|
22
22
|
|
|
23
23
|
`EvoxES` is a single class that wraps **12 distinct EvoX evolution strategies** selectable via its `variant` parameter.
|
|
24
24
|
Each variant is a separate algorithm from the EvoX library.
|
|
@@ -38,7 +38,7 @@ Each variant is a separate algorithm from the EvoX library.
|
|
|
38
38
|
| `GuidedES` | Guided Evolution Strategy | ES |
|
|
39
39
|
| `ESMC` | Evolution Strategy with Monte Carlo | ES |
|
|
40
40
|
|
|
41
|
-
## `EvoxPSO
|
|
41
|
+
## `EvoxPSO`: Multi-Algorithm Wrapper (on `main`)
|
|
42
42
|
|
|
43
43
|
`EvoxPSO` is a single class that wraps **7 distinct EvoX PSO variants** selectable via its `variant` parameter.
|
|
44
44
|
|
|
@@ -52,10 +52,10 @@ Each variant is a separate algorithm from the EvoX library.
|
|
|
52
52
|
| `SLPSOGS` | Social Learning PSO with Gaussian Sampling |
|
|
53
53
|
| `SLPSOUS` | Social Learning PSO with Uniform Sampling |
|
|
54
54
|
|
|
55
|
-
## `EvosaxES
|
|
55
|
+
## `EvosaxES`: Multi-Algorithm Wrapper (on `algorithm/evo-algorithms`)
|
|
56
56
|
|
|
57
57
|
`EvosaxES` is a separate evosax-backed wrapper (pure JAX, JIT-friendly) that wraps **14 variants**.
|
|
58
|
-
Coexists with `EvoxES`
|
|
58
|
+
Coexists with `EvoxES` but uses a different backend; class names use `evosax_` prefix.
|
|
59
59
|
|
|
60
60
|
| Variant | Full Name | Type |
|
|
61
61
|
|---------|-----------|------|
|
|
@@ -129,7 +129,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
129
129
|
|-----------|-----------|--------|--------|-------|
|
|
130
130
|
| SGLD | `SGLDJAX` | Branch | `algorithm/jax-algorithms` | Stochastic Gradient Langevin Dynamics |
|
|
131
131
|
| ASAM | `ASAMJAX` | Branch | `algorithm/jax-algorithms` | Adaptive Sharpness-Aware Minimization |
|
|
132
|
-
| Adam
|
|
132
|
+
| Adam->L-BFGS Switch | `AdamToLBFGSJAX` | Branch | `algorithm/jax-algorithms` | Hybrid warm-start strategy |
|
|
133
133
|
| Entropy-SGD | `EntropySGDJAX` | Branch | `algorithm/jax-algorithms` | |
|
|
134
134
|
| SGHMC | `SGHMCJAX` | Branch | `algorithm/jax-algorithms` | Stochastic Gradient Hamiltonian MC |
|
|
135
135
|
| ARC | `ARCJAX` | Branch | `algorithm/jax-algorithms` | Adaptive Regularization with Cubics |
|
|
@@ -146,7 +146,6 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
146
146
|
|-----------|-----------|--------|--------|-------|
|
|
147
147
|
| EvoX ES (12 variants) | `EvoxES` | **Finished** | `main` | See variant table above |
|
|
148
148
|
| EvoX PSO (7 variants) | `EvoxPSO` | **Finished** | `main` | See variant table above |
|
|
149
|
-
| Random Search | `RandomSearch` | **Finished** | `main` | Baseline |
|
|
150
149
|
| Evosax ES (14 variants) | `EvosaxES` | Branch | `algorithm/evo-algorithms` | See variant table above |
|
|
151
150
|
| DE | `DE` | Branch | `algorithm/evo-algorithms` | Differential Evolution (custom impl) |
|
|
152
151
|
| JADE | `JADE` | Branch | `algorithm/evo-algorithms` | Adaptive DE |
|
|
@@ -201,6 +200,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
201
200
|
|-----------|-----------|--------|--------|-------|
|
|
202
201
|
| Basin Hopping | `BasinHopping` | Branch | `algorithm/scipy-nongrad-algorithms` | SciPy stochastic global optimizer |
|
|
203
202
|
| Dual Annealing | `DualAnnealing` | Branch | `algorithm/scipy-nongrad-algorithms` | SciPy stochastic global optimizer |
|
|
203
|
+
| Random Search | `RandomSearch` | **Finished** | `main` | Baseline |
|
|
204
204
|
|
|
205
205
|
### Surrogate-Based / Bayesian Optimization
|
|
206
206
|
|
|
@@ -214,7 +214,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
214
214
|
| GEBO | `GEBO` | Branch | `algorithm/bo-algorithms` | Gradient-Enhanced BO |
|
|
215
215
|
| LineBO | `LineBO` | Branch | `algorithm/bo-algorithms` | Line-search BO |
|
|
216
216
|
| qKG | `BotorchqKG` | Branch | `algorithm/bo-algorithms` | Knowledge Gradient |
|
|
217
|
-
| qNEI | `
|
|
217
|
+
| qNEI | `BotorchQNEI` | Branch | `algorithm/bo-algorithms` | Noisy Expected Improvement |
|
|
218
218
|
| REMBO | `REMBO` | Branch | `algorithm/bo-algorithms` | Random Embedding BO |
|
|
219
219
|
| HEBO | `HEBO` | Branch | `algorithm/bo-algorithms` | Heteroscedastic BO |
|
|
220
220
|
| SMAC | `SMAC` | Branch | `algorithm/bo-algorithms` | Sequential Model-based Config |
|